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// successfuly.
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.Remove(restjson.UnmarshalHandler)
54	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
55	return
56}
57
58// AcceptCertificateTransfer API operation for AWS IoT.
59//
60// Accepts a pending certificate transfer. The default state of the certificate
61// is INACTIVE.
62//
63// To check for pending certificate transfers, call ListCertificates to enumerate
64// your certificates.
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for AWS IoT's
71// API operation AcceptCertificateTransfer for usage and error information.
72//
73// Returned Error Codes:
74//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
75//   The specified resource does not exist.
76//
77//   * ErrCodeTransferAlreadyCompletedException "TransferAlreadyCompletedException"
78//   You can't revert the certificate transfer because the transfer is already
79//   complete.
80//
81//   * ErrCodeInvalidRequestException "InvalidRequestException"
82//   The request is not valid.
83//
84//   * ErrCodeThrottlingException "ThrottlingException"
85//   The rate exceeds the limit.
86//
87//   * ErrCodeUnauthorizedException "UnauthorizedException"
88//   You are not authorized to perform this operation.
89//
90//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
91//   The service is temporarily unavailable.
92//
93//   * ErrCodeInternalFailureException "InternalFailureException"
94//   An unexpected error has occurred.
95//
96func (c *IoT) AcceptCertificateTransfer(input *AcceptCertificateTransferInput) (*AcceptCertificateTransferOutput, error) {
97	req, out := c.AcceptCertificateTransferRequest(input)
98	return out, req.Send()
99}
100
101// AcceptCertificateTransferWithContext is the same as AcceptCertificateTransfer with the addition of
102// the ability to pass a context and additional request options.
103//
104// See AcceptCertificateTransfer for details on how to use this API operation.
105//
106// The context must be non-nil and will be used for request cancellation. If
107// the context is nil a panic will occur. In the future the SDK may create
108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
109// for more information on using Contexts.
110func (c *IoT) AcceptCertificateTransferWithContext(ctx aws.Context, input *AcceptCertificateTransferInput, opts ...request.Option) (*AcceptCertificateTransferOutput, error) {
111	req, out := c.AcceptCertificateTransferRequest(input)
112	req.SetContext(ctx)
113	req.ApplyOptions(opts...)
114	return out, req.Send()
115}
116
117const opAddThingToThingGroup = "AddThingToThingGroup"
118
119// AddThingToThingGroupRequest generates a "aws/request.Request" representing the
120// client's request for the AddThingToThingGroup operation. The "output" return
121// value will be populated with the request's response once the request completes
122// successfuly.
123//
124// Use "Send" method on the returned Request to send the API call to the service.
125// the "output" return value is not valid until after Send returns without error.
126//
127// See AddThingToThingGroup for more information on using the AddThingToThingGroup
128// API call, and error handling.
129//
130// This method is useful when you want to inject custom logic or configuration
131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
132//
133//
134//    // Example sending a request using the AddThingToThingGroupRequest method.
135//    req, resp := client.AddThingToThingGroupRequest(params)
136//
137//    err := req.Send()
138//    if err == nil { // resp is now filled
139//        fmt.Println(resp)
140//    }
141func (c *IoT) AddThingToThingGroupRequest(input *AddThingToThingGroupInput) (req *request.Request, output *AddThingToThingGroupOutput) {
142	op := &request.Operation{
143		Name:       opAddThingToThingGroup,
144		HTTPMethod: "PUT",
145		HTTPPath:   "/thing-groups/addThingToThingGroup",
146	}
147
148	if input == nil {
149		input = &AddThingToThingGroupInput{}
150	}
151
152	output = &AddThingToThingGroupOutput{}
153	req = c.newRequest(op, input, output)
154	return
155}
156
157// AddThingToThingGroup API operation for AWS IoT.
158//
159// Adds a thing to a thing group.
160//
161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
162// with awserr.Error's Code and Message methods to get detailed information about
163// the error.
164//
165// See the AWS API reference guide for AWS IoT's
166// API operation AddThingToThingGroup for usage and error information.
167//
168// Returned Error Codes:
169//   * ErrCodeInvalidRequestException "InvalidRequestException"
170//   The request is not valid.
171//
172//   * ErrCodeThrottlingException "ThrottlingException"
173//   The rate exceeds the limit.
174//
175//   * ErrCodeInternalFailureException "InternalFailureException"
176//   An unexpected error has occurred.
177//
178//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
179//   The specified resource does not exist.
180//
181func (c *IoT) AddThingToThingGroup(input *AddThingToThingGroupInput) (*AddThingToThingGroupOutput, error) {
182	req, out := c.AddThingToThingGroupRequest(input)
183	return out, req.Send()
184}
185
186// AddThingToThingGroupWithContext is the same as AddThingToThingGroup with the addition of
187// the ability to pass a context and additional request options.
188//
189// See AddThingToThingGroup for details on how to use this API operation.
190//
191// The context must be non-nil and will be used for request cancellation. If
192// the context is nil a panic will occur. In the future the SDK may create
193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
194// for more information on using Contexts.
195func (c *IoT) AddThingToThingGroupWithContext(ctx aws.Context, input *AddThingToThingGroupInput, opts ...request.Option) (*AddThingToThingGroupOutput, error) {
196	req, out := c.AddThingToThingGroupRequest(input)
197	req.SetContext(ctx)
198	req.ApplyOptions(opts...)
199	return out, req.Send()
200}
201
202const opAssociateTargetsWithJob = "AssociateTargetsWithJob"
203
204// AssociateTargetsWithJobRequest generates a "aws/request.Request" representing the
205// client's request for the AssociateTargetsWithJob operation. The "output" return
206// value will be populated with the request's response once the request completes
207// successfuly.
208//
209// Use "Send" method on the returned Request to send the API call to the service.
210// the "output" return value is not valid until after Send returns without error.
211//
212// See AssociateTargetsWithJob for more information on using the AssociateTargetsWithJob
213// API call, and error handling.
214//
215// This method is useful when you want to inject custom logic or configuration
216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
217//
218//
219//    // Example sending a request using the AssociateTargetsWithJobRequest method.
220//    req, resp := client.AssociateTargetsWithJobRequest(params)
221//
222//    err := req.Send()
223//    if err == nil { // resp is now filled
224//        fmt.Println(resp)
225//    }
226func (c *IoT) AssociateTargetsWithJobRequest(input *AssociateTargetsWithJobInput) (req *request.Request, output *AssociateTargetsWithJobOutput) {
227	op := &request.Operation{
228		Name:       opAssociateTargetsWithJob,
229		HTTPMethod: "POST",
230		HTTPPath:   "/jobs/{jobId}/targets",
231	}
232
233	if input == nil {
234		input = &AssociateTargetsWithJobInput{}
235	}
236
237	output = &AssociateTargetsWithJobOutput{}
238	req = c.newRequest(op, input, output)
239	return
240}
241
242// AssociateTargetsWithJob API operation for AWS IoT.
243//
244// Associates a group with a continuous job. The following criteria must be
245// met:
246//
247//    * The job must have been created with the targetSelection field set to
248//    "CONTINUOUS".
249//
250//    * The job status must currently be "IN_PROGRESS".
251//
252//    * The total number of targets associated with a job must not exceed 100.
253//
254// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
255// with awserr.Error's Code and Message methods to get detailed information about
256// the error.
257//
258// See the AWS API reference guide for AWS IoT's
259// API operation AssociateTargetsWithJob for usage and error information.
260//
261// Returned Error Codes:
262//   * ErrCodeInvalidRequestException "InvalidRequestException"
263//   The request is not valid.
264//
265//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
266//   The specified resource does not exist.
267//
268//   * ErrCodeLimitExceededException "LimitExceededException"
269//   A limit has been exceeded.
270//
271//   * ErrCodeThrottlingException "ThrottlingException"
272//   The rate exceeds the limit.
273//
274//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
275//   The service is temporarily unavailable.
276//
277func (c *IoT) AssociateTargetsWithJob(input *AssociateTargetsWithJobInput) (*AssociateTargetsWithJobOutput, error) {
278	req, out := c.AssociateTargetsWithJobRequest(input)
279	return out, req.Send()
280}
281
282// AssociateTargetsWithJobWithContext is the same as AssociateTargetsWithJob with the addition of
283// the ability to pass a context and additional request options.
284//
285// See AssociateTargetsWithJob for details on how to use this API operation.
286//
287// The context must be non-nil and will be used for request cancellation. If
288// the context is nil a panic will occur. In the future the SDK may create
289// sub-contexts for http.Requests. See https://golang.org/pkg/context/
290// for more information on using Contexts.
291func (c *IoT) AssociateTargetsWithJobWithContext(ctx aws.Context, input *AssociateTargetsWithJobInput, opts ...request.Option) (*AssociateTargetsWithJobOutput, error) {
292	req, out := c.AssociateTargetsWithJobRequest(input)
293	req.SetContext(ctx)
294	req.ApplyOptions(opts...)
295	return out, req.Send()
296}
297
298const opAttachPolicy = "AttachPolicy"
299
300// AttachPolicyRequest generates a "aws/request.Request" representing the
301// client's request for the AttachPolicy operation. The "output" return
302// value will be populated with the request's response once the request completes
303// successfuly.
304//
305// Use "Send" method on the returned Request to send the API call to the service.
306// the "output" return value is not valid until after Send returns without error.
307//
308// See AttachPolicy for more information on using the AttachPolicy
309// API call, and error handling.
310//
311// This method is useful when you want to inject custom logic or configuration
312// into the SDK's request lifecycle. Such as custom headers, or retry logic.
313//
314//
315//    // Example sending a request using the AttachPolicyRequest method.
316//    req, resp := client.AttachPolicyRequest(params)
317//
318//    err := req.Send()
319//    if err == nil { // resp is now filled
320//        fmt.Println(resp)
321//    }
322func (c *IoT) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
323	op := &request.Operation{
324		Name:       opAttachPolicy,
325		HTTPMethod: "PUT",
326		HTTPPath:   "/target-policies/{policyName}",
327	}
328
329	if input == nil {
330		input = &AttachPolicyInput{}
331	}
332
333	output = &AttachPolicyOutput{}
334	req = c.newRequest(op, input, output)
335	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
336	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
337	return
338}
339
340// AttachPolicy API operation for AWS IoT.
341//
342// Attaches a policy to the specified target.
343//
344// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
345// with awserr.Error's Code and Message methods to get detailed information about
346// the error.
347//
348// See the AWS API reference guide for AWS IoT's
349// API operation AttachPolicy for usage and error information.
350//
351// Returned Error Codes:
352//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
353//   The specified resource does not exist.
354//
355//   * ErrCodeInvalidRequestException "InvalidRequestException"
356//   The request is not valid.
357//
358//   * ErrCodeThrottlingException "ThrottlingException"
359//   The rate exceeds the limit.
360//
361//   * ErrCodeUnauthorizedException "UnauthorizedException"
362//   You are not authorized to perform this operation.
363//
364//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
365//   The service is temporarily unavailable.
366//
367//   * ErrCodeInternalFailureException "InternalFailureException"
368//   An unexpected error has occurred.
369//
370//   * ErrCodeLimitExceededException "LimitExceededException"
371//   A limit has been exceeded.
372//
373func (c *IoT) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
374	req, out := c.AttachPolicyRequest(input)
375	return out, req.Send()
376}
377
378// AttachPolicyWithContext is the same as AttachPolicy with the addition of
379// the ability to pass a context and additional request options.
380//
381// See AttachPolicy for details on how to use this API operation.
382//
383// The context must be non-nil and will be used for request cancellation. If
384// the context is nil a panic will occur. In the future the SDK may create
385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
386// for more information on using Contexts.
387func (c *IoT) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
388	req, out := c.AttachPolicyRequest(input)
389	req.SetContext(ctx)
390	req.ApplyOptions(opts...)
391	return out, req.Send()
392}
393
394const opAttachPrincipalPolicy = "AttachPrincipalPolicy"
395
396// AttachPrincipalPolicyRequest generates a "aws/request.Request" representing the
397// client's request for the AttachPrincipalPolicy operation. The "output" return
398// value will be populated with the request's response once the request completes
399// successfuly.
400//
401// Use "Send" method on the returned Request to send the API call to the service.
402// the "output" return value is not valid until after Send returns without error.
403//
404// See AttachPrincipalPolicy for more information on using the AttachPrincipalPolicy
405// API call, and error handling.
406//
407// This method is useful when you want to inject custom logic or configuration
408// into the SDK's request lifecycle. Such as custom headers, or retry logic.
409//
410//
411//    // Example sending a request using the AttachPrincipalPolicyRequest method.
412//    req, resp := client.AttachPrincipalPolicyRequest(params)
413//
414//    err := req.Send()
415//    if err == nil { // resp is now filled
416//        fmt.Println(resp)
417//    }
418func (c *IoT) AttachPrincipalPolicyRequest(input *AttachPrincipalPolicyInput) (req *request.Request, output *AttachPrincipalPolicyOutput) {
419	if c.Client.Config.Logger != nil {
420		c.Client.Config.Logger.Log("This operation, AttachPrincipalPolicy, has been deprecated")
421	}
422	op := &request.Operation{
423		Name:       opAttachPrincipalPolicy,
424		HTTPMethod: "PUT",
425		HTTPPath:   "/principal-policies/{policyName}",
426	}
427
428	if input == nil {
429		input = &AttachPrincipalPolicyInput{}
430	}
431
432	output = &AttachPrincipalPolicyOutput{}
433	req = c.newRequest(op, input, output)
434	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
435	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
436	return
437}
438
439// AttachPrincipalPolicy API operation for AWS IoT.
440//
441// Attaches the specified policy to the specified principal (certificate or
442// other credential).
443//
444// Note: This API is deprecated. Please use AttachPolicy instead.
445//
446// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
447// with awserr.Error's Code and Message methods to get detailed information about
448// the error.
449//
450// See the AWS API reference guide for AWS IoT's
451// API operation AttachPrincipalPolicy for usage and error information.
452//
453// Returned Error Codes:
454//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
455//   The specified resource does not exist.
456//
457//   * ErrCodeInvalidRequestException "InvalidRequestException"
458//   The request is not valid.
459//
460//   * ErrCodeThrottlingException "ThrottlingException"
461//   The rate exceeds the limit.
462//
463//   * ErrCodeUnauthorizedException "UnauthorizedException"
464//   You are not authorized to perform this operation.
465//
466//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
467//   The service is temporarily unavailable.
468//
469//   * ErrCodeInternalFailureException "InternalFailureException"
470//   An unexpected error has occurred.
471//
472//   * ErrCodeLimitExceededException "LimitExceededException"
473//   A limit has been exceeded.
474//
475func (c *IoT) AttachPrincipalPolicy(input *AttachPrincipalPolicyInput) (*AttachPrincipalPolicyOutput, error) {
476	req, out := c.AttachPrincipalPolicyRequest(input)
477	return out, req.Send()
478}
479
480// AttachPrincipalPolicyWithContext is the same as AttachPrincipalPolicy with the addition of
481// the ability to pass a context and additional request options.
482//
483// See AttachPrincipalPolicy for details on how to use this API operation.
484//
485// The context must be non-nil and will be used for request cancellation. If
486// the context is nil a panic will occur. In the future the SDK may create
487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
488// for more information on using Contexts.
489func (c *IoT) AttachPrincipalPolicyWithContext(ctx aws.Context, input *AttachPrincipalPolicyInput, opts ...request.Option) (*AttachPrincipalPolicyOutput, error) {
490	req, out := c.AttachPrincipalPolicyRequest(input)
491	req.SetContext(ctx)
492	req.ApplyOptions(opts...)
493	return out, req.Send()
494}
495
496const opAttachSecurityProfile = "AttachSecurityProfile"
497
498// AttachSecurityProfileRequest generates a "aws/request.Request" representing the
499// client's request for the AttachSecurityProfile operation. The "output" return
500// value will be populated with the request's response once the request completes
501// successfuly.
502//
503// Use "Send" method on the returned Request to send the API call to the service.
504// the "output" return value is not valid until after Send returns without error.
505//
506// See AttachSecurityProfile for more information on using the AttachSecurityProfile
507// API call, and error handling.
508//
509// This method is useful when you want to inject custom logic or configuration
510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
511//
512//
513//    // Example sending a request using the AttachSecurityProfileRequest method.
514//    req, resp := client.AttachSecurityProfileRequest(params)
515//
516//    err := req.Send()
517//    if err == nil { // resp is now filled
518//        fmt.Println(resp)
519//    }
520func (c *IoT) AttachSecurityProfileRequest(input *AttachSecurityProfileInput) (req *request.Request, output *AttachSecurityProfileOutput) {
521	op := &request.Operation{
522		Name:       opAttachSecurityProfile,
523		HTTPMethod: "PUT",
524		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
525	}
526
527	if input == nil {
528		input = &AttachSecurityProfileInput{}
529	}
530
531	output = &AttachSecurityProfileOutput{}
532	req = c.newRequest(op, input, output)
533	return
534}
535
536// AttachSecurityProfile API operation for AWS IoT.
537//
538// Associates a Device Defender security profile with a thing group or with
539// this account. Each thing group or account can have up to five security profiles
540// associated with it.
541//
542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
543// with awserr.Error's Code and Message methods to get detailed information about
544// the error.
545//
546// See the AWS API reference guide for AWS IoT's
547// API operation AttachSecurityProfile for usage and error information.
548//
549// Returned Error Codes:
550//   * ErrCodeInvalidRequestException "InvalidRequestException"
551//   The request is not valid.
552//
553//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
554//   The specified resource does not exist.
555//
556//   * ErrCodeLimitExceededException "LimitExceededException"
557//   A limit has been exceeded.
558//
559//   * ErrCodeVersionConflictException "VersionConflictException"
560//   An exception thrown when the version of an entity specified with the expectedVersion
561//   parameter does not match the latest version in the system.
562//
563//   * ErrCodeThrottlingException "ThrottlingException"
564//   The rate exceeds the limit.
565//
566//   * ErrCodeInternalFailureException "InternalFailureException"
567//   An unexpected error has occurred.
568//
569func (c *IoT) AttachSecurityProfile(input *AttachSecurityProfileInput) (*AttachSecurityProfileOutput, error) {
570	req, out := c.AttachSecurityProfileRequest(input)
571	return out, req.Send()
572}
573
574// AttachSecurityProfileWithContext is the same as AttachSecurityProfile with the addition of
575// the ability to pass a context and additional request options.
576//
577// See AttachSecurityProfile for details on how to use this API operation.
578//
579// The context must be non-nil and will be used for request cancellation. If
580// the context is nil a panic will occur. In the future the SDK may create
581// sub-contexts for http.Requests. See https://golang.org/pkg/context/
582// for more information on using Contexts.
583func (c *IoT) AttachSecurityProfileWithContext(ctx aws.Context, input *AttachSecurityProfileInput, opts ...request.Option) (*AttachSecurityProfileOutput, error) {
584	req, out := c.AttachSecurityProfileRequest(input)
585	req.SetContext(ctx)
586	req.ApplyOptions(opts...)
587	return out, req.Send()
588}
589
590const opAttachThingPrincipal = "AttachThingPrincipal"
591
592// AttachThingPrincipalRequest generates a "aws/request.Request" representing the
593// client's request for the AttachThingPrincipal operation. The "output" return
594// value will be populated with the request's response once the request completes
595// successfuly.
596//
597// Use "Send" method on the returned Request to send the API call to the service.
598// the "output" return value is not valid until after Send returns without error.
599//
600// See AttachThingPrincipal for more information on using the AttachThingPrincipal
601// API call, and error handling.
602//
603// This method is useful when you want to inject custom logic or configuration
604// into the SDK's request lifecycle. Such as custom headers, or retry logic.
605//
606//
607//    // Example sending a request using the AttachThingPrincipalRequest method.
608//    req, resp := client.AttachThingPrincipalRequest(params)
609//
610//    err := req.Send()
611//    if err == nil { // resp is now filled
612//        fmt.Println(resp)
613//    }
614func (c *IoT) AttachThingPrincipalRequest(input *AttachThingPrincipalInput) (req *request.Request, output *AttachThingPrincipalOutput) {
615	op := &request.Operation{
616		Name:       opAttachThingPrincipal,
617		HTTPMethod: "PUT",
618		HTTPPath:   "/things/{thingName}/principals",
619	}
620
621	if input == nil {
622		input = &AttachThingPrincipalInput{}
623	}
624
625	output = &AttachThingPrincipalOutput{}
626	req = c.newRequest(op, input, output)
627	return
628}
629
630// AttachThingPrincipal API operation for AWS IoT.
631//
632// Attaches the specified principal to the specified thing.
633//
634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
635// with awserr.Error's Code and Message methods to get detailed information about
636// the error.
637//
638// See the AWS API reference guide for AWS IoT's
639// API operation AttachThingPrincipal for usage and error information.
640//
641// Returned Error Codes:
642//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
643//   The specified resource does not exist.
644//
645//   * ErrCodeInvalidRequestException "InvalidRequestException"
646//   The request is not valid.
647//
648//   * ErrCodeThrottlingException "ThrottlingException"
649//   The rate exceeds the limit.
650//
651//   * ErrCodeUnauthorizedException "UnauthorizedException"
652//   You are not authorized to perform this operation.
653//
654//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
655//   The service is temporarily unavailable.
656//
657//   * ErrCodeInternalFailureException "InternalFailureException"
658//   An unexpected error has occurred.
659//
660func (c *IoT) AttachThingPrincipal(input *AttachThingPrincipalInput) (*AttachThingPrincipalOutput, error) {
661	req, out := c.AttachThingPrincipalRequest(input)
662	return out, req.Send()
663}
664
665// AttachThingPrincipalWithContext is the same as AttachThingPrincipal with the addition of
666// the ability to pass a context and additional request options.
667//
668// See AttachThingPrincipal for details on how to use this API operation.
669//
670// The context must be non-nil and will be used for request cancellation. If
671// the context is nil a panic will occur. In the future the SDK may create
672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
673// for more information on using Contexts.
674func (c *IoT) AttachThingPrincipalWithContext(ctx aws.Context, input *AttachThingPrincipalInput, opts ...request.Option) (*AttachThingPrincipalOutput, error) {
675	req, out := c.AttachThingPrincipalRequest(input)
676	req.SetContext(ctx)
677	req.ApplyOptions(opts...)
678	return out, req.Send()
679}
680
681const opCancelAuditTask = "CancelAuditTask"
682
683// CancelAuditTaskRequest generates a "aws/request.Request" representing the
684// client's request for the CancelAuditTask operation. The "output" return
685// value will be populated with the request's response once the request completes
686// successfuly.
687//
688// Use "Send" method on the returned Request to send the API call to the service.
689// the "output" return value is not valid until after Send returns without error.
690//
691// See CancelAuditTask for more information on using the CancelAuditTask
692// API call, and error handling.
693//
694// This method is useful when you want to inject custom logic or configuration
695// into the SDK's request lifecycle. Such as custom headers, or retry logic.
696//
697//
698//    // Example sending a request using the CancelAuditTaskRequest method.
699//    req, resp := client.CancelAuditTaskRequest(params)
700//
701//    err := req.Send()
702//    if err == nil { // resp is now filled
703//        fmt.Println(resp)
704//    }
705func (c *IoT) CancelAuditTaskRequest(input *CancelAuditTaskInput) (req *request.Request, output *CancelAuditTaskOutput) {
706	op := &request.Operation{
707		Name:       opCancelAuditTask,
708		HTTPMethod: "PUT",
709		HTTPPath:   "/audit/tasks/{taskId}/cancel",
710	}
711
712	if input == nil {
713		input = &CancelAuditTaskInput{}
714	}
715
716	output = &CancelAuditTaskOutput{}
717	req = c.newRequest(op, input, output)
718	return
719}
720
721// CancelAuditTask API operation for AWS IoT.
722//
723// Cancels an audit that is in progress. The audit can be either scheduled or
724// on-demand. If the audit is not in progress, an "InvalidRequestException"
725// occurs.
726//
727// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
728// with awserr.Error's Code and Message methods to get detailed information about
729// the error.
730//
731// See the AWS API reference guide for AWS IoT's
732// API operation CancelAuditTask for usage and error information.
733//
734// Returned Error Codes:
735//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
736//   The specified resource does not exist.
737//
738//   * ErrCodeInvalidRequestException "InvalidRequestException"
739//   The request is not valid.
740//
741//   * ErrCodeThrottlingException "ThrottlingException"
742//   The rate exceeds the limit.
743//
744//   * ErrCodeInternalFailureException "InternalFailureException"
745//   An unexpected error has occurred.
746//
747func (c *IoT) CancelAuditTask(input *CancelAuditTaskInput) (*CancelAuditTaskOutput, error) {
748	req, out := c.CancelAuditTaskRequest(input)
749	return out, req.Send()
750}
751
752// CancelAuditTaskWithContext is the same as CancelAuditTask with the addition of
753// the ability to pass a context and additional request options.
754//
755// See CancelAuditTask for details on how to use this API operation.
756//
757// The context must be non-nil and will be used for request cancellation. If
758// the context is nil a panic will occur. In the future the SDK may create
759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
760// for more information on using Contexts.
761func (c *IoT) CancelAuditTaskWithContext(ctx aws.Context, input *CancelAuditTaskInput, opts ...request.Option) (*CancelAuditTaskOutput, error) {
762	req, out := c.CancelAuditTaskRequest(input)
763	req.SetContext(ctx)
764	req.ApplyOptions(opts...)
765	return out, req.Send()
766}
767
768const opCancelCertificateTransfer = "CancelCertificateTransfer"
769
770// CancelCertificateTransferRequest generates a "aws/request.Request" representing the
771// client's request for the CancelCertificateTransfer operation. The "output" return
772// value will be populated with the request's response once the request completes
773// successfuly.
774//
775// Use "Send" method on the returned Request to send the API call to the service.
776// the "output" return value is not valid until after Send returns without error.
777//
778// See CancelCertificateTransfer for more information on using the CancelCertificateTransfer
779// API call, and error handling.
780//
781// This method is useful when you want to inject custom logic or configuration
782// into the SDK's request lifecycle. Such as custom headers, or retry logic.
783//
784//
785//    // Example sending a request using the CancelCertificateTransferRequest method.
786//    req, resp := client.CancelCertificateTransferRequest(params)
787//
788//    err := req.Send()
789//    if err == nil { // resp is now filled
790//        fmt.Println(resp)
791//    }
792func (c *IoT) CancelCertificateTransferRequest(input *CancelCertificateTransferInput) (req *request.Request, output *CancelCertificateTransferOutput) {
793	op := &request.Operation{
794		Name:       opCancelCertificateTransfer,
795		HTTPMethod: "PATCH",
796		HTTPPath:   "/cancel-certificate-transfer/{certificateId}",
797	}
798
799	if input == nil {
800		input = &CancelCertificateTransferInput{}
801	}
802
803	output = &CancelCertificateTransferOutput{}
804	req = c.newRequest(op, input, output)
805	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
806	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
807	return
808}
809
810// CancelCertificateTransfer API operation for AWS IoT.
811//
812// Cancels a pending transfer for the specified certificate.
813//
814// Note Only the transfer source account can use this operation to cancel a
815// transfer. (Transfer destinations can use RejectCertificateTransfer instead.)
816// After transfer, AWS IoT returns the certificate to the source account in
817// the INACTIVE state. After the destination account has accepted the transfer,
818// the transfer cannot be cancelled.
819//
820// After a certificate transfer is cancelled, the status of the certificate
821// changes from PENDING_TRANSFER to INACTIVE.
822//
823// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
824// with awserr.Error's Code and Message methods to get detailed information about
825// the error.
826//
827// See the AWS API reference guide for AWS IoT's
828// API operation CancelCertificateTransfer for usage and error information.
829//
830// Returned Error Codes:
831//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
832//   The specified resource does not exist.
833//
834//   * ErrCodeTransferAlreadyCompletedException "TransferAlreadyCompletedException"
835//   You can't revert the certificate transfer because the transfer is already
836//   complete.
837//
838//   * ErrCodeInvalidRequestException "InvalidRequestException"
839//   The request is not valid.
840//
841//   * ErrCodeThrottlingException "ThrottlingException"
842//   The rate exceeds the limit.
843//
844//   * ErrCodeUnauthorizedException "UnauthorizedException"
845//   You are not authorized to perform this operation.
846//
847//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
848//   The service is temporarily unavailable.
849//
850//   * ErrCodeInternalFailureException "InternalFailureException"
851//   An unexpected error has occurred.
852//
853func (c *IoT) CancelCertificateTransfer(input *CancelCertificateTransferInput) (*CancelCertificateTransferOutput, error) {
854	req, out := c.CancelCertificateTransferRequest(input)
855	return out, req.Send()
856}
857
858// CancelCertificateTransferWithContext is the same as CancelCertificateTransfer with the addition of
859// the ability to pass a context and additional request options.
860//
861// See CancelCertificateTransfer for details on how to use this API operation.
862//
863// The context must be non-nil and will be used for request cancellation. If
864// the context is nil a panic will occur. In the future the SDK may create
865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
866// for more information on using Contexts.
867func (c *IoT) CancelCertificateTransferWithContext(ctx aws.Context, input *CancelCertificateTransferInput, opts ...request.Option) (*CancelCertificateTransferOutput, error) {
868	req, out := c.CancelCertificateTransferRequest(input)
869	req.SetContext(ctx)
870	req.ApplyOptions(opts...)
871	return out, req.Send()
872}
873
874const opCancelJob = "CancelJob"
875
876// CancelJobRequest generates a "aws/request.Request" representing the
877// client's request for the CancelJob operation. The "output" return
878// value will be populated with the request's response once the request completes
879// successfuly.
880//
881// Use "Send" method on the returned Request to send the API call to the service.
882// the "output" return value is not valid until after Send returns without error.
883//
884// See CancelJob for more information on using the CancelJob
885// API call, and error handling.
886//
887// This method is useful when you want to inject custom logic or configuration
888// into the SDK's request lifecycle. Such as custom headers, or retry logic.
889//
890//
891//    // Example sending a request using the CancelJobRequest method.
892//    req, resp := client.CancelJobRequest(params)
893//
894//    err := req.Send()
895//    if err == nil { // resp is now filled
896//        fmt.Println(resp)
897//    }
898func (c *IoT) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
899	op := &request.Operation{
900		Name:       opCancelJob,
901		HTTPMethod: "PUT",
902		HTTPPath:   "/jobs/{jobId}/cancel",
903	}
904
905	if input == nil {
906		input = &CancelJobInput{}
907	}
908
909	output = &CancelJobOutput{}
910	req = c.newRequest(op, input, output)
911	return
912}
913
914// CancelJob API operation for AWS IoT.
915//
916// Cancels a job.
917//
918// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
919// with awserr.Error's Code and Message methods to get detailed information about
920// the error.
921//
922// See the AWS API reference guide for AWS IoT's
923// API operation CancelJob for usage and error information.
924//
925// Returned Error Codes:
926//   * ErrCodeInvalidRequestException "InvalidRequestException"
927//   The request is not valid.
928//
929//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
930//   The specified resource does not exist.
931//
932//   * ErrCodeThrottlingException "ThrottlingException"
933//   The rate exceeds the limit.
934//
935//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
936//   The service is temporarily unavailable.
937//
938func (c *IoT) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
939	req, out := c.CancelJobRequest(input)
940	return out, req.Send()
941}
942
943// CancelJobWithContext is the same as CancelJob with the addition of
944// the ability to pass a context and additional request options.
945//
946// See CancelJob for details on how to use this API operation.
947//
948// The context must be non-nil and will be used for request cancellation. If
949// the context is nil a panic will occur. In the future the SDK may create
950// sub-contexts for http.Requests. See https://golang.org/pkg/context/
951// for more information on using Contexts.
952func (c *IoT) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
953	req, out := c.CancelJobRequest(input)
954	req.SetContext(ctx)
955	req.ApplyOptions(opts...)
956	return out, req.Send()
957}
958
959const opCancelJobExecution = "CancelJobExecution"
960
961// CancelJobExecutionRequest generates a "aws/request.Request" representing the
962// client's request for the CancelJobExecution operation. The "output" return
963// value will be populated with the request's response once the request completes
964// successfuly.
965//
966// Use "Send" method on the returned Request to send the API call to the service.
967// the "output" return value is not valid until after Send returns without error.
968//
969// See CancelJobExecution for more information on using the CancelJobExecution
970// API call, and error handling.
971//
972// This method is useful when you want to inject custom logic or configuration
973// into the SDK's request lifecycle. Such as custom headers, or retry logic.
974//
975//
976//    // Example sending a request using the CancelJobExecutionRequest method.
977//    req, resp := client.CancelJobExecutionRequest(params)
978//
979//    err := req.Send()
980//    if err == nil { // resp is now filled
981//        fmt.Println(resp)
982//    }
983func (c *IoT) CancelJobExecutionRequest(input *CancelJobExecutionInput) (req *request.Request, output *CancelJobExecutionOutput) {
984	op := &request.Operation{
985		Name:       opCancelJobExecution,
986		HTTPMethod: "PUT",
987		HTTPPath:   "/things/{thingName}/jobs/{jobId}/cancel",
988	}
989
990	if input == nil {
991		input = &CancelJobExecutionInput{}
992	}
993
994	output = &CancelJobExecutionOutput{}
995	req = c.newRequest(op, input, output)
996	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
997	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
998	return
999}
1000
1001// CancelJobExecution API operation for AWS IoT.
1002//
1003// Cancels the execution of a job for a given thing.
1004//
1005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1006// with awserr.Error's Code and Message methods to get detailed information about
1007// the error.
1008//
1009// See the AWS API reference guide for AWS IoT's
1010// API operation CancelJobExecution for usage and error information.
1011//
1012// Returned Error Codes:
1013//   * ErrCodeInvalidRequestException "InvalidRequestException"
1014//   The request is not valid.
1015//
1016//   * ErrCodeInvalidStateTransitionException "InvalidStateTransitionException"
1017//   An attempt was made to change to an invalid state, for example by deleting
1018//   a job or a job execution which is "IN_PROGRESS" without setting the force
1019//   parameter.
1020//
1021//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1022//   The specified resource does not exist.
1023//
1024//   * ErrCodeThrottlingException "ThrottlingException"
1025//   The rate exceeds the limit.
1026//
1027//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1028//   The service is temporarily unavailable.
1029//
1030//   * ErrCodeVersionConflictException "VersionConflictException"
1031//   An exception thrown when the version of an entity specified with the expectedVersion
1032//   parameter does not match the latest version in the system.
1033//
1034func (c *IoT) CancelJobExecution(input *CancelJobExecutionInput) (*CancelJobExecutionOutput, error) {
1035	req, out := c.CancelJobExecutionRequest(input)
1036	return out, req.Send()
1037}
1038
1039// CancelJobExecutionWithContext is the same as CancelJobExecution with the addition of
1040// the ability to pass a context and additional request options.
1041//
1042// See CancelJobExecution for details on how to use this API operation.
1043//
1044// The context must be non-nil and will be used for request cancellation. If
1045// the context is nil a panic will occur. In the future the SDK may create
1046// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1047// for more information on using Contexts.
1048func (c *IoT) CancelJobExecutionWithContext(ctx aws.Context, input *CancelJobExecutionInput, opts ...request.Option) (*CancelJobExecutionOutput, error) {
1049	req, out := c.CancelJobExecutionRequest(input)
1050	req.SetContext(ctx)
1051	req.ApplyOptions(opts...)
1052	return out, req.Send()
1053}
1054
1055const opClearDefaultAuthorizer = "ClearDefaultAuthorizer"
1056
1057// ClearDefaultAuthorizerRequest generates a "aws/request.Request" representing the
1058// client's request for the ClearDefaultAuthorizer operation. The "output" return
1059// value will be populated with the request's response once the request completes
1060// successfuly.
1061//
1062// Use "Send" method on the returned Request to send the API call to the service.
1063// the "output" return value is not valid until after Send returns without error.
1064//
1065// See ClearDefaultAuthorizer for more information on using the ClearDefaultAuthorizer
1066// API call, and error handling.
1067//
1068// This method is useful when you want to inject custom logic or configuration
1069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1070//
1071//
1072//    // Example sending a request using the ClearDefaultAuthorizerRequest method.
1073//    req, resp := client.ClearDefaultAuthorizerRequest(params)
1074//
1075//    err := req.Send()
1076//    if err == nil { // resp is now filled
1077//        fmt.Println(resp)
1078//    }
1079func (c *IoT) ClearDefaultAuthorizerRequest(input *ClearDefaultAuthorizerInput) (req *request.Request, output *ClearDefaultAuthorizerOutput) {
1080	op := &request.Operation{
1081		Name:       opClearDefaultAuthorizer,
1082		HTTPMethod: "DELETE",
1083		HTTPPath:   "/default-authorizer",
1084	}
1085
1086	if input == nil {
1087		input = &ClearDefaultAuthorizerInput{}
1088	}
1089
1090	output = &ClearDefaultAuthorizerOutput{}
1091	req = c.newRequest(op, input, output)
1092	return
1093}
1094
1095// ClearDefaultAuthorizer API operation for AWS IoT.
1096//
1097// Clears the default authorizer.
1098//
1099// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1100// with awserr.Error's Code and Message methods to get detailed information about
1101// the error.
1102//
1103// See the AWS API reference guide for AWS IoT's
1104// API operation ClearDefaultAuthorizer for usage and error information.
1105//
1106// Returned Error Codes:
1107//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1108//   The specified resource does not exist.
1109//
1110//   * ErrCodeInvalidRequestException "InvalidRequestException"
1111//   The request is not valid.
1112//
1113//   * ErrCodeThrottlingException "ThrottlingException"
1114//   The rate exceeds the limit.
1115//
1116//   * ErrCodeUnauthorizedException "UnauthorizedException"
1117//   You are not authorized to perform this operation.
1118//
1119//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1120//   The service is temporarily unavailable.
1121//
1122//   * ErrCodeInternalFailureException "InternalFailureException"
1123//   An unexpected error has occurred.
1124//
1125func (c *IoT) ClearDefaultAuthorizer(input *ClearDefaultAuthorizerInput) (*ClearDefaultAuthorizerOutput, error) {
1126	req, out := c.ClearDefaultAuthorizerRequest(input)
1127	return out, req.Send()
1128}
1129
1130// ClearDefaultAuthorizerWithContext is the same as ClearDefaultAuthorizer with the addition of
1131// the ability to pass a context and additional request options.
1132//
1133// See ClearDefaultAuthorizer for details on how to use this API operation.
1134//
1135// The context must be non-nil and will be used for request cancellation. If
1136// the context is nil a panic will occur. In the future the SDK may create
1137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1138// for more information on using Contexts.
1139func (c *IoT) ClearDefaultAuthorizerWithContext(ctx aws.Context, input *ClearDefaultAuthorizerInput, opts ...request.Option) (*ClearDefaultAuthorizerOutput, error) {
1140	req, out := c.ClearDefaultAuthorizerRequest(input)
1141	req.SetContext(ctx)
1142	req.ApplyOptions(opts...)
1143	return out, req.Send()
1144}
1145
1146const opCreateAuthorizer = "CreateAuthorizer"
1147
1148// CreateAuthorizerRequest generates a "aws/request.Request" representing the
1149// client's request for the CreateAuthorizer operation. The "output" return
1150// value will be populated with the request's response once the request completes
1151// successfuly.
1152//
1153// Use "Send" method on the returned Request to send the API call to the service.
1154// the "output" return value is not valid until after Send returns without error.
1155//
1156// See CreateAuthorizer for more information on using the CreateAuthorizer
1157// API call, and error handling.
1158//
1159// This method is useful when you want to inject custom logic or configuration
1160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1161//
1162//
1163//    // Example sending a request using the CreateAuthorizerRequest method.
1164//    req, resp := client.CreateAuthorizerRequest(params)
1165//
1166//    err := req.Send()
1167//    if err == nil { // resp is now filled
1168//        fmt.Println(resp)
1169//    }
1170func (c *IoT) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *CreateAuthorizerOutput) {
1171	op := &request.Operation{
1172		Name:       opCreateAuthorizer,
1173		HTTPMethod: "POST",
1174		HTTPPath:   "/authorizer/{authorizerName}",
1175	}
1176
1177	if input == nil {
1178		input = &CreateAuthorizerInput{}
1179	}
1180
1181	output = &CreateAuthorizerOutput{}
1182	req = c.newRequest(op, input, output)
1183	return
1184}
1185
1186// CreateAuthorizer API operation for AWS IoT.
1187//
1188// Creates an authorizer.
1189//
1190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1191// with awserr.Error's Code and Message methods to get detailed information about
1192// the error.
1193//
1194// See the AWS API reference guide for AWS IoT's
1195// API operation CreateAuthorizer for usage and error information.
1196//
1197// Returned Error Codes:
1198//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1199//   The resource already exists.
1200//
1201//   * ErrCodeInvalidRequestException "InvalidRequestException"
1202//   The request is not valid.
1203//
1204//   * ErrCodeLimitExceededException "LimitExceededException"
1205//   A limit has been exceeded.
1206//
1207//   * ErrCodeThrottlingException "ThrottlingException"
1208//   The rate exceeds the limit.
1209//
1210//   * ErrCodeUnauthorizedException "UnauthorizedException"
1211//   You are not authorized to perform this operation.
1212//
1213//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1214//   The service is temporarily unavailable.
1215//
1216//   * ErrCodeInternalFailureException "InternalFailureException"
1217//   An unexpected error has occurred.
1218//
1219func (c *IoT) CreateAuthorizer(input *CreateAuthorizerInput) (*CreateAuthorizerOutput, error) {
1220	req, out := c.CreateAuthorizerRequest(input)
1221	return out, req.Send()
1222}
1223
1224// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
1225// the ability to pass a context and additional request options.
1226//
1227// See CreateAuthorizer for details on how to use this API operation.
1228//
1229// The context must be non-nil and will be used for request cancellation. If
1230// the context is nil a panic will occur. In the future the SDK may create
1231// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1232// for more information on using Contexts.
1233func (c *IoT) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*CreateAuthorizerOutput, error) {
1234	req, out := c.CreateAuthorizerRequest(input)
1235	req.SetContext(ctx)
1236	req.ApplyOptions(opts...)
1237	return out, req.Send()
1238}
1239
1240const opCreateCertificateFromCsr = "CreateCertificateFromCsr"
1241
1242// CreateCertificateFromCsrRequest generates a "aws/request.Request" representing the
1243// client's request for the CreateCertificateFromCsr operation. The "output" return
1244// value will be populated with the request's response once the request completes
1245// successfuly.
1246//
1247// Use "Send" method on the returned Request to send the API call to the service.
1248// the "output" return value is not valid until after Send returns without error.
1249//
1250// See CreateCertificateFromCsr for more information on using the CreateCertificateFromCsr
1251// API call, and error handling.
1252//
1253// This method is useful when you want to inject custom logic or configuration
1254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1255//
1256//
1257//    // Example sending a request using the CreateCertificateFromCsrRequest method.
1258//    req, resp := client.CreateCertificateFromCsrRequest(params)
1259//
1260//    err := req.Send()
1261//    if err == nil { // resp is now filled
1262//        fmt.Println(resp)
1263//    }
1264func (c *IoT) CreateCertificateFromCsrRequest(input *CreateCertificateFromCsrInput) (req *request.Request, output *CreateCertificateFromCsrOutput) {
1265	op := &request.Operation{
1266		Name:       opCreateCertificateFromCsr,
1267		HTTPMethod: "POST",
1268		HTTPPath:   "/certificates",
1269	}
1270
1271	if input == nil {
1272		input = &CreateCertificateFromCsrInput{}
1273	}
1274
1275	output = &CreateCertificateFromCsrOutput{}
1276	req = c.newRequest(op, input, output)
1277	return
1278}
1279
1280// CreateCertificateFromCsr API operation for AWS IoT.
1281//
1282// Creates an X.509 certificate using the specified certificate signing request.
1283//
1284// Note: The CSR must include a public key that is either an RSA key with a
1285// length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384
1286// curves.
1287//
1288// Note: Reusing the same certificate signing request (CSR) results in a distinct
1289// certificate.
1290//
1291// You can create multiple certificates in a batch by creating a directory,
1292// copying multiple .csr files into that directory, and then specifying that
1293// directory on the command line. The following commands show how to create
1294// a batch of certificates given a batch of CSRs.
1295//
1296// Assuming a set of CSRs are located inside of the directory my-csr-directory:
1297//
1298// On Linux and OS X, the command is:
1299//
1300// $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr
1301// --certificate-signing-request file://my-csr-directory/{}
1302//
1303// This command lists all of the CSRs in my-csr-directory and pipes each CSR
1304// file name to the aws iot create-certificate-from-csr AWS CLI command to create
1305// a certificate for the corresponding CSR.
1306//
1307// The aws iot create-certificate-from-csr part of the command can also be run
1308// in parallel to speed up the certificate creation process:
1309//
1310// $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr
1311// --certificate-signing-request file://my-csr-directory/{}
1312//
1313// On Windows PowerShell, the command to create certificates for all CSRs in
1314// my-csr-directory is:
1315//
1316// > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request
1317// file://my-csr-directory/$_}
1318//
1319// On a Windows command prompt, the command to create certificates for all CSRs
1320// in my-csr-directory is:
1321//
1322// > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr
1323// --certificate-signing-request file://@path"
1324//
1325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1326// with awserr.Error's Code and Message methods to get detailed information about
1327// the error.
1328//
1329// See the AWS API reference guide for AWS IoT's
1330// API operation CreateCertificateFromCsr for usage and error information.
1331//
1332// Returned Error Codes:
1333//   * ErrCodeInvalidRequestException "InvalidRequestException"
1334//   The request is not valid.
1335//
1336//   * ErrCodeThrottlingException "ThrottlingException"
1337//   The rate exceeds the limit.
1338//
1339//   * ErrCodeUnauthorizedException "UnauthorizedException"
1340//   You are not authorized to perform this operation.
1341//
1342//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1343//   The service is temporarily unavailable.
1344//
1345//   * ErrCodeInternalFailureException "InternalFailureException"
1346//   An unexpected error has occurred.
1347//
1348func (c *IoT) CreateCertificateFromCsr(input *CreateCertificateFromCsrInput) (*CreateCertificateFromCsrOutput, error) {
1349	req, out := c.CreateCertificateFromCsrRequest(input)
1350	return out, req.Send()
1351}
1352
1353// CreateCertificateFromCsrWithContext is the same as CreateCertificateFromCsr with the addition of
1354// the ability to pass a context and additional request options.
1355//
1356// See CreateCertificateFromCsr for details on how to use this API operation.
1357//
1358// The context must be non-nil and will be used for request cancellation. If
1359// the context is nil a panic will occur. In the future the SDK may create
1360// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1361// for more information on using Contexts.
1362func (c *IoT) CreateCertificateFromCsrWithContext(ctx aws.Context, input *CreateCertificateFromCsrInput, opts ...request.Option) (*CreateCertificateFromCsrOutput, error) {
1363	req, out := c.CreateCertificateFromCsrRequest(input)
1364	req.SetContext(ctx)
1365	req.ApplyOptions(opts...)
1366	return out, req.Send()
1367}
1368
1369const opCreateJob = "CreateJob"
1370
1371// CreateJobRequest generates a "aws/request.Request" representing the
1372// client's request for the CreateJob operation. The "output" return
1373// value will be populated with the request's response once the request completes
1374// successfuly.
1375//
1376// Use "Send" method on the returned Request to send the API call to the service.
1377// the "output" return value is not valid until after Send returns without error.
1378//
1379// See CreateJob for more information on using the CreateJob
1380// API call, and error handling.
1381//
1382// This method is useful when you want to inject custom logic or configuration
1383// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1384//
1385//
1386//    // Example sending a request using the CreateJobRequest method.
1387//    req, resp := client.CreateJobRequest(params)
1388//
1389//    err := req.Send()
1390//    if err == nil { // resp is now filled
1391//        fmt.Println(resp)
1392//    }
1393func (c *IoT) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
1394	op := &request.Operation{
1395		Name:       opCreateJob,
1396		HTTPMethod: "PUT",
1397		HTTPPath:   "/jobs/{jobId}",
1398	}
1399
1400	if input == nil {
1401		input = &CreateJobInput{}
1402	}
1403
1404	output = &CreateJobOutput{}
1405	req = c.newRequest(op, input, output)
1406	return
1407}
1408
1409// CreateJob API operation for AWS IoT.
1410//
1411// Creates a job.
1412//
1413// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1414// with awserr.Error's Code and Message methods to get detailed information about
1415// the error.
1416//
1417// See the AWS API reference guide for AWS IoT's
1418// API operation CreateJob for usage and error information.
1419//
1420// Returned Error Codes:
1421//   * ErrCodeInvalidRequestException "InvalidRequestException"
1422//   The request is not valid.
1423//
1424//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1425//   The specified resource does not exist.
1426//
1427//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1428//   The resource already exists.
1429//
1430//   * ErrCodeLimitExceededException "LimitExceededException"
1431//   A limit has been exceeded.
1432//
1433//   * ErrCodeThrottlingException "ThrottlingException"
1434//   The rate exceeds the limit.
1435//
1436//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1437//   The service is temporarily unavailable.
1438//
1439func (c *IoT) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
1440	req, out := c.CreateJobRequest(input)
1441	return out, req.Send()
1442}
1443
1444// CreateJobWithContext is the same as CreateJob with the addition of
1445// the ability to pass a context and additional request options.
1446//
1447// See CreateJob for details on how to use this API operation.
1448//
1449// The context must be non-nil and will be used for request cancellation. If
1450// the context is nil a panic will occur. In the future the SDK may create
1451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1452// for more information on using Contexts.
1453func (c *IoT) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
1454	req, out := c.CreateJobRequest(input)
1455	req.SetContext(ctx)
1456	req.ApplyOptions(opts...)
1457	return out, req.Send()
1458}
1459
1460const opCreateKeysAndCertificate = "CreateKeysAndCertificate"
1461
1462// CreateKeysAndCertificateRequest generates a "aws/request.Request" representing the
1463// client's request for the CreateKeysAndCertificate operation. The "output" return
1464// value will be populated with the request's response once the request completes
1465// successfuly.
1466//
1467// Use "Send" method on the returned Request to send the API call to the service.
1468// the "output" return value is not valid until after Send returns without error.
1469//
1470// See CreateKeysAndCertificate for more information on using the CreateKeysAndCertificate
1471// API call, and error handling.
1472//
1473// This method is useful when you want to inject custom logic or configuration
1474// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1475//
1476//
1477//    // Example sending a request using the CreateKeysAndCertificateRequest method.
1478//    req, resp := client.CreateKeysAndCertificateRequest(params)
1479//
1480//    err := req.Send()
1481//    if err == nil { // resp is now filled
1482//        fmt.Println(resp)
1483//    }
1484func (c *IoT) CreateKeysAndCertificateRequest(input *CreateKeysAndCertificateInput) (req *request.Request, output *CreateKeysAndCertificateOutput) {
1485	op := &request.Operation{
1486		Name:       opCreateKeysAndCertificate,
1487		HTTPMethod: "POST",
1488		HTTPPath:   "/keys-and-certificate",
1489	}
1490
1491	if input == nil {
1492		input = &CreateKeysAndCertificateInput{}
1493	}
1494
1495	output = &CreateKeysAndCertificateOutput{}
1496	req = c.newRequest(op, input, output)
1497	return
1498}
1499
1500// CreateKeysAndCertificate API operation for AWS IoT.
1501//
1502// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
1503// issued public key.
1504//
1505// Note This is the only time AWS IoT issues the private key for this certificate,
1506// so it is important to keep it in a secure location.
1507//
1508// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1509// with awserr.Error's Code and Message methods to get detailed information about
1510// the error.
1511//
1512// See the AWS API reference guide for AWS IoT's
1513// API operation CreateKeysAndCertificate for usage and error information.
1514//
1515// Returned Error Codes:
1516//   * ErrCodeInvalidRequestException "InvalidRequestException"
1517//   The request is not valid.
1518//
1519//   * ErrCodeThrottlingException "ThrottlingException"
1520//   The rate exceeds the limit.
1521//
1522//   * ErrCodeUnauthorizedException "UnauthorizedException"
1523//   You are not authorized to perform this operation.
1524//
1525//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1526//   The service is temporarily unavailable.
1527//
1528//   * ErrCodeInternalFailureException "InternalFailureException"
1529//   An unexpected error has occurred.
1530//
1531func (c *IoT) CreateKeysAndCertificate(input *CreateKeysAndCertificateInput) (*CreateKeysAndCertificateOutput, error) {
1532	req, out := c.CreateKeysAndCertificateRequest(input)
1533	return out, req.Send()
1534}
1535
1536// CreateKeysAndCertificateWithContext is the same as CreateKeysAndCertificate with the addition of
1537// the ability to pass a context and additional request options.
1538//
1539// See CreateKeysAndCertificate for details on how to use this API operation.
1540//
1541// The context must be non-nil and will be used for request cancellation. If
1542// the context is nil a panic will occur. In the future the SDK may create
1543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1544// for more information on using Contexts.
1545func (c *IoT) CreateKeysAndCertificateWithContext(ctx aws.Context, input *CreateKeysAndCertificateInput, opts ...request.Option) (*CreateKeysAndCertificateOutput, error) {
1546	req, out := c.CreateKeysAndCertificateRequest(input)
1547	req.SetContext(ctx)
1548	req.ApplyOptions(opts...)
1549	return out, req.Send()
1550}
1551
1552const opCreateOTAUpdate = "CreateOTAUpdate"
1553
1554// CreateOTAUpdateRequest generates a "aws/request.Request" representing the
1555// client's request for the CreateOTAUpdate operation. The "output" return
1556// value will be populated with the request's response once the request completes
1557// successfuly.
1558//
1559// Use "Send" method on the returned Request to send the API call to the service.
1560// the "output" return value is not valid until after Send returns without error.
1561//
1562// See CreateOTAUpdate for more information on using the CreateOTAUpdate
1563// API call, and error handling.
1564//
1565// This method is useful when you want to inject custom logic or configuration
1566// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1567//
1568//
1569//    // Example sending a request using the CreateOTAUpdateRequest method.
1570//    req, resp := client.CreateOTAUpdateRequest(params)
1571//
1572//    err := req.Send()
1573//    if err == nil { // resp is now filled
1574//        fmt.Println(resp)
1575//    }
1576func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request.Request, output *CreateOTAUpdateOutput) {
1577	op := &request.Operation{
1578		Name:       opCreateOTAUpdate,
1579		HTTPMethod: "POST",
1580		HTTPPath:   "/otaUpdates/{otaUpdateId}",
1581	}
1582
1583	if input == nil {
1584		input = &CreateOTAUpdateInput{}
1585	}
1586
1587	output = &CreateOTAUpdateOutput{}
1588	req = c.newRequest(op, input, output)
1589	return
1590}
1591
1592// CreateOTAUpdate API operation for AWS IoT.
1593//
1594// Creates an AWS IoT OTAUpdate on a target group of things or groups.
1595//
1596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1597// with awserr.Error's Code and Message methods to get detailed information about
1598// the error.
1599//
1600// See the AWS API reference guide for AWS IoT's
1601// API operation CreateOTAUpdate for usage and error information.
1602//
1603// Returned Error Codes:
1604//   * ErrCodeInvalidRequestException "InvalidRequestException"
1605//   The request is not valid.
1606//
1607//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1608//   The specified resource does not exist.
1609//
1610//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1611//   The resource already exists.
1612//
1613//   * ErrCodeThrottlingException "ThrottlingException"
1614//   The rate exceeds the limit.
1615//
1616//   * ErrCodeUnauthorizedException "UnauthorizedException"
1617//   You are not authorized to perform this operation.
1618//
1619//   * ErrCodeInternalFailureException "InternalFailureException"
1620//   An unexpected error has occurred.
1621//
1622//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1623//   The service is temporarily unavailable.
1624//
1625func (c *IoT) CreateOTAUpdate(input *CreateOTAUpdateInput) (*CreateOTAUpdateOutput, error) {
1626	req, out := c.CreateOTAUpdateRequest(input)
1627	return out, req.Send()
1628}
1629
1630// CreateOTAUpdateWithContext is the same as CreateOTAUpdate with the addition of
1631// the ability to pass a context and additional request options.
1632//
1633// See CreateOTAUpdate 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) CreateOTAUpdateWithContext(ctx aws.Context, input *CreateOTAUpdateInput, opts ...request.Option) (*CreateOTAUpdateOutput, error) {
1640	req, out := c.CreateOTAUpdateRequest(input)
1641	req.SetContext(ctx)
1642	req.ApplyOptions(opts...)
1643	return out, req.Send()
1644}
1645
1646const opCreatePolicy = "CreatePolicy"
1647
1648// CreatePolicyRequest generates a "aws/request.Request" representing the
1649// client's request for the CreatePolicy operation. The "output" return
1650// value will be populated with the request's response once the request completes
1651// successfuly.
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 CreatePolicy for more information on using the CreatePolicy
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 CreatePolicyRequest method.
1664//    req, resp := client.CreatePolicyRequest(params)
1665//
1666//    err := req.Send()
1667//    if err == nil { // resp is now filled
1668//        fmt.Println(resp)
1669//    }
1670func (c *IoT) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
1671	op := &request.Operation{
1672		Name:       opCreatePolicy,
1673		HTTPMethod: "POST",
1674		HTTPPath:   "/policies/{policyName}",
1675	}
1676
1677	if input == nil {
1678		input = &CreatePolicyInput{}
1679	}
1680
1681	output = &CreatePolicyOutput{}
1682	req = c.newRequest(op, input, output)
1683	return
1684}
1685
1686// CreatePolicy API operation for AWS IoT.
1687//
1688// Creates an AWS IoT policy.
1689//
1690// The created policy is the default version for the policy. This operation
1691// creates a policy version with a version identifier of 1 and sets 1 as the
1692// policy's default version.
1693//
1694// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1695// with awserr.Error's Code and Message methods to get detailed information about
1696// the error.
1697//
1698// See the AWS API reference guide for AWS IoT's
1699// API operation CreatePolicy for usage and error information.
1700//
1701// Returned Error Codes:
1702//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1703//   The resource already exists.
1704//
1705//   * ErrCodeMalformedPolicyException "MalformedPolicyException"
1706//   The policy documentation is not valid.
1707//
1708//   * ErrCodeInvalidRequestException "InvalidRequestException"
1709//   The request is not valid.
1710//
1711//   * ErrCodeThrottlingException "ThrottlingException"
1712//   The rate exceeds the limit.
1713//
1714//   * ErrCodeUnauthorizedException "UnauthorizedException"
1715//   You are not authorized to perform this operation.
1716//
1717//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1718//   The service is temporarily unavailable.
1719//
1720//   * ErrCodeInternalFailureException "InternalFailureException"
1721//   An unexpected error has occurred.
1722//
1723func (c *IoT) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
1724	req, out := c.CreatePolicyRequest(input)
1725	return out, req.Send()
1726}
1727
1728// CreatePolicyWithContext is the same as CreatePolicy with the addition of
1729// the ability to pass a context and additional request options.
1730//
1731// See CreatePolicy for details on how to use this API operation.
1732//
1733// The context must be non-nil and will be used for request cancellation. If
1734// the context is nil a panic will occur. In the future the SDK may create
1735// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1736// for more information on using Contexts.
1737func (c *IoT) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
1738	req, out := c.CreatePolicyRequest(input)
1739	req.SetContext(ctx)
1740	req.ApplyOptions(opts...)
1741	return out, req.Send()
1742}
1743
1744const opCreatePolicyVersion = "CreatePolicyVersion"
1745
1746// CreatePolicyVersionRequest generates a "aws/request.Request" representing the
1747// client's request for the CreatePolicyVersion operation. The "output" return
1748// value will be populated with the request's response once the request completes
1749// successfuly.
1750//
1751// Use "Send" method on the returned Request to send the API call to the service.
1752// the "output" return value is not valid until after Send returns without error.
1753//
1754// See CreatePolicyVersion for more information on using the CreatePolicyVersion
1755// API call, and error handling.
1756//
1757// This method is useful when you want to inject custom logic or configuration
1758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1759//
1760//
1761//    // Example sending a request using the CreatePolicyVersionRequest method.
1762//    req, resp := client.CreatePolicyVersionRequest(params)
1763//
1764//    err := req.Send()
1765//    if err == nil { // resp is now filled
1766//        fmt.Println(resp)
1767//    }
1768func (c *IoT) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
1769	op := &request.Operation{
1770		Name:       opCreatePolicyVersion,
1771		HTTPMethod: "POST",
1772		HTTPPath:   "/policies/{policyName}/version",
1773	}
1774
1775	if input == nil {
1776		input = &CreatePolicyVersionInput{}
1777	}
1778
1779	output = &CreatePolicyVersionOutput{}
1780	req = c.newRequest(op, input, output)
1781	return
1782}
1783
1784// CreatePolicyVersion API operation for AWS IoT.
1785//
1786// Creates a new version of the specified AWS IoT policy. To update a policy,
1787// create a new policy version. A managed policy can have up to five versions.
1788// If the policy has five versions, you must use DeletePolicyVersion to delete
1789// an existing version before you create a new one.
1790//
1791// Optionally, you can set the new version as the policy's default version.
1792// The default version is the operative version (that is, the version that is
1793// in effect for the certificates to which the policy is attached).
1794//
1795// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1796// with awserr.Error's Code and Message methods to get detailed information about
1797// the error.
1798//
1799// See the AWS API reference guide for AWS IoT's
1800// API operation CreatePolicyVersion for usage and error information.
1801//
1802// Returned Error Codes:
1803//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1804//   The specified resource does not exist.
1805//
1806//   * ErrCodeMalformedPolicyException "MalformedPolicyException"
1807//   The policy documentation is not valid.
1808//
1809//   * ErrCodeVersionsLimitExceededException "VersionsLimitExceededException"
1810//   The number of policy versions exceeds the limit.
1811//
1812//   * ErrCodeInvalidRequestException "InvalidRequestException"
1813//   The request is not valid.
1814//
1815//   * ErrCodeThrottlingException "ThrottlingException"
1816//   The rate exceeds the limit.
1817//
1818//   * ErrCodeUnauthorizedException "UnauthorizedException"
1819//   You are not authorized to perform this operation.
1820//
1821//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1822//   The service is temporarily unavailable.
1823//
1824//   * ErrCodeInternalFailureException "InternalFailureException"
1825//   An unexpected error has occurred.
1826//
1827func (c *IoT) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
1828	req, out := c.CreatePolicyVersionRequest(input)
1829	return out, req.Send()
1830}
1831
1832// CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
1833// the ability to pass a context and additional request options.
1834//
1835// See CreatePolicyVersion for details on how to use this API operation.
1836//
1837// The context must be non-nil and will be used for request cancellation. If
1838// the context is nil a panic will occur. In the future the SDK may create
1839// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1840// for more information on using Contexts.
1841func (c *IoT) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
1842	req, out := c.CreatePolicyVersionRequest(input)
1843	req.SetContext(ctx)
1844	req.ApplyOptions(opts...)
1845	return out, req.Send()
1846}
1847
1848const opCreateRoleAlias = "CreateRoleAlias"
1849
1850// CreateRoleAliasRequest generates a "aws/request.Request" representing the
1851// client's request for the CreateRoleAlias operation. The "output" return
1852// value will be populated with the request's response once the request completes
1853// successfuly.
1854//
1855// Use "Send" method on the returned Request to send the API call to the service.
1856// the "output" return value is not valid until after Send returns without error.
1857//
1858// See CreateRoleAlias for more information on using the CreateRoleAlias
1859// API call, and error handling.
1860//
1861// This method is useful when you want to inject custom logic or configuration
1862// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1863//
1864//
1865//    // Example sending a request using the CreateRoleAliasRequest method.
1866//    req, resp := client.CreateRoleAliasRequest(params)
1867//
1868//    err := req.Send()
1869//    if err == nil { // resp is now filled
1870//        fmt.Println(resp)
1871//    }
1872func (c *IoT) CreateRoleAliasRequest(input *CreateRoleAliasInput) (req *request.Request, output *CreateRoleAliasOutput) {
1873	op := &request.Operation{
1874		Name:       opCreateRoleAlias,
1875		HTTPMethod: "POST",
1876		HTTPPath:   "/role-aliases/{roleAlias}",
1877	}
1878
1879	if input == nil {
1880		input = &CreateRoleAliasInput{}
1881	}
1882
1883	output = &CreateRoleAliasOutput{}
1884	req = c.newRequest(op, input, output)
1885	return
1886}
1887
1888// CreateRoleAlias API operation for AWS IoT.
1889//
1890// Creates a role alias.
1891//
1892// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1893// with awserr.Error's Code and Message methods to get detailed information about
1894// the error.
1895//
1896// See the AWS API reference guide for AWS IoT's
1897// API operation CreateRoleAlias for usage and error information.
1898//
1899// Returned Error Codes:
1900//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1901//   The resource already exists.
1902//
1903//   * ErrCodeInvalidRequestException "InvalidRequestException"
1904//   The request is not valid.
1905//
1906//   * ErrCodeLimitExceededException "LimitExceededException"
1907//   A limit has been exceeded.
1908//
1909//   * ErrCodeThrottlingException "ThrottlingException"
1910//   The rate exceeds the limit.
1911//
1912//   * ErrCodeUnauthorizedException "UnauthorizedException"
1913//   You are not authorized to perform this operation.
1914//
1915//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1916//   The service is temporarily unavailable.
1917//
1918//   * ErrCodeInternalFailureException "InternalFailureException"
1919//   An unexpected error has occurred.
1920//
1921func (c *IoT) CreateRoleAlias(input *CreateRoleAliasInput) (*CreateRoleAliasOutput, error) {
1922	req, out := c.CreateRoleAliasRequest(input)
1923	return out, req.Send()
1924}
1925
1926// CreateRoleAliasWithContext is the same as CreateRoleAlias with the addition of
1927// the ability to pass a context and additional request options.
1928//
1929// See CreateRoleAlias for details on how to use this API operation.
1930//
1931// The context must be non-nil and will be used for request cancellation. If
1932// the context is nil a panic will occur. In the future the SDK may create
1933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1934// for more information on using Contexts.
1935func (c *IoT) CreateRoleAliasWithContext(ctx aws.Context, input *CreateRoleAliasInput, opts ...request.Option) (*CreateRoleAliasOutput, error) {
1936	req, out := c.CreateRoleAliasRequest(input)
1937	req.SetContext(ctx)
1938	req.ApplyOptions(opts...)
1939	return out, req.Send()
1940}
1941
1942const opCreateScheduledAudit = "CreateScheduledAudit"
1943
1944// CreateScheduledAuditRequest generates a "aws/request.Request" representing the
1945// client's request for the CreateScheduledAudit operation. The "output" return
1946// value will be populated with the request's response once the request completes
1947// successfuly.
1948//
1949// Use "Send" method on the returned Request to send the API call to the service.
1950// the "output" return value is not valid until after Send returns without error.
1951//
1952// See CreateScheduledAudit for more information on using the CreateScheduledAudit
1953// API call, and error handling.
1954//
1955// This method is useful when you want to inject custom logic or configuration
1956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1957//
1958//
1959//    // Example sending a request using the CreateScheduledAuditRequest method.
1960//    req, resp := client.CreateScheduledAuditRequest(params)
1961//
1962//    err := req.Send()
1963//    if err == nil { // resp is now filled
1964//        fmt.Println(resp)
1965//    }
1966func (c *IoT) CreateScheduledAuditRequest(input *CreateScheduledAuditInput) (req *request.Request, output *CreateScheduledAuditOutput) {
1967	op := &request.Operation{
1968		Name:       opCreateScheduledAudit,
1969		HTTPMethod: "POST",
1970		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
1971	}
1972
1973	if input == nil {
1974		input = &CreateScheduledAuditInput{}
1975	}
1976
1977	output = &CreateScheduledAuditOutput{}
1978	req = c.newRequest(op, input, output)
1979	return
1980}
1981
1982// CreateScheduledAudit API operation for AWS IoT.
1983//
1984// Creates a scheduled audit that is run at a specified time interval.
1985//
1986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1987// with awserr.Error's Code and Message methods to get detailed information about
1988// the error.
1989//
1990// See the AWS API reference guide for AWS IoT's
1991// API operation CreateScheduledAudit for usage and error information.
1992//
1993// Returned Error Codes:
1994//   * ErrCodeInvalidRequestException "InvalidRequestException"
1995//   The request is not valid.
1996//
1997//   * ErrCodeThrottlingException "ThrottlingException"
1998//   The rate exceeds the limit.
1999//
2000//   * ErrCodeInternalFailureException "InternalFailureException"
2001//   An unexpected error has occurred.
2002//
2003//   * ErrCodeLimitExceededException "LimitExceededException"
2004//   A limit has been exceeded.
2005//
2006func (c *IoT) CreateScheduledAudit(input *CreateScheduledAuditInput) (*CreateScheduledAuditOutput, error) {
2007	req, out := c.CreateScheduledAuditRequest(input)
2008	return out, req.Send()
2009}
2010
2011// CreateScheduledAuditWithContext is the same as CreateScheduledAudit with the addition of
2012// the ability to pass a context and additional request options.
2013//
2014// See CreateScheduledAudit for details on how to use this API operation.
2015//
2016// The context must be non-nil and will be used for request cancellation. If
2017// the context is nil a panic will occur. In the future the SDK may create
2018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2019// for more information on using Contexts.
2020func (c *IoT) CreateScheduledAuditWithContext(ctx aws.Context, input *CreateScheduledAuditInput, opts ...request.Option) (*CreateScheduledAuditOutput, error) {
2021	req, out := c.CreateScheduledAuditRequest(input)
2022	req.SetContext(ctx)
2023	req.ApplyOptions(opts...)
2024	return out, req.Send()
2025}
2026
2027const opCreateSecurityProfile = "CreateSecurityProfile"
2028
2029// CreateSecurityProfileRequest generates a "aws/request.Request" representing the
2030// client's request for the CreateSecurityProfile operation. The "output" return
2031// value will be populated with the request's response once the request completes
2032// successfuly.
2033//
2034// Use "Send" method on the returned Request to send the API call to the service.
2035// the "output" return value is not valid until after Send returns without error.
2036//
2037// See CreateSecurityProfile for more information on using the CreateSecurityProfile
2038// API call, and error handling.
2039//
2040// This method is useful when you want to inject custom logic or configuration
2041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2042//
2043//
2044//    // Example sending a request using the CreateSecurityProfileRequest method.
2045//    req, resp := client.CreateSecurityProfileRequest(params)
2046//
2047//    err := req.Send()
2048//    if err == nil { // resp is now filled
2049//        fmt.Println(resp)
2050//    }
2051func (c *IoT) CreateSecurityProfileRequest(input *CreateSecurityProfileInput) (req *request.Request, output *CreateSecurityProfileOutput) {
2052	op := &request.Operation{
2053		Name:       opCreateSecurityProfile,
2054		HTTPMethod: "POST",
2055		HTTPPath:   "/security-profiles/{securityProfileName}",
2056	}
2057
2058	if input == nil {
2059		input = &CreateSecurityProfileInput{}
2060	}
2061
2062	output = &CreateSecurityProfileOutput{}
2063	req = c.newRequest(op, input, output)
2064	return
2065}
2066
2067// CreateSecurityProfile API operation for AWS IoT.
2068//
2069// Creates a Device Defender security profile.
2070//
2071// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2072// with awserr.Error's Code and Message methods to get detailed information about
2073// the error.
2074//
2075// See the AWS API reference guide for AWS IoT's
2076// API operation CreateSecurityProfile for usage and error information.
2077//
2078// Returned Error Codes:
2079//   * ErrCodeInvalidRequestException "InvalidRequestException"
2080//   The request is not valid.
2081//
2082//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2083//   The resource already exists.
2084//
2085//   * ErrCodeThrottlingException "ThrottlingException"
2086//   The rate exceeds the limit.
2087//
2088//   * ErrCodeInternalFailureException "InternalFailureException"
2089//   An unexpected error has occurred.
2090//
2091func (c *IoT) CreateSecurityProfile(input *CreateSecurityProfileInput) (*CreateSecurityProfileOutput, error) {
2092	req, out := c.CreateSecurityProfileRequest(input)
2093	return out, req.Send()
2094}
2095
2096// CreateSecurityProfileWithContext is the same as CreateSecurityProfile with the addition of
2097// the ability to pass a context and additional request options.
2098//
2099// See CreateSecurityProfile for details on how to use this API operation.
2100//
2101// The context must be non-nil and will be used for request cancellation. If
2102// the context is nil a panic will occur. In the future the SDK may create
2103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2104// for more information on using Contexts.
2105func (c *IoT) CreateSecurityProfileWithContext(ctx aws.Context, input *CreateSecurityProfileInput, opts ...request.Option) (*CreateSecurityProfileOutput, error) {
2106	req, out := c.CreateSecurityProfileRequest(input)
2107	req.SetContext(ctx)
2108	req.ApplyOptions(opts...)
2109	return out, req.Send()
2110}
2111
2112const opCreateStream = "CreateStream"
2113
2114// CreateStreamRequest generates a "aws/request.Request" representing the
2115// client's request for the CreateStream operation. The "output" return
2116// value will be populated with the request's response once the request completes
2117// successfuly.
2118//
2119// Use "Send" method on the returned Request to send the API call to the service.
2120// the "output" return value is not valid until after Send returns without error.
2121//
2122// See CreateStream for more information on using the CreateStream
2123// API call, and error handling.
2124//
2125// This method is useful when you want to inject custom logic or configuration
2126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2127//
2128//
2129//    // Example sending a request using the CreateStreamRequest method.
2130//    req, resp := client.CreateStreamRequest(params)
2131//
2132//    err := req.Send()
2133//    if err == nil { // resp is now filled
2134//        fmt.Println(resp)
2135//    }
2136func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
2137	op := &request.Operation{
2138		Name:       opCreateStream,
2139		HTTPMethod: "POST",
2140		HTTPPath:   "/streams/{streamId}",
2141	}
2142
2143	if input == nil {
2144		input = &CreateStreamInput{}
2145	}
2146
2147	output = &CreateStreamOutput{}
2148	req = c.newRequest(op, input, output)
2149	return
2150}
2151
2152// CreateStream API operation for AWS IoT.
2153//
2154// Creates a stream for delivering one or more large files in chunks over MQTT.
2155// A stream transports data bytes in chunks or blocks packaged as MQTT messages
2156// from a source like S3. You can have one or more files associated with a stream.
2157// The total size of a file associated with the stream cannot exceed more than
2158// 2 MB. The stream will be created with version 0. If a stream is created with
2159// the same streamID as a stream that existed and was deleted within last 90
2160// days, we will resurrect that old stream by incrementing the version by 1.
2161//
2162// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2163// with awserr.Error's Code and Message methods to get detailed information about
2164// the error.
2165//
2166// See the AWS API reference guide for AWS IoT's
2167// API operation CreateStream for usage and error information.
2168//
2169// Returned Error Codes:
2170//   * ErrCodeInvalidRequestException "InvalidRequestException"
2171//   The request is not valid.
2172//
2173//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2174//   The specified resource does not exist.
2175//
2176//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2177//   The resource already exists.
2178//
2179//   * ErrCodeThrottlingException "ThrottlingException"
2180//   The rate exceeds the limit.
2181//
2182//   * ErrCodeUnauthorizedException "UnauthorizedException"
2183//   You are not authorized to perform this operation.
2184//
2185//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2186//   The service is temporarily unavailable.
2187//
2188//   * ErrCodeInternalFailureException "InternalFailureException"
2189//   An unexpected error has occurred.
2190//
2191func (c *IoT) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
2192	req, out := c.CreateStreamRequest(input)
2193	return out, req.Send()
2194}
2195
2196// CreateStreamWithContext is the same as CreateStream with the addition of
2197// the ability to pass a context and additional request options.
2198//
2199// See CreateStream for details on how to use this API operation.
2200//
2201// The context must be non-nil and will be used for request cancellation. If
2202// the context is nil a panic will occur. In the future the SDK may create
2203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2204// for more information on using Contexts.
2205func (c *IoT) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
2206	req, out := c.CreateStreamRequest(input)
2207	req.SetContext(ctx)
2208	req.ApplyOptions(opts...)
2209	return out, req.Send()
2210}
2211
2212const opCreateThing = "CreateThing"
2213
2214// CreateThingRequest generates a "aws/request.Request" representing the
2215// client's request for the CreateThing operation. The "output" return
2216// value will be populated with the request's response once the request completes
2217// successfuly.
2218//
2219// Use "Send" method on the returned Request to send the API call to the service.
2220// the "output" return value is not valid until after Send returns without error.
2221//
2222// See CreateThing for more information on using the CreateThing
2223// API call, and error handling.
2224//
2225// This method is useful when you want to inject custom logic or configuration
2226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2227//
2228//
2229//    // Example sending a request using the CreateThingRequest method.
2230//    req, resp := client.CreateThingRequest(params)
2231//
2232//    err := req.Send()
2233//    if err == nil { // resp is now filled
2234//        fmt.Println(resp)
2235//    }
2236func (c *IoT) CreateThingRequest(input *CreateThingInput) (req *request.Request, output *CreateThingOutput) {
2237	op := &request.Operation{
2238		Name:       opCreateThing,
2239		HTTPMethod: "POST",
2240		HTTPPath:   "/things/{thingName}",
2241	}
2242
2243	if input == nil {
2244		input = &CreateThingInput{}
2245	}
2246
2247	output = &CreateThingOutput{}
2248	req = c.newRequest(op, input, output)
2249	return
2250}
2251
2252// CreateThing API operation for AWS IoT.
2253//
2254// Creates a thing record in the registry.
2255//
2256// This is a control plane operation. See Authorization (http://docs.aws.amazon.com/iot/latest/developerguide/authorization.html)
2257// for information about authorizing control plane actions.
2258//
2259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2260// with awserr.Error's Code and Message methods to get detailed information about
2261// the error.
2262//
2263// See the AWS API reference guide for AWS IoT's
2264// API operation CreateThing for usage and error information.
2265//
2266// Returned Error Codes:
2267//   * ErrCodeInvalidRequestException "InvalidRequestException"
2268//   The request is not valid.
2269//
2270//   * ErrCodeThrottlingException "ThrottlingException"
2271//   The rate exceeds the limit.
2272//
2273//   * ErrCodeUnauthorizedException "UnauthorizedException"
2274//   You are not authorized to perform this operation.
2275//
2276//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2277//   The service is temporarily unavailable.
2278//
2279//   * ErrCodeInternalFailureException "InternalFailureException"
2280//   An unexpected error has occurred.
2281//
2282//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2283//   The resource already exists.
2284//
2285//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2286//   The specified resource does not exist.
2287//
2288func (c *IoT) CreateThing(input *CreateThingInput) (*CreateThingOutput, error) {
2289	req, out := c.CreateThingRequest(input)
2290	return out, req.Send()
2291}
2292
2293// CreateThingWithContext is the same as CreateThing with the addition of
2294// the ability to pass a context and additional request options.
2295//
2296// See CreateThing for details on how to use this API operation.
2297//
2298// The context must be non-nil and will be used for request cancellation. If
2299// the context is nil a panic will occur. In the future the SDK may create
2300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2301// for more information on using Contexts.
2302func (c *IoT) CreateThingWithContext(ctx aws.Context, input *CreateThingInput, opts ...request.Option) (*CreateThingOutput, error) {
2303	req, out := c.CreateThingRequest(input)
2304	req.SetContext(ctx)
2305	req.ApplyOptions(opts...)
2306	return out, req.Send()
2307}
2308
2309const opCreateThingGroup = "CreateThingGroup"
2310
2311// CreateThingGroupRequest generates a "aws/request.Request" representing the
2312// client's request for the CreateThingGroup operation. The "output" return
2313// value will be populated with the request's response once the request completes
2314// successfuly.
2315//
2316// Use "Send" method on the returned Request to send the API call to the service.
2317// the "output" return value is not valid until after Send returns without error.
2318//
2319// See CreateThingGroup for more information on using the CreateThingGroup
2320// API call, and error handling.
2321//
2322// This method is useful when you want to inject custom logic or configuration
2323// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2324//
2325//
2326//    // Example sending a request using the CreateThingGroupRequest method.
2327//    req, resp := client.CreateThingGroupRequest(params)
2328//
2329//    err := req.Send()
2330//    if err == nil { // resp is now filled
2331//        fmt.Println(resp)
2332//    }
2333func (c *IoT) CreateThingGroupRequest(input *CreateThingGroupInput) (req *request.Request, output *CreateThingGroupOutput) {
2334	op := &request.Operation{
2335		Name:       opCreateThingGroup,
2336		HTTPMethod: "POST",
2337		HTTPPath:   "/thing-groups/{thingGroupName}",
2338	}
2339
2340	if input == nil {
2341		input = &CreateThingGroupInput{}
2342	}
2343
2344	output = &CreateThingGroupOutput{}
2345	req = c.newRequest(op, input, output)
2346	return
2347}
2348
2349// CreateThingGroup API operation for AWS IoT.
2350//
2351// Create a thing group.
2352//
2353// This is a control plane operation. See Authorization (http://docs.aws.amazon.com/iot/latest/developerguide/authorization.html)
2354// for information about authorizing control plane actions.
2355//
2356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2357// with awserr.Error's Code and Message methods to get detailed information about
2358// the error.
2359//
2360// See the AWS API reference guide for AWS IoT's
2361// API operation CreateThingGroup for usage and error information.
2362//
2363// Returned Error Codes:
2364//   * ErrCodeInvalidRequestException "InvalidRequestException"
2365//   The request is not valid.
2366//
2367//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2368//   The resource already exists.
2369//
2370//   * ErrCodeThrottlingException "ThrottlingException"
2371//   The rate exceeds the limit.
2372//
2373//   * ErrCodeInternalFailureException "InternalFailureException"
2374//   An unexpected error has occurred.
2375//
2376func (c *IoT) CreateThingGroup(input *CreateThingGroupInput) (*CreateThingGroupOutput, error) {
2377	req, out := c.CreateThingGroupRequest(input)
2378	return out, req.Send()
2379}
2380
2381// CreateThingGroupWithContext is the same as CreateThingGroup with the addition of
2382// the ability to pass a context and additional request options.
2383//
2384// See CreateThingGroup for details on how to use this API operation.
2385//
2386// The context must be non-nil and will be used for request cancellation. If
2387// the context is nil a panic will occur. In the future the SDK may create
2388// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2389// for more information on using Contexts.
2390func (c *IoT) CreateThingGroupWithContext(ctx aws.Context, input *CreateThingGroupInput, opts ...request.Option) (*CreateThingGroupOutput, error) {
2391	req, out := c.CreateThingGroupRequest(input)
2392	req.SetContext(ctx)
2393	req.ApplyOptions(opts...)
2394	return out, req.Send()
2395}
2396
2397const opCreateThingType = "CreateThingType"
2398
2399// CreateThingTypeRequest generates a "aws/request.Request" representing the
2400// client's request for the CreateThingType operation. The "output" return
2401// value will be populated with the request's response once the request completes
2402// successfuly.
2403//
2404// Use "Send" method on the returned Request to send the API call to the service.
2405// the "output" return value is not valid until after Send returns without error.
2406//
2407// See CreateThingType for more information on using the CreateThingType
2408// API call, and error handling.
2409//
2410// This method is useful when you want to inject custom logic or configuration
2411// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2412//
2413//
2414//    // Example sending a request using the CreateThingTypeRequest method.
2415//    req, resp := client.CreateThingTypeRequest(params)
2416//
2417//    err := req.Send()
2418//    if err == nil { // resp is now filled
2419//        fmt.Println(resp)
2420//    }
2421func (c *IoT) CreateThingTypeRequest(input *CreateThingTypeInput) (req *request.Request, output *CreateThingTypeOutput) {
2422	op := &request.Operation{
2423		Name:       opCreateThingType,
2424		HTTPMethod: "POST",
2425		HTTPPath:   "/thing-types/{thingTypeName}",
2426	}
2427
2428	if input == nil {
2429		input = &CreateThingTypeInput{}
2430	}
2431
2432	output = &CreateThingTypeOutput{}
2433	req = c.newRequest(op, input, output)
2434	return
2435}
2436
2437// CreateThingType API operation for AWS IoT.
2438//
2439// Creates a new thing type.
2440//
2441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2442// with awserr.Error's Code and Message methods to get detailed information about
2443// the error.
2444//
2445// See the AWS API reference guide for AWS IoT's
2446// API operation CreateThingType for usage and error information.
2447//
2448// Returned Error Codes:
2449//   * ErrCodeInvalidRequestException "InvalidRequestException"
2450//   The request is not valid.
2451//
2452//   * ErrCodeThrottlingException "ThrottlingException"
2453//   The rate exceeds the limit.
2454//
2455//   * ErrCodeUnauthorizedException "UnauthorizedException"
2456//   You are not authorized to perform this operation.
2457//
2458//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2459//   The service is temporarily unavailable.
2460//
2461//   * ErrCodeInternalFailureException "InternalFailureException"
2462//   An unexpected error has occurred.
2463//
2464//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2465//   The resource already exists.
2466//
2467func (c *IoT) CreateThingType(input *CreateThingTypeInput) (*CreateThingTypeOutput, error) {
2468	req, out := c.CreateThingTypeRequest(input)
2469	return out, req.Send()
2470}
2471
2472// CreateThingTypeWithContext is the same as CreateThingType with the addition of
2473// the ability to pass a context and additional request options.
2474//
2475// See CreateThingType for details on how to use this API operation.
2476//
2477// The context must be non-nil and will be used for request cancellation. If
2478// the context is nil a panic will occur. In the future the SDK may create
2479// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2480// for more information on using Contexts.
2481func (c *IoT) CreateThingTypeWithContext(ctx aws.Context, input *CreateThingTypeInput, opts ...request.Option) (*CreateThingTypeOutput, error) {
2482	req, out := c.CreateThingTypeRequest(input)
2483	req.SetContext(ctx)
2484	req.ApplyOptions(opts...)
2485	return out, req.Send()
2486}
2487
2488const opCreateTopicRule = "CreateTopicRule"
2489
2490// CreateTopicRuleRequest generates a "aws/request.Request" representing the
2491// client's request for the CreateTopicRule operation. The "output" return
2492// value will be populated with the request's response once the request completes
2493// successfuly.
2494//
2495// Use "Send" method on the returned Request to send the API call to the service.
2496// the "output" return value is not valid until after Send returns without error.
2497//
2498// See CreateTopicRule for more information on using the CreateTopicRule
2499// API call, and error handling.
2500//
2501// This method is useful when you want to inject custom logic or configuration
2502// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2503//
2504//
2505//    // Example sending a request using the CreateTopicRuleRequest method.
2506//    req, resp := client.CreateTopicRuleRequest(params)
2507//
2508//    err := req.Send()
2509//    if err == nil { // resp is now filled
2510//        fmt.Println(resp)
2511//    }
2512func (c *IoT) CreateTopicRuleRequest(input *CreateTopicRuleInput) (req *request.Request, output *CreateTopicRuleOutput) {
2513	op := &request.Operation{
2514		Name:       opCreateTopicRule,
2515		HTTPMethod: "POST",
2516		HTTPPath:   "/rules/{ruleName}",
2517	}
2518
2519	if input == nil {
2520		input = &CreateTopicRuleInput{}
2521	}
2522
2523	output = &CreateTopicRuleOutput{}
2524	req = c.newRequest(op, input, output)
2525	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
2526	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2527	return
2528}
2529
2530// CreateTopicRule API operation for AWS IoT.
2531//
2532// Creates a rule. Creating rules is an administrator-level action. Any user
2533// who has permission to create rules will be able to access data processed
2534// by the rule.
2535//
2536// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2537// with awserr.Error's Code and Message methods to get detailed information about
2538// the error.
2539//
2540// See the AWS API reference guide for AWS IoT's
2541// API operation CreateTopicRule for usage and error information.
2542//
2543// Returned Error Codes:
2544//   * ErrCodeSqlParseException "SqlParseException"
2545//   The Rule-SQL expression can't be parsed correctly.
2546//
2547//   * ErrCodeInternalException "InternalException"
2548//   An unexpected error has occurred.
2549//
2550//   * ErrCodeInvalidRequestException "InvalidRequestException"
2551//   The request is not valid.
2552//
2553//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2554//   The resource already exists.
2555//
2556//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2557//   The service is temporarily unavailable.
2558//
2559func (c *IoT) CreateTopicRule(input *CreateTopicRuleInput) (*CreateTopicRuleOutput, error) {
2560	req, out := c.CreateTopicRuleRequest(input)
2561	return out, req.Send()
2562}
2563
2564// CreateTopicRuleWithContext is the same as CreateTopicRule with the addition of
2565// the ability to pass a context and additional request options.
2566//
2567// See CreateTopicRule for details on how to use this API operation.
2568//
2569// The context must be non-nil and will be used for request cancellation. If
2570// the context is nil a panic will occur. In the future the SDK may create
2571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2572// for more information on using Contexts.
2573func (c *IoT) CreateTopicRuleWithContext(ctx aws.Context, input *CreateTopicRuleInput, opts ...request.Option) (*CreateTopicRuleOutput, error) {
2574	req, out := c.CreateTopicRuleRequest(input)
2575	req.SetContext(ctx)
2576	req.ApplyOptions(opts...)
2577	return out, req.Send()
2578}
2579
2580const opDeleteAccountAuditConfiguration = "DeleteAccountAuditConfiguration"
2581
2582// DeleteAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
2583// client's request for the DeleteAccountAuditConfiguration operation. The "output" return
2584// value will be populated with the request's response once the request completes
2585// successfuly.
2586//
2587// Use "Send" method on the returned Request to send the API call to the service.
2588// the "output" return value is not valid until after Send returns without error.
2589//
2590// See DeleteAccountAuditConfiguration for more information on using the DeleteAccountAuditConfiguration
2591// API call, and error handling.
2592//
2593// This method is useful when you want to inject custom logic or configuration
2594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2595//
2596//
2597//    // Example sending a request using the DeleteAccountAuditConfigurationRequest method.
2598//    req, resp := client.DeleteAccountAuditConfigurationRequest(params)
2599//
2600//    err := req.Send()
2601//    if err == nil { // resp is now filled
2602//        fmt.Println(resp)
2603//    }
2604func (c *IoT) DeleteAccountAuditConfigurationRequest(input *DeleteAccountAuditConfigurationInput) (req *request.Request, output *DeleteAccountAuditConfigurationOutput) {
2605	op := &request.Operation{
2606		Name:       opDeleteAccountAuditConfiguration,
2607		HTTPMethod: "DELETE",
2608		HTTPPath:   "/audit/configuration",
2609	}
2610
2611	if input == nil {
2612		input = &DeleteAccountAuditConfigurationInput{}
2613	}
2614
2615	output = &DeleteAccountAuditConfigurationOutput{}
2616	req = c.newRequest(op, input, output)
2617	return
2618}
2619
2620// DeleteAccountAuditConfiguration API operation for AWS IoT.
2621//
2622// Restores the default settings for Device Defender audits for this account.
2623// Any configuration data you entered is deleted and all audit checks are reset
2624// to disabled.
2625//
2626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2627// with awserr.Error's Code and Message methods to get detailed information about
2628// the error.
2629//
2630// See the AWS API reference guide for AWS IoT's
2631// API operation DeleteAccountAuditConfiguration for usage and error information.
2632//
2633// Returned Error Codes:
2634//   * ErrCodeInvalidRequestException "InvalidRequestException"
2635//   The request is not valid.
2636//
2637//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2638//   The specified resource does not exist.
2639//
2640//   * ErrCodeThrottlingException "ThrottlingException"
2641//   The rate exceeds the limit.
2642//
2643//   * ErrCodeInternalFailureException "InternalFailureException"
2644//   An unexpected error has occurred.
2645//
2646func (c *IoT) DeleteAccountAuditConfiguration(input *DeleteAccountAuditConfigurationInput) (*DeleteAccountAuditConfigurationOutput, error) {
2647	req, out := c.DeleteAccountAuditConfigurationRequest(input)
2648	return out, req.Send()
2649}
2650
2651// DeleteAccountAuditConfigurationWithContext is the same as DeleteAccountAuditConfiguration with the addition of
2652// the ability to pass a context and additional request options.
2653//
2654// See DeleteAccountAuditConfiguration for details on how to use this API operation.
2655//
2656// The context must be non-nil and will be used for request cancellation. If
2657// the context is nil a panic will occur. In the future the SDK may create
2658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2659// for more information on using Contexts.
2660func (c *IoT) DeleteAccountAuditConfigurationWithContext(ctx aws.Context, input *DeleteAccountAuditConfigurationInput, opts ...request.Option) (*DeleteAccountAuditConfigurationOutput, error) {
2661	req, out := c.DeleteAccountAuditConfigurationRequest(input)
2662	req.SetContext(ctx)
2663	req.ApplyOptions(opts...)
2664	return out, req.Send()
2665}
2666
2667const opDeleteAuthorizer = "DeleteAuthorizer"
2668
2669// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
2670// client's request for the DeleteAuthorizer operation. The "output" return
2671// value will be populated with the request's response once the request completes
2672// successfuly.
2673//
2674// Use "Send" method on the returned Request to send the API call to the service.
2675// the "output" return value is not valid until after Send returns without error.
2676//
2677// See DeleteAuthorizer for more information on using the DeleteAuthorizer
2678// API call, and error handling.
2679//
2680// This method is useful when you want to inject custom logic or configuration
2681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2682//
2683//
2684//    // Example sending a request using the DeleteAuthorizerRequest method.
2685//    req, resp := client.DeleteAuthorizerRequest(params)
2686//
2687//    err := req.Send()
2688//    if err == nil { // resp is now filled
2689//        fmt.Println(resp)
2690//    }
2691func (c *IoT) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
2692	op := &request.Operation{
2693		Name:       opDeleteAuthorizer,
2694		HTTPMethod: "DELETE",
2695		HTTPPath:   "/authorizer/{authorizerName}",
2696	}
2697
2698	if input == nil {
2699		input = &DeleteAuthorizerInput{}
2700	}
2701
2702	output = &DeleteAuthorizerOutput{}
2703	req = c.newRequest(op, input, output)
2704	return
2705}
2706
2707// DeleteAuthorizer API operation for AWS IoT.
2708//
2709// Deletes an authorizer.
2710//
2711// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2712// with awserr.Error's Code and Message methods to get detailed information about
2713// the error.
2714//
2715// See the AWS API reference guide for AWS IoT's
2716// API operation DeleteAuthorizer for usage and error information.
2717//
2718// Returned Error Codes:
2719//   * ErrCodeDeleteConflictException "DeleteConflictException"
2720//   You can't delete the resource because it is attached to one or more resources.
2721//
2722//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2723//   The specified resource does not exist.
2724//
2725//   * ErrCodeInvalidRequestException "InvalidRequestException"
2726//   The request is not valid.
2727//
2728//   * ErrCodeThrottlingException "ThrottlingException"
2729//   The rate exceeds the limit.
2730//
2731//   * ErrCodeUnauthorizedException "UnauthorizedException"
2732//   You are not authorized to perform this operation.
2733//
2734//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2735//   The service is temporarily unavailable.
2736//
2737//   * ErrCodeInternalFailureException "InternalFailureException"
2738//   An unexpected error has occurred.
2739//
2740func (c *IoT) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
2741	req, out := c.DeleteAuthorizerRequest(input)
2742	return out, req.Send()
2743}
2744
2745// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
2746// the ability to pass a context and additional request options.
2747//
2748// See DeleteAuthorizer for details on how to use this API operation.
2749//
2750// The context must be non-nil and will be used for request cancellation. If
2751// the context is nil a panic will occur. In the future the SDK may create
2752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2753// for more information on using Contexts.
2754func (c *IoT) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
2755	req, out := c.DeleteAuthorizerRequest(input)
2756	req.SetContext(ctx)
2757	req.ApplyOptions(opts...)
2758	return out, req.Send()
2759}
2760
2761const opDeleteCACertificate = "DeleteCACertificate"
2762
2763// DeleteCACertificateRequest generates a "aws/request.Request" representing the
2764// client's request for the DeleteCACertificate operation. The "output" return
2765// value will be populated with the request's response once the request completes
2766// successfuly.
2767//
2768// Use "Send" method on the returned Request to send the API call to the service.
2769// the "output" return value is not valid until after Send returns without error.
2770//
2771// See DeleteCACertificate for more information on using the DeleteCACertificate
2772// API call, and error handling.
2773//
2774// This method is useful when you want to inject custom logic or configuration
2775// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2776//
2777//
2778//    // Example sending a request using the DeleteCACertificateRequest method.
2779//    req, resp := client.DeleteCACertificateRequest(params)
2780//
2781//    err := req.Send()
2782//    if err == nil { // resp is now filled
2783//        fmt.Println(resp)
2784//    }
2785func (c *IoT) DeleteCACertificateRequest(input *DeleteCACertificateInput) (req *request.Request, output *DeleteCACertificateOutput) {
2786	op := &request.Operation{
2787		Name:       opDeleteCACertificate,
2788		HTTPMethod: "DELETE",
2789		HTTPPath:   "/cacertificate/{caCertificateId}",
2790	}
2791
2792	if input == nil {
2793		input = &DeleteCACertificateInput{}
2794	}
2795
2796	output = &DeleteCACertificateOutput{}
2797	req = c.newRequest(op, input, output)
2798	return
2799}
2800
2801// DeleteCACertificate API operation for AWS IoT.
2802//
2803// Deletes a registered CA certificate.
2804//
2805// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2806// with awserr.Error's Code and Message methods to get detailed information about
2807// the error.
2808//
2809// See the AWS API reference guide for AWS IoT's
2810// API operation DeleteCACertificate for usage and error information.
2811//
2812// Returned Error Codes:
2813//   * ErrCodeInvalidRequestException "InvalidRequestException"
2814//   The request is not valid.
2815//
2816//   * ErrCodeCertificateStateException "CertificateStateException"
2817//   The certificate operation is not allowed.
2818//
2819//   * ErrCodeThrottlingException "ThrottlingException"
2820//   The rate exceeds the limit.
2821//
2822//   * ErrCodeUnauthorizedException "UnauthorizedException"
2823//   You are not authorized to perform this operation.
2824//
2825//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2826//   The service is temporarily unavailable.
2827//
2828//   * ErrCodeInternalFailureException "InternalFailureException"
2829//   An unexpected error has occurred.
2830//
2831//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2832//   The specified resource does not exist.
2833//
2834func (c *IoT) DeleteCACertificate(input *DeleteCACertificateInput) (*DeleteCACertificateOutput, error) {
2835	req, out := c.DeleteCACertificateRequest(input)
2836	return out, req.Send()
2837}
2838
2839// DeleteCACertificateWithContext is the same as DeleteCACertificate with the addition of
2840// the ability to pass a context and additional request options.
2841//
2842// See DeleteCACertificate for details on how to use this API operation.
2843//
2844// The context must be non-nil and will be used for request cancellation. If
2845// the context is nil a panic will occur. In the future the SDK may create
2846// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2847// for more information on using Contexts.
2848func (c *IoT) DeleteCACertificateWithContext(ctx aws.Context, input *DeleteCACertificateInput, opts ...request.Option) (*DeleteCACertificateOutput, error) {
2849	req, out := c.DeleteCACertificateRequest(input)
2850	req.SetContext(ctx)
2851	req.ApplyOptions(opts...)
2852	return out, req.Send()
2853}
2854
2855const opDeleteCertificate = "DeleteCertificate"
2856
2857// DeleteCertificateRequest generates a "aws/request.Request" representing the
2858// client's request for the DeleteCertificate operation. The "output" return
2859// value will be populated with the request's response once the request completes
2860// successfuly.
2861//
2862// Use "Send" method on the returned Request to send the API call to the service.
2863// the "output" return value is not valid until after Send returns without error.
2864//
2865// See DeleteCertificate for more information on using the DeleteCertificate
2866// API call, and error handling.
2867//
2868// This method is useful when you want to inject custom logic or configuration
2869// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2870//
2871//
2872//    // Example sending a request using the DeleteCertificateRequest method.
2873//    req, resp := client.DeleteCertificateRequest(params)
2874//
2875//    err := req.Send()
2876//    if err == nil { // resp is now filled
2877//        fmt.Println(resp)
2878//    }
2879func (c *IoT) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
2880	op := &request.Operation{
2881		Name:       opDeleteCertificate,
2882		HTTPMethod: "DELETE",
2883		HTTPPath:   "/certificates/{certificateId}",
2884	}
2885
2886	if input == nil {
2887		input = &DeleteCertificateInput{}
2888	}
2889
2890	output = &DeleteCertificateOutput{}
2891	req = c.newRequest(op, input, output)
2892	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
2893	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2894	return
2895}
2896
2897// DeleteCertificate API operation for AWS IoT.
2898//
2899// Deletes the specified certificate.
2900//
2901// A certificate cannot be deleted if it has a policy attached to it or if its
2902// status is set to ACTIVE. To delete a certificate, first use the DetachPrincipalPolicy
2903// API to detach all policies. Next, use the UpdateCertificate API to set the
2904// certificate to the INACTIVE status.
2905//
2906// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2907// with awserr.Error's Code and Message methods to get detailed information about
2908// the error.
2909//
2910// See the AWS API reference guide for AWS IoT's
2911// API operation DeleteCertificate for usage and error information.
2912//
2913// Returned Error Codes:
2914//   * ErrCodeCertificateStateException "CertificateStateException"
2915//   The certificate operation is not allowed.
2916//
2917//   * ErrCodeDeleteConflictException "DeleteConflictException"
2918//   You can't delete the resource because it is attached to one or more resources.
2919//
2920//   * ErrCodeInvalidRequestException "InvalidRequestException"
2921//   The request is not valid.
2922//
2923//   * ErrCodeThrottlingException "ThrottlingException"
2924//   The rate exceeds the limit.
2925//
2926//   * ErrCodeUnauthorizedException "UnauthorizedException"
2927//   You are not authorized to perform this operation.
2928//
2929//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2930//   The service is temporarily unavailable.
2931//
2932//   * ErrCodeInternalFailureException "InternalFailureException"
2933//   An unexpected error has occurred.
2934//
2935//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2936//   The specified resource does not exist.
2937//
2938func (c *IoT) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
2939	req, out := c.DeleteCertificateRequest(input)
2940	return out, req.Send()
2941}
2942
2943// DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
2944// the ability to pass a context and additional request options.
2945//
2946// See DeleteCertificate for details on how to use this API operation.
2947//
2948// The context must be non-nil and will be used for request cancellation. If
2949// the context is nil a panic will occur. In the future the SDK may create
2950// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2951// for more information on using Contexts.
2952func (c *IoT) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
2953	req, out := c.DeleteCertificateRequest(input)
2954	req.SetContext(ctx)
2955	req.ApplyOptions(opts...)
2956	return out, req.Send()
2957}
2958
2959const opDeleteJob = "DeleteJob"
2960
2961// DeleteJobRequest generates a "aws/request.Request" representing the
2962// client's request for the DeleteJob operation. The "output" return
2963// value will be populated with the request's response once the request completes
2964// successfuly.
2965//
2966// Use "Send" method on the returned Request to send the API call to the service.
2967// the "output" return value is not valid until after Send returns without error.
2968//
2969// See DeleteJob for more information on using the DeleteJob
2970// API call, and error handling.
2971//
2972// This method is useful when you want to inject custom logic or configuration
2973// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2974//
2975//
2976//    // Example sending a request using the DeleteJobRequest method.
2977//    req, resp := client.DeleteJobRequest(params)
2978//
2979//    err := req.Send()
2980//    if err == nil { // resp is now filled
2981//        fmt.Println(resp)
2982//    }
2983func (c *IoT) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
2984	op := &request.Operation{
2985		Name:       opDeleteJob,
2986		HTTPMethod: "DELETE",
2987		HTTPPath:   "/jobs/{jobId}",
2988	}
2989
2990	if input == nil {
2991		input = &DeleteJobInput{}
2992	}
2993
2994	output = &DeleteJobOutput{}
2995	req = c.newRequest(op, input, output)
2996	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
2997	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2998	return
2999}
3000
3001// DeleteJob API operation for AWS IoT.
3002//
3003// Deletes a job and its related job executions.
3004//
3005// Deleting a job may take time, depending on the number of job executions created
3006// for the job and various other factors. While the job is being deleted, the
3007// status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to
3008// delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will
3009// result in an error.
3010//
3011// Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or
3012// a LimitExceededException will occur.
3013//
3014// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3015// with awserr.Error's Code and Message methods to get detailed information about
3016// the error.
3017//
3018// See the AWS API reference guide for AWS IoT's
3019// API operation DeleteJob for usage and error information.
3020//
3021// Returned Error Codes:
3022//   * ErrCodeInvalidRequestException "InvalidRequestException"
3023//   The request is not valid.
3024//
3025//   * ErrCodeInvalidStateTransitionException "InvalidStateTransitionException"
3026//   An attempt was made to change to an invalid state, for example by deleting
3027//   a job or a job execution which is "IN_PROGRESS" without setting the force
3028//   parameter.
3029//
3030//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3031//   The specified resource does not exist.
3032//
3033//   * ErrCodeLimitExceededException "LimitExceededException"
3034//   A limit has been exceeded.
3035//
3036//   * ErrCodeThrottlingException "ThrottlingException"
3037//   The rate exceeds the limit.
3038//
3039//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3040//   The service is temporarily unavailable.
3041//
3042func (c *IoT) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
3043	req, out := c.DeleteJobRequest(input)
3044	return out, req.Send()
3045}
3046
3047// DeleteJobWithContext is the same as DeleteJob with the addition of
3048// the ability to pass a context and additional request options.
3049//
3050// See DeleteJob for details on how to use this API operation.
3051//
3052// The context must be non-nil and will be used for request cancellation. If
3053// the context is nil a panic will occur. In the future the SDK may create
3054// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3055// for more information on using Contexts.
3056func (c *IoT) DeleteJobWithContext(ctx aws.Context, input *DeleteJobInput, opts ...request.Option) (*DeleteJobOutput, error) {
3057	req, out := c.DeleteJobRequest(input)
3058	req.SetContext(ctx)
3059	req.ApplyOptions(opts...)
3060	return out, req.Send()
3061}
3062
3063const opDeleteJobExecution = "DeleteJobExecution"
3064
3065// DeleteJobExecutionRequest generates a "aws/request.Request" representing the
3066// client's request for the DeleteJobExecution operation. The "output" return
3067// value will be populated with the request's response once the request completes
3068// successfuly.
3069//
3070// Use "Send" method on the returned Request to send the API call to the service.
3071// the "output" return value is not valid until after Send returns without error.
3072//
3073// See DeleteJobExecution for more information on using the DeleteJobExecution
3074// API call, and error handling.
3075//
3076// This method is useful when you want to inject custom logic or configuration
3077// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3078//
3079//
3080//    // Example sending a request using the DeleteJobExecutionRequest method.
3081//    req, resp := client.DeleteJobExecutionRequest(params)
3082//
3083//    err := req.Send()
3084//    if err == nil { // resp is now filled
3085//        fmt.Println(resp)
3086//    }
3087func (c *IoT) DeleteJobExecutionRequest(input *DeleteJobExecutionInput) (req *request.Request, output *DeleteJobExecutionOutput) {
3088	op := &request.Operation{
3089		Name:       opDeleteJobExecution,
3090		HTTPMethod: "DELETE",
3091		HTTPPath:   "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}",
3092	}
3093
3094	if input == nil {
3095		input = &DeleteJobExecutionInput{}
3096	}
3097
3098	output = &DeleteJobExecutionOutput{}
3099	req = c.newRequest(op, input, output)
3100	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
3101	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3102	return
3103}
3104
3105// DeleteJobExecution API operation for AWS IoT.
3106//
3107// Deletes a job execution.
3108//
3109// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3110// with awserr.Error's Code and Message methods to get detailed information about
3111// the error.
3112//
3113// See the AWS API reference guide for AWS IoT's
3114// API operation DeleteJobExecution for usage and error information.
3115//
3116// Returned Error Codes:
3117//   * ErrCodeInvalidRequestException "InvalidRequestException"
3118//   The request is not valid.
3119//
3120//   * ErrCodeInvalidStateTransitionException "InvalidStateTransitionException"
3121//   An attempt was made to change to an invalid state, for example by deleting
3122//   a job or a job execution which is "IN_PROGRESS" without setting the force
3123//   parameter.
3124//
3125//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3126//   The specified resource does not exist.
3127//
3128//   * ErrCodeThrottlingException "ThrottlingException"
3129//   The rate exceeds the limit.
3130//
3131//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3132//   The service is temporarily unavailable.
3133//
3134func (c *IoT) DeleteJobExecution(input *DeleteJobExecutionInput) (*DeleteJobExecutionOutput, error) {
3135	req, out := c.DeleteJobExecutionRequest(input)
3136	return out, req.Send()
3137}
3138
3139// DeleteJobExecutionWithContext is the same as DeleteJobExecution with the addition of
3140// the ability to pass a context and additional request options.
3141//
3142// See DeleteJobExecution for details on how to use this API operation.
3143//
3144// The context must be non-nil and will be used for request cancellation. If
3145// the context is nil a panic will occur. In the future the SDK may create
3146// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3147// for more information on using Contexts.
3148func (c *IoT) DeleteJobExecutionWithContext(ctx aws.Context, input *DeleteJobExecutionInput, opts ...request.Option) (*DeleteJobExecutionOutput, error) {
3149	req, out := c.DeleteJobExecutionRequest(input)
3150	req.SetContext(ctx)
3151	req.ApplyOptions(opts...)
3152	return out, req.Send()
3153}
3154
3155const opDeleteOTAUpdate = "DeleteOTAUpdate"
3156
3157// DeleteOTAUpdateRequest generates a "aws/request.Request" representing the
3158// client's request for the DeleteOTAUpdate operation. The "output" return
3159// value will be populated with the request's response once the request completes
3160// successfuly.
3161//
3162// Use "Send" method on the returned Request to send the API call to the service.
3163// the "output" return value is not valid until after Send returns without error.
3164//
3165// See DeleteOTAUpdate for more information on using the DeleteOTAUpdate
3166// API call, and error handling.
3167//
3168// This method is useful when you want to inject custom logic or configuration
3169// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3170//
3171//
3172//    // Example sending a request using the DeleteOTAUpdateRequest method.
3173//    req, resp := client.DeleteOTAUpdateRequest(params)
3174//
3175//    err := req.Send()
3176//    if err == nil { // resp is now filled
3177//        fmt.Println(resp)
3178//    }
3179func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request.Request, output *DeleteOTAUpdateOutput) {
3180	op := &request.Operation{
3181		Name:       opDeleteOTAUpdate,
3182		HTTPMethod: "DELETE",
3183		HTTPPath:   "/otaUpdates/{otaUpdateId}",
3184	}
3185
3186	if input == nil {
3187		input = &DeleteOTAUpdateInput{}
3188	}
3189
3190	output = &DeleteOTAUpdateOutput{}
3191	req = c.newRequest(op, input, output)
3192	return
3193}
3194
3195// DeleteOTAUpdate API operation for AWS IoT.
3196//
3197// Delete an OTA update.
3198//
3199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3200// with awserr.Error's Code and Message methods to get detailed information about
3201// the error.
3202//
3203// See the AWS API reference guide for AWS IoT's
3204// API operation DeleteOTAUpdate for usage and error information.
3205//
3206// Returned Error Codes:
3207//   * ErrCodeInvalidRequestException "InvalidRequestException"
3208//   The request is not valid.
3209//
3210//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3211//   The specified resource does not exist.
3212//
3213//   * ErrCodeThrottlingException "ThrottlingException"
3214//   The rate exceeds the limit.
3215//
3216//   * ErrCodeUnauthorizedException "UnauthorizedException"
3217//   You are not authorized to perform this operation.
3218//
3219//   * ErrCodeInternalFailureException "InternalFailureException"
3220//   An unexpected error has occurred.
3221//
3222//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3223//   The service is temporarily unavailable.
3224//
3225func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) {
3226	req, out := c.DeleteOTAUpdateRequest(input)
3227	return out, req.Send()
3228}
3229
3230// DeleteOTAUpdateWithContext is the same as DeleteOTAUpdate with the addition of
3231// the ability to pass a context and additional request options.
3232//
3233// See DeleteOTAUpdate for details on how to use this API operation.
3234//
3235// The context must be non-nil and will be used for request cancellation. If
3236// the context is nil a panic will occur. In the future the SDK may create
3237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3238// for more information on using Contexts.
3239func (c *IoT) DeleteOTAUpdateWithContext(ctx aws.Context, input *DeleteOTAUpdateInput, opts ...request.Option) (*DeleteOTAUpdateOutput, error) {
3240	req, out := c.DeleteOTAUpdateRequest(input)
3241	req.SetContext(ctx)
3242	req.ApplyOptions(opts...)
3243	return out, req.Send()
3244}
3245
3246const opDeletePolicy = "DeletePolicy"
3247
3248// DeletePolicyRequest generates a "aws/request.Request" representing the
3249// client's request for the DeletePolicy operation. The "output" return
3250// value will be populated with the request's response once the request completes
3251// successfuly.
3252//
3253// Use "Send" method on the returned Request to send the API call to the service.
3254// the "output" return value is not valid until after Send returns without error.
3255//
3256// See DeletePolicy for more information on using the DeletePolicy
3257// API call, and error handling.
3258//
3259// This method is useful when you want to inject custom logic or configuration
3260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3261//
3262//
3263//    // Example sending a request using the DeletePolicyRequest method.
3264//    req, resp := client.DeletePolicyRequest(params)
3265//
3266//    err := req.Send()
3267//    if err == nil { // resp is now filled
3268//        fmt.Println(resp)
3269//    }
3270func (c *IoT) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
3271	op := &request.Operation{
3272		Name:       opDeletePolicy,
3273		HTTPMethod: "DELETE",
3274		HTTPPath:   "/policies/{policyName}",
3275	}
3276
3277	if input == nil {
3278		input = &DeletePolicyInput{}
3279	}
3280
3281	output = &DeletePolicyOutput{}
3282	req = c.newRequest(op, input, output)
3283	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
3284	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3285	return
3286}
3287
3288// DeletePolicy API operation for AWS IoT.
3289//
3290// Deletes the specified policy.
3291//
3292// A policy cannot be deleted if it has non-default versions or it is attached
3293// to any certificate.
3294//
3295// To delete a policy, use the DeletePolicyVersion API to delete all non-default
3296// versions of the policy; use the DetachPrincipalPolicy API to detach the policy
3297// from any certificate; and then use the DeletePolicy API to delete the policy.
3298//
3299// When a policy is deleted using DeletePolicy, its default version is deleted
3300// with it.
3301//
3302// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3303// with awserr.Error's Code and Message methods to get detailed information about
3304// the error.
3305//
3306// See the AWS API reference guide for AWS IoT's
3307// API operation DeletePolicy for usage and error information.
3308//
3309// Returned Error Codes:
3310//   * ErrCodeDeleteConflictException "DeleteConflictException"
3311//   You can't delete the resource because it is attached to one or more resources.
3312//
3313//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3314//   The specified resource does not exist.
3315//
3316//   * ErrCodeInvalidRequestException "InvalidRequestException"
3317//   The request is not valid.
3318//
3319//   * ErrCodeThrottlingException "ThrottlingException"
3320//   The rate exceeds the limit.
3321//
3322//   * ErrCodeUnauthorizedException "UnauthorizedException"
3323//   You are not authorized to perform this operation.
3324//
3325//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3326//   The service is temporarily unavailable.
3327//
3328//   * ErrCodeInternalFailureException "InternalFailureException"
3329//   An unexpected error has occurred.
3330//
3331func (c *IoT) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
3332	req, out := c.DeletePolicyRequest(input)
3333	return out, req.Send()
3334}
3335
3336// DeletePolicyWithContext is the same as DeletePolicy with the addition of
3337// the ability to pass a context and additional request options.
3338//
3339// See DeletePolicy for details on how to use this API operation.
3340//
3341// The context must be non-nil and will be used for request cancellation. If
3342// the context is nil a panic will occur. In the future the SDK may create
3343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3344// for more information on using Contexts.
3345func (c *IoT) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
3346	req, out := c.DeletePolicyRequest(input)
3347	req.SetContext(ctx)
3348	req.ApplyOptions(opts...)
3349	return out, req.Send()
3350}
3351
3352const opDeletePolicyVersion = "DeletePolicyVersion"
3353
3354// DeletePolicyVersionRequest generates a "aws/request.Request" representing the
3355// client's request for the DeletePolicyVersion operation. The "output" return
3356// value will be populated with the request's response once the request completes
3357// successfuly.
3358//
3359// Use "Send" method on the returned Request to send the API call to the service.
3360// the "output" return value is not valid until after Send returns without error.
3361//
3362// See DeletePolicyVersion for more information on using the DeletePolicyVersion
3363// API call, and error handling.
3364//
3365// This method is useful when you want to inject custom logic or configuration
3366// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3367//
3368//
3369//    // Example sending a request using the DeletePolicyVersionRequest method.
3370//    req, resp := client.DeletePolicyVersionRequest(params)
3371//
3372//    err := req.Send()
3373//    if err == nil { // resp is now filled
3374//        fmt.Println(resp)
3375//    }
3376func (c *IoT) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
3377	op := &request.Operation{
3378		Name:       opDeletePolicyVersion,
3379		HTTPMethod: "DELETE",
3380		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
3381	}
3382
3383	if input == nil {
3384		input = &DeletePolicyVersionInput{}
3385	}
3386
3387	output = &DeletePolicyVersionOutput{}
3388	req = c.newRequest(op, input, output)
3389	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
3390	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3391	return
3392}
3393
3394// DeletePolicyVersion API operation for AWS IoT.
3395//
3396// Deletes the specified version of the specified policy. You cannot delete
3397// the default version of a policy using this API. To delete the default version
3398// of a policy, use DeletePolicy. To find out which version of a policy is marked
3399// as the default version, use ListPolicyVersions.
3400//
3401// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3402// with awserr.Error's Code and Message methods to get detailed information about
3403// the error.
3404//
3405// See the AWS API reference guide for AWS IoT's
3406// API operation DeletePolicyVersion for usage and error information.
3407//
3408// Returned Error Codes:
3409//   * ErrCodeDeleteConflictException "DeleteConflictException"
3410//   You can't delete the resource because it is attached to one or more resources.
3411//
3412//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3413//   The specified resource does not exist.
3414//
3415//   * ErrCodeInvalidRequestException "InvalidRequestException"
3416//   The request is not valid.
3417//
3418//   * ErrCodeThrottlingException "ThrottlingException"
3419//   The rate exceeds the limit.
3420//
3421//   * ErrCodeUnauthorizedException "UnauthorizedException"
3422//   You are not authorized to perform this operation.
3423//
3424//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3425//   The service is temporarily unavailable.
3426//
3427//   * ErrCodeInternalFailureException "InternalFailureException"
3428//   An unexpected error has occurred.
3429//
3430func (c *IoT) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
3431	req, out := c.DeletePolicyVersionRequest(input)
3432	return out, req.Send()
3433}
3434
3435// DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
3436// the ability to pass a context and additional request options.
3437//
3438// See DeletePolicyVersion for details on how to use this API operation.
3439//
3440// The context must be non-nil and will be used for request cancellation. If
3441// the context is nil a panic will occur. In the future the SDK may create
3442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3443// for more information on using Contexts.
3444func (c *IoT) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
3445	req, out := c.DeletePolicyVersionRequest(input)
3446	req.SetContext(ctx)
3447	req.ApplyOptions(opts...)
3448	return out, req.Send()
3449}
3450
3451const opDeleteRegistrationCode = "DeleteRegistrationCode"
3452
3453// DeleteRegistrationCodeRequest generates a "aws/request.Request" representing the
3454// client's request for the DeleteRegistrationCode operation. The "output" return
3455// value will be populated with the request's response once the request completes
3456// successfuly.
3457//
3458// Use "Send" method on the returned Request to send the API call to the service.
3459// the "output" return value is not valid until after Send returns without error.
3460//
3461// See DeleteRegistrationCode for more information on using the DeleteRegistrationCode
3462// API call, and error handling.
3463//
3464// This method is useful when you want to inject custom logic or configuration
3465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3466//
3467//
3468//    // Example sending a request using the DeleteRegistrationCodeRequest method.
3469//    req, resp := client.DeleteRegistrationCodeRequest(params)
3470//
3471//    err := req.Send()
3472//    if err == nil { // resp is now filled
3473//        fmt.Println(resp)
3474//    }
3475func (c *IoT) DeleteRegistrationCodeRequest(input *DeleteRegistrationCodeInput) (req *request.Request, output *DeleteRegistrationCodeOutput) {
3476	op := &request.Operation{
3477		Name:       opDeleteRegistrationCode,
3478		HTTPMethod: "DELETE",
3479		HTTPPath:   "/registrationcode",
3480	}
3481
3482	if input == nil {
3483		input = &DeleteRegistrationCodeInput{}
3484	}
3485
3486	output = &DeleteRegistrationCodeOutput{}
3487	req = c.newRequest(op, input, output)
3488	return
3489}
3490
3491// DeleteRegistrationCode API operation for AWS IoT.
3492//
3493// Deletes a CA certificate registration code.
3494//
3495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3496// with awserr.Error's Code and Message methods to get detailed information about
3497// the error.
3498//
3499// See the AWS API reference guide for AWS IoT's
3500// API operation DeleteRegistrationCode for usage and error information.
3501//
3502// Returned Error Codes:
3503//   * ErrCodeThrottlingException "ThrottlingException"
3504//   The rate exceeds the limit.
3505//
3506//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3507//   The specified resource does not exist.
3508//
3509//   * ErrCodeUnauthorizedException "UnauthorizedException"
3510//   You are not authorized to perform this operation.
3511//
3512//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3513//   The service is temporarily unavailable.
3514//
3515//   * ErrCodeInternalFailureException "InternalFailureException"
3516//   An unexpected error has occurred.
3517//
3518func (c *IoT) DeleteRegistrationCode(input *DeleteRegistrationCodeInput) (*DeleteRegistrationCodeOutput, error) {
3519	req, out := c.DeleteRegistrationCodeRequest(input)
3520	return out, req.Send()
3521}
3522
3523// DeleteRegistrationCodeWithContext is the same as DeleteRegistrationCode with the addition of
3524// the ability to pass a context and additional request options.
3525//
3526// See DeleteRegistrationCode for details on how to use this API operation.
3527//
3528// The context must be non-nil and will be used for request cancellation. If
3529// the context is nil a panic will occur. In the future the SDK may create
3530// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3531// for more information on using Contexts.
3532func (c *IoT) DeleteRegistrationCodeWithContext(ctx aws.Context, input *DeleteRegistrationCodeInput, opts ...request.Option) (*DeleteRegistrationCodeOutput, error) {
3533	req, out := c.DeleteRegistrationCodeRequest(input)
3534	req.SetContext(ctx)
3535	req.ApplyOptions(opts...)
3536	return out, req.Send()
3537}
3538
3539const opDeleteRoleAlias = "DeleteRoleAlias"
3540
3541// DeleteRoleAliasRequest generates a "aws/request.Request" representing the
3542// client's request for the DeleteRoleAlias operation. The "output" return
3543// value will be populated with the request's response once the request completes
3544// successfuly.
3545//
3546// Use "Send" method on the returned Request to send the API call to the service.
3547// the "output" return value is not valid until after Send returns without error.
3548//
3549// See DeleteRoleAlias for more information on using the DeleteRoleAlias
3550// API call, and error handling.
3551//
3552// This method is useful when you want to inject custom logic or configuration
3553// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3554//
3555//
3556//    // Example sending a request using the DeleteRoleAliasRequest method.
3557//    req, resp := client.DeleteRoleAliasRequest(params)
3558//
3559//    err := req.Send()
3560//    if err == nil { // resp is now filled
3561//        fmt.Println(resp)
3562//    }
3563func (c *IoT) DeleteRoleAliasRequest(input *DeleteRoleAliasInput) (req *request.Request, output *DeleteRoleAliasOutput) {
3564	op := &request.Operation{
3565		Name:       opDeleteRoleAlias,
3566		HTTPMethod: "DELETE",
3567		HTTPPath:   "/role-aliases/{roleAlias}",
3568	}
3569
3570	if input == nil {
3571		input = &DeleteRoleAliasInput{}
3572	}
3573
3574	output = &DeleteRoleAliasOutput{}
3575	req = c.newRequest(op, input, output)
3576	return
3577}
3578
3579// DeleteRoleAlias API operation for AWS IoT.
3580//
3581// Deletes a role alias
3582//
3583// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3584// with awserr.Error's Code and Message methods to get detailed information about
3585// the error.
3586//
3587// See the AWS API reference guide for AWS IoT's
3588// API operation DeleteRoleAlias for usage and error information.
3589//
3590// Returned Error Codes:
3591//   * ErrCodeDeleteConflictException "DeleteConflictException"
3592//   You can't delete the resource because it is attached to one or more resources.
3593//
3594//   * ErrCodeInvalidRequestException "InvalidRequestException"
3595//   The request is not valid.
3596//
3597//   * ErrCodeThrottlingException "ThrottlingException"
3598//   The rate exceeds the limit.
3599//
3600//   * ErrCodeUnauthorizedException "UnauthorizedException"
3601//   You are not authorized to perform this operation.
3602//
3603//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3604//   The service is temporarily unavailable.
3605//
3606//   * ErrCodeInternalFailureException "InternalFailureException"
3607//   An unexpected error has occurred.
3608//
3609//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3610//   The specified resource does not exist.
3611//
3612func (c *IoT) DeleteRoleAlias(input *DeleteRoleAliasInput) (*DeleteRoleAliasOutput, error) {
3613	req, out := c.DeleteRoleAliasRequest(input)
3614	return out, req.Send()
3615}
3616
3617// DeleteRoleAliasWithContext is the same as DeleteRoleAlias with the addition of
3618// the ability to pass a context and additional request options.
3619//
3620// See DeleteRoleAlias for details on how to use this API operation.
3621//
3622// The context must be non-nil and will be used for request cancellation. If
3623// the context is nil a panic will occur. In the future the SDK may create
3624// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3625// for more information on using Contexts.
3626func (c *IoT) DeleteRoleAliasWithContext(ctx aws.Context, input *DeleteRoleAliasInput, opts ...request.Option) (*DeleteRoleAliasOutput, error) {
3627	req, out := c.DeleteRoleAliasRequest(input)
3628	req.SetContext(ctx)
3629	req.ApplyOptions(opts...)
3630	return out, req.Send()
3631}
3632
3633const opDeleteScheduledAudit = "DeleteScheduledAudit"
3634
3635// DeleteScheduledAuditRequest generates a "aws/request.Request" representing the
3636// client's request for the DeleteScheduledAudit operation. The "output" return
3637// value will be populated with the request's response once the request completes
3638// successfuly.
3639//
3640// Use "Send" method on the returned Request to send the API call to the service.
3641// the "output" return value is not valid until after Send returns without error.
3642//
3643// See DeleteScheduledAudit for more information on using the DeleteScheduledAudit
3644// API call, and error handling.
3645//
3646// This method is useful when you want to inject custom logic or configuration
3647// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3648//
3649//
3650//    // Example sending a request using the DeleteScheduledAuditRequest method.
3651//    req, resp := client.DeleteScheduledAuditRequest(params)
3652//
3653//    err := req.Send()
3654//    if err == nil { // resp is now filled
3655//        fmt.Println(resp)
3656//    }
3657func (c *IoT) DeleteScheduledAuditRequest(input *DeleteScheduledAuditInput) (req *request.Request, output *DeleteScheduledAuditOutput) {
3658	op := &request.Operation{
3659		Name:       opDeleteScheduledAudit,
3660		HTTPMethod: "DELETE",
3661		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
3662	}
3663
3664	if input == nil {
3665		input = &DeleteScheduledAuditInput{}
3666	}
3667
3668	output = &DeleteScheduledAuditOutput{}
3669	req = c.newRequest(op, input, output)
3670	return
3671}
3672
3673// DeleteScheduledAudit API operation for AWS IoT.
3674//
3675// Deletes a scheduled audit.
3676//
3677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3678// with awserr.Error's Code and Message methods to get detailed information about
3679// the error.
3680//
3681// See the AWS API reference guide for AWS IoT's
3682// API operation DeleteScheduledAudit for usage and error information.
3683//
3684// Returned Error Codes:
3685//   * ErrCodeInvalidRequestException "InvalidRequestException"
3686//   The request is not valid.
3687//
3688//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3689//   The specified resource does not exist.
3690//
3691//   * ErrCodeThrottlingException "ThrottlingException"
3692//   The rate exceeds the limit.
3693//
3694//   * ErrCodeInternalFailureException "InternalFailureException"
3695//   An unexpected error has occurred.
3696//
3697func (c *IoT) DeleteScheduledAudit(input *DeleteScheduledAuditInput) (*DeleteScheduledAuditOutput, error) {
3698	req, out := c.DeleteScheduledAuditRequest(input)
3699	return out, req.Send()
3700}
3701
3702// DeleteScheduledAuditWithContext is the same as DeleteScheduledAudit with the addition of
3703// the ability to pass a context and additional request options.
3704//
3705// See DeleteScheduledAudit for details on how to use this API operation.
3706//
3707// The context must be non-nil and will be used for request cancellation. If
3708// the context is nil a panic will occur. In the future the SDK may create
3709// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3710// for more information on using Contexts.
3711func (c *IoT) DeleteScheduledAuditWithContext(ctx aws.Context, input *DeleteScheduledAuditInput, opts ...request.Option) (*DeleteScheduledAuditOutput, error) {
3712	req, out := c.DeleteScheduledAuditRequest(input)
3713	req.SetContext(ctx)
3714	req.ApplyOptions(opts...)
3715	return out, req.Send()
3716}
3717
3718const opDeleteSecurityProfile = "DeleteSecurityProfile"
3719
3720// DeleteSecurityProfileRequest generates a "aws/request.Request" representing the
3721// client's request for the DeleteSecurityProfile operation. The "output" return
3722// value will be populated with the request's response once the request completes
3723// successfuly.
3724//
3725// Use "Send" method on the returned Request to send the API call to the service.
3726// the "output" return value is not valid until after Send returns without error.
3727//
3728// See DeleteSecurityProfile for more information on using the DeleteSecurityProfile
3729// API call, and error handling.
3730//
3731// This method is useful when you want to inject custom logic or configuration
3732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3733//
3734//
3735//    // Example sending a request using the DeleteSecurityProfileRequest method.
3736//    req, resp := client.DeleteSecurityProfileRequest(params)
3737//
3738//    err := req.Send()
3739//    if err == nil { // resp is now filled
3740//        fmt.Println(resp)
3741//    }
3742func (c *IoT) DeleteSecurityProfileRequest(input *DeleteSecurityProfileInput) (req *request.Request, output *DeleteSecurityProfileOutput) {
3743	op := &request.Operation{
3744		Name:       opDeleteSecurityProfile,
3745		HTTPMethod: "DELETE",
3746		HTTPPath:   "/security-profiles/{securityProfileName}",
3747	}
3748
3749	if input == nil {
3750		input = &DeleteSecurityProfileInput{}
3751	}
3752
3753	output = &DeleteSecurityProfileOutput{}
3754	req = c.newRequest(op, input, output)
3755	return
3756}
3757
3758// DeleteSecurityProfile API operation for AWS IoT.
3759//
3760// Deletes a Device Defender security profile.
3761//
3762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3763// with awserr.Error's Code and Message methods to get detailed information about
3764// the error.
3765//
3766// See the AWS API reference guide for AWS IoT's
3767// API operation DeleteSecurityProfile for usage and error information.
3768//
3769// Returned Error Codes:
3770//   * ErrCodeInvalidRequestException "InvalidRequestException"
3771//   The request is not valid.
3772//
3773//   * ErrCodeThrottlingException "ThrottlingException"
3774//   The rate exceeds the limit.
3775//
3776//   * ErrCodeInternalFailureException "InternalFailureException"
3777//   An unexpected error has occurred.
3778//
3779//   * ErrCodeVersionConflictException "VersionConflictException"
3780//   An exception thrown when the version of an entity specified with the expectedVersion
3781//   parameter does not match the latest version in the system.
3782//
3783func (c *IoT) DeleteSecurityProfile(input *DeleteSecurityProfileInput) (*DeleteSecurityProfileOutput, error) {
3784	req, out := c.DeleteSecurityProfileRequest(input)
3785	return out, req.Send()
3786}
3787
3788// DeleteSecurityProfileWithContext is the same as DeleteSecurityProfile with the addition of
3789// the ability to pass a context and additional request options.
3790//
3791// See DeleteSecurityProfile for details on how to use this API operation.
3792//
3793// The context must be non-nil and will be used for request cancellation. If
3794// the context is nil a panic will occur. In the future the SDK may create
3795// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3796// for more information on using Contexts.
3797func (c *IoT) DeleteSecurityProfileWithContext(ctx aws.Context, input *DeleteSecurityProfileInput, opts ...request.Option) (*DeleteSecurityProfileOutput, error) {
3798	req, out := c.DeleteSecurityProfileRequest(input)
3799	req.SetContext(ctx)
3800	req.ApplyOptions(opts...)
3801	return out, req.Send()
3802}
3803
3804const opDeleteStream = "DeleteStream"
3805
3806// DeleteStreamRequest generates a "aws/request.Request" representing the
3807// client's request for the DeleteStream operation. The "output" return
3808// value will be populated with the request's response once the request completes
3809// successfuly.
3810//
3811// Use "Send" method on the returned Request to send the API call to the service.
3812// the "output" return value is not valid until after Send returns without error.
3813//
3814// See DeleteStream for more information on using the DeleteStream
3815// API call, and error handling.
3816//
3817// This method is useful when you want to inject custom logic or configuration
3818// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3819//
3820//
3821//    // Example sending a request using the DeleteStreamRequest method.
3822//    req, resp := client.DeleteStreamRequest(params)
3823//
3824//    err := req.Send()
3825//    if err == nil { // resp is now filled
3826//        fmt.Println(resp)
3827//    }
3828func (c *IoT) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
3829	op := &request.Operation{
3830		Name:       opDeleteStream,
3831		HTTPMethod: "DELETE",
3832		HTTPPath:   "/streams/{streamId}",
3833	}
3834
3835	if input == nil {
3836		input = &DeleteStreamInput{}
3837	}
3838
3839	output = &DeleteStreamOutput{}
3840	req = c.newRequest(op, input, output)
3841	return
3842}
3843
3844// DeleteStream API operation for AWS IoT.
3845//
3846// Deletes a stream.
3847//
3848// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3849// with awserr.Error's Code and Message methods to get detailed information about
3850// the error.
3851//
3852// See the AWS API reference guide for AWS IoT's
3853// API operation DeleteStream for usage and error information.
3854//
3855// Returned Error Codes:
3856//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3857//   The specified resource does not exist.
3858//
3859//   * ErrCodeDeleteConflictException "DeleteConflictException"
3860//   You can't delete the resource because it is attached to one or more resources.
3861//
3862//   * ErrCodeInvalidRequestException "InvalidRequestException"
3863//   The request is not valid.
3864//
3865//   * ErrCodeThrottlingException "ThrottlingException"
3866//   The rate exceeds the limit.
3867//
3868//   * ErrCodeUnauthorizedException "UnauthorizedException"
3869//   You are not authorized to perform this operation.
3870//
3871//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3872//   The service is temporarily unavailable.
3873//
3874//   * ErrCodeInternalFailureException "InternalFailureException"
3875//   An unexpected error has occurred.
3876//
3877func (c *IoT) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
3878	req, out := c.DeleteStreamRequest(input)
3879	return out, req.Send()
3880}
3881
3882// DeleteStreamWithContext is the same as DeleteStream with the addition of
3883// the ability to pass a context and additional request options.
3884//
3885// See DeleteStream for details on how to use this API operation.
3886//
3887// The context must be non-nil and will be used for request cancellation. If
3888// the context is nil a panic will occur. In the future the SDK may create
3889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3890// for more information on using Contexts.
3891func (c *IoT) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
3892	req, out := c.DeleteStreamRequest(input)
3893	req.SetContext(ctx)
3894	req.ApplyOptions(opts...)
3895	return out, req.Send()
3896}
3897
3898const opDeleteThing = "DeleteThing"
3899
3900// DeleteThingRequest generates a "aws/request.Request" representing the
3901// client's request for the DeleteThing operation. The "output" return
3902// value will be populated with the request's response once the request completes
3903// successfuly.
3904//
3905// Use "Send" method on the returned Request to send the API call to the service.
3906// the "output" return value is not valid until after Send returns without error.
3907//
3908// See DeleteThing for more information on using the DeleteThing
3909// API call, and error handling.
3910//
3911// This method is useful when you want to inject custom logic or configuration
3912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3913//
3914//
3915//    // Example sending a request using the DeleteThingRequest method.
3916//    req, resp := client.DeleteThingRequest(params)
3917//
3918//    err := req.Send()
3919//    if err == nil { // resp is now filled
3920//        fmt.Println(resp)
3921//    }
3922func (c *IoT) DeleteThingRequest(input *DeleteThingInput) (req *request.Request, output *DeleteThingOutput) {
3923	op := &request.Operation{
3924		Name:       opDeleteThing,
3925		HTTPMethod: "DELETE",
3926		HTTPPath:   "/things/{thingName}",
3927	}
3928
3929	if input == nil {
3930		input = &DeleteThingInput{}
3931	}
3932
3933	output = &DeleteThingOutput{}
3934	req = c.newRequest(op, input, output)
3935	return
3936}
3937
3938// DeleteThing API operation for AWS IoT.
3939//
3940// Deletes the specified thing.
3941//
3942// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3943// with awserr.Error's Code and Message methods to get detailed information about
3944// the error.
3945//
3946// See the AWS API reference guide for AWS IoT's
3947// API operation DeleteThing for usage and error information.
3948//
3949// Returned Error Codes:
3950//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3951//   The specified resource does not exist.
3952//
3953//   * ErrCodeVersionConflictException "VersionConflictException"
3954//   An exception thrown when the version of an entity specified with the expectedVersion
3955//   parameter does not match the latest version in the system.
3956//
3957//   * ErrCodeInvalidRequestException "InvalidRequestException"
3958//   The request is not valid.
3959//
3960//   * ErrCodeThrottlingException "ThrottlingException"
3961//   The rate exceeds the limit.
3962//
3963//   * ErrCodeUnauthorizedException "UnauthorizedException"
3964//   You are not authorized to perform this operation.
3965//
3966//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3967//   The service is temporarily unavailable.
3968//
3969//   * ErrCodeInternalFailureException "InternalFailureException"
3970//   An unexpected error has occurred.
3971//
3972func (c *IoT) DeleteThing(input *DeleteThingInput) (*DeleteThingOutput, error) {
3973	req, out := c.DeleteThingRequest(input)
3974	return out, req.Send()
3975}
3976
3977// DeleteThingWithContext is the same as DeleteThing with the addition of
3978// the ability to pass a context and additional request options.
3979//
3980// See DeleteThing for details on how to use this API operation.
3981//
3982// The context must be non-nil and will be used for request cancellation. If
3983// the context is nil a panic will occur. In the future the SDK may create
3984// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3985// for more information on using Contexts.
3986func (c *IoT) DeleteThingWithContext(ctx aws.Context, input *DeleteThingInput, opts ...request.Option) (*DeleteThingOutput, error) {
3987	req, out := c.DeleteThingRequest(input)
3988	req.SetContext(ctx)
3989	req.ApplyOptions(opts...)
3990	return out, req.Send()
3991}
3992
3993const opDeleteThingGroup = "DeleteThingGroup"
3994
3995// DeleteThingGroupRequest generates a "aws/request.Request" representing the
3996// client's request for the DeleteThingGroup operation. The "output" return
3997// value will be populated with the request's response once the request completes
3998// successfuly.
3999//
4000// Use "Send" method on the returned Request to send the API call to the service.
4001// the "output" return value is not valid until after Send returns without error.
4002//
4003// See DeleteThingGroup for more information on using the DeleteThingGroup
4004// API call, and error handling.
4005//
4006// This method is useful when you want to inject custom logic or configuration
4007// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4008//
4009//
4010//    // Example sending a request using the DeleteThingGroupRequest method.
4011//    req, resp := client.DeleteThingGroupRequest(params)
4012//
4013//    err := req.Send()
4014//    if err == nil { // resp is now filled
4015//        fmt.Println(resp)
4016//    }
4017func (c *IoT) DeleteThingGroupRequest(input *DeleteThingGroupInput) (req *request.Request, output *DeleteThingGroupOutput) {
4018	op := &request.Operation{
4019		Name:       opDeleteThingGroup,
4020		HTTPMethod: "DELETE",
4021		HTTPPath:   "/thing-groups/{thingGroupName}",
4022	}
4023
4024	if input == nil {
4025		input = &DeleteThingGroupInput{}
4026	}
4027
4028	output = &DeleteThingGroupOutput{}
4029	req = c.newRequest(op, input, output)
4030	return
4031}
4032
4033// DeleteThingGroup API operation for AWS IoT.
4034//
4035// Deletes a thing group.
4036//
4037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4038// with awserr.Error's Code and Message methods to get detailed information about
4039// the error.
4040//
4041// See the AWS API reference guide for AWS IoT's
4042// API operation DeleteThingGroup for usage and error information.
4043//
4044// Returned Error Codes:
4045//   * ErrCodeInvalidRequestException "InvalidRequestException"
4046//   The request is not valid.
4047//
4048//   * ErrCodeVersionConflictException "VersionConflictException"
4049//   An exception thrown when the version of an entity specified with the expectedVersion
4050//   parameter does not match the latest version in the system.
4051//
4052//   * ErrCodeThrottlingException "ThrottlingException"
4053//   The rate exceeds the limit.
4054//
4055//   * ErrCodeInternalFailureException "InternalFailureException"
4056//   An unexpected error has occurred.
4057//
4058func (c *IoT) DeleteThingGroup(input *DeleteThingGroupInput) (*DeleteThingGroupOutput, error) {
4059	req, out := c.DeleteThingGroupRequest(input)
4060	return out, req.Send()
4061}
4062
4063// DeleteThingGroupWithContext is the same as DeleteThingGroup with the addition of
4064// the ability to pass a context and additional request options.
4065//
4066// See DeleteThingGroup for details on how to use this API operation.
4067//
4068// The context must be non-nil and will be used for request cancellation. If
4069// the context is nil a panic will occur. In the future the SDK may create
4070// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4071// for more information on using Contexts.
4072func (c *IoT) DeleteThingGroupWithContext(ctx aws.Context, input *DeleteThingGroupInput, opts ...request.Option) (*DeleteThingGroupOutput, error) {
4073	req, out := c.DeleteThingGroupRequest(input)
4074	req.SetContext(ctx)
4075	req.ApplyOptions(opts...)
4076	return out, req.Send()
4077}
4078
4079const opDeleteThingType = "DeleteThingType"
4080
4081// DeleteThingTypeRequest generates a "aws/request.Request" representing the
4082// client's request for the DeleteThingType operation. The "output" return
4083// value will be populated with the request's response once the request completes
4084// successfuly.
4085//
4086// Use "Send" method on the returned Request to send the API call to the service.
4087// the "output" return value is not valid until after Send returns without error.
4088//
4089// See DeleteThingType for more information on using the DeleteThingType
4090// API call, and error handling.
4091//
4092// This method is useful when you want to inject custom logic or configuration
4093// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4094//
4095//
4096//    // Example sending a request using the DeleteThingTypeRequest method.
4097//    req, resp := client.DeleteThingTypeRequest(params)
4098//
4099//    err := req.Send()
4100//    if err == nil { // resp is now filled
4101//        fmt.Println(resp)
4102//    }
4103func (c *IoT) DeleteThingTypeRequest(input *DeleteThingTypeInput) (req *request.Request, output *DeleteThingTypeOutput) {
4104	op := &request.Operation{
4105		Name:       opDeleteThingType,
4106		HTTPMethod: "DELETE",
4107		HTTPPath:   "/thing-types/{thingTypeName}",
4108	}
4109
4110	if input == nil {
4111		input = &DeleteThingTypeInput{}
4112	}
4113
4114	output = &DeleteThingTypeOutput{}
4115	req = c.newRequest(op, input, output)
4116	return
4117}
4118
4119// DeleteThingType API operation for AWS IoT.
4120//
4121// Deletes the specified thing type . You cannot delete a thing type if it has
4122// things associated with it. To delete a thing type, first mark it as deprecated
4123// by calling DeprecateThingType, then remove any associated things by calling
4124// UpdateThing to change the thing type on any associated thing, and finally
4125// use DeleteThingType to delete the thing type.
4126//
4127// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4128// with awserr.Error's Code and Message methods to get detailed information about
4129// the error.
4130//
4131// See the AWS API reference guide for AWS IoT's
4132// API operation DeleteThingType for usage and error information.
4133//
4134// Returned Error Codes:
4135//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4136//   The specified resource does not exist.
4137//
4138//   * ErrCodeInvalidRequestException "InvalidRequestException"
4139//   The request is not valid.
4140//
4141//   * ErrCodeThrottlingException "ThrottlingException"
4142//   The rate exceeds the limit.
4143//
4144//   * ErrCodeUnauthorizedException "UnauthorizedException"
4145//   You are not authorized to perform this operation.
4146//
4147//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4148//   The service is temporarily unavailable.
4149//
4150//   * ErrCodeInternalFailureException "InternalFailureException"
4151//   An unexpected error has occurred.
4152//
4153func (c *IoT) DeleteThingType(input *DeleteThingTypeInput) (*DeleteThingTypeOutput, error) {
4154	req, out := c.DeleteThingTypeRequest(input)
4155	return out, req.Send()
4156}
4157
4158// DeleteThingTypeWithContext is the same as DeleteThingType with the addition of
4159// the ability to pass a context and additional request options.
4160//
4161// See DeleteThingType for details on how to use this API operation.
4162//
4163// The context must be non-nil and will be used for request cancellation. If
4164// the context is nil a panic will occur. In the future the SDK may create
4165// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4166// for more information on using Contexts.
4167func (c *IoT) DeleteThingTypeWithContext(ctx aws.Context, input *DeleteThingTypeInput, opts ...request.Option) (*DeleteThingTypeOutput, error) {
4168	req, out := c.DeleteThingTypeRequest(input)
4169	req.SetContext(ctx)
4170	req.ApplyOptions(opts...)
4171	return out, req.Send()
4172}
4173
4174const opDeleteTopicRule = "DeleteTopicRule"
4175
4176// DeleteTopicRuleRequest generates a "aws/request.Request" representing the
4177// client's request for the DeleteTopicRule operation. The "output" return
4178// value will be populated with the request's response once the request completes
4179// successfuly.
4180//
4181// Use "Send" method on the returned Request to send the API call to the service.
4182// the "output" return value is not valid until after Send returns without error.
4183//
4184// See DeleteTopicRule for more information on using the DeleteTopicRule
4185// API call, and error handling.
4186//
4187// This method is useful when you want to inject custom logic or configuration
4188// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4189//
4190//
4191//    // Example sending a request using the DeleteTopicRuleRequest method.
4192//    req, resp := client.DeleteTopicRuleRequest(params)
4193//
4194//    err := req.Send()
4195//    if err == nil { // resp is now filled
4196//        fmt.Println(resp)
4197//    }
4198func (c *IoT) DeleteTopicRuleRequest(input *DeleteTopicRuleInput) (req *request.Request, output *DeleteTopicRuleOutput) {
4199	op := &request.Operation{
4200		Name:       opDeleteTopicRule,
4201		HTTPMethod: "DELETE",
4202		HTTPPath:   "/rules/{ruleName}",
4203	}
4204
4205	if input == nil {
4206		input = &DeleteTopicRuleInput{}
4207	}
4208
4209	output = &DeleteTopicRuleOutput{}
4210	req = c.newRequest(op, input, output)
4211	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
4212	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4213	return
4214}
4215
4216// DeleteTopicRule API operation for AWS IoT.
4217//
4218// Deletes the rule.
4219//
4220// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4221// with awserr.Error's Code and Message methods to get detailed information about
4222// the error.
4223//
4224// See the AWS API reference guide for AWS IoT's
4225// API operation DeleteTopicRule for usage and error information.
4226//
4227// Returned Error Codes:
4228//   * ErrCodeInternalException "InternalException"
4229//   An unexpected error has occurred.
4230//
4231//   * ErrCodeInvalidRequestException "InvalidRequestException"
4232//   The request is not valid.
4233//
4234//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4235//   The service is temporarily unavailable.
4236//
4237//   * ErrCodeUnauthorizedException "UnauthorizedException"
4238//   You are not authorized to perform this operation.
4239//
4240func (c *IoT) DeleteTopicRule(input *DeleteTopicRuleInput) (*DeleteTopicRuleOutput, error) {
4241	req, out := c.DeleteTopicRuleRequest(input)
4242	return out, req.Send()
4243}
4244
4245// DeleteTopicRuleWithContext is the same as DeleteTopicRule with the addition of
4246// the ability to pass a context and additional request options.
4247//
4248// See DeleteTopicRule for details on how to use this API operation.
4249//
4250// The context must be non-nil and will be used for request cancellation. If
4251// the context is nil a panic will occur. In the future the SDK may create
4252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4253// for more information on using Contexts.
4254func (c *IoT) DeleteTopicRuleWithContext(ctx aws.Context, input *DeleteTopicRuleInput, opts ...request.Option) (*DeleteTopicRuleOutput, error) {
4255	req, out := c.DeleteTopicRuleRequest(input)
4256	req.SetContext(ctx)
4257	req.ApplyOptions(opts...)
4258	return out, req.Send()
4259}
4260
4261const opDeleteV2LoggingLevel = "DeleteV2LoggingLevel"
4262
4263// DeleteV2LoggingLevelRequest generates a "aws/request.Request" representing the
4264// client's request for the DeleteV2LoggingLevel operation. The "output" return
4265// value will be populated with the request's response once the request completes
4266// successfuly.
4267//
4268// Use "Send" method on the returned Request to send the API call to the service.
4269// the "output" return value is not valid until after Send returns without error.
4270//
4271// See DeleteV2LoggingLevel for more information on using the DeleteV2LoggingLevel
4272// API call, and error handling.
4273//
4274// This method is useful when you want to inject custom logic or configuration
4275// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4276//
4277//
4278//    // Example sending a request using the DeleteV2LoggingLevelRequest method.
4279//    req, resp := client.DeleteV2LoggingLevelRequest(params)
4280//
4281//    err := req.Send()
4282//    if err == nil { // resp is now filled
4283//        fmt.Println(resp)
4284//    }
4285func (c *IoT) DeleteV2LoggingLevelRequest(input *DeleteV2LoggingLevelInput) (req *request.Request, output *DeleteV2LoggingLevelOutput) {
4286	op := &request.Operation{
4287		Name:       opDeleteV2LoggingLevel,
4288		HTTPMethod: "DELETE",
4289		HTTPPath:   "/v2LoggingLevel",
4290	}
4291
4292	if input == nil {
4293		input = &DeleteV2LoggingLevelInput{}
4294	}
4295
4296	output = &DeleteV2LoggingLevelOutput{}
4297	req = c.newRequest(op, input, output)
4298	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
4299	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4300	return
4301}
4302
4303// DeleteV2LoggingLevel API operation for AWS IoT.
4304//
4305// Deletes a logging level.
4306//
4307// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4308// with awserr.Error's Code and Message methods to get detailed information about
4309// the error.
4310//
4311// See the AWS API reference guide for AWS IoT's
4312// API operation DeleteV2LoggingLevel for usage and error information.
4313//
4314// Returned Error Codes:
4315//   * ErrCodeInternalException "InternalException"
4316//   An unexpected error has occurred.
4317//
4318//   * ErrCodeInvalidRequestException "InvalidRequestException"
4319//   The request is not valid.
4320//
4321//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4322//   The service is temporarily unavailable.
4323//
4324func (c *IoT) DeleteV2LoggingLevel(input *DeleteV2LoggingLevelInput) (*DeleteV2LoggingLevelOutput, error) {
4325	req, out := c.DeleteV2LoggingLevelRequest(input)
4326	return out, req.Send()
4327}
4328
4329// DeleteV2LoggingLevelWithContext is the same as DeleteV2LoggingLevel with the addition of
4330// the ability to pass a context and additional request options.
4331//
4332// See DeleteV2LoggingLevel for details on how to use this API operation.
4333//
4334// The context must be non-nil and will be used for request cancellation. If
4335// the context is nil a panic will occur. In the future the SDK may create
4336// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4337// for more information on using Contexts.
4338func (c *IoT) DeleteV2LoggingLevelWithContext(ctx aws.Context, input *DeleteV2LoggingLevelInput, opts ...request.Option) (*DeleteV2LoggingLevelOutput, error) {
4339	req, out := c.DeleteV2LoggingLevelRequest(input)
4340	req.SetContext(ctx)
4341	req.ApplyOptions(opts...)
4342	return out, req.Send()
4343}
4344
4345const opDeprecateThingType = "DeprecateThingType"
4346
4347// DeprecateThingTypeRequest generates a "aws/request.Request" representing the
4348// client's request for the DeprecateThingType operation. The "output" return
4349// value will be populated with the request's response once the request completes
4350// successfuly.
4351//
4352// Use "Send" method on the returned Request to send the API call to the service.
4353// the "output" return value is not valid until after Send returns without error.
4354//
4355// See DeprecateThingType for more information on using the DeprecateThingType
4356// API call, and error handling.
4357//
4358// This method is useful when you want to inject custom logic or configuration
4359// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4360//
4361//
4362//    // Example sending a request using the DeprecateThingTypeRequest method.
4363//    req, resp := client.DeprecateThingTypeRequest(params)
4364//
4365//    err := req.Send()
4366//    if err == nil { // resp is now filled
4367//        fmt.Println(resp)
4368//    }
4369func (c *IoT) DeprecateThingTypeRequest(input *DeprecateThingTypeInput) (req *request.Request, output *DeprecateThingTypeOutput) {
4370	op := &request.Operation{
4371		Name:       opDeprecateThingType,
4372		HTTPMethod: "POST",
4373		HTTPPath:   "/thing-types/{thingTypeName}/deprecate",
4374	}
4375
4376	if input == nil {
4377		input = &DeprecateThingTypeInput{}
4378	}
4379
4380	output = &DeprecateThingTypeOutput{}
4381	req = c.newRequest(op, input, output)
4382	return
4383}
4384
4385// DeprecateThingType API operation for AWS IoT.
4386//
4387// Deprecates a thing type. You can not associate new things with deprecated
4388// thing type.
4389//
4390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4391// with awserr.Error's Code and Message methods to get detailed information about
4392// the error.
4393//
4394// See the AWS API reference guide for AWS IoT's
4395// API operation DeprecateThingType for usage and error information.
4396//
4397// Returned Error Codes:
4398//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4399//   The specified resource does not exist.
4400//
4401//   * ErrCodeInvalidRequestException "InvalidRequestException"
4402//   The request is not valid.
4403//
4404//   * ErrCodeThrottlingException "ThrottlingException"
4405//   The rate exceeds the limit.
4406//
4407//   * ErrCodeUnauthorizedException "UnauthorizedException"
4408//   You are not authorized to perform this operation.
4409//
4410//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4411//   The service is temporarily unavailable.
4412//
4413//   * ErrCodeInternalFailureException "InternalFailureException"
4414//   An unexpected error has occurred.
4415//
4416func (c *IoT) DeprecateThingType(input *DeprecateThingTypeInput) (*DeprecateThingTypeOutput, error) {
4417	req, out := c.DeprecateThingTypeRequest(input)
4418	return out, req.Send()
4419}
4420
4421// DeprecateThingTypeWithContext is the same as DeprecateThingType with the addition of
4422// the ability to pass a context and additional request options.
4423//
4424// See DeprecateThingType for details on how to use this API operation.
4425//
4426// The context must be non-nil and will be used for request cancellation. If
4427// the context is nil a panic will occur. In the future the SDK may create
4428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4429// for more information on using Contexts.
4430func (c *IoT) DeprecateThingTypeWithContext(ctx aws.Context, input *DeprecateThingTypeInput, opts ...request.Option) (*DeprecateThingTypeOutput, error) {
4431	req, out := c.DeprecateThingTypeRequest(input)
4432	req.SetContext(ctx)
4433	req.ApplyOptions(opts...)
4434	return out, req.Send()
4435}
4436
4437const opDescribeAccountAuditConfiguration = "DescribeAccountAuditConfiguration"
4438
4439// DescribeAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
4440// client's request for the DescribeAccountAuditConfiguration operation. The "output" return
4441// value will be populated with the request's response once the request completes
4442// successfuly.
4443//
4444// Use "Send" method on the returned Request to send the API call to the service.
4445// the "output" return value is not valid until after Send returns without error.
4446//
4447// See DescribeAccountAuditConfiguration for more information on using the DescribeAccountAuditConfiguration
4448// API call, and error handling.
4449//
4450// This method is useful when you want to inject custom logic or configuration
4451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4452//
4453//
4454//    // Example sending a request using the DescribeAccountAuditConfigurationRequest method.
4455//    req, resp := client.DescribeAccountAuditConfigurationRequest(params)
4456//
4457//    err := req.Send()
4458//    if err == nil { // resp is now filled
4459//        fmt.Println(resp)
4460//    }
4461func (c *IoT) DescribeAccountAuditConfigurationRequest(input *DescribeAccountAuditConfigurationInput) (req *request.Request, output *DescribeAccountAuditConfigurationOutput) {
4462	op := &request.Operation{
4463		Name:       opDescribeAccountAuditConfiguration,
4464		HTTPMethod: "GET",
4465		HTTPPath:   "/audit/configuration",
4466	}
4467
4468	if input == nil {
4469		input = &DescribeAccountAuditConfigurationInput{}
4470	}
4471
4472	output = &DescribeAccountAuditConfigurationOutput{}
4473	req = c.newRequest(op, input, output)
4474	return
4475}
4476
4477// DescribeAccountAuditConfiguration API operation for AWS IoT.
4478//
4479// Gets information about the Device Defender audit settings for this account.
4480// Settings include how audit notifications are sent and which audit checks
4481// are enabled or disabled.
4482//
4483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4484// with awserr.Error's Code and Message methods to get detailed information about
4485// the error.
4486//
4487// See the AWS API reference guide for AWS IoT's
4488// API operation DescribeAccountAuditConfiguration for usage and error information.
4489//
4490// Returned Error Codes:
4491//   * ErrCodeThrottlingException "ThrottlingException"
4492//   The rate exceeds the limit.
4493//
4494//   * ErrCodeInternalFailureException "InternalFailureException"
4495//   An unexpected error has occurred.
4496//
4497func (c *IoT) DescribeAccountAuditConfiguration(input *DescribeAccountAuditConfigurationInput) (*DescribeAccountAuditConfigurationOutput, error) {
4498	req, out := c.DescribeAccountAuditConfigurationRequest(input)
4499	return out, req.Send()
4500}
4501
4502// DescribeAccountAuditConfigurationWithContext is the same as DescribeAccountAuditConfiguration with the addition of
4503// the ability to pass a context and additional request options.
4504//
4505// See DescribeAccountAuditConfiguration for details on how to use this API operation.
4506//
4507// The context must be non-nil and will be used for request cancellation. If
4508// the context is nil a panic will occur. In the future the SDK may create
4509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4510// for more information on using Contexts.
4511func (c *IoT) DescribeAccountAuditConfigurationWithContext(ctx aws.Context, input *DescribeAccountAuditConfigurationInput, opts ...request.Option) (*DescribeAccountAuditConfigurationOutput, error) {
4512	req, out := c.DescribeAccountAuditConfigurationRequest(input)
4513	req.SetContext(ctx)
4514	req.ApplyOptions(opts...)
4515	return out, req.Send()
4516}
4517
4518const opDescribeAuditTask = "DescribeAuditTask"
4519
4520// DescribeAuditTaskRequest generates a "aws/request.Request" representing the
4521// client's request for the DescribeAuditTask operation. The "output" return
4522// value will be populated with the request's response once the request completes
4523// successfuly.
4524//
4525// Use "Send" method on the returned Request to send the API call to the service.
4526// the "output" return value is not valid until after Send returns without error.
4527//
4528// See DescribeAuditTask for more information on using the DescribeAuditTask
4529// API call, and error handling.
4530//
4531// This method is useful when you want to inject custom logic or configuration
4532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4533//
4534//
4535//    // Example sending a request using the DescribeAuditTaskRequest method.
4536//    req, resp := client.DescribeAuditTaskRequest(params)
4537//
4538//    err := req.Send()
4539//    if err == nil { // resp is now filled
4540//        fmt.Println(resp)
4541//    }
4542func (c *IoT) DescribeAuditTaskRequest(input *DescribeAuditTaskInput) (req *request.Request, output *DescribeAuditTaskOutput) {
4543	op := &request.Operation{
4544		Name:       opDescribeAuditTask,
4545		HTTPMethod: "GET",
4546		HTTPPath:   "/audit/tasks/{taskId}",
4547	}
4548
4549	if input == nil {
4550		input = &DescribeAuditTaskInput{}
4551	}
4552
4553	output = &DescribeAuditTaskOutput{}
4554	req = c.newRequest(op, input, output)
4555	return
4556}
4557
4558// DescribeAuditTask API operation for AWS IoT.
4559//
4560// Gets information about a Device Defender audit.
4561//
4562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4563// with awserr.Error's Code and Message methods to get detailed information about
4564// the error.
4565//
4566// See the AWS API reference guide for AWS IoT's
4567// API operation DescribeAuditTask for usage and error information.
4568//
4569// Returned Error Codes:
4570//   * ErrCodeInvalidRequestException "InvalidRequestException"
4571//   The request is not valid.
4572//
4573//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4574//   The specified resource does not exist.
4575//
4576//   * ErrCodeThrottlingException "ThrottlingException"
4577//   The rate exceeds the limit.
4578//
4579//   * ErrCodeInternalFailureException "InternalFailureException"
4580//   An unexpected error has occurred.
4581//
4582func (c *IoT) DescribeAuditTask(input *DescribeAuditTaskInput) (*DescribeAuditTaskOutput, error) {
4583	req, out := c.DescribeAuditTaskRequest(input)
4584	return out, req.Send()
4585}
4586
4587// DescribeAuditTaskWithContext is the same as DescribeAuditTask with the addition of
4588// the ability to pass a context and additional request options.
4589//
4590// See DescribeAuditTask for details on how to use this API operation.
4591//
4592// The context must be non-nil and will be used for request cancellation. If
4593// the context is nil a panic will occur. In the future the SDK may create
4594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4595// for more information on using Contexts.
4596func (c *IoT) DescribeAuditTaskWithContext(ctx aws.Context, input *DescribeAuditTaskInput, opts ...request.Option) (*DescribeAuditTaskOutput, error) {
4597	req, out := c.DescribeAuditTaskRequest(input)
4598	req.SetContext(ctx)
4599	req.ApplyOptions(opts...)
4600	return out, req.Send()
4601}
4602
4603const opDescribeAuthorizer = "DescribeAuthorizer"
4604
4605// DescribeAuthorizerRequest generates a "aws/request.Request" representing the
4606// client's request for the DescribeAuthorizer operation. The "output" return
4607// value will be populated with the request's response once the request completes
4608// successfuly.
4609//
4610// Use "Send" method on the returned Request to send the API call to the service.
4611// the "output" return value is not valid until after Send returns without error.
4612//
4613// See DescribeAuthorizer for more information on using the DescribeAuthorizer
4614// API call, and error handling.
4615//
4616// This method is useful when you want to inject custom logic or configuration
4617// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4618//
4619//
4620//    // Example sending a request using the DescribeAuthorizerRequest method.
4621//    req, resp := client.DescribeAuthorizerRequest(params)
4622//
4623//    err := req.Send()
4624//    if err == nil { // resp is now filled
4625//        fmt.Println(resp)
4626//    }
4627func (c *IoT) DescribeAuthorizerRequest(input *DescribeAuthorizerInput) (req *request.Request, output *DescribeAuthorizerOutput) {
4628	op := &request.Operation{
4629		Name:       opDescribeAuthorizer,
4630		HTTPMethod: "GET",
4631		HTTPPath:   "/authorizer/{authorizerName}",
4632	}
4633
4634	if input == nil {
4635		input = &DescribeAuthorizerInput{}
4636	}
4637
4638	output = &DescribeAuthorizerOutput{}
4639	req = c.newRequest(op, input, output)
4640	return
4641}
4642
4643// DescribeAuthorizer API operation for AWS IoT.
4644//
4645// Describes an authorizer.
4646//
4647// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4648// with awserr.Error's Code and Message methods to get detailed information about
4649// the error.
4650//
4651// See the AWS API reference guide for AWS IoT's
4652// API operation DescribeAuthorizer for usage and error information.
4653//
4654// Returned Error Codes:
4655//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4656//   The specified resource does not exist.
4657//
4658//   * ErrCodeInvalidRequestException "InvalidRequestException"
4659//   The request is not valid.
4660//
4661//   * ErrCodeThrottlingException "ThrottlingException"
4662//   The rate exceeds the limit.
4663//
4664//   * ErrCodeUnauthorizedException "UnauthorizedException"
4665//   You are not authorized to perform this operation.
4666//
4667//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4668//   The service is temporarily unavailable.
4669//
4670//   * ErrCodeInternalFailureException "InternalFailureException"
4671//   An unexpected error has occurred.
4672//
4673func (c *IoT) DescribeAuthorizer(input *DescribeAuthorizerInput) (*DescribeAuthorizerOutput, error) {
4674	req, out := c.DescribeAuthorizerRequest(input)
4675	return out, req.Send()
4676}
4677
4678// DescribeAuthorizerWithContext is the same as DescribeAuthorizer with the addition of
4679// the ability to pass a context and additional request options.
4680//
4681// See DescribeAuthorizer for details on how to use this API operation.
4682//
4683// The context must be non-nil and will be used for request cancellation. If
4684// the context is nil a panic will occur. In the future the SDK may create
4685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4686// for more information on using Contexts.
4687func (c *IoT) DescribeAuthorizerWithContext(ctx aws.Context, input *DescribeAuthorizerInput, opts ...request.Option) (*DescribeAuthorizerOutput, error) {
4688	req, out := c.DescribeAuthorizerRequest(input)
4689	req.SetContext(ctx)
4690	req.ApplyOptions(opts...)
4691	return out, req.Send()
4692}
4693
4694const opDescribeCACertificate = "DescribeCACertificate"
4695
4696// DescribeCACertificateRequest generates a "aws/request.Request" representing the
4697// client's request for the DescribeCACertificate operation. The "output" return
4698// value will be populated with the request's response once the request completes
4699// successfuly.
4700//
4701// Use "Send" method on the returned Request to send the API call to the service.
4702// the "output" return value is not valid until after Send returns without error.
4703//
4704// See DescribeCACertificate for more information on using the DescribeCACertificate
4705// API call, and error handling.
4706//
4707// This method is useful when you want to inject custom logic or configuration
4708// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4709//
4710//
4711//    // Example sending a request using the DescribeCACertificateRequest method.
4712//    req, resp := client.DescribeCACertificateRequest(params)
4713//
4714//    err := req.Send()
4715//    if err == nil { // resp is now filled
4716//        fmt.Println(resp)
4717//    }
4718func (c *IoT) DescribeCACertificateRequest(input *DescribeCACertificateInput) (req *request.Request, output *DescribeCACertificateOutput) {
4719	op := &request.Operation{
4720		Name:       opDescribeCACertificate,
4721		HTTPMethod: "GET",
4722		HTTPPath:   "/cacertificate/{caCertificateId}",
4723	}
4724
4725	if input == nil {
4726		input = &DescribeCACertificateInput{}
4727	}
4728
4729	output = &DescribeCACertificateOutput{}
4730	req = c.newRequest(op, input, output)
4731	return
4732}
4733
4734// DescribeCACertificate API operation for AWS IoT.
4735//
4736// Describes a registered CA certificate.
4737//
4738// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4739// with awserr.Error's Code and Message methods to get detailed information about
4740// the error.
4741//
4742// See the AWS API reference guide for AWS IoT's
4743// API operation DescribeCACertificate for usage and error information.
4744//
4745// Returned Error Codes:
4746//   * ErrCodeInvalidRequestException "InvalidRequestException"
4747//   The request is not valid.
4748//
4749//   * ErrCodeThrottlingException "ThrottlingException"
4750//   The rate exceeds the limit.
4751//
4752//   * ErrCodeUnauthorizedException "UnauthorizedException"
4753//   You are not authorized to perform this operation.
4754//
4755//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4756//   The service is temporarily unavailable.
4757//
4758//   * ErrCodeInternalFailureException "InternalFailureException"
4759//   An unexpected error has occurred.
4760//
4761//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4762//   The specified resource does not exist.
4763//
4764func (c *IoT) DescribeCACertificate(input *DescribeCACertificateInput) (*DescribeCACertificateOutput, error) {
4765	req, out := c.DescribeCACertificateRequest(input)
4766	return out, req.Send()
4767}
4768
4769// DescribeCACertificateWithContext is the same as DescribeCACertificate with the addition of
4770// the ability to pass a context and additional request options.
4771//
4772// See DescribeCACertificate for details on how to use this API operation.
4773//
4774// The context must be non-nil and will be used for request cancellation. If
4775// the context is nil a panic will occur. In the future the SDK may create
4776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4777// for more information on using Contexts.
4778func (c *IoT) DescribeCACertificateWithContext(ctx aws.Context, input *DescribeCACertificateInput, opts ...request.Option) (*DescribeCACertificateOutput, error) {
4779	req, out := c.DescribeCACertificateRequest(input)
4780	req.SetContext(ctx)
4781	req.ApplyOptions(opts...)
4782	return out, req.Send()
4783}
4784
4785const opDescribeCertificate = "DescribeCertificate"
4786
4787// DescribeCertificateRequest generates a "aws/request.Request" representing the
4788// client's request for the DescribeCertificate operation. The "output" return
4789// value will be populated with the request's response once the request completes
4790// successfuly.
4791//
4792// Use "Send" method on the returned Request to send the API call to the service.
4793// the "output" return value is not valid until after Send returns without error.
4794//
4795// See DescribeCertificate for more information on using the DescribeCertificate
4796// API call, and error handling.
4797//
4798// This method is useful when you want to inject custom logic or configuration
4799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4800//
4801//
4802//    // Example sending a request using the DescribeCertificateRequest method.
4803//    req, resp := client.DescribeCertificateRequest(params)
4804//
4805//    err := req.Send()
4806//    if err == nil { // resp is now filled
4807//        fmt.Println(resp)
4808//    }
4809func (c *IoT) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
4810	op := &request.Operation{
4811		Name:       opDescribeCertificate,
4812		HTTPMethod: "GET",
4813		HTTPPath:   "/certificates/{certificateId}",
4814	}
4815
4816	if input == nil {
4817		input = &DescribeCertificateInput{}
4818	}
4819
4820	output = &DescribeCertificateOutput{}
4821	req = c.newRequest(op, input, output)
4822	return
4823}
4824
4825// DescribeCertificate API operation for AWS IoT.
4826//
4827// Gets information about the specified certificate.
4828//
4829// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4830// with awserr.Error's Code and Message methods to get detailed information about
4831// the error.
4832//
4833// See the AWS API reference guide for AWS IoT's
4834// API operation DescribeCertificate for usage and error information.
4835//
4836// Returned Error Codes:
4837//   * ErrCodeInvalidRequestException "InvalidRequestException"
4838//   The request is not valid.
4839//
4840//   * ErrCodeThrottlingException "ThrottlingException"
4841//   The rate exceeds the limit.
4842//
4843//   * ErrCodeUnauthorizedException "UnauthorizedException"
4844//   You are not authorized to perform this operation.
4845//
4846//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4847//   The service is temporarily unavailable.
4848//
4849//   * ErrCodeInternalFailureException "InternalFailureException"
4850//   An unexpected error has occurred.
4851//
4852//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4853//   The specified resource does not exist.
4854//
4855func (c *IoT) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
4856	req, out := c.DescribeCertificateRequest(input)
4857	return out, req.Send()
4858}
4859
4860// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
4861// the ability to pass a context and additional request options.
4862//
4863// See DescribeCertificate for details on how to use this API operation.
4864//
4865// The context must be non-nil and will be used for request cancellation. If
4866// the context is nil a panic will occur. In the future the SDK may create
4867// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4868// for more information on using Contexts.
4869func (c *IoT) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
4870	req, out := c.DescribeCertificateRequest(input)
4871	req.SetContext(ctx)
4872	req.ApplyOptions(opts...)
4873	return out, req.Send()
4874}
4875
4876const opDescribeDefaultAuthorizer = "DescribeDefaultAuthorizer"
4877
4878// DescribeDefaultAuthorizerRequest generates a "aws/request.Request" representing the
4879// client's request for the DescribeDefaultAuthorizer operation. The "output" return
4880// value will be populated with the request's response once the request completes
4881// successfuly.
4882//
4883// Use "Send" method on the returned Request to send the API call to the service.
4884// the "output" return value is not valid until after Send returns without error.
4885//
4886// See DescribeDefaultAuthorizer for more information on using the DescribeDefaultAuthorizer
4887// API call, and error handling.
4888//
4889// This method is useful when you want to inject custom logic or configuration
4890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4891//
4892//
4893//    // Example sending a request using the DescribeDefaultAuthorizerRequest method.
4894//    req, resp := client.DescribeDefaultAuthorizerRequest(params)
4895//
4896//    err := req.Send()
4897//    if err == nil { // resp is now filled
4898//        fmt.Println(resp)
4899//    }
4900func (c *IoT) DescribeDefaultAuthorizerRequest(input *DescribeDefaultAuthorizerInput) (req *request.Request, output *DescribeDefaultAuthorizerOutput) {
4901	op := &request.Operation{
4902		Name:       opDescribeDefaultAuthorizer,
4903		HTTPMethod: "GET",
4904		HTTPPath:   "/default-authorizer",
4905	}
4906
4907	if input == nil {
4908		input = &DescribeDefaultAuthorizerInput{}
4909	}
4910
4911	output = &DescribeDefaultAuthorizerOutput{}
4912	req = c.newRequest(op, input, output)
4913	return
4914}
4915
4916// DescribeDefaultAuthorizer API operation for AWS IoT.
4917//
4918// Describes the default authorizer.
4919//
4920// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4921// with awserr.Error's Code and Message methods to get detailed information about
4922// the error.
4923//
4924// See the AWS API reference guide for AWS IoT's
4925// API operation DescribeDefaultAuthorizer for usage and error information.
4926//
4927// Returned Error Codes:
4928//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4929//   The specified resource does not exist.
4930//
4931//   * ErrCodeInvalidRequestException "InvalidRequestException"
4932//   The request is not valid.
4933//
4934//   * ErrCodeThrottlingException "ThrottlingException"
4935//   The rate exceeds the limit.
4936//
4937//   * ErrCodeUnauthorizedException "UnauthorizedException"
4938//   You are not authorized to perform this operation.
4939//
4940//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
4941//   The service is temporarily unavailable.
4942//
4943//   * ErrCodeInternalFailureException "InternalFailureException"
4944//   An unexpected error has occurred.
4945//
4946func (c *IoT) DescribeDefaultAuthorizer(input *DescribeDefaultAuthorizerInput) (*DescribeDefaultAuthorizerOutput, error) {
4947	req, out := c.DescribeDefaultAuthorizerRequest(input)
4948	return out, req.Send()
4949}
4950
4951// DescribeDefaultAuthorizerWithContext is the same as DescribeDefaultAuthorizer with the addition of
4952// the ability to pass a context and additional request options.
4953//
4954// See DescribeDefaultAuthorizer for details on how to use this API operation.
4955//
4956// The context must be non-nil and will be used for request cancellation. If
4957// the context is nil a panic will occur. In the future the SDK may create
4958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4959// for more information on using Contexts.
4960func (c *IoT) DescribeDefaultAuthorizerWithContext(ctx aws.Context, input *DescribeDefaultAuthorizerInput, opts ...request.Option) (*DescribeDefaultAuthorizerOutput, error) {
4961	req, out := c.DescribeDefaultAuthorizerRequest(input)
4962	req.SetContext(ctx)
4963	req.ApplyOptions(opts...)
4964	return out, req.Send()
4965}
4966
4967const opDescribeEndpoint = "DescribeEndpoint"
4968
4969// DescribeEndpointRequest generates a "aws/request.Request" representing the
4970// client's request for the DescribeEndpoint operation. The "output" return
4971// value will be populated with the request's response once the request completes
4972// successfuly.
4973//
4974// Use "Send" method on the returned Request to send the API call to the service.
4975// the "output" return value is not valid until after Send returns without error.
4976//
4977// See DescribeEndpoint for more information on using the DescribeEndpoint
4978// API call, and error handling.
4979//
4980// This method is useful when you want to inject custom logic or configuration
4981// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4982//
4983//
4984//    // Example sending a request using the DescribeEndpointRequest method.
4985//    req, resp := client.DescribeEndpointRequest(params)
4986//
4987//    err := req.Send()
4988//    if err == nil { // resp is now filled
4989//        fmt.Println(resp)
4990//    }
4991func (c *IoT) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
4992	op := &request.Operation{
4993		Name:       opDescribeEndpoint,
4994		HTTPMethod: "GET",
4995		HTTPPath:   "/endpoint",
4996	}
4997
4998	if input == nil {
4999		input = &DescribeEndpointInput{}
5000	}
5001
5002	output = &DescribeEndpointOutput{}
5003	req = c.newRequest(op, input, output)
5004	return
5005}
5006
5007// DescribeEndpoint API operation for AWS IoT.
5008//
5009// Returns a unique endpoint specific to the AWS account making the call.
5010//
5011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5012// with awserr.Error's Code and Message methods to get detailed information about
5013// the error.
5014//
5015// See the AWS API reference guide for AWS IoT's
5016// API operation DescribeEndpoint for usage and error information.
5017//
5018// Returned Error Codes:
5019//   * ErrCodeInternalFailureException "InternalFailureException"
5020//   An unexpected error has occurred.
5021//
5022//   * ErrCodeInvalidRequestException "InvalidRequestException"
5023//   The request is not valid.
5024//
5025//   * ErrCodeUnauthorizedException "UnauthorizedException"
5026//   You are not authorized to perform this operation.
5027//
5028//   * ErrCodeThrottlingException "ThrottlingException"
5029//   The rate exceeds the limit.
5030//
5031func (c *IoT) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
5032	req, out := c.DescribeEndpointRequest(input)
5033	return out, req.Send()
5034}
5035
5036// DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
5037// the ability to pass a context and additional request options.
5038//
5039// See DescribeEndpoint for details on how to use this API operation.
5040//
5041// The context must be non-nil and will be used for request cancellation. If
5042// the context is nil a panic will occur. In the future the SDK may create
5043// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5044// for more information on using Contexts.
5045func (c *IoT) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
5046	req, out := c.DescribeEndpointRequest(input)
5047	req.SetContext(ctx)
5048	req.ApplyOptions(opts...)
5049	return out, req.Send()
5050}
5051
5052const opDescribeEventConfigurations = "DescribeEventConfigurations"
5053
5054// DescribeEventConfigurationsRequest generates a "aws/request.Request" representing the
5055// client's request for the DescribeEventConfigurations operation. The "output" return
5056// value will be populated with the request's response once the request completes
5057// successfuly.
5058//
5059// Use "Send" method on the returned Request to send the API call to the service.
5060// the "output" return value is not valid until after Send returns without error.
5061//
5062// See DescribeEventConfigurations for more information on using the DescribeEventConfigurations
5063// API call, and error handling.
5064//
5065// This method is useful when you want to inject custom logic or configuration
5066// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5067//
5068//
5069//    // Example sending a request using the DescribeEventConfigurationsRequest method.
5070//    req, resp := client.DescribeEventConfigurationsRequest(params)
5071//
5072//    err := req.Send()
5073//    if err == nil { // resp is now filled
5074//        fmt.Println(resp)
5075//    }
5076func (c *IoT) DescribeEventConfigurationsRequest(input *DescribeEventConfigurationsInput) (req *request.Request, output *DescribeEventConfigurationsOutput) {
5077	op := &request.Operation{
5078		Name:       opDescribeEventConfigurations,
5079		HTTPMethod: "GET",
5080		HTTPPath:   "/event-configurations",
5081	}
5082
5083	if input == nil {
5084		input = &DescribeEventConfigurationsInput{}
5085	}
5086
5087	output = &DescribeEventConfigurationsOutput{}
5088	req = c.newRequest(op, input, output)
5089	return
5090}
5091
5092// DescribeEventConfigurations API operation for AWS IoT.
5093//
5094// Describes event configurations.
5095//
5096// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5097// with awserr.Error's Code and Message methods to get detailed information about
5098// the error.
5099//
5100// See the AWS API reference guide for AWS IoT's
5101// API operation DescribeEventConfigurations for usage and error information.
5102//
5103// Returned Error Codes:
5104//   * ErrCodeInternalFailureException "InternalFailureException"
5105//   An unexpected error has occurred.
5106//
5107//   * ErrCodeThrottlingException "ThrottlingException"
5108//   The rate exceeds the limit.
5109//
5110func (c *IoT) DescribeEventConfigurations(input *DescribeEventConfigurationsInput) (*DescribeEventConfigurationsOutput, error) {
5111	req, out := c.DescribeEventConfigurationsRequest(input)
5112	return out, req.Send()
5113}
5114
5115// DescribeEventConfigurationsWithContext is the same as DescribeEventConfigurations with the addition of
5116// the ability to pass a context and additional request options.
5117//
5118// See DescribeEventConfigurations for details on how to use this API operation.
5119//
5120// The context must be non-nil and will be used for request cancellation. If
5121// the context is nil a panic will occur. In the future the SDK may create
5122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5123// for more information on using Contexts.
5124func (c *IoT) DescribeEventConfigurationsWithContext(ctx aws.Context, input *DescribeEventConfigurationsInput, opts ...request.Option) (*DescribeEventConfigurationsOutput, error) {
5125	req, out := c.DescribeEventConfigurationsRequest(input)
5126	req.SetContext(ctx)
5127	req.ApplyOptions(opts...)
5128	return out, req.Send()
5129}
5130
5131const opDescribeIndex = "DescribeIndex"
5132
5133// DescribeIndexRequest generates a "aws/request.Request" representing the
5134// client's request for the DescribeIndex operation. The "output" return
5135// value will be populated with the request's response once the request completes
5136// successfuly.
5137//
5138// Use "Send" method on the returned Request to send the API call to the service.
5139// the "output" return value is not valid until after Send returns without error.
5140//
5141// See DescribeIndex for more information on using the DescribeIndex
5142// API call, and error handling.
5143//
5144// This method is useful when you want to inject custom logic or configuration
5145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5146//
5147//
5148//    // Example sending a request using the DescribeIndexRequest method.
5149//    req, resp := client.DescribeIndexRequest(params)
5150//
5151//    err := req.Send()
5152//    if err == nil { // resp is now filled
5153//        fmt.Println(resp)
5154//    }
5155func (c *IoT) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
5156	op := &request.Operation{
5157		Name:       opDescribeIndex,
5158		HTTPMethod: "GET",
5159		HTTPPath:   "/indices/{indexName}",
5160	}
5161
5162	if input == nil {
5163		input = &DescribeIndexInput{}
5164	}
5165
5166	output = &DescribeIndexOutput{}
5167	req = c.newRequest(op, input, output)
5168	return
5169}
5170
5171// DescribeIndex API operation for AWS IoT.
5172//
5173// Describes a search index.
5174//
5175// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5176// with awserr.Error's Code and Message methods to get detailed information about
5177// the error.
5178//
5179// See the AWS API reference guide for AWS IoT's
5180// API operation DescribeIndex for usage and error information.
5181//
5182// Returned Error Codes:
5183//   * ErrCodeInvalidRequestException "InvalidRequestException"
5184//   The request is not valid.
5185//
5186//   * ErrCodeThrottlingException "ThrottlingException"
5187//   The rate exceeds the limit.
5188//
5189//   * ErrCodeUnauthorizedException "UnauthorizedException"
5190//   You are not authorized to perform this operation.
5191//
5192//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
5193//   The service is temporarily unavailable.
5194//
5195//   * ErrCodeInternalFailureException "InternalFailureException"
5196//   An unexpected error has occurred.
5197//
5198//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5199//   The specified resource does not exist.
5200//
5201func (c *IoT) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
5202	req, out := c.DescribeIndexRequest(input)
5203	return out, req.Send()
5204}
5205
5206// DescribeIndexWithContext is the same as DescribeIndex with the addition of
5207// the ability to pass a context and additional request options.
5208//
5209// See DescribeIndex for details on how to use this API operation.
5210//
5211// The context must be non-nil and will be used for request cancellation. If
5212// the context is nil a panic will occur. In the future the SDK may create
5213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5214// for more information on using Contexts.
5215func (c *IoT) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
5216	req, out := c.DescribeIndexRequest(input)
5217	req.SetContext(ctx)
5218	req.ApplyOptions(opts...)
5219	return out, req.Send()
5220}
5221
5222const opDescribeJob = "DescribeJob"
5223
5224// DescribeJobRequest generates a "aws/request.Request" representing the
5225// client's request for the DescribeJob operation. The "output" return
5226// value will be populated with the request's response once the request completes
5227// successfuly.
5228//
5229// Use "Send" method on the returned Request to send the API call to the service.
5230// the "output" return value is not valid until after Send returns without error.
5231//
5232// See DescribeJob for more information on using the DescribeJob
5233// API call, and error handling.
5234//
5235// This method is useful when you want to inject custom logic or configuration
5236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5237//
5238//
5239//    // Example sending a request using the DescribeJobRequest method.
5240//    req, resp := client.DescribeJobRequest(params)
5241//
5242//    err := req.Send()
5243//    if err == nil { // resp is now filled
5244//        fmt.Println(resp)
5245//    }
5246func (c *IoT) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
5247	op := &request.Operation{
5248		Name:       opDescribeJob,
5249		HTTPMethod: "GET",
5250		HTTPPath:   "/jobs/{jobId}",
5251	}
5252
5253	if input == nil {
5254		input = &DescribeJobInput{}
5255	}
5256
5257	output = &DescribeJobOutput{}
5258	req = c.newRequest(op, input, output)
5259	return
5260}
5261
5262// DescribeJob API operation for AWS IoT.
5263//
5264// Describes a job.
5265//
5266// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5267// with awserr.Error's Code and Message methods to get detailed information about
5268// the error.
5269//
5270// See the AWS API reference guide for AWS IoT's
5271// API operation DescribeJob for usage and error information.
5272//
5273// Returned Error Codes:
5274//   * ErrCodeInvalidRequestException "InvalidRequestException"
5275//   The request is not valid.
5276//
5277//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5278//   The specified resource does not exist.
5279//
5280//   * ErrCodeThrottlingException "ThrottlingException"
5281//   The rate exceeds the limit.
5282//
5283//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
5284//   The service is temporarily unavailable.
5285//
5286func (c *IoT) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
5287	req, out := c.DescribeJobRequest(input)
5288	return out, req.Send()
5289}
5290
5291// DescribeJobWithContext is the same as DescribeJob with the addition of
5292// the ability to pass a context and additional request options.
5293//
5294// See DescribeJob for details on how to use this API operation.
5295//
5296// The context must be non-nil and will be used for request cancellation. If
5297// the context is nil a panic will occur. In the future the SDK may create
5298// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5299// for more information on using Contexts.
5300func (c *IoT) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
5301	req, out := c.DescribeJobRequest(input)
5302	req.SetContext(ctx)
5303	req.ApplyOptions(opts...)
5304	return out, req.Send()
5305}
5306
5307const opDescribeJobExecution = "DescribeJobExecution"
5308
5309// DescribeJobExecutionRequest generates a "aws/request.Request" representing the
5310// client's request for the DescribeJobExecution operation. The "output" return
5311// value will be populated with the request's response once the request completes
5312// successfuly.
5313//
5314// Use "Send" method on the returned Request to send the API call to the service.
5315// the "output" return value is not valid until after Send returns without error.
5316//
5317// See DescribeJobExecution for more information on using the DescribeJobExecution
5318// API call, and error handling.
5319//
5320// This method is useful when you want to inject custom logic or configuration
5321// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5322//
5323//
5324//    // Example sending a request using the DescribeJobExecutionRequest method.
5325//    req, resp := client.DescribeJobExecutionRequest(params)
5326//
5327//    err := req.Send()
5328//    if err == nil { // resp is now filled
5329//        fmt.Println(resp)
5330//    }
5331func (c *IoT) DescribeJobExecutionRequest(input *DescribeJobExecutionInput) (req *request.Request, output *DescribeJobExecutionOutput) {
5332	op := &request.Operation{
5333		Name:       opDescribeJobExecution,
5334		HTTPMethod: "GET",
5335		HTTPPath:   "/things/{thingName}/jobs/{jobId}",
5336	}
5337
5338	if input == nil {
5339		input = &DescribeJobExecutionInput{}
5340	}
5341
5342	output = &DescribeJobExecutionOutput{}
5343	req = c.newRequest(op, input, output)
5344	return
5345}
5346
5347// DescribeJobExecution API operation for AWS IoT.
5348//
5349// Describes a job execution.
5350//
5351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5352// with awserr.Error's Code and Message methods to get detailed information about
5353// the error.
5354//
5355// See the AWS API reference guide for AWS IoT's
5356// API operation DescribeJobExecution for usage and error information.
5357//
5358// Returned Error Codes:
5359//   * ErrCodeInvalidRequestException "InvalidRequestException"
5360//   The request is not valid.
5361//
5362//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5363//   The specified resource does not exist.
5364//
5365//   * ErrCodeThrottlingException "ThrottlingException"
5366//   The rate exceeds the limit.
5367//
5368//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
5369//   The service is temporarily unavailable.
5370//
5371func (c *IoT) DescribeJobExecution(input *DescribeJobExecutionInput) (*DescribeJobExecutionOutput, error) {
5372	req, out := c.DescribeJobExecutionRequest(input)
5373	return out, req.Send()
5374}
5375
5376// DescribeJobExecutionWithContext is the same as DescribeJobExecution with the addition of
5377// the ability to pass a context and additional request options.
5378//
5379// See DescribeJobExecution for details on how to use this API operation.
5380//
5381// The context must be non-nil and will be used for request cancellation. If
5382// the context is nil a panic will occur. In the future the SDK may create
5383// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5384// for more information on using Contexts.
5385func (c *IoT) DescribeJobExecutionWithContext(ctx aws.Context, input *DescribeJobExecutionInput, opts ...request.Option) (*DescribeJobExecutionOutput, error) {
5386	req, out := c.DescribeJobExecutionRequest(input)
5387	req.SetContext(ctx)
5388	req.ApplyOptions(opts...)
5389	return out, req.Send()
5390}
5391
5392const opDescribeRoleAlias = "DescribeRoleAlias"
5393
5394// DescribeRoleAliasRequest generates a "aws/request.Request" representing the
5395// client's request for the DescribeRoleAlias operation. The "output" return
5396// value will be populated with the request's response once the request completes
5397// successfuly.
5398//
5399// Use "Send" method on the returned Request to send the API call to the service.
5400// the "output" return value is not valid until after Send returns without error.
5401//
5402// See DescribeRoleAlias for more information on using the DescribeRoleAlias
5403// API call, and error handling.
5404//
5405// This method is useful when you want to inject custom logic or configuration
5406// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5407//
5408//
5409//    // Example sending a request using the DescribeRoleAliasRequest method.
5410//    req, resp := client.DescribeRoleAliasRequest(params)
5411//
5412//    err := req.Send()
5413//    if err == nil { // resp is now filled
5414//        fmt.Println(resp)
5415//    }
5416func (c *IoT) DescribeRoleAliasRequest(input *DescribeRoleAliasInput) (req *request.Request, output *DescribeRoleAliasOutput) {
5417	op := &request.Operation{
5418		Name:       opDescribeRoleAlias,
5419		HTTPMethod: "GET",
5420		HTTPPath:   "/role-aliases/{roleAlias}",
5421	}
5422
5423	if input == nil {
5424		input = &DescribeRoleAliasInput{}
5425	}
5426
5427	output = &DescribeRoleAliasOutput{}
5428	req = c.newRequest(op, input, output)
5429	return
5430}
5431
5432// DescribeRoleAlias API operation for AWS IoT.
5433//
5434// Describes a role alias.
5435//
5436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5437// with awserr.Error's Code and Message methods to get detailed information about
5438// the error.
5439//
5440// See the AWS API reference guide for AWS IoT's
5441// API operation DescribeRoleAlias for usage and error information.
5442//
5443// Returned Error Codes:
5444//   * ErrCodeInvalidRequestException "InvalidRequestException"
5445//   The request is not valid.
5446//
5447//   * ErrCodeThrottlingException "ThrottlingException"
5448//   The rate exceeds the limit.
5449//
5450//   * ErrCodeUnauthorizedException "UnauthorizedException"
5451//   You are not authorized to perform this operation.
5452//
5453//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
5454//   The service is temporarily unavailable.
5455//
5456//   * ErrCodeInternalFailureException "InternalFailureException"
5457//   An unexpected error has occurred.
5458//
5459//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5460//   The specified resource does not exist.
5461//
5462func (c *IoT) DescribeRoleAlias(input *DescribeRoleAliasInput) (*DescribeRoleAliasOutput, error) {
5463	req, out := c.DescribeRoleAliasRequest(input)
5464	return out, req.Send()
5465}
5466
5467// DescribeRoleAliasWithContext is the same as DescribeRoleAlias with the addition of
5468// the ability to pass a context and additional request options.
5469//
5470// See DescribeRoleAlias for details on how to use this API operation.
5471//
5472// The context must be non-nil and will be used for request cancellation. If
5473// the context is nil a panic will occur. In the future the SDK may create
5474// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5475// for more information on using Contexts.
5476func (c *IoT) DescribeRoleAliasWithContext(ctx aws.Context, input *DescribeRoleAliasInput, opts ...request.Option) (*DescribeRoleAliasOutput, error) {
5477	req, out := c.DescribeRoleAliasRequest(input)
5478	req.SetContext(ctx)
5479	req.ApplyOptions(opts...)
5480	return out, req.Send()
5481}
5482
5483const opDescribeScheduledAudit = "DescribeScheduledAudit"
5484
5485// DescribeScheduledAuditRequest generates a "aws/request.Request" representing the
5486// client's request for the DescribeScheduledAudit operation. The "output" return
5487// value will be populated with the request's response once the request completes
5488// successfuly.
5489//
5490// Use "Send" method on the returned Request to send the API call to the service.
5491// the "output" return value is not valid until after Send returns without error.
5492//
5493// See DescribeScheduledAudit for more information on using the DescribeScheduledAudit
5494// API call, and error handling.
5495//
5496// This method is useful when you want to inject custom logic or configuration
5497// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5498//
5499//
5500//    // Example sending a request using the DescribeScheduledAuditRequest method.
5501//    req, resp := client.DescribeScheduledAuditRequest(params)
5502//
5503//    err := req.Send()
5504//    if err == nil { // resp is now filled
5505//        fmt.Println(resp)
5506//    }
5507func (c *IoT) DescribeScheduledAuditRequest(input *DescribeScheduledAuditInput) (req *request.Request, output *DescribeScheduledAuditOutput) {
5508	op := &request.Operation{
5509		Name:       opDescribeScheduledAudit,
5510		HTTPMethod: "GET",
5511		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
5512	}
5513
5514	if input == nil {
5515		input = &DescribeScheduledAuditInput{}
5516	}
5517
5518	output = &DescribeScheduledAuditOutput{}
5519	req = c.newRequest(op, input, output)
5520	return
5521}
5522
5523// DescribeScheduledAudit API operation for AWS IoT.
5524//
5525// Gets information about a scheduled audit.
5526//
5527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5528// with awserr.Error's Code and Message methods to get detailed information about
5529// the error.
5530//
5531// See the AWS API reference guide for AWS IoT's
5532// API operation DescribeScheduledAudit for usage and error information.
5533//
5534// Returned Error Codes:
5535//   * ErrCodeInvalidRequestException "InvalidRequestException"
5536//   The request is not valid.
5537//
5538//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5539//   The specified resource does not exist.
5540//
5541//   * ErrCodeThrottlingException "ThrottlingException"
5542//   The rate exceeds the limit.
5543//
5544//   * ErrCodeInternalFailureException "InternalFailureException"
5545//   An unexpected error has occurred.
5546//
5547func (c *IoT) DescribeScheduledAudit(input *DescribeScheduledAuditInput) (*DescribeScheduledAuditOutput, error) {
5548	req, out := c.DescribeScheduledAuditRequest(input)
5549	return out, req.Send()
5550}
5551
5552// DescribeScheduledAuditWithContext is the same as DescribeScheduledAudit with the addition of
5553// the ability to pass a context and additional request options.
5554//
5555// See DescribeScheduledAudit for details on how to use this API operation.
5556//
5557// The context must be non-nil and will be used for request cancellation. If
5558// the context is nil a panic will occur. In the future the SDK may create
5559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5560// for more information on using Contexts.
5561func (c *IoT) DescribeScheduledAuditWithContext(ctx aws.Context, input *DescribeScheduledAuditInput, opts ...request.Option) (*DescribeScheduledAuditOutput, error) {
5562	req, out := c.DescribeScheduledAuditRequest(input)
5563	req.SetContext(ctx)
5564	req.ApplyOptions(opts...)
5565	return out, req.Send()
5566}
5567
5568const opDescribeSecurityProfile = "DescribeSecurityProfile"
5569
5570// DescribeSecurityProfileRequest generates a "aws/request.Request" representing the
5571// client's request for the DescribeSecurityProfile operation. The "output" return
5572// value will be populated with the request's response once the request completes
5573// successfuly.
5574//
5575// Use "Send" method on the returned Request to send the API call to the service.
5576// the "output" return value is not valid until after Send returns without error.
5577//
5578// See DescribeSecurityProfile for more information on using the DescribeSecurityProfile
5579// API call, and error handling.
5580//
5581// This method is useful when you want to inject custom logic or configuration
5582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5583//
5584//
5585//    // Example sending a request using the DescribeSecurityProfileRequest method.
5586//    req, resp := client.DescribeSecurityProfileRequest(params)
5587//
5588//    err := req.Send()
5589//    if err == nil { // resp is now filled
5590//        fmt.Println(resp)
5591//    }
5592func (c *IoT) DescribeSecurityProfileRequest(input *DescribeSecurityProfileInput) (req *request.Request, output *DescribeSecurityProfileOutput) {
5593	op := &request.Operation{
5594		Name:       opDescribeSecurityProfile,
5595		HTTPMethod: "GET",
5596		HTTPPath:   "/security-profiles/{securityProfileName}",
5597	}
5598
5599	if input == nil {
5600		input = &DescribeSecurityProfileInput{}
5601	}
5602
5603	output = &DescribeSecurityProfileOutput{}
5604	req = c.newRequest(op, input, output)
5605	return
5606}
5607
5608// DescribeSecurityProfile API operation for AWS IoT.
5609//
5610// Gets information about a Device Defender security profile.
5611//
5612// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5613// with awserr.Error's Code and Message methods to get detailed information about
5614// the error.
5615//
5616// See the AWS API reference guide for AWS IoT's
5617// API operation DescribeSecurityProfile for usage and error information.
5618//
5619// Returned Error Codes:
5620//   * ErrCodeInvalidRequestException "InvalidRequestException"
5621//   The request is not valid.
5622//
5623//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5624//   The specified resource does not exist.
5625//
5626//   * ErrCodeThrottlingException "ThrottlingException"
5627//   The rate exceeds the limit.
5628//
5629//   * ErrCodeInternalFailureException "InternalFailureException"
5630//   An unexpected error has occurred.
5631//
5632func (c *IoT) DescribeSecurityProfile(input *DescribeSecurityProfileInput) (*DescribeSecurityProfileOutput, error) {
5633	req, out := c.DescribeSecurityProfileRequest(input)
5634	return out, req.Send()
5635}
5636
5637// DescribeSecurityProfileWithContext is the same as DescribeSecurityProfile with the addition of
5638// the ability to pass a context and additional request options.
5639//
5640// See DescribeSecurityProfile for details on how to use this API operation.
5641//
5642// The context must be non-nil and will be used for request cancellation. If
5643// the context is nil a panic will occur. In the future the SDK may create
5644// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5645// for more information on using Contexts.
5646func (c *IoT) DescribeSecurityProfileWithContext(ctx aws.Context, input *DescribeSecurityProfileInput, opts ...request.Option) (*DescribeSecurityProfileOutput, error) {
5647	req, out := c.DescribeSecurityProfileRequest(input)
5648	req.SetContext(ctx)
5649	req.ApplyOptions(opts...)
5650	return out, req.Send()
5651}
5652
5653const opDescribeStream = "DescribeStream"
5654
5655// DescribeStreamRequest generates a "aws/request.Request" representing the
5656// client's request for the DescribeStream operation. The "output" return
5657// value will be populated with the request's response once the request completes
5658// successfuly.
5659//
5660// Use "Send" method on the returned Request to send the API call to the service.
5661// the "output" return value is not valid until after Send returns without error.
5662//
5663// See DescribeStream for more information on using the DescribeStream
5664// API call, and error handling.
5665//
5666// This method is useful when you want to inject custom logic or configuration
5667// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5668//
5669//
5670//    // Example sending a request using the DescribeStreamRequest method.
5671//    req, resp := client.DescribeStreamRequest(params)
5672//
5673//    err := req.Send()
5674//    if err == nil { // resp is now filled
5675//        fmt.Println(resp)
5676//    }
5677func (c *IoT) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
5678	op := &request.Operation{
5679		Name:       opDescribeStream,
5680		HTTPMethod: "GET",
5681		HTTPPath:   "/streams/{streamId}",
5682	}
5683
5684	if input == nil {
5685		input = &DescribeStreamInput{}
5686	}
5687
5688	output = &DescribeStreamOutput{}
5689	req = c.newRequest(op, input, output)
5690	return
5691}
5692
5693// DescribeStream API operation for AWS IoT.
5694//
5695// Gets information about a stream.
5696//
5697// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5698// with awserr.Error's Code and Message methods to get detailed information about
5699// the error.
5700//
5701// See the AWS API reference guide for AWS IoT's
5702// API operation DescribeStream for usage and error information.
5703//
5704// Returned Error Codes:
5705//   * ErrCodeInvalidRequestException "InvalidRequestException"
5706//   The request is not valid.
5707//
5708//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5709//   The specified resource does not exist.
5710//
5711//   * ErrCodeThrottlingException "ThrottlingException"
5712//   The rate exceeds the limit.
5713//
5714//   * ErrCodeUnauthorizedException "UnauthorizedException"
5715//   You are not authorized to perform this operation.
5716//
5717//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
5718//   The service is temporarily unavailable.
5719//
5720//   * ErrCodeInternalFailureException "InternalFailureException"
5721//   An unexpected error has occurred.
5722//
5723func (c *IoT) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
5724	req, out := c.DescribeStreamRequest(input)
5725	return out, req.Send()
5726}
5727
5728// DescribeStreamWithContext is the same as DescribeStream with the addition of
5729// the ability to pass a context and additional request options.
5730//
5731// See DescribeStream for details on how to use this API operation.
5732//
5733// The context must be non-nil and will be used for request cancellation. If
5734// the context is nil a panic will occur. In the future the SDK may create
5735// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5736// for more information on using Contexts.
5737func (c *IoT) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
5738	req, out := c.DescribeStreamRequest(input)
5739	req.SetContext(ctx)
5740	req.ApplyOptions(opts...)
5741	return out, req.Send()
5742}
5743
5744const opDescribeThing = "DescribeThing"
5745
5746// DescribeThingRequest generates a "aws/request.Request" representing the
5747// client's request for the DescribeThing operation. The "output" return
5748// value will be populated with the request's response once the request completes
5749// successfuly.
5750//
5751// Use "Send" method on the returned Request to send the API call to the service.
5752// the "output" return value is not valid until after Send returns without error.
5753//
5754// See DescribeThing for more information on using the DescribeThing
5755// API call, and error handling.
5756//
5757// This method is useful when you want to inject custom logic or configuration
5758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5759//
5760//
5761//    // Example sending a request using the DescribeThingRequest method.
5762//    req, resp := client.DescribeThingRequest(params)
5763//
5764//    err := req.Send()
5765//    if err == nil { // resp is now filled
5766//        fmt.Println(resp)
5767//    }
5768func (c *IoT) DescribeThingRequest(input *DescribeThingInput) (req *request.Request, output *DescribeThingOutput) {
5769	op := &request.Operation{
5770		Name:       opDescribeThing,
5771		HTTPMethod: "GET",
5772		HTTPPath:   "/things/{thingName}",
5773	}
5774
5775	if input == nil {
5776		input = &DescribeThingInput{}
5777	}
5778
5779	output = &DescribeThingOutput{}
5780	req = c.newRequest(op, input, output)
5781	return
5782}
5783
5784// DescribeThing API operation for AWS IoT.
5785//
5786// Gets information about the specified thing.
5787//
5788// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5789// with awserr.Error's Code and Message methods to get detailed information about
5790// the error.
5791//
5792// See the AWS API reference guide for AWS IoT's
5793// API operation DescribeThing for usage and error information.
5794//
5795// Returned Error Codes:
5796//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5797//   The specified resource does not exist.
5798//
5799//   * ErrCodeInvalidRequestException "InvalidRequestException"
5800//   The request is not valid.
5801//
5802//   * ErrCodeThrottlingException "ThrottlingException"
5803//   The rate exceeds the limit.
5804//
5805//   * ErrCodeUnauthorizedException "UnauthorizedException"
5806//   You are not authorized to perform this operation.
5807//
5808//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
5809//   The service is temporarily unavailable.
5810//
5811//   * ErrCodeInternalFailureException "InternalFailureException"
5812//   An unexpected error has occurred.
5813//
5814func (c *IoT) DescribeThing(input *DescribeThingInput) (*DescribeThingOutput, error) {
5815	req, out := c.DescribeThingRequest(input)
5816	return out, req.Send()
5817}
5818
5819// DescribeThingWithContext is the same as DescribeThing with the addition of
5820// the ability to pass a context and additional request options.
5821//
5822// See DescribeThing for details on how to use this API operation.
5823//
5824// The context must be non-nil and will be used for request cancellation. If
5825// the context is nil a panic will occur. In the future the SDK may create
5826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5827// for more information on using Contexts.
5828func (c *IoT) DescribeThingWithContext(ctx aws.Context, input *DescribeThingInput, opts ...request.Option) (*DescribeThingOutput, error) {
5829	req, out := c.DescribeThingRequest(input)
5830	req.SetContext(ctx)
5831	req.ApplyOptions(opts...)
5832	return out, req.Send()
5833}
5834
5835const opDescribeThingGroup = "DescribeThingGroup"
5836
5837// DescribeThingGroupRequest generates a "aws/request.Request" representing the
5838// client's request for the DescribeThingGroup operation. The "output" return
5839// value will be populated with the request's response once the request completes
5840// successfuly.
5841//
5842// Use "Send" method on the returned Request to send the API call to the service.
5843// the "output" return value is not valid until after Send returns without error.
5844//
5845// See DescribeThingGroup for more information on using the DescribeThingGroup
5846// API call, and error handling.
5847//
5848// This method is useful when you want to inject custom logic or configuration
5849// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5850//
5851//
5852//    // Example sending a request using the DescribeThingGroupRequest method.
5853//    req, resp := client.DescribeThingGroupRequest(params)
5854//
5855//    err := req.Send()
5856//    if err == nil { // resp is now filled
5857//        fmt.Println(resp)
5858//    }
5859func (c *IoT) DescribeThingGroupRequest(input *DescribeThingGroupInput) (req *request.Request, output *DescribeThingGroupOutput) {
5860	op := &request.Operation{
5861		Name:       opDescribeThingGroup,
5862		HTTPMethod: "GET",
5863		HTTPPath:   "/thing-groups/{thingGroupName}",
5864	}
5865
5866	if input == nil {
5867		input = &DescribeThingGroupInput{}
5868	}
5869
5870	output = &DescribeThingGroupOutput{}
5871	req = c.newRequest(op, input, output)
5872	return
5873}
5874
5875// DescribeThingGroup API operation for AWS IoT.
5876//
5877// Describe a thing group.
5878//
5879// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5880// with awserr.Error's Code and Message methods to get detailed information about
5881// the error.
5882//
5883// See the AWS API reference guide for AWS IoT's
5884// API operation DescribeThingGroup for usage and error information.
5885//
5886// Returned Error Codes:
5887//   * ErrCodeInvalidRequestException "InvalidRequestException"
5888//   The request is not valid.
5889//
5890//   * ErrCodeThrottlingException "ThrottlingException"
5891//   The rate exceeds the limit.
5892//
5893//   * ErrCodeInternalFailureException "InternalFailureException"
5894//   An unexpected error has occurred.
5895//
5896//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5897//   The specified resource does not exist.
5898//
5899func (c *IoT) DescribeThingGroup(input *DescribeThingGroupInput) (*DescribeThingGroupOutput, error) {
5900	req, out := c.DescribeThingGroupRequest(input)
5901	return out, req.Send()
5902}
5903
5904// DescribeThingGroupWithContext is the same as DescribeThingGroup with the addition of
5905// the ability to pass a context and additional request options.
5906//
5907// See DescribeThingGroup for details on how to use this API operation.
5908//
5909// The context must be non-nil and will be used for request cancellation. If
5910// the context is nil a panic will occur. In the future the SDK may create
5911// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5912// for more information on using Contexts.
5913func (c *IoT) DescribeThingGroupWithContext(ctx aws.Context, input *DescribeThingGroupInput, opts ...request.Option) (*DescribeThingGroupOutput, error) {
5914	req, out := c.DescribeThingGroupRequest(input)
5915	req.SetContext(ctx)
5916	req.ApplyOptions(opts...)
5917	return out, req.Send()
5918}
5919
5920const opDescribeThingRegistrationTask = "DescribeThingRegistrationTask"
5921
5922// DescribeThingRegistrationTaskRequest generates a "aws/request.Request" representing the
5923// client's request for the DescribeThingRegistrationTask operation. The "output" return
5924// value will be populated with the request's response once the request completes
5925// successfuly.
5926//
5927// Use "Send" method on the returned Request to send the API call to the service.
5928// the "output" return value is not valid until after Send returns without error.
5929//
5930// See DescribeThingRegistrationTask for more information on using the DescribeThingRegistrationTask
5931// API call, and error handling.
5932//
5933// This method is useful when you want to inject custom logic or configuration
5934// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5935//
5936//
5937//    // Example sending a request using the DescribeThingRegistrationTaskRequest method.
5938//    req, resp := client.DescribeThingRegistrationTaskRequest(params)
5939//
5940//    err := req.Send()
5941//    if err == nil { // resp is now filled
5942//        fmt.Println(resp)
5943//    }
5944func (c *IoT) DescribeThingRegistrationTaskRequest(input *DescribeThingRegistrationTaskInput) (req *request.Request, output *DescribeThingRegistrationTaskOutput) {
5945	op := &request.Operation{
5946		Name:       opDescribeThingRegistrationTask,
5947		HTTPMethod: "GET",
5948		HTTPPath:   "/thing-registration-tasks/{taskId}",
5949	}
5950
5951	if input == nil {
5952		input = &DescribeThingRegistrationTaskInput{}
5953	}
5954
5955	output = &DescribeThingRegistrationTaskOutput{}
5956	req = c.newRequest(op, input, output)
5957	return
5958}
5959
5960// DescribeThingRegistrationTask API operation for AWS IoT.
5961//
5962// Describes a bulk thing provisioning task.
5963//
5964// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5965// with awserr.Error's Code and Message methods to get detailed information about
5966// the error.
5967//
5968// See the AWS API reference guide for AWS IoT's
5969// API operation DescribeThingRegistrationTask for usage and error information.
5970//
5971// Returned Error Codes:
5972//   * ErrCodeInvalidRequestException "InvalidRequestException"
5973//   The request is not valid.
5974//
5975//   * ErrCodeThrottlingException "ThrottlingException"
5976//   The rate exceeds the limit.
5977//
5978//   * ErrCodeUnauthorizedException "UnauthorizedException"
5979//   You are not authorized to perform this operation.
5980//
5981//   * ErrCodeInternalFailureException "InternalFailureException"
5982//   An unexpected error has occurred.
5983//
5984//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5985//   The specified resource does not exist.
5986//
5987func (c *IoT) DescribeThingRegistrationTask(input *DescribeThingRegistrationTaskInput) (*DescribeThingRegistrationTaskOutput, error) {
5988	req, out := c.DescribeThingRegistrationTaskRequest(input)
5989	return out, req.Send()
5990}
5991
5992// DescribeThingRegistrationTaskWithContext is the same as DescribeThingRegistrationTask with the addition of
5993// the ability to pass a context and additional request options.
5994//
5995// See DescribeThingRegistrationTask for details on how to use this API operation.
5996//
5997// The context must be non-nil and will be used for request cancellation. If
5998// the context is nil a panic will occur. In the future the SDK may create
5999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6000// for more information on using Contexts.
6001func (c *IoT) DescribeThingRegistrationTaskWithContext(ctx aws.Context, input *DescribeThingRegistrationTaskInput, opts ...request.Option) (*DescribeThingRegistrationTaskOutput, error) {
6002	req, out := c.DescribeThingRegistrationTaskRequest(input)
6003	req.SetContext(ctx)
6004	req.ApplyOptions(opts...)
6005	return out, req.Send()
6006}
6007
6008const opDescribeThingType = "DescribeThingType"
6009
6010// DescribeThingTypeRequest generates a "aws/request.Request" representing the
6011// client's request for the DescribeThingType operation. The "output" return
6012// value will be populated with the request's response once the request completes
6013// successfuly.
6014//
6015// Use "Send" method on the returned Request to send the API call to the service.
6016// the "output" return value is not valid until after Send returns without error.
6017//
6018// See DescribeThingType for more information on using the DescribeThingType
6019// API call, and error handling.
6020//
6021// This method is useful when you want to inject custom logic or configuration
6022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6023//
6024//
6025//    // Example sending a request using the DescribeThingTypeRequest method.
6026//    req, resp := client.DescribeThingTypeRequest(params)
6027//
6028//    err := req.Send()
6029//    if err == nil { // resp is now filled
6030//        fmt.Println(resp)
6031//    }
6032func (c *IoT) DescribeThingTypeRequest(input *DescribeThingTypeInput) (req *request.Request, output *DescribeThingTypeOutput) {
6033	op := &request.Operation{
6034		Name:       opDescribeThingType,
6035		HTTPMethod: "GET",
6036		HTTPPath:   "/thing-types/{thingTypeName}",
6037	}
6038
6039	if input == nil {
6040		input = &DescribeThingTypeInput{}
6041	}
6042
6043	output = &DescribeThingTypeOutput{}
6044	req = c.newRequest(op, input, output)
6045	return
6046}
6047
6048// DescribeThingType API operation for AWS IoT.
6049//
6050// Gets information about the specified thing type.
6051//
6052// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6053// with awserr.Error's Code and Message methods to get detailed information about
6054// the error.
6055//
6056// See the AWS API reference guide for AWS IoT's
6057// API operation DescribeThingType for usage and error information.
6058//
6059// Returned Error Codes:
6060//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6061//   The specified resource does not exist.
6062//
6063//   * ErrCodeInvalidRequestException "InvalidRequestException"
6064//   The request is not valid.
6065//
6066//   * ErrCodeThrottlingException "ThrottlingException"
6067//   The rate exceeds the limit.
6068//
6069//   * ErrCodeUnauthorizedException "UnauthorizedException"
6070//   You are not authorized to perform this operation.
6071//
6072//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6073//   The service is temporarily unavailable.
6074//
6075//   * ErrCodeInternalFailureException "InternalFailureException"
6076//   An unexpected error has occurred.
6077//
6078func (c *IoT) DescribeThingType(input *DescribeThingTypeInput) (*DescribeThingTypeOutput, error) {
6079	req, out := c.DescribeThingTypeRequest(input)
6080	return out, req.Send()
6081}
6082
6083// DescribeThingTypeWithContext is the same as DescribeThingType with the addition of
6084// the ability to pass a context and additional request options.
6085//
6086// See DescribeThingType for details on how to use this API operation.
6087//
6088// The context must be non-nil and will be used for request cancellation. If
6089// the context is nil a panic will occur. In the future the SDK may create
6090// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6091// for more information on using Contexts.
6092func (c *IoT) DescribeThingTypeWithContext(ctx aws.Context, input *DescribeThingTypeInput, opts ...request.Option) (*DescribeThingTypeOutput, error) {
6093	req, out := c.DescribeThingTypeRequest(input)
6094	req.SetContext(ctx)
6095	req.ApplyOptions(opts...)
6096	return out, req.Send()
6097}
6098
6099const opDetachPolicy = "DetachPolicy"
6100
6101// DetachPolicyRequest generates a "aws/request.Request" representing the
6102// client's request for the DetachPolicy operation. The "output" return
6103// value will be populated with the request's response once the request completes
6104// successfuly.
6105//
6106// Use "Send" method on the returned Request to send the API call to the service.
6107// the "output" return value is not valid until after Send returns without error.
6108//
6109// See DetachPolicy for more information on using the DetachPolicy
6110// API call, and error handling.
6111//
6112// This method is useful when you want to inject custom logic or configuration
6113// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6114//
6115//
6116//    // Example sending a request using the DetachPolicyRequest method.
6117//    req, resp := client.DetachPolicyRequest(params)
6118//
6119//    err := req.Send()
6120//    if err == nil { // resp is now filled
6121//        fmt.Println(resp)
6122//    }
6123func (c *IoT) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
6124	op := &request.Operation{
6125		Name:       opDetachPolicy,
6126		HTTPMethod: "POST",
6127		HTTPPath:   "/target-policies/{policyName}",
6128	}
6129
6130	if input == nil {
6131		input = &DetachPolicyInput{}
6132	}
6133
6134	output = &DetachPolicyOutput{}
6135	req = c.newRequest(op, input, output)
6136	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
6137	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
6138	return
6139}
6140
6141// DetachPolicy API operation for AWS IoT.
6142//
6143// Detaches a policy from the specified target.
6144//
6145// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6146// with awserr.Error's Code and Message methods to get detailed information about
6147// the error.
6148//
6149// See the AWS API reference guide for AWS IoT's
6150// API operation DetachPolicy for usage and error information.
6151//
6152// Returned Error Codes:
6153//   * ErrCodeInvalidRequestException "InvalidRequestException"
6154//   The request is not valid.
6155//
6156//   * ErrCodeThrottlingException "ThrottlingException"
6157//   The rate exceeds the limit.
6158//
6159//   * ErrCodeUnauthorizedException "UnauthorizedException"
6160//   You are not authorized to perform this operation.
6161//
6162//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6163//   The service is temporarily unavailable.
6164//
6165//   * ErrCodeInternalFailureException "InternalFailureException"
6166//   An unexpected error has occurred.
6167//
6168//   * ErrCodeLimitExceededException "LimitExceededException"
6169//   A limit has been exceeded.
6170//
6171func (c *IoT) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
6172	req, out := c.DetachPolicyRequest(input)
6173	return out, req.Send()
6174}
6175
6176// DetachPolicyWithContext is the same as DetachPolicy with the addition of
6177// the ability to pass a context and additional request options.
6178//
6179// See DetachPolicy for details on how to use this API operation.
6180//
6181// The context must be non-nil and will be used for request cancellation. If
6182// the context is nil a panic will occur. In the future the SDK may create
6183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6184// for more information on using Contexts.
6185func (c *IoT) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
6186	req, out := c.DetachPolicyRequest(input)
6187	req.SetContext(ctx)
6188	req.ApplyOptions(opts...)
6189	return out, req.Send()
6190}
6191
6192const opDetachPrincipalPolicy = "DetachPrincipalPolicy"
6193
6194// DetachPrincipalPolicyRequest generates a "aws/request.Request" representing the
6195// client's request for the DetachPrincipalPolicy operation. The "output" return
6196// value will be populated with the request's response once the request completes
6197// successfuly.
6198//
6199// Use "Send" method on the returned Request to send the API call to the service.
6200// the "output" return value is not valid until after Send returns without error.
6201//
6202// See DetachPrincipalPolicy for more information on using the DetachPrincipalPolicy
6203// API call, and error handling.
6204//
6205// This method is useful when you want to inject custom logic or configuration
6206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6207//
6208//
6209//    // Example sending a request using the DetachPrincipalPolicyRequest method.
6210//    req, resp := client.DetachPrincipalPolicyRequest(params)
6211//
6212//    err := req.Send()
6213//    if err == nil { // resp is now filled
6214//        fmt.Println(resp)
6215//    }
6216func (c *IoT) DetachPrincipalPolicyRequest(input *DetachPrincipalPolicyInput) (req *request.Request, output *DetachPrincipalPolicyOutput) {
6217	if c.Client.Config.Logger != nil {
6218		c.Client.Config.Logger.Log("This operation, DetachPrincipalPolicy, has been deprecated")
6219	}
6220	op := &request.Operation{
6221		Name:       opDetachPrincipalPolicy,
6222		HTTPMethod: "DELETE",
6223		HTTPPath:   "/principal-policies/{policyName}",
6224	}
6225
6226	if input == nil {
6227		input = &DetachPrincipalPolicyInput{}
6228	}
6229
6230	output = &DetachPrincipalPolicyOutput{}
6231	req = c.newRequest(op, input, output)
6232	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
6233	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
6234	return
6235}
6236
6237// DetachPrincipalPolicy API operation for AWS IoT.
6238//
6239// Removes the specified policy from the specified certificate.
6240//
6241// Note: This API is deprecated. Please use DetachPolicy instead.
6242//
6243// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6244// with awserr.Error's Code and Message methods to get detailed information about
6245// the error.
6246//
6247// See the AWS API reference guide for AWS IoT's
6248// API operation DetachPrincipalPolicy for usage and error information.
6249//
6250// Returned Error Codes:
6251//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6252//   The specified resource does not exist.
6253//
6254//   * ErrCodeInvalidRequestException "InvalidRequestException"
6255//   The request is not valid.
6256//
6257//   * ErrCodeThrottlingException "ThrottlingException"
6258//   The rate exceeds the limit.
6259//
6260//   * ErrCodeUnauthorizedException "UnauthorizedException"
6261//   You are not authorized to perform this operation.
6262//
6263//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6264//   The service is temporarily unavailable.
6265//
6266//   * ErrCodeInternalFailureException "InternalFailureException"
6267//   An unexpected error has occurred.
6268//
6269func (c *IoT) DetachPrincipalPolicy(input *DetachPrincipalPolicyInput) (*DetachPrincipalPolicyOutput, error) {
6270	req, out := c.DetachPrincipalPolicyRequest(input)
6271	return out, req.Send()
6272}
6273
6274// DetachPrincipalPolicyWithContext is the same as DetachPrincipalPolicy with the addition of
6275// the ability to pass a context and additional request options.
6276//
6277// See DetachPrincipalPolicy for details on how to use this API operation.
6278//
6279// The context must be non-nil and will be used for request cancellation. If
6280// the context is nil a panic will occur. In the future the SDK may create
6281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6282// for more information on using Contexts.
6283func (c *IoT) DetachPrincipalPolicyWithContext(ctx aws.Context, input *DetachPrincipalPolicyInput, opts ...request.Option) (*DetachPrincipalPolicyOutput, error) {
6284	req, out := c.DetachPrincipalPolicyRequest(input)
6285	req.SetContext(ctx)
6286	req.ApplyOptions(opts...)
6287	return out, req.Send()
6288}
6289
6290const opDetachSecurityProfile = "DetachSecurityProfile"
6291
6292// DetachSecurityProfileRequest generates a "aws/request.Request" representing the
6293// client's request for the DetachSecurityProfile operation. The "output" return
6294// value will be populated with the request's response once the request completes
6295// successfuly.
6296//
6297// Use "Send" method on the returned Request to send the API call to the service.
6298// the "output" return value is not valid until after Send returns without error.
6299//
6300// See DetachSecurityProfile for more information on using the DetachSecurityProfile
6301// API call, and error handling.
6302//
6303// This method is useful when you want to inject custom logic or configuration
6304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6305//
6306//
6307//    // Example sending a request using the DetachSecurityProfileRequest method.
6308//    req, resp := client.DetachSecurityProfileRequest(params)
6309//
6310//    err := req.Send()
6311//    if err == nil { // resp is now filled
6312//        fmt.Println(resp)
6313//    }
6314func (c *IoT) DetachSecurityProfileRequest(input *DetachSecurityProfileInput) (req *request.Request, output *DetachSecurityProfileOutput) {
6315	op := &request.Operation{
6316		Name:       opDetachSecurityProfile,
6317		HTTPMethod: "DELETE",
6318		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
6319	}
6320
6321	if input == nil {
6322		input = &DetachSecurityProfileInput{}
6323	}
6324
6325	output = &DetachSecurityProfileOutput{}
6326	req = c.newRequest(op, input, output)
6327	return
6328}
6329
6330// DetachSecurityProfile API operation for AWS IoT.
6331//
6332// Disassociates a Device Defender security profile from a thing group or from
6333// this account.
6334//
6335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6336// with awserr.Error's Code and Message methods to get detailed information about
6337// the error.
6338//
6339// See the AWS API reference guide for AWS IoT's
6340// API operation DetachSecurityProfile for usage and error information.
6341//
6342// Returned Error Codes:
6343//   * ErrCodeInvalidRequestException "InvalidRequestException"
6344//   The request is not valid.
6345//
6346//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6347//   The specified resource does not exist.
6348//
6349//   * ErrCodeThrottlingException "ThrottlingException"
6350//   The rate exceeds the limit.
6351//
6352//   * ErrCodeInternalFailureException "InternalFailureException"
6353//   An unexpected error has occurred.
6354//
6355func (c *IoT) DetachSecurityProfile(input *DetachSecurityProfileInput) (*DetachSecurityProfileOutput, error) {
6356	req, out := c.DetachSecurityProfileRequest(input)
6357	return out, req.Send()
6358}
6359
6360// DetachSecurityProfileWithContext is the same as DetachSecurityProfile with the addition of
6361// the ability to pass a context and additional request options.
6362//
6363// See DetachSecurityProfile for details on how to use this API operation.
6364//
6365// The context must be non-nil and will be used for request cancellation. If
6366// the context is nil a panic will occur. In the future the SDK may create
6367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6368// for more information on using Contexts.
6369func (c *IoT) DetachSecurityProfileWithContext(ctx aws.Context, input *DetachSecurityProfileInput, opts ...request.Option) (*DetachSecurityProfileOutput, error) {
6370	req, out := c.DetachSecurityProfileRequest(input)
6371	req.SetContext(ctx)
6372	req.ApplyOptions(opts...)
6373	return out, req.Send()
6374}
6375
6376const opDetachThingPrincipal = "DetachThingPrincipal"
6377
6378// DetachThingPrincipalRequest generates a "aws/request.Request" representing the
6379// client's request for the DetachThingPrincipal operation. The "output" return
6380// value will be populated with the request's response once the request completes
6381// successfuly.
6382//
6383// Use "Send" method on the returned Request to send the API call to the service.
6384// the "output" return value is not valid until after Send returns without error.
6385//
6386// See DetachThingPrincipal for more information on using the DetachThingPrincipal
6387// API call, and error handling.
6388//
6389// This method is useful when you want to inject custom logic or configuration
6390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6391//
6392//
6393//    // Example sending a request using the DetachThingPrincipalRequest method.
6394//    req, resp := client.DetachThingPrincipalRequest(params)
6395//
6396//    err := req.Send()
6397//    if err == nil { // resp is now filled
6398//        fmt.Println(resp)
6399//    }
6400func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req *request.Request, output *DetachThingPrincipalOutput) {
6401	op := &request.Operation{
6402		Name:       opDetachThingPrincipal,
6403		HTTPMethod: "DELETE",
6404		HTTPPath:   "/things/{thingName}/principals",
6405	}
6406
6407	if input == nil {
6408		input = &DetachThingPrincipalInput{}
6409	}
6410
6411	output = &DetachThingPrincipalOutput{}
6412	req = c.newRequest(op, input, output)
6413	return
6414}
6415
6416// DetachThingPrincipal API operation for AWS IoT.
6417//
6418// Detaches the specified principal from the specified thing.
6419//
6420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6421// with awserr.Error's Code and Message methods to get detailed information about
6422// the error.
6423//
6424// See the AWS API reference guide for AWS IoT's
6425// API operation DetachThingPrincipal for usage and error information.
6426//
6427// Returned Error Codes:
6428//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6429//   The specified resource does not exist.
6430//
6431//   * ErrCodeInvalidRequestException "InvalidRequestException"
6432//   The request is not valid.
6433//
6434//   * ErrCodeThrottlingException "ThrottlingException"
6435//   The rate exceeds the limit.
6436//
6437//   * ErrCodeUnauthorizedException "UnauthorizedException"
6438//   You are not authorized to perform this operation.
6439//
6440//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6441//   The service is temporarily unavailable.
6442//
6443//   * ErrCodeInternalFailureException "InternalFailureException"
6444//   An unexpected error has occurred.
6445//
6446func (c *IoT) DetachThingPrincipal(input *DetachThingPrincipalInput) (*DetachThingPrincipalOutput, error) {
6447	req, out := c.DetachThingPrincipalRequest(input)
6448	return out, req.Send()
6449}
6450
6451// DetachThingPrincipalWithContext is the same as DetachThingPrincipal with the addition of
6452// the ability to pass a context and additional request options.
6453//
6454// See DetachThingPrincipal for details on how to use this API operation.
6455//
6456// The context must be non-nil and will be used for request cancellation. If
6457// the context is nil a panic will occur. In the future the SDK may create
6458// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6459// for more information on using Contexts.
6460func (c *IoT) DetachThingPrincipalWithContext(ctx aws.Context, input *DetachThingPrincipalInput, opts ...request.Option) (*DetachThingPrincipalOutput, error) {
6461	req, out := c.DetachThingPrincipalRequest(input)
6462	req.SetContext(ctx)
6463	req.ApplyOptions(opts...)
6464	return out, req.Send()
6465}
6466
6467const opDisableTopicRule = "DisableTopicRule"
6468
6469// DisableTopicRuleRequest generates a "aws/request.Request" representing the
6470// client's request for the DisableTopicRule operation. The "output" return
6471// value will be populated with the request's response once the request completes
6472// successfuly.
6473//
6474// Use "Send" method on the returned Request to send the API call to the service.
6475// the "output" return value is not valid until after Send returns without error.
6476//
6477// See DisableTopicRule for more information on using the DisableTopicRule
6478// API call, and error handling.
6479//
6480// This method is useful when you want to inject custom logic or configuration
6481// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6482//
6483//
6484//    // Example sending a request using the DisableTopicRuleRequest method.
6485//    req, resp := client.DisableTopicRuleRequest(params)
6486//
6487//    err := req.Send()
6488//    if err == nil { // resp is now filled
6489//        fmt.Println(resp)
6490//    }
6491func (c *IoT) DisableTopicRuleRequest(input *DisableTopicRuleInput) (req *request.Request, output *DisableTopicRuleOutput) {
6492	op := &request.Operation{
6493		Name:       opDisableTopicRule,
6494		HTTPMethod: "POST",
6495		HTTPPath:   "/rules/{ruleName}/disable",
6496	}
6497
6498	if input == nil {
6499		input = &DisableTopicRuleInput{}
6500	}
6501
6502	output = &DisableTopicRuleOutput{}
6503	req = c.newRequest(op, input, output)
6504	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
6505	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
6506	return
6507}
6508
6509// DisableTopicRule API operation for AWS IoT.
6510//
6511// Disables the rule.
6512//
6513// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6514// with awserr.Error's Code and Message methods to get detailed information about
6515// the error.
6516//
6517// See the AWS API reference guide for AWS IoT's
6518// API operation DisableTopicRule for usage and error information.
6519//
6520// Returned Error Codes:
6521//   * ErrCodeInternalException "InternalException"
6522//   An unexpected error has occurred.
6523//
6524//   * ErrCodeInvalidRequestException "InvalidRequestException"
6525//   The request is not valid.
6526//
6527//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6528//   The service is temporarily unavailable.
6529//
6530//   * ErrCodeUnauthorizedException "UnauthorizedException"
6531//   You are not authorized to perform this operation.
6532//
6533func (c *IoT) DisableTopicRule(input *DisableTopicRuleInput) (*DisableTopicRuleOutput, error) {
6534	req, out := c.DisableTopicRuleRequest(input)
6535	return out, req.Send()
6536}
6537
6538// DisableTopicRuleWithContext is the same as DisableTopicRule with the addition of
6539// the ability to pass a context and additional request options.
6540//
6541// See DisableTopicRule for details on how to use this API operation.
6542//
6543// The context must be non-nil and will be used for request cancellation. If
6544// the context is nil a panic will occur. In the future the SDK may create
6545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6546// for more information on using Contexts.
6547func (c *IoT) DisableTopicRuleWithContext(ctx aws.Context, input *DisableTopicRuleInput, opts ...request.Option) (*DisableTopicRuleOutput, error) {
6548	req, out := c.DisableTopicRuleRequest(input)
6549	req.SetContext(ctx)
6550	req.ApplyOptions(opts...)
6551	return out, req.Send()
6552}
6553
6554const opEnableTopicRule = "EnableTopicRule"
6555
6556// EnableTopicRuleRequest generates a "aws/request.Request" representing the
6557// client's request for the EnableTopicRule operation. The "output" return
6558// value will be populated with the request's response once the request completes
6559// successfuly.
6560//
6561// Use "Send" method on the returned Request to send the API call to the service.
6562// the "output" return value is not valid until after Send returns without error.
6563//
6564// See EnableTopicRule for more information on using the EnableTopicRule
6565// API call, and error handling.
6566//
6567// This method is useful when you want to inject custom logic or configuration
6568// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6569//
6570//
6571//    // Example sending a request using the EnableTopicRuleRequest method.
6572//    req, resp := client.EnableTopicRuleRequest(params)
6573//
6574//    err := req.Send()
6575//    if err == nil { // resp is now filled
6576//        fmt.Println(resp)
6577//    }
6578func (c *IoT) EnableTopicRuleRequest(input *EnableTopicRuleInput) (req *request.Request, output *EnableTopicRuleOutput) {
6579	op := &request.Operation{
6580		Name:       opEnableTopicRule,
6581		HTTPMethod: "POST",
6582		HTTPPath:   "/rules/{ruleName}/enable",
6583	}
6584
6585	if input == nil {
6586		input = &EnableTopicRuleInput{}
6587	}
6588
6589	output = &EnableTopicRuleOutput{}
6590	req = c.newRequest(op, input, output)
6591	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
6592	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
6593	return
6594}
6595
6596// EnableTopicRule API operation for AWS IoT.
6597//
6598// Enables the rule.
6599//
6600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6601// with awserr.Error's Code and Message methods to get detailed information about
6602// the error.
6603//
6604// See the AWS API reference guide for AWS IoT's
6605// API operation EnableTopicRule for usage and error information.
6606//
6607// Returned Error Codes:
6608//   * ErrCodeInternalException "InternalException"
6609//   An unexpected error has occurred.
6610//
6611//   * ErrCodeInvalidRequestException "InvalidRequestException"
6612//   The request is not valid.
6613//
6614//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6615//   The service is temporarily unavailable.
6616//
6617//   * ErrCodeUnauthorizedException "UnauthorizedException"
6618//   You are not authorized to perform this operation.
6619//
6620func (c *IoT) EnableTopicRule(input *EnableTopicRuleInput) (*EnableTopicRuleOutput, error) {
6621	req, out := c.EnableTopicRuleRequest(input)
6622	return out, req.Send()
6623}
6624
6625// EnableTopicRuleWithContext is the same as EnableTopicRule with the addition of
6626// the ability to pass a context and additional request options.
6627//
6628// See EnableTopicRule for details on how to use this API operation.
6629//
6630// The context must be non-nil and will be used for request cancellation. If
6631// the context is nil a panic will occur. In the future the SDK may create
6632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6633// for more information on using Contexts.
6634func (c *IoT) EnableTopicRuleWithContext(ctx aws.Context, input *EnableTopicRuleInput, opts ...request.Option) (*EnableTopicRuleOutput, error) {
6635	req, out := c.EnableTopicRuleRequest(input)
6636	req.SetContext(ctx)
6637	req.ApplyOptions(opts...)
6638	return out, req.Send()
6639}
6640
6641const opGetEffectivePolicies = "GetEffectivePolicies"
6642
6643// GetEffectivePoliciesRequest generates a "aws/request.Request" representing the
6644// client's request for the GetEffectivePolicies operation. The "output" return
6645// value will be populated with the request's response once the request completes
6646// successfuly.
6647//
6648// Use "Send" method on the returned Request to send the API call to the service.
6649// the "output" return value is not valid until after Send returns without error.
6650//
6651// See GetEffectivePolicies for more information on using the GetEffectivePolicies
6652// API call, and error handling.
6653//
6654// This method is useful when you want to inject custom logic or configuration
6655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6656//
6657//
6658//    // Example sending a request using the GetEffectivePoliciesRequest method.
6659//    req, resp := client.GetEffectivePoliciesRequest(params)
6660//
6661//    err := req.Send()
6662//    if err == nil { // resp is now filled
6663//        fmt.Println(resp)
6664//    }
6665func (c *IoT) GetEffectivePoliciesRequest(input *GetEffectivePoliciesInput) (req *request.Request, output *GetEffectivePoliciesOutput) {
6666	op := &request.Operation{
6667		Name:       opGetEffectivePolicies,
6668		HTTPMethod: "POST",
6669		HTTPPath:   "/effective-policies",
6670	}
6671
6672	if input == nil {
6673		input = &GetEffectivePoliciesInput{}
6674	}
6675
6676	output = &GetEffectivePoliciesOutput{}
6677	req = c.newRequest(op, input, output)
6678	return
6679}
6680
6681// GetEffectivePolicies API operation for AWS IoT.
6682//
6683// Gets a list of the policies that have an effect on the authorization behavior
6684// of the specified device when it connects to the AWS IoT device gateway.
6685//
6686// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6687// with awserr.Error's Code and Message methods to get detailed information about
6688// the error.
6689//
6690// See the AWS API reference guide for AWS IoT's
6691// API operation GetEffectivePolicies for usage and error information.
6692//
6693// Returned Error Codes:
6694//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6695//   The specified resource does not exist.
6696//
6697//   * ErrCodeInvalidRequestException "InvalidRequestException"
6698//   The request is not valid.
6699//
6700//   * ErrCodeThrottlingException "ThrottlingException"
6701//   The rate exceeds the limit.
6702//
6703//   * ErrCodeUnauthorizedException "UnauthorizedException"
6704//   You are not authorized to perform this operation.
6705//
6706//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6707//   The service is temporarily unavailable.
6708//
6709//   * ErrCodeInternalFailureException "InternalFailureException"
6710//   An unexpected error has occurred.
6711//
6712//   * ErrCodeLimitExceededException "LimitExceededException"
6713//   A limit has been exceeded.
6714//
6715func (c *IoT) GetEffectivePolicies(input *GetEffectivePoliciesInput) (*GetEffectivePoliciesOutput, error) {
6716	req, out := c.GetEffectivePoliciesRequest(input)
6717	return out, req.Send()
6718}
6719
6720// GetEffectivePoliciesWithContext is the same as GetEffectivePolicies with the addition of
6721// the ability to pass a context and additional request options.
6722//
6723// See GetEffectivePolicies for details on how to use this API operation.
6724//
6725// The context must be non-nil and will be used for request cancellation. If
6726// the context is nil a panic will occur. In the future the SDK may create
6727// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6728// for more information on using Contexts.
6729func (c *IoT) GetEffectivePoliciesWithContext(ctx aws.Context, input *GetEffectivePoliciesInput, opts ...request.Option) (*GetEffectivePoliciesOutput, error) {
6730	req, out := c.GetEffectivePoliciesRequest(input)
6731	req.SetContext(ctx)
6732	req.ApplyOptions(opts...)
6733	return out, req.Send()
6734}
6735
6736const opGetIndexingConfiguration = "GetIndexingConfiguration"
6737
6738// GetIndexingConfigurationRequest generates a "aws/request.Request" representing the
6739// client's request for the GetIndexingConfiguration operation. The "output" return
6740// value will be populated with the request's response once the request completes
6741// successfuly.
6742//
6743// Use "Send" method on the returned Request to send the API call to the service.
6744// the "output" return value is not valid until after Send returns without error.
6745//
6746// See GetIndexingConfiguration for more information on using the GetIndexingConfiguration
6747// API call, and error handling.
6748//
6749// This method is useful when you want to inject custom logic or configuration
6750// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6751//
6752//
6753//    // Example sending a request using the GetIndexingConfigurationRequest method.
6754//    req, resp := client.GetIndexingConfigurationRequest(params)
6755//
6756//    err := req.Send()
6757//    if err == nil { // resp is now filled
6758//        fmt.Println(resp)
6759//    }
6760func (c *IoT) GetIndexingConfigurationRequest(input *GetIndexingConfigurationInput) (req *request.Request, output *GetIndexingConfigurationOutput) {
6761	op := &request.Operation{
6762		Name:       opGetIndexingConfiguration,
6763		HTTPMethod: "GET",
6764		HTTPPath:   "/indexing/config",
6765	}
6766
6767	if input == nil {
6768		input = &GetIndexingConfigurationInput{}
6769	}
6770
6771	output = &GetIndexingConfigurationOutput{}
6772	req = c.newRequest(op, input, output)
6773	return
6774}
6775
6776// GetIndexingConfiguration API operation for AWS IoT.
6777//
6778// Gets the search configuration.
6779//
6780// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6781// with awserr.Error's Code and Message methods to get detailed information about
6782// the error.
6783//
6784// See the AWS API reference guide for AWS IoT's
6785// API operation GetIndexingConfiguration for usage and error information.
6786//
6787// Returned Error Codes:
6788//   * ErrCodeInvalidRequestException "InvalidRequestException"
6789//   The request is not valid.
6790//
6791//   * ErrCodeThrottlingException "ThrottlingException"
6792//   The rate exceeds the limit.
6793//
6794//   * ErrCodeUnauthorizedException "UnauthorizedException"
6795//   You are not authorized to perform this operation.
6796//
6797//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6798//   The service is temporarily unavailable.
6799//
6800//   * ErrCodeInternalFailureException "InternalFailureException"
6801//   An unexpected error has occurred.
6802//
6803func (c *IoT) GetIndexingConfiguration(input *GetIndexingConfigurationInput) (*GetIndexingConfigurationOutput, error) {
6804	req, out := c.GetIndexingConfigurationRequest(input)
6805	return out, req.Send()
6806}
6807
6808// GetIndexingConfigurationWithContext is the same as GetIndexingConfiguration with the addition of
6809// the ability to pass a context and additional request options.
6810//
6811// See GetIndexingConfiguration for details on how to use this API operation.
6812//
6813// The context must be non-nil and will be used for request cancellation. If
6814// the context is nil a panic will occur. In the future the SDK may create
6815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6816// for more information on using Contexts.
6817func (c *IoT) GetIndexingConfigurationWithContext(ctx aws.Context, input *GetIndexingConfigurationInput, opts ...request.Option) (*GetIndexingConfigurationOutput, error) {
6818	req, out := c.GetIndexingConfigurationRequest(input)
6819	req.SetContext(ctx)
6820	req.ApplyOptions(opts...)
6821	return out, req.Send()
6822}
6823
6824const opGetJobDocument = "GetJobDocument"
6825
6826// GetJobDocumentRequest generates a "aws/request.Request" representing the
6827// client's request for the GetJobDocument operation. The "output" return
6828// value will be populated with the request's response once the request completes
6829// successfuly.
6830//
6831// Use "Send" method on the returned Request to send the API call to the service.
6832// the "output" return value is not valid until after Send returns without error.
6833//
6834// See GetJobDocument for more information on using the GetJobDocument
6835// API call, and error handling.
6836//
6837// This method is useful when you want to inject custom logic or configuration
6838// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6839//
6840//
6841//    // Example sending a request using the GetJobDocumentRequest method.
6842//    req, resp := client.GetJobDocumentRequest(params)
6843//
6844//    err := req.Send()
6845//    if err == nil { // resp is now filled
6846//        fmt.Println(resp)
6847//    }
6848func (c *IoT) GetJobDocumentRequest(input *GetJobDocumentInput) (req *request.Request, output *GetJobDocumentOutput) {
6849	op := &request.Operation{
6850		Name:       opGetJobDocument,
6851		HTTPMethod: "GET",
6852		HTTPPath:   "/jobs/{jobId}/job-document",
6853	}
6854
6855	if input == nil {
6856		input = &GetJobDocumentInput{}
6857	}
6858
6859	output = &GetJobDocumentOutput{}
6860	req = c.newRequest(op, input, output)
6861	return
6862}
6863
6864// GetJobDocument API operation for AWS IoT.
6865//
6866// Gets a job document.
6867//
6868// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6869// with awserr.Error's Code and Message methods to get detailed information about
6870// the error.
6871//
6872// See the AWS API reference guide for AWS IoT's
6873// API operation GetJobDocument for usage and error information.
6874//
6875// Returned Error Codes:
6876//   * ErrCodeInvalidRequestException "InvalidRequestException"
6877//   The request is not valid.
6878//
6879//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6880//   The specified resource does not exist.
6881//
6882//   * ErrCodeThrottlingException "ThrottlingException"
6883//   The rate exceeds the limit.
6884//
6885//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6886//   The service is temporarily unavailable.
6887//
6888func (c *IoT) GetJobDocument(input *GetJobDocumentInput) (*GetJobDocumentOutput, error) {
6889	req, out := c.GetJobDocumentRequest(input)
6890	return out, req.Send()
6891}
6892
6893// GetJobDocumentWithContext is the same as GetJobDocument with the addition of
6894// the ability to pass a context and additional request options.
6895//
6896// See GetJobDocument for details on how to use this API operation.
6897//
6898// The context must be non-nil and will be used for request cancellation. If
6899// the context is nil a panic will occur. In the future the SDK may create
6900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6901// for more information on using Contexts.
6902func (c *IoT) GetJobDocumentWithContext(ctx aws.Context, input *GetJobDocumentInput, opts ...request.Option) (*GetJobDocumentOutput, error) {
6903	req, out := c.GetJobDocumentRequest(input)
6904	req.SetContext(ctx)
6905	req.ApplyOptions(opts...)
6906	return out, req.Send()
6907}
6908
6909const opGetLoggingOptions = "GetLoggingOptions"
6910
6911// GetLoggingOptionsRequest generates a "aws/request.Request" representing the
6912// client's request for the GetLoggingOptions operation. The "output" return
6913// value will be populated with the request's response once the request completes
6914// successfuly.
6915//
6916// Use "Send" method on the returned Request to send the API call to the service.
6917// the "output" return value is not valid until after Send returns without error.
6918//
6919// See GetLoggingOptions for more information on using the GetLoggingOptions
6920// API call, and error handling.
6921//
6922// This method is useful when you want to inject custom logic or configuration
6923// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6924//
6925//
6926//    // Example sending a request using the GetLoggingOptionsRequest method.
6927//    req, resp := client.GetLoggingOptionsRequest(params)
6928//
6929//    err := req.Send()
6930//    if err == nil { // resp is now filled
6931//        fmt.Println(resp)
6932//    }
6933func (c *IoT) GetLoggingOptionsRequest(input *GetLoggingOptionsInput) (req *request.Request, output *GetLoggingOptionsOutput) {
6934	op := &request.Operation{
6935		Name:       opGetLoggingOptions,
6936		HTTPMethod: "GET",
6937		HTTPPath:   "/loggingOptions",
6938	}
6939
6940	if input == nil {
6941		input = &GetLoggingOptionsInput{}
6942	}
6943
6944	output = &GetLoggingOptionsOutput{}
6945	req = c.newRequest(op, input, output)
6946	return
6947}
6948
6949// GetLoggingOptions API operation for AWS IoT.
6950//
6951// Gets the logging options.
6952//
6953// NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.
6954//
6955// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6956// with awserr.Error's Code and Message methods to get detailed information about
6957// the error.
6958//
6959// See the AWS API reference guide for AWS IoT's
6960// API operation GetLoggingOptions for usage and error information.
6961//
6962// Returned Error Codes:
6963//   * ErrCodeInternalException "InternalException"
6964//   An unexpected error has occurred.
6965//
6966//   * ErrCodeInvalidRequestException "InvalidRequestException"
6967//   The request is not valid.
6968//
6969//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
6970//   The service is temporarily unavailable.
6971//
6972func (c *IoT) GetLoggingOptions(input *GetLoggingOptionsInput) (*GetLoggingOptionsOutput, error) {
6973	req, out := c.GetLoggingOptionsRequest(input)
6974	return out, req.Send()
6975}
6976
6977// GetLoggingOptionsWithContext is the same as GetLoggingOptions with the addition of
6978// the ability to pass a context and additional request options.
6979//
6980// See GetLoggingOptions for details on how to use this API operation.
6981//
6982// The context must be non-nil and will be used for request cancellation. If
6983// the context is nil a panic will occur. In the future the SDK may create
6984// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6985// for more information on using Contexts.
6986func (c *IoT) GetLoggingOptionsWithContext(ctx aws.Context, input *GetLoggingOptionsInput, opts ...request.Option) (*GetLoggingOptionsOutput, error) {
6987	req, out := c.GetLoggingOptionsRequest(input)
6988	req.SetContext(ctx)
6989	req.ApplyOptions(opts...)
6990	return out, req.Send()
6991}
6992
6993const opGetOTAUpdate = "GetOTAUpdate"
6994
6995// GetOTAUpdateRequest generates a "aws/request.Request" representing the
6996// client's request for the GetOTAUpdate operation. The "output" return
6997// value will be populated with the request's response once the request completes
6998// successfuly.
6999//
7000// Use "Send" method on the returned Request to send the API call to the service.
7001// the "output" return value is not valid until after Send returns without error.
7002//
7003// See GetOTAUpdate for more information on using the GetOTAUpdate
7004// API call, and error handling.
7005//
7006// This method is useful when you want to inject custom logic or configuration
7007// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7008//
7009//
7010//    // Example sending a request using the GetOTAUpdateRequest method.
7011//    req, resp := client.GetOTAUpdateRequest(params)
7012//
7013//    err := req.Send()
7014//    if err == nil { // resp is now filled
7015//        fmt.Println(resp)
7016//    }
7017func (c *IoT) GetOTAUpdateRequest(input *GetOTAUpdateInput) (req *request.Request, output *GetOTAUpdateOutput) {
7018	op := &request.Operation{
7019		Name:       opGetOTAUpdate,
7020		HTTPMethod: "GET",
7021		HTTPPath:   "/otaUpdates/{otaUpdateId}",
7022	}
7023
7024	if input == nil {
7025		input = &GetOTAUpdateInput{}
7026	}
7027
7028	output = &GetOTAUpdateOutput{}
7029	req = c.newRequest(op, input, output)
7030	return
7031}
7032
7033// GetOTAUpdate API operation for AWS IoT.
7034//
7035// Gets an OTA update.
7036//
7037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7038// with awserr.Error's Code and Message methods to get detailed information about
7039// the error.
7040//
7041// See the AWS API reference guide for AWS IoT's
7042// API operation GetOTAUpdate for usage and error information.
7043//
7044// Returned Error Codes:
7045//   * ErrCodeInvalidRequestException "InvalidRequestException"
7046//   The request is not valid.
7047//
7048//   * ErrCodeThrottlingException "ThrottlingException"
7049//   The rate exceeds the limit.
7050//
7051//   * ErrCodeUnauthorizedException "UnauthorizedException"
7052//   You are not authorized to perform this operation.
7053//
7054//   * ErrCodeInternalFailureException "InternalFailureException"
7055//   An unexpected error has occurred.
7056//
7057//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7058//   The service is temporarily unavailable.
7059//
7060//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7061//   The specified resource does not exist.
7062//
7063func (c *IoT) GetOTAUpdate(input *GetOTAUpdateInput) (*GetOTAUpdateOutput, error) {
7064	req, out := c.GetOTAUpdateRequest(input)
7065	return out, req.Send()
7066}
7067
7068// GetOTAUpdateWithContext is the same as GetOTAUpdate with the addition of
7069// the ability to pass a context and additional request options.
7070//
7071// See GetOTAUpdate for details on how to use this API operation.
7072//
7073// The context must be non-nil and will be used for request cancellation. If
7074// the context is nil a panic will occur. In the future the SDK may create
7075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7076// for more information on using Contexts.
7077func (c *IoT) GetOTAUpdateWithContext(ctx aws.Context, input *GetOTAUpdateInput, opts ...request.Option) (*GetOTAUpdateOutput, error) {
7078	req, out := c.GetOTAUpdateRequest(input)
7079	req.SetContext(ctx)
7080	req.ApplyOptions(opts...)
7081	return out, req.Send()
7082}
7083
7084const opGetPolicy = "GetPolicy"
7085
7086// GetPolicyRequest generates a "aws/request.Request" representing the
7087// client's request for the GetPolicy operation. The "output" return
7088// value will be populated with the request's response once the request completes
7089// successfuly.
7090//
7091// Use "Send" method on the returned Request to send the API call to the service.
7092// the "output" return value is not valid until after Send returns without error.
7093//
7094// See GetPolicy for more information on using the GetPolicy
7095// API call, and error handling.
7096//
7097// This method is useful when you want to inject custom logic or configuration
7098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7099//
7100//
7101//    // Example sending a request using the GetPolicyRequest method.
7102//    req, resp := client.GetPolicyRequest(params)
7103//
7104//    err := req.Send()
7105//    if err == nil { // resp is now filled
7106//        fmt.Println(resp)
7107//    }
7108func (c *IoT) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
7109	op := &request.Operation{
7110		Name:       opGetPolicy,
7111		HTTPMethod: "GET",
7112		HTTPPath:   "/policies/{policyName}",
7113	}
7114
7115	if input == nil {
7116		input = &GetPolicyInput{}
7117	}
7118
7119	output = &GetPolicyOutput{}
7120	req = c.newRequest(op, input, output)
7121	return
7122}
7123
7124// GetPolicy API operation for AWS IoT.
7125//
7126// Gets information about the specified policy with the policy document of the
7127// default version.
7128//
7129// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7130// with awserr.Error's Code and Message methods to get detailed information about
7131// the error.
7132//
7133// See the AWS API reference guide for AWS IoT's
7134// API operation GetPolicy for usage and error information.
7135//
7136// Returned Error Codes:
7137//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7138//   The specified resource does not exist.
7139//
7140//   * ErrCodeInvalidRequestException "InvalidRequestException"
7141//   The request is not valid.
7142//
7143//   * ErrCodeThrottlingException "ThrottlingException"
7144//   The rate exceeds the limit.
7145//
7146//   * ErrCodeUnauthorizedException "UnauthorizedException"
7147//   You are not authorized to perform this operation.
7148//
7149//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7150//   The service is temporarily unavailable.
7151//
7152//   * ErrCodeInternalFailureException "InternalFailureException"
7153//   An unexpected error has occurred.
7154//
7155func (c *IoT) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
7156	req, out := c.GetPolicyRequest(input)
7157	return out, req.Send()
7158}
7159
7160// GetPolicyWithContext is the same as GetPolicy with the addition of
7161// the ability to pass a context and additional request options.
7162//
7163// See GetPolicy for details on how to use this API operation.
7164//
7165// The context must be non-nil and will be used for request cancellation. If
7166// the context is nil a panic will occur. In the future the SDK may create
7167// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7168// for more information on using Contexts.
7169func (c *IoT) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
7170	req, out := c.GetPolicyRequest(input)
7171	req.SetContext(ctx)
7172	req.ApplyOptions(opts...)
7173	return out, req.Send()
7174}
7175
7176const opGetPolicyVersion = "GetPolicyVersion"
7177
7178// GetPolicyVersionRequest generates a "aws/request.Request" representing the
7179// client's request for the GetPolicyVersion operation. The "output" return
7180// value will be populated with the request's response once the request completes
7181// successfuly.
7182//
7183// Use "Send" method on the returned Request to send the API call to the service.
7184// the "output" return value is not valid until after Send returns without error.
7185//
7186// See GetPolicyVersion for more information on using the GetPolicyVersion
7187// API call, and error handling.
7188//
7189// This method is useful when you want to inject custom logic or configuration
7190// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7191//
7192//
7193//    // Example sending a request using the GetPolicyVersionRequest method.
7194//    req, resp := client.GetPolicyVersionRequest(params)
7195//
7196//    err := req.Send()
7197//    if err == nil { // resp is now filled
7198//        fmt.Println(resp)
7199//    }
7200func (c *IoT) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
7201	op := &request.Operation{
7202		Name:       opGetPolicyVersion,
7203		HTTPMethod: "GET",
7204		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
7205	}
7206
7207	if input == nil {
7208		input = &GetPolicyVersionInput{}
7209	}
7210
7211	output = &GetPolicyVersionOutput{}
7212	req = c.newRequest(op, input, output)
7213	return
7214}
7215
7216// GetPolicyVersion API operation for AWS IoT.
7217//
7218// Gets information about the specified policy version.
7219//
7220// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7221// with awserr.Error's Code and Message methods to get detailed information about
7222// the error.
7223//
7224// See the AWS API reference guide for AWS IoT's
7225// API operation GetPolicyVersion for usage and error information.
7226//
7227// Returned Error Codes:
7228//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7229//   The specified resource does not exist.
7230//
7231//   * ErrCodeInvalidRequestException "InvalidRequestException"
7232//   The request is not valid.
7233//
7234//   * ErrCodeThrottlingException "ThrottlingException"
7235//   The rate exceeds the limit.
7236//
7237//   * ErrCodeUnauthorizedException "UnauthorizedException"
7238//   You are not authorized to perform this operation.
7239//
7240//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7241//   The service is temporarily unavailable.
7242//
7243//   * ErrCodeInternalFailureException "InternalFailureException"
7244//   An unexpected error has occurred.
7245//
7246func (c *IoT) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
7247	req, out := c.GetPolicyVersionRequest(input)
7248	return out, req.Send()
7249}
7250
7251// GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
7252// the ability to pass a context and additional request options.
7253//
7254// See GetPolicyVersion for details on how to use this API operation.
7255//
7256// The context must be non-nil and will be used for request cancellation. If
7257// the context is nil a panic will occur. In the future the SDK may create
7258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7259// for more information on using Contexts.
7260func (c *IoT) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
7261	req, out := c.GetPolicyVersionRequest(input)
7262	req.SetContext(ctx)
7263	req.ApplyOptions(opts...)
7264	return out, req.Send()
7265}
7266
7267const opGetRegistrationCode = "GetRegistrationCode"
7268
7269// GetRegistrationCodeRequest generates a "aws/request.Request" representing the
7270// client's request for the GetRegistrationCode operation. The "output" return
7271// value will be populated with the request's response once the request completes
7272// successfuly.
7273//
7274// Use "Send" method on the returned Request to send the API call to the service.
7275// the "output" return value is not valid until after Send returns without error.
7276//
7277// See GetRegistrationCode for more information on using the GetRegistrationCode
7278// API call, and error handling.
7279//
7280// This method is useful when you want to inject custom logic or configuration
7281// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7282//
7283//
7284//    // Example sending a request using the GetRegistrationCodeRequest method.
7285//    req, resp := client.GetRegistrationCodeRequest(params)
7286//
7287//    err := req.Send()
7288//    if err == nil { // resp is now filled
7289//        fmt.Println(resp)
7290//    }
7291func (c *IoT) GetRegistrationCodeRequest(input *GetRegistrationCodeInput) (req *request.Request, output *GetRegistrationCodeOutput) {
7292	op := &request.Operation{
7293		Name:       opGetRegistrationCode,
7294		HTTPMethod: "GET",
7295		HTTPPath:   "/registrationcode",
7296	}
7297
7298	if input == nil {
7299		input = &GetRegistrationCodeInput{}
7300	}
7301
7302	output = &GetRegistrationCodeOutput{}
7303	req = c.newRequest(op, input, output)
7304	return
7305}
7306
7307// GetRegistrationCode API operation for AWS IoT.
7308//
7309// Gets a registration code used to register a CA certificate with AWS IoT.
7310//
7311// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7312// with awserr.Error's Code and Message methods to get detailed information about
7313// the error.
7314//
7315// See the AWS API reference guide for AWS IoT's
7316// API operation GetRegistrationCode for usage and error information.
7317//
7318// Returned Error Codes:
7319//   * ErrCodeThrottlingException "ThrottlingException"
7320//   The rate exceeds the limit.
7321//
7322//   * ErrCodeUnauthorizedException "UnauthorizedException"
7323//   You are not authorized to perform this operation.
7324//
7325//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7326//   The service is temporarily unavailable.
7327//
7328//   * ErrCodeInternalFailureException "InternalFailureException"
7329//   An unexpected error has occurred.
7330//
7331//   * ErrCodeInvalidRequestException "InvalidRequestException"
7332//   The request is not valid.
7333//
7334func (c *IoT) GetRegistrationCode(input *GetRegistrationCodeInput) (*GetRegistrationCodeOutput, error) {
7335	req, out := c.GetRegistrationCodeRequest(input)
7336	return out, req.Send()
7337}
7338
7339// GetRegistrationCodeWithContext is the same as GetRegistrationCode with the addition of
7340// the ability to pass a context and additional request options.
7341//
7342// See GetRegistrationCode for details on how to use this API operation.
7343//
7344// The context must be non-nil and will be used for request cancellation. If
7345// the context is nil a panic will occur. In the future the SDK may create
7346// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7347// for more information on using Contexts.
7348func (c *IoT) GetRegistrationCodeWithContext(ctx aws.Context, input *GetRegistrationCodeInput, opts ...request.Option) (*GetRegistrationCodeOutput, error) {
7349	req, out := c.GetRegistrationCodeRequest(input)
7350	req.SetContext(ctx)
7351	req.ApplyOptions(opts...)
7352	return out, req.Send()
7353}
7354
7355const opGetTopicRule = "GetTopicRule"
7356
7357// GetTopicRuleRequest generates a "aws/request.Request" representing the
7358// client's request for the GetTopicRule operation. The "output" return
7359// value will be populated with the request's response once the request completes
7360// successfuly.
7361//
7362// Use "Send" method on the returned Request to send the API call to the service.
7363// the "output" return value is not valid until after Send returns without error.
7364//
7365// See GetTopicRule for more information on using the GetTopicRule
7366// API call, and error handling.
7367//
7368// This method is useful when you want to inject custom logic or configuration
7369// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7370//
7371//
7372//    // Example sending a request using the GetTopicRuleRequest method.
7373//    req, resp := client.GetTopicRuleRequest(params)
7374//
7375//    err := req.Send()
7376//    if err == nil { // resp is now filled
7377//        fmt.Println(resp)
7378//    }
7379func (c *IoT) GetTopicRuleRequest(input *GetTopicRuleInput) (req *request.Request, output *GetTopicRuleOutput) {
7380	op := &request.Operation{
7381		Name:       opGetTopicRule,
7382		HTTPMethod: "GET",
7383		HTTPPath:   "/rules/{ruleName}",
7384	}
7385
7386	if input == nil {
7387		input = &GetTopicRuleInput{}
7388	}
7389
7390	output = &GetTopicRuleOutput{}
7391	req = c.newRequest(op, input, output)
7392	return
7393}
7394
7395// GetTopicRule API operation for AWS IoT.
7396//
7397// Gets information about the rule.
7398//
7399// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7400// with awserr.Error's Code and Message methods to get detailed information about
7401// the error.
7402//
7403// See the AWS API reference guide for AWS IoT's
7404// API operation GetTopicRule for usage and error information.
7405//
7406// Returned Error Codes:
7407//   * ErrCodeInternalException "InternalException"
7408//   An unexpected error has occurred.
7409//
7410//   * ErrCodeInvalidRequestException "InvalidRequestException"
7411//   The request is not valid.
7412//
7413//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7414//   The service is temporarily unavailable.
7415//
7416//   * ErrCodeUnauthorizedException "UnauthorizedException"
7417//   You are not authorized to perform this operation.
7418//
7419func (c *IoT) GetTopicRule(input *GetTopicRuleInput) (*GetTopicRuleOutput, error) {
7420	req, out := c.GetTopicRuleRequest(input)
7421	return out, req.Send()
7422}
7423
7424// GetTopicRuleWithContext is the same as GetTopicRule with the addition of
7425// the ability to pass a context and additional request options.
7426//
7427// See GetTopicRule for details on how to use this API operation.
7428//
7429// The context must be non-nil and will be used for request cancellation. If
7430// the context is nil a panic will occur. In the future the SDK may create
7431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7432// for more information on using Contexts.
7433func (c *IoT) GetTopicRuleWithContext(ctx aws.Context, input *GetTopicRuleInput, opts ...request.Option) (*GetTopicRuleOutput, error) {
7434	req, out := c.GetTopicRuleRequest(input)
7435	req.SetContext(ctx)
7436	req.ApplyOptions(opts...)
7437	return out, req.Send()
7438}
7439
7440const opGetV2LoggingOptions = "GetV2LoggingOptions"
7441
7442// GetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
7443// client's request for the GetV2LoggingOptions operation. The "output" return
7444// value will be populated with the request's response once the request completes
7445// successfuly.
7446//
7447// Use "Send" method on the returned Request to send the API call to the service.
7448// the "output" return value is not valid until after Send returns without error.
7449//
7450// See GetV2LoggingOptions for more information on using the GetV2LoggingOptions
7451// API call, and error handling.
7452//
7453// This method is useful when you want to inject custom logic or configuration
7454// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7455//
7456//
7457//    // Example sending a request using the GetV2LoggingOptionsRequest method.
7458//    req, resp := client.GetV2LoggingOptionsRequest(params)
7459//
7460//    err := req.Send()
7461//    if err == nil { // resp is now filled
7462//        fmt.Println(resp)
7463//    }
7464func (c *IoT) GetV2LoggingOptionsRequest(input *GetV2LoggingOptionsInput) (req *request.Request, output *GetV2LoggingOptionsOutput) {
7465	op := &request.Operation{
7466		Name:       opGetV2LoggingOptions,
7467		HTTPMethod: "GET",
7468		HTTPPath:   "/v2LoggingOptions",
7469	}
7470
7471	if input == nil {
7472		input = &GetV2LoggingOptionsInput{}
7473	}
7474
7475	output = &GetV2LoggingOptionsOutput{}
7476	req = c.newRequest(op, input, output)
7477	return
7478}
7479
7480// GetV2LoggingOptions API operation for AWS IoT.
7481//
7482// Gets the fine grained logging options.
7483//
7484// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7485// with awserr.Error's Code and Message methods to get detailed information about
7486// the error.
7487//
7488// See the AWS API reference guide for AWS IoT's
7489// API operation GetV2LoggingOptions for usage and error information.
7490//
7491// Returned Error Codes:
7492//   * ErrCodeInternalException "InternalException"
7493//   An unexpected error has occurred.
7494//
7495//   * ErrCodeNotConfiguredException "NotConfiguredException"
7496//   The resource is not configured.
7497//
7498//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7499//   The service is temporarily unavailable.
7500//
7501func (c *IoT) GetV2LoggingOptions(input *GetV2LoggingOptionsInput) (*GetV2LoggingOptionsOutput, error) {
7502	req, out := c.GetV2LoggingOptionsRequest(input)
7503	return out, req.Send()
7504}
7505
7506// GetV2LoggingOptionsWithContext is the same as GetV2LoggingOptions with the addition of
7507// the ability to pass a context and additional request options.
7508//
7509// See GetV2LoggingOptions for details on how to use this API operation.
7510//
7511// The context must be non-nil and will be used for request cancellation. If
7512// the context is nil a panic will occur. In the future the SDK may create
7513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7514// for more information on using Contexts.
7515func (c *IoT) GetV2LoggingOptionsWithContext(ctx aws.Context, input *GetV2LoggingOptionsInput, opts ...request.Option) (*GetV2LoggingOptionsOutput, error) {
7516	req, out := c.GetV2LoggingOptionsRequest(input)
7517	req.SetContext(ctx)
7518	req.ApplyOptions(opts...)
7519	return out, req.Send()
7520}
7521
7522const opListActiveViolations = "ListActiveViolations"
7523
7524// ListActiveViolationsRequest generates a "aws/request.Request" representing the
7525// client's request for the ListActiveViolations operation. The "output" return
7526// value will be populated with the request's response once the request completes
7527// successfuly.
7528//
7529// Use "Send" method on the returned Request to send the API call to the service.
7530// the "output" return value is not valid until after Send returns without error.
7531//
7532// See ListActiveViolations for more information on using the ListActiveViolations
7533// API call, and error handling.
7534//
7535// This method is useful when you want to inject custom logic or configuration
7536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7537//
7538//
7539//    // Example sending a request using the ListActiveViolationsRequest method.
7540//    req, resp := client.ListActiveViolationsRequest(params)
7541//
7542//    err := req.Send()
7543//    if err == nil { // resp is now filled
7544//        fmt.Println(resp)
7545//    }
7546func (c *IoT) ListActiveViolationsRequest(input *ListActiveViolationsInput) (req *request.Request, output *ListActiveViolationsOutput) {
7547	op := &request.Operation{
7548		Name:       opListActiveViolations,
7549		HTTPMethod: "GET",
7550		HTTPPath:   "/active-violations",
7551	}
7552
7553	if input == nil {
7554		input = &ListActiveViolationsInput{}
7555	}
7556
7557	output = &ListActiveViolationsOutput{}
7558	req = c.newRequest(op, input, output)
7559	return
7560}
7561
7562// ListActiveViolations API operation for AWS IoT.
7563//
7564// Lists the active violations for a given Device Defender security profile.
7565//
7566// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7567// with awserr.Error's Code and Message methods to get detailed information about
7568// the error.
7569//
7570// See the AWS API reference guide for AWS IoT's
7571// API operation ListActiveViolations for usage and error information.
7572//
7573// Returned Error Codes:
7574//   * ErrCodeInvalidRequestException "InvalidRequestException"
7575//   The request is not valid.
7576//
7577//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7578//   The specified resource does not exist.
7579//
7580//   * ErrCodeThrottlingException "ThrottlingException"
7581//   The rate exceeds the limit.
7582//
7583//   * ErrCodeInternalFailureException "InternalFailureException"
7584//   An unexpected error has occurred.
7585//
7586func (c *IoT) ListActiveViolations(input *ListActiveViolationsInput) (*ListActiveViolationsOutput, error) {
7587	req, out := c.ListActiveViolationsRequest(input)
7588	return out, req.Send()
7589}
7590
7591// ListActiveViolationsWithContext is the same as ListActiveViolations with the addition of
7592// the ability to pass a context and additional request options.
7593//
7594// See ListActiveViolations for details on how to use this API operation.
7595//
7596// The context must be non-nil and will be used for request cancellation. If
7597// the context is nil a panic will occur. In the future the SDK may create
7598// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7599// for more information on using Contexts.
7600func (c *IoT) ListActiveViolationsWithContext(ctx aws.Context, input *ListActiveViolationsInput, opts ...request.Option) (*ListActiveViolationsOutput, error) {
7601	req, out := c.ListActiveViolationsRequest(input)
7602	req.SetContext(ctx)
7603	req.ApplyOptions(opts...)
7604	return out, req.Send()
7605}
7606
7607const opListAttachedPolicies = "ListAttachedPolicies"
7608
7609// ListAttachedPoliciesRequest generates a "aws/request.Request" representing the
7610// client's request for the ListAttachedPolicies operation. The "output" return
7611// value will be populated with the request's response once the request completes
7612// successfuly.
7613//
7614// Use "Send" method on the returned Request to send the API call to the service.
7615// the "output" return value is not valid until after Send returns without error.
7616//
7617// See ListAttachedPolicies for more information on using the ListAttachedPolicies
7618// API call, and error handling.
7619//
7620// This method is useful when you want to inject custom logic or configuration
7621// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7622//
7623//
7624//    // Example sending a request using the ListAttachedPoliciesRequest method.
7625//    req, resp := client.ListAttachedPoliciesRequest(params)
7626//
7627//    err := req.Send()
7628//    if err == nil { // resp is now filled
7629//        fmt.Println(resp)
7630//    }
7631func (c *IoT) ListAttachedPoliciesRequest(input *ListAttachedPoliciesInput) (req *request.Request, output *ListAttachedPoliciesOutput) {
7632	op := &request.Operation{
7633		Name:       opListAttachedPolicies,
7634		HTTPMethod: "POST",
7635		HTTPPath:   "/attached-policies/{target}",
7636	}
7637
7638	if input == nil {
7639		input = &ListAttachedPoliciesInput{}
7640	}
7641
7642	output = &ListAttachedPoliciesOutput{}
7643	req = c.newRequest(op, input, output)
7644	return
7645}
7646
7647// ListAttachedPolicies API operation for AWS IoT.
7648//
7649// Lists the policies attached to the specified thing group.
7650//
7651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7652// with awserr.Error's Code and Message methods to get detailed information about
7653// the error.
7654//
7655// See the AWS API reference guide for AWS IoT's
7656// API operation ListAttachedPolicies for usage and error information.
7657//
7658// Returned Error Codes:
7659//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7660//   The specified resource does not exist.
7661//
7662//   * ErrCodeInvalidRequestException "InvalidRequestException"
7663//   The request is not valid.
7664//
7665//   * ErrCodeThrottlingException "ThrottlingException"
7666//   The rate exceeds the limit.
7667//
7668//   * ErrCodeUnauthorizedException "UnauthorizedException"
7669//   You are not authorized to perform this operation.
7670//
7671//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7672//   The service is temporarily unavailable.
7673//
7674//   * ErrCodeInternalFailureException "InternalFailureException"
7675//   An unexpected error has occurred.
7676//
7677//   * ErrCodeLimitExceededException "LimitExceededException"
7678//   A limit has been exceeded.
7679//
7680func (c *IoT) ListAttachedPolicies(input *ListAttachedPoliciesInput) (*ListAttachedPoliciesOutput, error) {
7681	req, out := c.ListAttachedPoliciesRequest(input)
7682	return out, req.Send()
7683}
7684
7685// ListAttachedPoliciesWithContext is the same as ListAttachedPolicies with the addition of
7686// the ability to pass a context and additional request options.
7687//
7688// See ListAttachedPolicies for details on how to use this API operation.
7689//
7690// The context must be non-nil and will be used for request cancellation. If
7691// the context is nil a panic will occur. In the future the SDK may create
7692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7693// for more information on using Contexts.
7694func (c *IoT) ListAttachedPoliciesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, opts ...request.Option) (*ListAttachedPoliciesOutput, error) {
7695	req, out := c.ListAttachedPoliciesRequest(input)
7696	req.SetContext(ctx)
7697	req.ApplyOptions(opts...)
7698	return out, req.Send()
7699}
7700
7701const opListAuditFindings = "ListAuditFindings"
7702
7703// ListAuditFindingsRequest generates a "aws/request.Request" representing the
7704// client's request for the ListAuditFindings operation. The "output" return
7705// value will be populated with the request's response once the request completes
7706// successfuly.
7707//
7708// Use "Send" method on the returned Request to send the API call to the service.
7709// the "output" return value is not valid until after Send returns without error.
7710//
7711// See ListAuditFindings for more information on using the ListAuditFindings
7712// API call, and error handling.
7713//
7714// This method is useful when you want to inject custom logic or configuration
7715// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7716//
7717//
7718//    // Example sending a request using the ListAuditFindingsRequest method.
7719//    req, resp := client.ListAuditFindingsRequest(params)
7720//
7721//    err := req.Send()
7722//    if err == nil { // resp is now filled
7723//        fmt.Println(resp)
7724//    }
7725func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *request.Request, output *ListAuditFindingsOutput) {
7726	op := &request.Operation{
7727		Name:       opListAuditFindings,
7728		HTTPMethod: "POST",
7729		HTTPPath:   "/audit/findings",
7730	}
7731
7732	if input == nil {
7733		input = &ListAuditFindingsInput{}
7734	}
7735
7736	output = &ListAuditFindingsOutput{}
7737	req = c.newRequest(op, input, output)
7738	return
7739}
7740
7741// ListAuditFindings API operation for AWS IoT.
7742//
7743// Lists the findings (results) of a Device Defender audit or of the audits
7744// performed during a specified time period. (Findings are retained for 180
7745// days.)
7746//
7747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7748// with awserr.Error's Code and Message methods to get detailed information about
7749// the error.
7750//
7751// See the AWS API reference guide for AWS IoT's
7752// API operation ListAuditFindings for usage and error information.
7753//
7754// Returned Error Codes:
7755//   * ErrCodeInvalidRequestException "InvalidRequestException"
7756//   The request is not valid.
7757//
7758//   * ErrCodeThrottlingException "ThrottlingException"
7759//   The rate exceeds the limit.
7760//
7761//   * ErrCodeInternalFailureException "InternalFailureException"
7762//   An unexpected error has occurred.
7763//
7764func (c *IoT) ListAuditFindings(input *ListAuditFindingsInput) (*ListAuditFindingsOutput, error) {
7765	req, out := c.ListAuditFindingsRequest(input)
7766	return out, req.Send()
7767}
7768
7769// ListAuditFindingsWithContext is the same as ListAuditFindings with the addition of
7770// the ability to pass a context and additional request options.
7771//
7772// See ListAuditFindings for details on how to use this API operation.
7773//
7774// The context must be non-nil and will be used for request cancellation. If
7775// the context is nil a panic will occur. In the future the SDK may create
7776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7777// for more information on using Contexts.
7778func (c *IoT) ListAuditFindingsWithContext(ctx aws.Context, input *ListAuditFindingsInput, opts ...request.Option) (*ListAuditFindingsOutput, error) {
7779	req, out := c.ListAuditFindingsRequest(input)
7780	req.SetContext(ctx)
7781	req.ApplyOptions(opts...)
7782	return out, req.Send()
7783}
7784
7785const opListAuditTasks = "ListAuditTasks"
7786
7787// ListAuditTasksRequest generates a "aws/request.Request" representing the
7788// client's request for the ListAuditTasks operation. The "output" return
7789// value will be populated with the request's response once the request completes
7790// successfuly.
7791//
7792// Use "Send" method on the returned Request to send the API call to the service.
7793// the "output" return value is not valid until after Send returns without error.
7794//
7795// See ListAuditTasks for more information on using the ListAuditTasks
7796// API call, and error handling.
7797//
7798// This method is useful when you want to inject custom logic or configuration
7799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7800//
7801//
7802//    // Example sending a request using the ListAuditTasksRequest method.
7803//    req, resp := client.ListAuditTasksRequest(params)
7804//
7805//    err := req.Send()
7806//    if err == nil { // resp is now filled
7807//        fmt.Println(resp)
7808//    }
7809func (c *IoT) ListAuditTasksRequest(input *ListAuditTasksInput) (req *request.Request, output *ListAuditTasksOutput) {
7810	op := &request.Operation{
7811		Name:       opListAuditTasks,
7812		HTTPMethod: "GET",
7813		HTTPPath:   "/audit/tasks",
7814	}
7815
7816	if input == nil {
7817		input = &ListAuditTasksInput{}
7818	}
7819
7820	output = &ListAuditTasksOutput{}
7821	req = c.newRequest(op, input, output)
7822	return
7823}
7824
7825// ListAuditTasks API operation for AWS IoT.
7826//
7827// Lists the Device Defender audits that have been performed during a given
7828// time period.
7829//
7830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7831// with awserr.Error's Code and Message methods to get detailed information about
7832// the error.
7833//
7834// See the AWS API reference guide for AWS IoT's
7835// API operation ListAuditTasks for usage and error information.
7836//
7837// Returned Error Codes:
7838//   * ErrCodeInvalidRequestException "InvalidRequestException"
7839//   The request is not valid.
7840//
7841//   * ErrCodeThrottlingException "ThrottlingException"
7842//   The rate exceeds the limit.
7843//
7844//   * ErrCodeInternalFailureException "InternalFailureException"
7845//   An unexpected error has occurred.
7846//
7847func (c *IoT) ListAuditTasks(input *ListAuditTasksInput) (*ListAuditTasksOutput, error) {
7848	req, out := c.ListAuditTasksRequest(input)
7849	return out, req.Send()
7850}
7851
7852// ListAuditTasksWithContext is the same as ListAuditTasks with the addition of
7853// the ability to pass a context and additional request options.
7854//
7855// See ListAuditTasks for details on how to use this API operation.
7856//
7857// The context must be non-nil and will be used for request cancellation. If
7858// the context is nil a panic will occur. In the future the SDK may create
7859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7860// for more information on using Contexts.
7861func (c *IoT) ListAuditTasksWithContext(ctx aws.Context, input *ListAuditTasksInput, opts ...request.Option) (*ListAuditTasksOutput, error) {
7862	req, out := c.ListAuditTasksRequest(input)
7863	req.SetContext(ctx)
7864	req.ApplyOptions(opts...)
7865	return out, req.Send()
7866}
7867
7868const opListAuthorizers = "ListAuthorizers"
7869
7870// ListAuthorizersRequest generates a "aws/request.Request" representing the
7871// client's request for the ListAuthorizers operation. The "output" return
7872// value will be populated with the request's response once the request completes
7873// successfuly.
7874//
7875// Use "Send" method on the returned Request to send the API call to the service.
7876// the "output" return value is not valid until after Send returns without error.
7877//
7878// See ListAuthorizers for more information on using the ListAuthorizers
7879// API call, and error handling.
7880//
7881// This method is useful when you want to inject custom logic or configuration
7882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7883//
7884//
7885//    // Example sending a request using the ListAuthorizersRequest method.
7886//    req, resp := client.ListAuthorizersRequest(params)
7887//
7888//    err := req.Send()
7889//    if err == nil { // resp is now filled
7890//        fmt.Println(resp)
7891//    }
7892func (c *IoT) ListAuthorizersRequest(input *ListAuthorizersInput) (req *request.Request, output *ListAuthorizersOutput) {
7893	op := &request.Operation{
7894		Name:       opListAuthorizers,
7895		HTTPMethod: "GET",
7896		HTTPPath:   "/authorizers/",
7897	}
7898
7899	if input == nil {
7900		input = &ListAuthorizersInput{}
7901	}
7902
7903	output = &ListAuthorizersOutput{}
7904	req = c.newRequest(op, input, output)
7905	return
7906}
7907
7908// ListAuthorizers API operation for AWS IoT.
7909//
7910// Lists the authorizers registered in your account.
7911//
7912// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7913// with awserr.Error's Code and Message methods to get detailed information about
7914// the error.
7915//
7916// See the AWS API reference guide for AWS IoT's
7917// API operation ListAuthorizers for usage and error information.
7918//
7919// Returned Error Codes:
7920//   * ErrCodeInvalidRequestException "InvalidRequestException"
7921//   The request is not valid.
7922//
7923//   * ErrCodeThrottlingException "ThrottlingException"
7924//   The rate exceeds the limit.
7925//
7926//   * ErrCodeUnauthorizedException "UnauthorizedException"
7927//   You are not authorized to perform this operation.
7928//
7929//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
7930//   The service is temporarily unavailable.
7931//
7932//   * ErrCodeInternalFailureException "InternalFailureException"
7933//   An unexpected error has occurred.
7934//
7935func (c *IoT) ListAuthorizers(input *ListAuthorizersInput) (*ListAuthorizersOutput, error) {
7936	req, out := c.ListAuthorizersRequest(input)
7937	return out, req.Send()
7938}
7939
7940// ListAuthorizersWithContext is the same as ListAuthorizers with the addition of
7941// the ability to pass a context and additional request options.
7942//
7943// See ListAuthorizers for details on how to use this API operation.
7944//
7945// The context must be non-nil and will be used for request cancellation. If
7946// the context is nil a panic will occur. In the future the SDK may create
7947// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7948// for more information on using Contexts.
7949func (c *IoT) ListAuthorizersWithContext(ctx aws.Context, input *ListAuthorizersInput, opts ...request.Option) (*ListAuthorizersOutput, error) {
7950	req, out := c.ListAuthorizersRequest(input)
7951	req.SetContext(ctx)
7952	req.ApplyOptions(opts...)
7953	return out, req.Send()
7954}
7955
7956const opListCACertificates = "ListCACertificates"
7957
7958// ListCACertificatesRequest generates a "aws/request.Request" representing the
7959// client's request for the ListCACertificates operation. The "output" return
7960// value will be populated with the request's response once the request completes
7961// successfuly.
7962//
7963// Use "Send" method on the returned Request to send the API call to the service.
7964// the "output" return value is not valid until after Send returns without error.
7965//
7966// See ListCACertificates for more information on using the ListCACertificates
7967// API call, and error handling.
7968//
7969// This method is useful when you want to inject custom logic or configuration
7970// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7971//
7972//
7973//    // Example sending a request using the ListCACertificatesRequest method.
7974//    req, resp := client.ListCACertificatesRequest(params)
7975//
7976//    err := req.Send()
7977//    if err == nil { // resp is now filled
7978//        fmt.Println(resp)
7979//    }
7980func (c *IoT) ListCACertificatesRequest(input *ListCACertificatesInput) (req *request.Request, output *ListCACertificatesOutput) {
7981	op := &request.Operation{
7982		Name:       opListCACertificates,
7983		HTTPMethod: "GET",
7984		HTTPPath:   "/cacertificates",
7985	}
7986
7987	if input == nil {
7988		input = &ListCACertificatesInput{}
7989	}
7990
7991	output = &ListCACertificatesOutput{}
7992	req = c.newRequest(op, input, output)
7993	return
7994}
7995
7996// ListCACertificates API operation for AWS IoT.
7997//
7998// Lists the CA certificates registered for your AWS account.
7999//
8000// The results are paginated with a default page size of 25. You can use the
8001// returned marker to retrieve additional results.
8002//
8003// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8004// with awserr.Error's Code and Message methods to get detailed information about
8005// the error.
8006//
8007// See the AWS API reference guide for AWS IoT's
8008// API operation ListCACertificates for usage and error information.
8009//
8010// Returned Error Codes:
8011//   * ErrCodeInvalidRequestException "InvalidRequestException"
8012//   The request is not valid.
8013//
8014//   * ErrCodeThrottlingException "ThrottlingException"
8015//   The rate exceeds the limit.
8016//
8017//   * ErrCodeUnauthorizedException "UnauthorizedException"
8018//   You are not authorized to perform this operation.
8019//
8020//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8021//   The service is temporarily unavailable.
8022//
8023//   * ErrCodeInternalFailureException "InternalFailureException"
8024//   An unexpected error has occurred.
8025//
8026func (c *IoT) ListCACertificates(input *ListCACertificatesInput) (*ListCACertificatesOutput, error) {
8027	req, out := c.ListCACertificatesRequest(input)
8028	return out, req.Send()
8029}
8030
8031// ListCACertificatesWithContext is the same as ListCACertificates with the addition of
8032// the ability to pass a context and additional request options.
8033//
8034// See ListCACertificates for details on how to use this API operation.
8035//
8036// The context must be non-nil and will be used for request cancellation. If
8037// the context is nil a panic will occur. In the future the SDK may create
8038// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8039// for more information on using Contexts.
8040func (c *IoT) ListCACertificatesWithContext(ctx aws.Context, input *ListCACertificatesInput, opts ...request.Option) (*ListCACertificatesOutput, error) {
8041	req, out := c.ListCACertificatesRequest(input)
8042	req.SetContext(ctx)
8043	req.ApplyOptions(opts...)
8044	return out, req.Send()
8045}
8046
8047const opListCertificates = "ListCertificates"
8048
8049// ListCertificatesRequest generates a "aws/request.Request" representing the
8050// client's request for the ListCertificates operation. The "output" return
8051// value will be populated with the request's response once the request completes
8052// successfuly.
8053//
8054// Use "Send" method on the returned Request to send the API call to the service.
8055// the "output" return value is not valid until after Send returns without error.
8056//
8057// See ListCertificates for more information on using the ListCertificates
8058// API call, and error handling.
8059//
8060// This method is useful when you want to inject custom logic or configuration
8061// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8062//
8063//
8064//    // Example sending a request using the ListCertificatesRequest method.
8065//    req, resp := client.ListCertificatesRequest(params)
8066//
8067//    err := req.Send()
8068//    if err == nil { // resp is now filled
8069//        fmt.Println(resp)
8070//    }
8071func (c *IoT) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
8072	op := &request.Operation{
8073		Name:       opListCertificates,
8074		HTTPMethod: "GET",
8075		HTTPPath:   "/certificates",
8076	}
8077
8078	if input == nil {
8079		input = &ListCertificatesInput{}
8080	}
8081
8082	output = &ListCertificatesOutput{}
8083	req = c.newRequest(op, input, output)
8084	return
8085}
8086
8087// ListCertificates API operation for AWS IoT.
8088//
8089// Lists the certificates registered in your AWS account.
8090//
8091// The results are paginated with a default page size of 25. You can use the
8092// returned marker to retrieve additional results.
8093//
8094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8095// with awserr.Error's Code and Message methods to get detailed information about
8096// the error.
8097//
8098// See the AWS API reference guide for AWS IoT's
8099// API operation ListCertificates for usage and error information.
8100//
8101// Returned Error Codes:
8102//   * ErrCodeInvalidRequestException "InvalidRequestException"
8103//   The request is not valid.
8104//
8105//   * ErrCodeThrottlingException "ThrottlingException"
8106//   The rate exceeds the limit.
8107//
8108//   * ErrCodeUnauthorizedException "UnauthorizedException"
8109//   You are not authorized to perform this operation.
8110//
8111//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8112//   The service is temporarily unavailable.
8113//
8114//   * ErrCodeInternalFailureException "InternalFailureException"
8115//   An unexpected error has occurred.
8116//
8117func (c *IoT) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
8118	req, out := c.ListCertificatesRequest(input)
8119	return out, req.Send()
8120}
8121
8122// ListCertificatesWithContext is the same as ListCertificates with the addition of
8123// the ability to pass a context and additional request options.
8124//
8125// See ListCertificates for details on how to use this API operation.
8126//
8127// The context must be non-nil and will be used for request cancellation. If
8128// the context is nil a panic will occur. In the future the SDK may create
8129// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8130// for more information on using Contexts.
8131func (c *IoT) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
8132	req, out := c.ListCertificatesRequest(input)
8133	req.SetContext(ctx)
8134	req.ApplyOptions(opts...)
8135	return out, req.Send()
8136}
8137
8138const opListCertificatesByCA = "ListCertificatesByCA"
8139
8140// ListCertificatesByCARequest generates a "aws/request.Request" representing the
8141// client's request for the ListCertificatesByCA operation. The "output" return
8142// value will be populated with the request's response once the request completes
8143// successfuly.
8144//
8145// Use "Send" method on the returned Request to send the API call to the service.
8146// the "output" return value is not valid until after Send returns without error.
8147//
8148// See ListCertificatesByCA for more information on using the ListCertificatesByCA
8149// API call, and error handling.
8150//
8151// This method is useful when you want to inject custom logic or configuration
8152// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8153//
8154//
8155//    // Example sending a request using the ListCertificatesByCARequest method.
8156//    req, resp := client.ListCertificatesByCARequest(params)
8157//
8158//    err := req.Send()
8159//    if err == nil { // resp is now filled
8160//        fmt.Println(resp)
8161//    }
8162func (c *IoT) ListCertificatesByCARequest(input *ListCertificatesByCAInput) (req *request.Request, output *ListCertificatesByCAOutput) {
8163	op := &request.Operation{
8164		Name:       opListCertificatesByCA,
8165		HTTPMethod: "GET",
8166		HTTPPath:   "/certificates-by-ca/{caCertificateId}",
8167	}
8168
8169	if input == nil {
8170		input = &ListCertificatesByCAInput{}
8171	}
8172
8173	output = &ListCertificatesByCAOutput{}
8174	req = c.newRequest(op, input, output)
8175	return
8176}
8177
8178// ListCertificatesByCA API operation for AWS IoT.
8179//
8180// List the device certificates signed by the specified CA certificate.
8181//
8182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8183// with awserr.Error's Code and Message methods to get detailed information about
8184// the error.
8185//
8186// See the AWS API reference guide for AWS IoT's
8187// API operation ListCertificatesByCA for usage and error information.
8188//
8189// Returned Error Codes:
8190//   * ErrCodeInvalidRequestException "InvalidRequestException"
8191//   The request is not valid.
8192//
8193//   * ErrCodeThrottlingException "ThrottlingException"
8194//   The rate exceeds the limit.
8195//
8196//   * ErrCodeUnauthorizedException "UnauthorizedException"
8197//   You are not authorized to perform this operation.
8198//
8199//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8200//   The service is temporarily unavailable.
8201//
8202//   * ErrCodeInternalFailureException "InternalFailureException"
8203//   An unexpected error has occurred.
8204//
8205func (c *IoT) ListCertificatesByCA(input *ListCertificatesByCAInput) (*ListCertificatesByCAOutput, error) {
8206	req, out := c.ListCertificatesByCARequest(input)
8207	return out, req.Send()
8208}
8209
8210// ListCertificatesByCAWithContext is the same as ListCertificatesByCA with the addition of
8211// the ability to pass a context and additional request options.
8212//
8213// See ListCertificatesByCA for details on how to use this API operation.
8214//
8215// The context must be non-nil and will be used for request cancellation. If
8216// the context is nil a panic will occur. In the future the SDK may create
8217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8218// for more information on using Contexts.
8219func (c *IoT) ListCertificatesByCAWithContext(ctx aws.Context, input *ListCertificatesByCAInput, opts ...request.Option) (*ListCertificatesByCAOutput, error) {
8220	req, out := c.ListCertificatesByCARequest(input)
8221	req.SetContext(ctx)
8222	req.ApplyOptions(opts...)
8223	return out, req.Send()
8224}
8225
8226const opListIndices = "ListIndices"
8227
8228// ListIndicesRequest generates a "aws/request.Request" representing the
8229// client's request for the ListIndices operation. The "output" return
8230// value will be populated with the request's response once the request completes
8231// successfuly.
8232//
8233// Use "Send" method on the returned Request to send the API call to the service.
8234// the "output" return value is not valid until after Send returns without error.
8235//
8236// See ListIndices for more information on using the ListIndices
8237// API call, and error handling.
8238//
8239// This method is useful when you want to inject custom logic or configuration
8240// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8241//
8242//
8243//    // Example sending a request using the ListIndicesRequest method.
8244//    req, resp := client.ListIndicesRequest(params)
8245//
8246//    err := req.Send()
8247//    if err == nil { // resp is now filled
8248//        fmt.Println(resp)
8249//    }
8250func (c *IoT) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
8251	op := &request.Operation{
8252		Name:       opListIndices,
8253		HTTPMethod: "GET",
8254		HTTPPath:   "/indices",
8255	}
8256
8257	if input == nil {
8258		input = &ListIndicesInput{}
8259	}
8260
8261	output = &ListIndicesOutput{}
8262	req = c.newRequest(op, input, output)
8263	return
8264}
8265
8266// ListIndices API operation for AWS IoT.
8267//
8268// Lists the search indices.
8269//
8270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8271// with awserr.Error's Code and Message methods to get detailed information about
8272// the error.
8273//
8274// See the AWS API reference guide for AWS IoT's
8275// API operation ListIndices for usage and error information.
8276//
8277// Returned Error Codes:
8278//   * ErrCodeInvalidRequestException "InvalidRequestException"
8279//   The request is not valid.
8280//
8281//   * ErrCodeThrottlingException "ThrottlingException"
8282//   The rate exceeds the limit.
8283//
8284//   * ErrCodeUnauthorizedException "UnauthorizedException"
8285//   You are not authorized to perform this operation.
8286//
8287//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8288//   The service is temporarily unavailable.
8289//
8290//   * ErrCodeInternalFailureException "InternalFailureException"
8291//   An unexpected error has occurred.
8292//
8293func (c *IoT) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
8294	req, out := c.ListIndicesRequest(input)
8295	return out, req.Send()
8296}
8297
8298// ListIndicesWithContext is the same as ListIndices with the addition of
8299// the ability to pass a context and additional request options.
8300//
8301// See ListIndices for details on how to use this API operation.
8302//
8303// The context must be non-nil and will be used for request cancellation. If
8304// the context is nil a panic will occur. In the future the SDK may create
8305// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8306// for more information on using Contexts.
8307func (c *IoT) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
8308	req, out := c.ListIndicesRequest(input)
8309	req.SetContext(ctx)
8310	req.ApplyOptions(opts...)
8311	return out, req.Send()
8312}
8313
8314const opListJobExecutionsForJob = "ListJobExecutionsForJob"
8315
8316// ListJobExecutionsForJobRequest generates a "aws/request.Request" representing the
8317// client's request for the ListJobExecutionsForJob operation. The "output" return
8318// value will be populated with the request's response once the request completes
8319// successfuly.
8320//
8321// Use "Send" method on the returned Request to send the API call to the service.
8322// the "output" return value is not valid until after Send returns without error.
8323//
8324// See ListJobExecutionsForJob for more information on using the ListJobExecutionsForJob
8325// API call, and error handling.
8326//
8327// This method is useful when you want to inject custom logic or configuration
8328// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8329//
8330//
8331//    // Example sending a request using the ListJobExecutionsForJobRequest method.
8332//    req, resp := client.ListJobExecutionsForJobRequest(params)
8333//
8334//    err := req.Send()
8335//    if err == nil { // resp is now filled
8336//        fmt.Println(resp)
8337//    }
8338func (c *IoT) ListJobExecutionsForJobRequest(input *ListJobExecutionsForJobInput) (req *request.Request, output *ListJobExecutionsForJobOutput) {
8339	op := &request.Operation{
8340		Name:       opListJobExecutionsForJob,
8341		HTTPMethod: "GET",
8342		HTTPPath:   "/jobs/{jobId}/things",
8343	}
8344
8345	if input == nil {
8346		input = &ListJobExecutionsForJobInput{}
8347	}
8348
8349	output = &ListJobExecutionsForJobOutput{}
8350	req = c.newRequest(op, input, output)
8351	return
8352}
8353
8354// ListJobExecutionsForJob API operation for AWS IoT.
8355//
8356// Lists the job executions for a job.
8357//
8358// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8359// with awserr.Error's Code and Message methods to get detailed information about
8360// the error.
8361//
8362// See the AWS API reference guide for AWS IoT's
8363// API operation ListJobExecutionsForJob for usage and error information.
8364//
8365// Returned Error Codes:
8366//   * ErrCodeInvalidRequestException "InvalidRequestException"
8367//   The request is not valid.
8368//
8369//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
8370//   The specified resource does not exist.
8371//
8372//   * ErrCodeThrottlingException "ThrottlingException"
8373//   The rate exceeds the limit.
8374//
8375//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8376//   The service is temporarily unavailable.
8377//
8378func (c *IoT) ListJobExecutionsForJob(input *ListJobExecutionsForJobInput) (*ListJobExecutionsForJobOutput, error) {
8379	req, out := c.ListJobExecutionsForJobRequest(input)
8380	return out, req.Send()
8381}
8382
8383// ListJobExecutionsForJobWithContext is the same as ListJobExecutionsForJob with the addition of
8384// the ability to pass a context and additional request options.
8385//
8386// See ListJobExecutionsForJob for details on how to use this API operation.
8387//
8388// The context must be non-nil and will be used for request cancellation. If
8389// the context is nil a panic will occur. In the future the SDK may create
8390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8391// for more information on using Contexts.
8392func (c *IoT) ListJobExecutionsForJobWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, opts ...request.Option) (*ListJobExecutionsForJobOutput, error) {
8393	req, out := c.ListJobExecutionsForJobRequest(input)
8394	req.SetContext(ctx)
8395	req.ApplyOptions(opts...)
8396	return out, req.Send()
8397}
8398
8399const opListJobExecutionsForThing = "ListJobExecutionsForThing"
8400
8401// ListJobExecutionsForThingRequest generates a "aws/request.Request" representing the
8402// client's request for the ListJobExecutionsForThing operation. The "output" return
8403// value will be populated with the request's response once the request completes
8404// successfuly.
8405//
8406// Use "Send" method on the returned Request to send the API call to the service.
8407// the "output" return value is not valid until after Send returns without error.
8408//
8409// See ListJobExecutionsForThing for more information on using the ListJobExecutionsForThing
8410// API call, and error handling.
8411//
8412// This method is useful when you want to inject custom logic or configuration
8413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8414//
8415//
8416//    // Example sending a request using the ListJobExecutionsForThingRequest method.
8417//    req, resp := client.ListJobExecutionsForThingRequest(params)
8418//
8419//    err := req.Send()
8420//    if err == nil { // resp is now filled
8421//        fmt.Println(resp)
8422//    }
8423func (c *IoT) ListJobExecutionsForThingRequest(input *ListJobExecutionsForThingInput) (req *request.Request, output *ListJobExecutionsForThingOutput) {
8424	op := &request.Operation{
8425		Name:       opListJobExecutionsForThing,
8426		HTTPMethod: "GET",
8427		HTTPPath:   "/things/{thingName}/jobs",
8428	}
8429
8430	if input == nil {
8431		input = &ListJobExecutionsForThingInput{}
8432	}
8433
8434	output = &ListJobExecutionsForThingOutput{}
8435	req = c.newRequest(op, input, output)
8436	return
8437}
8438
8439// ListJobExecutionsForThing API operation for AWS IoT.
8440//
8441// Lists the job executions for the specified thing.
8442//
8443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8444// with awserr.Error's Code and Message methods to get detailed information about
8445// the error.
8446//
8447// See the AWS API reference guide for AWS IoT's
8448// API operation ListJobExecutionsForThing for usage and error information.
8449//
8450// Returned Error Codes:
8451//   * ErrCodeInvalidRequestException "InvalidRequestException"
8452//   The request is not valid.
8453//
8454//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
8455//   The specified resource does not exist.
8456//
8457//   * ErrCodeThrottlingException "ThrottlingException"
8458//   The rate exceeds the limit.
8459//
8460//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8461//   The service is temporarily unavailable.
8462//
8463func (c *IoT) ListJobExecutionsForThing(input *ListJobExecutionsForThingInput) (*ListJobExecutionsForThingOutput, error) {
8464	req, out := c.ListJobExecutionsForThingRequest(input)
8465	return out, req.Send()
8466}
8467
8468// ListJobExecutionsForThingWithContext is the same as ListJobExecutionsForThing with the addition of
8469// the ability to pass a context and additional request options.
8470//
8471// See ListJobExecutionsForThing for details on how to use this API operation.
8472//
8473// The context must be non-nil and will be used for request cancellation. If
8474// the context is nil a panic will occur. In the future the SDK may create
8475// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8476// for more information on using Contexts.
8477func (c *IoT) ListJobExecutionsForThingWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, opts ...request.Option) (*ListJobExecutionsForThingOutput, error) {
8478	req, out := c.ListJobExecutionsForThingRequest(input)
8479	req.SetContext(ctx)
8480	req.ApplyOptions(opts...)
8481	return out, req.Send()
8482}
8483
8484const opListJobs = "ListJobs"
8485
8486// ListJobsRequest generates a "aws/request.Request" representing the
8487// client's request for the ListJobs operation. The "output" return
8488// value will be populated with the request's response once the request completes
8489// successfuly.
8490//
8491// Use "Send" method on the returned Request to send the API call to the service.
8492// the "output" return value is not valid until after Send returns without error.
8493//
8494// See ListJobs for more information on using the ListJobs
8495// API call, and error handling.
8496//
8497// This method is useful when you want to inject custom logic or configuration
8498// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8499//
8500//
8501//    // Example sending a request using the ListJobsRequest method.
8502//    req, resp := client.ListJobsRequest(params)
8503//
8504//    err := req.Send()
8505//    if err == nil { // resp is now filled
8506//        fmt.Println(resp)
8507//    }
8508func (c *IoT) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
8509	op := &request.Operation{
8510		Name:       opListJobs,
8511		HTTPMethod: "GET",
8512		HTTPPath:   "/jobs",
8513	}
8514
8515	if input == nil {
8516		input = &ListJobsInput{}
8517	}
8518
8519	output = &ListJobsOutput{}
8520	req = c.newRequest(op, input, output)
8521	return
8522}
8523
8524// ListJobs API operation for AWS IoT.
8525//
8526// Lists jobs.
8527//
8528// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8529// with awserr.Error's Code and Message methods to get detailed information about
8530// the error.
8531//
8532// See the AWS API reference guide for AWS IoT's
8533// API operation ListJobs for usage and error information.
8534//
8535// Returned Error Codes:
8536//   * ErrCodeInvalidRequestException "InvalidRequestException"
8537//   The request is not valid.
8538//
8539//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
8540//   The specified resource does not exist.
8541//
8542//   * ErrCodeThrottlingException "ThrottlingException"
8543//   The rate exceeds the limit.
8544//
8545//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8546//   The service is temporarily unavailable.
8547//
8548func (c *IoT) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
8549	req, out := c.ListJobsRequest(input)
8550	return out, req.Send()
8551}
8552
8553// ListJobsWithContext is the same as ListJobs with the addition of
8554// the ability to pass a context and additional request options.
8555//
8556// See ListJobs for details on how to use this API operation.
8557//
8558// The context must be non-nil and will be used for request cancellation. If
8559// the context is nil a panic will occur. In the future the SDK may create
8560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8561// for more information on using Contexts.
8562func (c *IoT) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
8563	req, out := c.ListJobsRequest(input)
8564	req.SetContext(ctx)
8565	req.ApplyOptions(opts...)
8566	return out, req.Send()
8567}
8568
8569const opListOTAUpdates = "ListOTAUpdates"
8570
8571// ListOTAUpdatesRequest generates a "aws/request.Request" representing the
8572// client's request for the ListOTAUpdates operation. The "output" return
8573// value will be populated with the request's response once the request completes
8574// successfuly.
8575//
8576// Use "Send" method on the returned Request to send the API call to the service.
8577// the "output" return value is not valid until after Send returns without error.
8578//
8579// See ListOTAUpdates for more information on using the ListOTAUpdates
8580// API call, and error handling.
8581//
8582// This method is useful when you want to inject custom logic or configuration
8583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8584//
8585//
8586//    // Example sending a request using the ListOTAUpdatesRequest method.
8587//    req, resp := client.ListOTAUpdatesRequest(params)
8588//
8589//    err := req.Send()
8590//    if err == nil { // resp is now filled
8591//        fmt.Println(resp)
8592//    }
8593func (c *IoT) ListOTAUpdatesRequest(input *ListOTAUpdatesInput) (req *request.Request, output *ListOTAUpdatesOutput) {
8594	op := &request.Operation{
8595		Name:       opListOTAUpdates,
8596		HTTPMethod: "GET",
8597		HTTPPath:   "/otaUpdates",
8598	}
8599
8600	if input == nil {
8601		input = &ListOTAUpdatesInput{}
8602	}
8603
8604	output = &ListOTAUpdatesOutput{}
8605	req = c.newRequest(op, input, output)
8606	return
8607}
8608
8609// ListOTAUpdates API operation for AWS IoT.
8610//
8611// Lists OTA updates.
8612//
8613// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8614// with awserr.Error's Code and Message methods to get detailed information about
8615// the error.
8616//
8617// See the AWS API reference guide for AWS IoT's
8618// API operation ListOTAUpdates for usage and error information.
8619//
8620// Returned Error Codes:
8621//   * ErrCodeInvalidRequestException "InvalidRequestException"
8622//   The request is not valid.
8623//
8624//   * ErrCodeThrottlingException "ThrottlingException"
8625//   The rate exceeds the limit.
8626//
8627//   * ErrCodeUnauthorizedException "UnauthorizedException"
8628//   You are not authorized to perform this operation.
8629//
8630//   * ErrCodeInternalFailureException "InternalFailureException"
8631//   An unexpected error has occurred.
8632//
8633//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8634//   The service is temporarily unavailable.
8635//
8636func (c *IoT) ListOTAUpdates(input *ListOTAUpdatesInput) (*ListOTAUpdatesOutput, error) {
8637	req, out := c.ListOTAUpdatesRequest(input)
8638	return out, req.Send()
8639}
8640
8641// ListOTAUpdatesWithContext is the same as ListOTAUpdates with the addition of
8642// the ability to pass a context and additional request options.
8643//
8644// See ListOTAUpdates for details on how to use this API operation.
8645//
8646// The context must be non-nil and will be used for request cancellation. If
8647// the context is nil a panic will occur. In the future the SDK may create
8648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8649// for more information on using Contexts.
8650func (c *IoT) ListOTAUpdatesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, opts ...request.Option) (*ListOTAUpdatesOutput, error) {
8651	req, out := c.ListOTAUpdatesRequest(input)
8652	req.SetContext(ctx)
8653	req.ApplyOptions(opts...)
8654	return out, req.Send()
8655}
8656
8657const opListOutgoingCertificates = "ListOutgoingCertificates"
8658
8659// ListOutgoingCertificatesRequest generates a "aws/request.Request" representing the
8660// client's request for the ListOutgoingCertificates operation. The "output" return
8661// value will be populated with the request's response once the request completes
8662// successfuly.
8663//
8664// Use "Send" method on the returned Request to send the API call to the service.
8665// the "output" return value is not valid until after Send returns without error.
8666//
8667// See ListOutgoingCertificates for more information on using the ListOutgoingCertificates
8668// API call, and error handling.
8669//
8670// This method is useful when you want to inject custom logic or configuration
8671// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8672//
8673//
8674//    // Example sending a request using the ListOutgoingCertificatesRequest method.
8675//    req, resp := client.ListOutgoingCertificatesRequest(params)
8676//
8677//    err := req.Send()
8678//    if err == nil { // resp is now filled
8679//        fmt.Println(resp)
8680//    }
8681func (c *IoT) ListOutgoingCertificatesRequest(input *ListOutgoingCertificatesInput) (req *request.Request, output *ListOutgoingCertificatesOutput) {
8682	op := &request.Operation{
8683		Name:       opListOutgoingCertificates,
8684		HTTPMethod: "GET",
8685		HTTPPath:   "/certificates-out-going",
8686	}
8687
8688	if input == nil {
8689		input = &ListOutgoingCertificatesInput{}
8690	}
8691
8692	output = &ListOutgoingCertificatesOutput{}
8693	req = c.newRequest(op, input, output)
8694	return
8695}
8696
8697// ListOutgoingCertificates API operation for AWS IoT.
8698//
8699// Lists certificates that are being transferred but not yet accepted.
8700//
8701// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8702// with awserr.Error's Code and Message methods to get detailed information about
8703// the error.
8704//
8705// See the AWS API reference guide for AWS IoT's
8706// API operation ListOutgoingCertificates for usage and error information.
8707//
8708// Returned Error Codes:
8709//   * ErrCodeInvalidRequestException "InvalidRequestException"
8710//   The request is not valid.
8711//
8712//   * ErrCodeThrottlingException "ThrottlingException"
8713//   The rate exceeds the limit.
8714//
8715//   * ErrCodeUnauthorizedException "UnauthorizedException"
8716//   You are not authorized to perform this operation.
8717//
8718//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8719//   The service is temporarily unavailable.
8720//
8721//   * ErrCodeInternalFailureException "InternalFailureException"
8722//   An unexpected error has occurred.
8723//
8724func (c *IoT) ListOutgoingCertificates(input *ListOutgoingCertificatesInput) (*ListOutgoingCertificatesOutput, error) {
8725	req, out := c.ListOutgoingCertificatesRequest(input)
8726	return out, req.Send()
8727}
8728
8729// ListOutgoingCertificatesWithContext is the same as ListOutgoingCertificates with the addition of
8730// the ability to pass a context and additional request options.
8731//
8732// See ListOutgoingCertificates for details on how to use this API operation.
8733//
8734// The context must be non-nil and will be used for request cancellation. If
8735// the context is nil a panic will occur. In the future the SDK may create
8736// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8737// for more information on using Contexts.
8738func (c *IoT) ListOutgoingCertificatesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, opts ...request.Option) (*ListOutgoingCertificatesOutput, error) {
8739	req, out := c.ListOutgoingCertificatesRequest(input)
8740	req.SetContext(ctx)
8741	req.ApplyOptions(opts...)
8742	return out, req.Send()
8743}
8744
8745const opListPolicies = "ListPolicies"
8746
8747// ListPoliciesRequest generates a "aws/request.Request" representing the
8748// client's request for the ListPolicies operation. The "output" return
8749// value will be populated with the request's response once the request completes
8750// successfuly.
8751//
8752// Use "Send" method on the returned Request to send the API call to the service.
8753// the "output" return value is not valid until after Send returns without error.
8754//
8755// See ListPolicies for more information on using the ListPolicies
8756// API call, and error handling.
8757//
8758// This method is useful when you want to inject custom logic or configuration
8759// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8760//
8761//
8762//    // Example sending a request using the ListPoliciesRequest method.
8763//    req, resp := client.ListPoliciesRequest(params)
8764//
8765//    err := req.Send()
8766//    if err == nil { // resp is now filled
8767//        fmt.Println(resp)
8768//    }
8769func (c *IoT) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
8770	op := &request.Operation{
8771		Name:       opListPolicies,
8772		HTTPMethod: "GET",
8773		HTTPPath:   "/policies",
8774	}
8775
8776	if input == nil {
8777		input = &ListPoliciesInput{}
8778	}
8779
8780	output = &ListPoliciesOutput{}
8781	req = c.newRequest(op, input, output)
8782	return
8783}
8784
8785// ListPolicies API operation for AWS IoT.
8786//
8787// Lists your policies.
8788//
8789// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8790// with awserr.Error's Code and Message methods to get detailed information about
8791// the error.
8792//
8793// See the AWS API reference guide for AWS IoT's
8794// API operation ListPolicies for usage and error information.
8795//
8796// Returned Error Codes:
8797//   * ErrCodeInvalidRequestException "InvalidRequestException"
8798//   The request is not valid.
8799//
8800//   * ErrCodeThrottlingException "ThrottlingException"
8801//   The rate exceeds the limit.
8802//
8803//   * ErrCodeUnauthorizedException "UnauthorizedException"
8804//   You are not authorized to perform this operation.
8805//
8806//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8807//   The service is temporarily unavailable.
8808//
8809//   * ErrCodeInternalFailureException "InternalFailureException"
8810//   An unexpected error has occurred.
8811//
8812func (c *IoT) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
8813	req, out := c.ListPoliciesRequest(input)
8814	return out, req.Send()
8815}
8816
8817// ListPoliciesWithContext is the same as ListPolicies with the addition of
8818// the ability to pass a context and additional request options.
8819//
8820// See ListPolicies for details on how to use this API operation.
8821//
8822// The context must be non-nil and will be used for request cancellation. If
8823// the context is nil a panic will occur. In the future the SDK may create
8824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8825// for more information on using Contexts.
8826func (c *IoT) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
8827	req, out := c.ListPoliciesRequest(input)
8828	req.SetContext(ctx)
8829	req.ApplyOptions(opts...)
8830	return out, req.Send()
8831}
8832
8833const opListPolicyPrincipals = "ListPolicyPrincipals"
8834
8835// ListPolicyPrincipalsRequest generates a "aws/request.Request" representing the
8836// client's request for the ListPolicyPrincipals operation. The "output" return
8837// value will be populated with the request's response once the request completes
8838// successfuly.
8839//
8840// Use "Send" method on the returned Request to send the API call to the service.
8841// the "output" return value is not valid until after Send returns without error.
8842//
8843// See ListPolicyPrincipals for more information on using the ListPolicyPrincipals
8844// API call, and error handling.
8845//
8846// This method is useful when you want to inject custom logic or configuration
8847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8848//
8849//
8850//    // Example sending a request using the ListPolicyPrincipalsRequest method.
8851//    req, resp := client.ListPolicyPrincipalsRequest(params)
8852//
8853//    err := req.Send()
8854//    if err == nil { // resp is now filled
8855//        fmt.Println(resp)
8856//    }
8857func (c *IoT) ListPolicyPrincipalsRequest(input *ListPolicyPrincipalsInput) (req *request.Request, output *ListPolicyPrincipalsOutput) {
8858	if c.Client.Config.Logger != nil {
8859		c.Client.Config.Logger.Log("This operation, ListPolicyPrincipals, has been deprecated")
8860	}
8861	op := &request.Operation{
8862		Name:       opListPolicyPrincipals,
8863		HTTPMethod: "GET",
8864		HTTPPath:   "/policy-principals",
8865	}
8866
8867	if input == nil {
8868		input = &ListPolicyPrincipalsInput{}
8869	}
8870
8871	output = &ListPolicyPrincipalsOutput{}
8872	req = c.newRequest(op, input, output)
8873	return
8874}
8875
8876// ListPolicyPrincipals API operation for AWS IoT.
8877//
8878// Lists the principals associated with the specified policy.
8879//
8880// Note: This API is deprecated. Please use ListTargetsForPolicy instead.
8881//
8882// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8883// with awserr.Error's Code and Message methods to get detailed information about
8884// the error.
8885//
8886// See the AWS API reference guide for AWS IoT's
8887// API operation ListPolicyPrincipals for usage and error information.
8888//
8889// Returned Error Codes:
8890//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
8891//   The specified resource does not exist.
8892//
8893//   * ErrCodeInvalidRequestException "InvalidRequestException"
8894//   The request is not valid.
8895//
8896//   * ErrCodeThrottlingException "ThrottlingException"
8897//   The rate exceeds the limit.
8898//
8899//   * ErrCodeUnauthorizedException "UnauthorizedException"
8900//   You are not authorized to perform this operation.
8901//
8902//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8903//   The service is temporarily unavailable.
8904//
8905//   * ErrCodeInternalFailureException "InternalFailureException"
8906//   An unexpected error has occurred.
8907//
8908func (c *IoT) ListPolicyPrincipals(input *ListPolicyPrincipalsInput) (*ListPolicyPrincipalsOutput, error) {
8909	req, out := c.ListPolicyPrincipalsRequest(input)
8910	return out, req.Send()
8911}
8912
8913// ListPolicyPrincipalsWithContext is the same as ListPolicyPrincipals with the addition of
8914// the ability to pass a context and additional request options.
8915//
8916// See ListPolicyPrincipals for details on how to use this API operation.
8917//
8918// The context must be non-nil and will be used for request cancellation. If
8919// the context is nil a panic will occur. In the future the SDK may create
8920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8921// for more information on using Contexts.
8922func (c *IoT) ListPolicyPrincipalsWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, opts ...request.Option) (*ListPolicyPrincipalsOutput, error) {
8923	req, out := c.ListPolicyPrincipalsRequest(input)
8924	req.SetContext(ctx)
8925	req.ApplyOptions(opts...)
8926	return out, req.Send()
8927}
8928
8929const opListPolicyVersions = "ListPolicyVersions"
8930
8931// ListPolicyVersionsRequest generates a "aws/request.Request" representing the
8932// client's request for the ListPolicyVersions operation. The "output" return
8933// value will be populated with the request's response once the request completes
8934// successfuly.
8935//
8936// Use "Send" method on the returned Request to send the API call to the service.
8937// the "output" return value is not valid until after Send returns without error.
8938//
8939// See ListPolicyVersions for more information on using the ListPolicyVersions
8940// API call, and error handling.
8941//
8942// This method is useful when you want to inject custom logic or configuration
8943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8944//
8945//
8946//    // Example sending a request using the ListPolicyVersionsRequest method.
8947//    req, resp := client.ListPolicyVersionsRequest(params)
8948//
8949//    err := req.Send()
8950//    if err == nil { // resp is now filled
8951//        fmt.Println(resp)
8952//    }
8953func (c *IoT) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
8954	op := &request.Operation{
8955		Name:       opListPolicyVersions,
8956		HTTPMethod: "GET",
8957		HTTPPath:   "/policies/{policyName}/version",
8958	}
8959
8960	if input == nil {
8961		input = &ListPolicyVersionsInput{}
8962	}
8963
8964	output = &ListPolicyVersionsOutput{}
8965	req = c.newRequest(op, input, output)
8966	return
8967}
8968
8969// ListPolicyVersions API operation for AWS IoT.
8970//
8971// Lists the versions of the specified policy and identifies the default version.
8972//
8973// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8974// with awserr.Error's Code and Message methods to get detailed information about
8975// the error.
8976//
8977// See the AWS API reference guide for AWS IoT's
8978// API operation ListPolicyVersions for usage and error information.
8979//
8980// Returned Error Codes:
8981//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
8982//   The specified resource does not exist.
8983//
8984//   * ErrCodeInvalidRequestException "InvalidRequestException"
8985//   The request is not valid.
8986//
8987//   * ErrCodeThrottlingException "ThrottlingException"
8988//   The rate exceeds the limit.
8989//
8990//   * ErrCodeUnauthorizedException "UnauthorizedException"
8991//   You are not authorized to perform this operation.
8992//
8993//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
8994//   The service is temporarily unavailable.
8995//
8996//   * ErrCodeInternalFailureException "InternalFailureException"
8997//   An unexpected error has occurred.
8998//
8999func (c *IoT) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
9000	req, out := c.ListPolicyVersionsRequest(input)
9001	return out, req.Send()
9002}
9003
9004// ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
9005// the ability to pass a context and additional request options.
9006//
9007// See ListPolicyVersions for details on how to use this API operation.
9008//
9009// The context must be non-nil and will be used for request cancellation. If
9010// the context is nil a panic will occur. In the future the SDK may create
9011// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9012// for more information on using Contexts.
9013func (c *IoT) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
9014	req, out := c.ListPolicyVersionsRequest(input)
9015	req.SetContext(ctx)
9016	req.ApplyOptions(opts...)
9017	return out, req.Send()
9018}
9019
9020const opListPrincipalPolicies = "ListPrincipalPolicies"
9021
9022// ListPrincipalPoliciesRequest generates a "aws/request.Request" representing the
9023// client's request for the ListPrincipalPolicies operation. The "output" return
9024// value will be populated with the request's response once the request completes
9025// successfuly.
9026//
9027// Use "Send" method on the returned Request to send the API call to the service.
9028// the "output" return value is not valid until after Send returns without error.
9029//
9030// See ListPrincipalPolicies for more information on using the ListPrincipalPolicies
9031// API call, and error handling.
9032//
9033// This method is useful when you want to inject custom logic or configuration
9034// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9035//
9036//
9037//    // Example sending a request using the ListPrincipalPoliciesRequest method.
9038//    req, resp := client.ListPrincipalPoliciesRequest(params)
9039//
9040//    err := req.Send()
9041//    if err == nil { // resp is now filled
9042//        fmt.Println(resp)
9043//    }
9044func (c *IoT) ListPrincipalPoliciesRequest(input *ListPrincipalPoliciesInput) (req *request.Request, output *ListPrincipalPoliciesOutput) {
9045	if c.Client.Config.Logger != nil {
9046		c.Client.Config.Logger.Log("This operation, ListPrincipalPolicies, has been deprecated")
9047	}
9048	op := &request.Operation{
9049		Name:       opListPrincipalPolicies,
9050		HTTPMethod: "GET",
9051		HTTPPath:   "/principal-policies",
9052	}
9053
9054	if input == nil {
9055		input = &ListPrincipalPoliciesInput{}
9056	}
9057
9058	output = &ListPrincipalPoliciesOutput{}
9059	req = c.newRequest(op, input, output)
9060	return
9061}
9062
9063// ListPrincipalPolicies API operation for AWS IoT.
9064//
9065// Lists the policies attached to the specified principal. If you use an Cognito
9066// identity, the ID must be in AmazonCognito Identity format (http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax).
9067//
9068// Note: This API is deprecated. Please use ListAttachedPolicies instead.
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 ListPrincipalPolicies for usage and error information.
9076//
9077// Returned Error Codes:
9078//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
9079//   The specified resource does not exist.
9080//
9081//   * ErrCodeInvalidRequestException "InvalidRequestException"
9082//   The request is not valid.
9083//
9084//   * ErrCodeThrottlingException "ThrottlingException"
9085//   The rate exceeds the limit.
9086//
9087//   * ErrCodeUnauthorizedException "UnauthorizedException"
9088//   You are not authorized to perform this operation.
9089//
9090//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
9091//   The service is temporarily unavailable.
9092//
9093//   * ErrCodeInternalFailureException "InternalFailureException"
9094//   An unexpected error has occurred.
9095//
9096func (c *IoT) ListPrincipalPolicies(input *ListPrincipalPoliciesInput) (*ListPrincipalPoliciesOutput, error) {
9097	req, out := c.ListPrincipalPoliciesRequest(input)
9098	return out, req.Send()
9099}
9100
9101// ListPrincipalPoliciesWithContext is the same as ListPrincipalPolicies with the addition of
9102// the ability to pass a context and additional request options.
9103//
9104// See ListPrincipalPolicies for details on how to use this API operation.
9105//
9106// The context must be non-nil and will be used for request cancellation. If
9107// the context is nil a panic will occur. In the future the SDK may create
9108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9109// for more information on using Contexts.
9110func (c *IoT) ListPrincipalPoliciesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, opts ...request.Option) (*ListPrincipalPoliciesOutput, error) {
9111	req, out := c.ListPrincipalPoliciesRequest(input)
9112	req.SetContext(ctx)
9113	req.ApplyOptions(opts...)
9114	return out, req.Send()
9115}
9116
9117const opListPrincipalThings = "ListPrincipalThings"
9118
9119// ListPrincipalThingsRequest generates a "aws/request.Request" representing the
9120// client's request for the ListPrincipalThings operation. The "output" return
9121// value will be populated with the request's response once the request completes
9122// successfuly.
9123//
9124// Use "Send" method on the returned Request to send the API call to the service.
9125// the "output" return value is not valid until after Send returns without error.
9126//
9127// See ListPrincipalThings for more information on using the ListPrincipalThings
9128// API call, and error handling.
9129//
9130// This method is useful when you want to inject custom logic or configuration
9131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9132//
9133//
9134//    // Example sending a request using the ListPrincipalThingsRequest method.
9135//    req, resp := client.ListPrincipalThingsRequest(params)
9136//
9137//    err := req.Send()
9138//    if err == nil { // resp is now filled
9139//        fmt.Println(resp)
9140//    }
9141func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *request.Request, output *ListPrincipalThingsOutput) {
9142	op := &request.Operation{
9143		Name:       opListPrincipalThings,
9144		HTTPMethod: "GET",
9145		HTTPPath:   "/principals/things",
9146	}
9147
9148	if input == nil {
9149		input = &ListPrincipalThingsInput{}
9150	}
9151
9152	output = &ListPrincipalThingsOutput{}
9153	req = c.newRequest(op, input, output)
9154	return
9155}
9156
9157// ListPrincipalThings API operation for AWS IoT.
9158//
9159// Lists the things associated with the specified principal.
9160//
9161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9162// with awserr.Error's Code and Message methods to get detailed information about
9163// the error.
9164//
9165// See the AWS API reference guide for AWS IoT's
9166// API operation ListPrincipalThings for usage and error information.
9167//
9168// Returned Error Codes:
9169//   * ErrCodeInvalidRequestException "InvalidRequestException"
9170//   The request is not valid.
9171//
9172//   * ErrCodeThrottlingException "ThrottlingException"
9173//   The rate exceeds the limit.
9174//
9175//   * ErrCodeUnauthorizedException "UnauthorizedException"
9176//   You are not authorized to perform this operation.
9177//
9178//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
9179//   The service is temporarily unavailable.
9180//
9181//   * ErrCodeInternalFailureException "InternalFailureException"
9182//   An unexpected error has occurred.
9183//
9184//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
9185//   The specified resource does not exist.
9186//
9187func (c *IoT) ListPrincipalThings(input *ListPrincipalThingsInput) (*ListPrincipalThingsOutput, error) {
9188	req, out := c.ListPrincipalThingsRequest(input)
9189	return out, req.Send()
9190}
9191
9192// ListPrincipalThingsWithContext is the same as ListPrincipalThings with the addition of
9193// the ability to pass a context and additional request options.
9194//
9195// See ListPrincipalThings for details on how to use this API operation.
9196//
9197// The context must be non-nil and will be used for request cancellation. If
9198// the context is nil a panic will occur. In the future the SDK may create
9199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9200// for more information on using Contexts.
9201func (c *IoT) ListPrincipalThingsWithContext(ctx aws.Context, input *ListPrincipalThingsInput, opts ...request.Option) (*ListPrincipalThingsOutput, error) {
9202	req, out := c.ListPrincipalThingsRequest(input)
9203	req.SetContext(ctx)
9204	req.ApplyOptions(opts...)
9205	return out, req.Send()
9206}
9207
9208const opListRoleAliases = "ListRoleAliases"
9209
9210// ListRoleAliasesRequest generates a "aws/request.Request" representing the
9211// client's request for the ListRoleAliases operation. The "output" return
9212// value will be populated with the request's response once the request completes
9213// successfuly.
9214//
9215// Use "Send" method on the returned Request to send the API call to the service.
9216// the "output" return value is not valid until after Send returns without error.
9217//
9218// See ListRoleAliases for more information on using the ListRoleAliases
9219// API call, and error handling.
9220//
9221// This method is useful when you want to inject custom logic or configuration
9222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9223//
9224//
9225//    // Example sending a request using the ListRoleAliasesRequest method.
9226//    req, resp := client.ListRoleAliasesRequest(params)
9227//
9228//    err := req.Send()
9229//    if err == nil { // resp is now filled
9230//        fmt.Println(resp)
9231//    }
9232func (c *IoT) ListRoleAliasesRequest(input *ListRoleAliasesInput) (req *request.Request, output *ListRoleAliasesOutput) {
9233	op := &request.Operation{
9234		Name:       opListRoleAliases,
9235		HTTPMethod: "GET",
9236		HTTPPath:   "/role-aliases",
9237	}
9238
9239	if input == nil {
9240		input = &ListRoleAliasesInput{}
9241	}
9242
9243	output = &ListRoleAliasesOutput{}
9244	req = c.newRequest(op, input, output)
9245	return
9246}
9247
9248// ListRoleAliases API operation for AWS IoT.
9249//
9250// Lists the role aliases registered in your account.
9251//
9252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9253// with awserr.Error's Code and Message methods to get detailed information about
9254// the error.
9255//
9256// See the AWS API reference guide for AWS IoT's
9257// API operation ListRoleAliases for usage and error information.
9258//
9259// Returned Error Codes:
9260//   * ErrCodeInvalidRequestException "InvalidRequestException"
9261//   The request is not valid.
9262//
9263//   * ErrCodeThrottlingException "ThrottlingException"
9264//   The rate exceeds the limit.
9265//
9266//   * ErrCodeUnauthorizedException "UnauthorizedException"
9267//   You are not authorized to perform this operation.
9268//
9269//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
9270//   The service is temporarily unavailable.
9271//
9272//   * ErrCodeInternalFailureException "InternalFailureException"
9273//   An unexpected error has occurred.
9274//
9275func (c *IoT) ListRoleAliases(input *ListRoleAliasesInput) (*ListRoleAliasesOutput, error) {
9276	req, out := c.ListRoleAliasesRequest(input)
9277	return out, req.Send()
9278}
9279
9280// ListRoleAliasesWithContext is the same as ListRoleAliases with the addition of
9281// the ability to pass a context and additional request options.
9282//
9283// See ListRoleAliases for details on how to use this API operation.
9284//
9285// The context must be non-nil and will be used for request cancellation. If
9286// the context is nil a panic will occur. In the future the SDK may create
9287// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9288// for more information on using Contexts.
9289func (c *IoT) ListRoleAliasesWithContext(ctx aws.Context, input *ListRoleAliasesInput, opts ...request.Option) (*ListRoleAliasesOutput, error) {
9290	req, out := c.ListRoleAliasesRequest(input)
9291	req.SetContext(ctx)
9292	req.ApplyOptions(opts...)
9293	return out, req.Send()
9294}
9295
9296const opListScheduledAudits = "ListScheduledAudits"
9297
9298// ListScheduledAuditsRequest generates a "aws/request.Request" representing the
9299// client's request for the ListScheduledAudits operation. The "output" return
9300// value will be populated with the request's response once the request completes
9301// successfuly.
9302//
9303// Use "Send" method on the returned Request to send the API call to the service.
9304// the "output" return value is not valid until after Send returns without error.
9305//
9306// See ListScheduledAudits for more information on using the ListScheduledAudits
9307// API call, and error handling.
9308//
9309// This method is useful when you want to inject custom logic or configuration
9310// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9311//
9312//
9313//    // Example sending a request using the ListScheduledAuditsRequest method.
9314//    req, resp := client.ListScheduledAuditsRequest(params)
9315//
9316//    err := req.Send()
9317//    if err == nil { // resp is now filled
9318//        fmt.Println(resp)
9319//    }
9320func (c *IoT) ListScheduledAuditsRequest(input *ListScheduledAuditsInput) (req *request.Request, output *ListScheduledAuditsOutput) {
9321	op := &request.Operation{
9322		Name:       opListScheduledAudits,
9323		HTTPMethod: "GET",
9324		HTTPPath:   "/audit/scheduledaudits",
9325	}
9326
9327	if input == nil {
9328		input = &ListScheduledAuditsInput{}
9329	}
9330
9331	output = &ListScheduledAuditsOutput{}
9332	req = c.newRequest(op, input, output)
9333	return
9334}
9335
9336// ListScheduledAudits API operation for AWS IoT.
9337//
9338// Lists all of your scheduled audits.
9339//
9340// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9341// with awserr.Error's Code and Message methods to get detailed information about
9342// the error.
9343//
9344// See the AWS API reference guide for AWS IoT's
9345// API operation ListScheduledAudits for usage and error information.
9346//
9347// Returned Error Codes:
9348//   * ErrCodeInvalidRequestException "InvalidRequestException"
9349//   The request is not valid.
9350//
9351//   * ErrCodeThrottlingException "ThrottlingException"
9352//   The rate exceeds the limit.
9353//
9354//   * ErrCodeInternalFailureException "InternalFailureException"
9355//   An unexpected error has occurred.
9356//
9357func (c *IoT) ListScheduledAudits(input *ListScheduledAuditsInput) (*ListScheduledAuditsOutput, error) {
9358	req, out := c.ListScheduledAuditsRequest(input)
9359	return out, req.Send()
9360}
9361
9362// ListScheduledAuditsWithContext is the same as ListScheduledAudits with the addition of
9363// the ability to pass a context and additional request options.
9364//
9365// See ListScheduledAudits for details on how to use this API operation.
9366//
9367// The context must be non-nil and will be used for request cancellation. If
9368// the context is nil a panic will occur. In the future the SDK may create
9369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9370// for more information on using Contexts.
9371func (c *IoT) ListScheduledAuditsWithContext(ctx aws.Context, input *ListScheduledAuditsInput, opts ...request.Option) (*ListScheduledAuditsOutput, error) {
9372	req, out := c.ListScheduledAuditsRequest(input)
9373	req.SetContext(ctx)
9374	req.ApplyOptions(opts...)
9375	return out, req.Send()
9376}
9377
9378const opListSecurityProfiles = "ListSecurityProfiles"
9379
9380// ListSecurityProfilesRequest generates a "aws/request.Request" representing the
9381// client's request for the ListSecurityProfiles operation. The "output" return
9382// value will be populated with the request's response once the request completes
9383// successfuly.
9384//
9385// Use "Send" method on the returned Request to send the API call to the service.
9386// the "output" return value is not valid until after Send returns without error.
9387//
9388// See ListSecurityProfiles for more information on using the ListSecurityProfiles
9389// API call, and error handling.
9390//
9391// This method is useful when you want to inject custom logic or configuration
9392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9393//
9394//
9395//    // Example sending a request using the ListSecurityProfilesRequest method.
9396//    req, resp := client.ListSecurityProfilesRequest(params)
9397//
9398//    err := req.Send()
9399//    if err == nil { // resp is now filled
9400//        fmt.Println(resp)
9401//    }
9402func (c *IoT) ListSecurityProfilesRequest(input *ListSecurityProfilesInput) (req *request.Request, output *ListSecurityProfilesOutput) {
9403	op := &request.Operation{
9404		Name:       opListSecurityProfiles,
9405		HTTPMethod: "GET",
9406		HTTPPath:   "/security-profiles",
9407	}
9408
9409	if input == nil {
9410		input = &ListSecurityProfilesInput{}
9411	}
9412
9413	output = &ListSecurityProfilesOutput{}
9414	req = c.newRequest(op, input, output)
9415	return
9416}
9417
9418// ListSecurityProfiles API operation for AWS IoT.
9419//
9420// Lists the Device Defender security profiles you have created. You can use
9421// filters to list only those security profiles associated with a thing group
9422// or only those associated with your account.
9423//
9424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9425// with awserr.Error's Code and Message methods to get detailed information about
9426// the error.
9427//
9428// See the AWS API reference guide for AWS IoT's
9429// API operation ListSecurityProfiles for usage and error information.
9430//
9431// Returned Error Codes:
9432//   * ErrCodeInvalidRequestException "InvalidRequestException"
9433//   The request is not valid.
9434//
9435//   * ErrCodeThrottlingException "ThrottlingException"
9436//   The rate exceeds the limit.
9437//
9438//   * ErrCodeInternalFailureException "InternalFailureException"
9439//   An unexpected error has occurred.
9440//
9441func (c *IoT) ListSecurityProfiles(input *ListSecurityProfilesInput) (*ListSecurityProfilesOutput, error) {
9442	req, out := c.ListSecurityProfilesRequest(input)
9443	return out, req.Send()
9444}
9445
9446// ListSecurityProfilesWithContext is the same as ListSecurityProfiles with the addition of
9447// the ability to pass a context and additional request options.
9448//
9449// See ListSecurityProfiles for details on how to use this API operation.
9450//
9451// The context must be non-nil and will be used for request cancellation. If
9452// the context is nil a panic will occur. In the future the SDK may create
9453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9454// for more information on using Contexts.
9455func (c *IoT) ListSecurityProfilesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, opts ...request.Option) (*ListSecurityProfilesOutput, error) {
9456	req, out := c.ListSecurityProfilesRequest(input)
9457	req.SetContext(ctx)
9458	req.ApplyOptions(opts...)
9459	return out, req.Send()
9460}
9461
9462const opListSecurityProfilesForTarget = "ListSecurityProfilesForTarget"
9463
9464// ListSecurityProfilesForTargetRequest generates a "aws/request.Request" representing the
9465// client's request for the ListSecurityProfilesForTarget operation. The "output" return
9466// value will be populated with the request's response once the request completes
9467// successfuly.
9468//
9469// Use "Send" method on the returned Request to send the API call to the service.
9470// the "output" return value is not valid until after Send returns without error.
9471//
9472// See ListSecurityProfilesForTarget for more information on using the ListSecurityProfilesForTarget
9473// API call, and error handling.
9474//
9475// This method is useful when you want to inject custom logic or configuration
9476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9477//
9478//
9479//    // Example sending a request using the ListSecurityProfilesForTargetRequest method.
9480//    req, resp := client.ListSecurityProfilesForTargetRequest(params)
9481//
9482//    err := req.Send()
9483//    if err == nil { // resp is now filled
9484//        fmt.Println(resp)
9485//    }
9486func (c *IoT) ListSecurityProfilesForTargetRequest(input *ListSecurityProfilesForTargetInput) (req *request.Request, output *ListSecurityProfilesForTargetOutput) {
9487	op := &request.Operation{
9488		Name:       opListSecurityProfilesForTarget,
9489		HTTPMethod: "GET",
9490		HTTPPath:   "/security-profiles-for-target",
9491	}
9492
9493	if input == nil {
9494		input = &ListSecurityProfilesForTargetInput{}
9495	}
9496
9497	output = &ListSecurityProfilesForTargetOutput{}
9498	req = c.newRequest(op, input, output)
9499	return
9500}
9501
9502// ListSecurityProfilesForTarget API operation for AWS IoT.
9503//
9504// Lists the Device Defender security profiles attached to a target (thing group).
9505//
9506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9507// with awserr.Error's Code and Message methods to get detailed information about
9508// the error.
9509//
9510// See the AWS API reference guide for AWS IoT's
9511// API operation ListSecurityProfilesForTarget for usage and error information.
9512//
9513// Returned Error Codes:
9514//   * ErrCodeInvalidRequestException "InvalidRequestException"
9515//   The request is not valid.
9516//
9517//   * ErrCodeThrottlingException "ThrottlingException"
9518//   The rate exceeds the limit.
9519//
9520//   * ErrCodeInternalFailureException "InternalFailureException"
9521//   An unexpected error has occurred.
9522//
9523//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
9524//   The specified resource does not exist.
9525//
9526func (c *IoT) ListSecurityProfilesForTarget(input *ListSecurityProfilesForTargetInput) (*ListSecurityProfilesForTargetOutput, error) {
9527	req, out := c.ListSecurityProfilesForTargetRequest(input)
9528	return out, req.Send()
9529}
9530
9531// ListSecurityProfilesForTargetWithContext is the same as ListSecurityProfilesForTarget with the addition of
9532// the ability to pass a context and additional request options.
9533//
9534// See ListSecurityProfilesForTarget for details on how to use this API operation.
9535//
9536// The context must be non-nil and will be used for request cancellation. If
9537// the context is nil a panic will occur. In the future the SDK may create
9538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9539// for more information on using Contexts.
9540func (c *IoT) ListSecurityProfilesForTargetWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, opts ...request.Option) (*ListSecurityProfilesForTargetOutput, error) {
9541	req, out := c.ListSecurityProfilesForTargetRequest(input)
9542	req.SetContext(ctx)
9543	req.ApplyOptions(opts...)
9544	return out, req.Send()
9545}
9546
9547const opListStreams = "ListStreams"
9548
9549// ListStreamsRequest generates a "aws/request.Request" representing the
9550// client's request for the ListStreams operation. The "output" return
9551// value will be populated with the request's response once the request completes
9552// successfuly.
9553//
9554// Use "Send" method on the returned Request to send the API call to the service.
9555// the "output" return value is not valid until after Send returns without error.
9556//
9557// See ListStreams for more information on using the ListStreams
9558// API call, and error handling.
9559//
9560// This method is useful when you want to inject custom logic or configuration
9561// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9562//
9563//
9564//    // Example sending a request using the ListStreamsRequest method.
9565//    req, resp := client.ListStreamsRequest(params)
9566//
9567//    err := req.Send()
9568//    if err == nil { // resp is now filled
9569//        fmt.Println(resp)
9570//    }
9571func (c *IoT) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
9572	op := &request.Operation{
9573		Name:       opListStreams,
9574		HTTPMethod: "GET",
9575		HTTPPath:   "/streams",
9576	}
9577
9578	if input == nil {
9579		input = &ListStreamsInput{}
9580	}
9581
9582	output = &ListStreamsOutput{}
9583	req = c.newRequest(op, input, output)
9584	return
9585}
9586
9587// ListStreams API operation for AWS IoT.
9588//
9589// Lists all of the streams in your AWS account.
9590//
9591// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9592// with awserr.Error's Code and Message methods to get detailed information about
9593// the error.
9594//
9595// See the AWS API reference guide for AWS IoT's
9596// API operation ListStreams for usage and error information.
9597//
9598// Returned Error Codes:
9599//   * ErrCodeInvalidRequestException "InvalidRequestException"
9600//   The request is not valid.
9601//
9602//   * ErrCodeThrottlingException "ThrottlingException"
9603//   The rate exceeds the limit.
9604//
9605//   * ErrCodeUnauthorizedException "UnauthorizedException"
9606//   You are not authorized to perform this operation.
9607//
9608//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
9609//   The service is temporarily unavailable.
9610//
9611//   * ErrCodeInternalFailureException "InternalFailureException"
9612//   An unexpected error has occurred.
9613//
9614func (c *IoT) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
9615	req, out := c.ListStreamsRequest(input)
9616	return out, req.Send()
9617}
9618
9619// ListStreamsWithContext is the same as ListStreams with the addition of
9620// the ability to pass a context and additional request options.
9621//
9622// See ListStreams for details on how to use this API operation.
9623//
9624// The context must be non-nil and will be used for request cancellation. If
9625// the context is nil a panic will occur. In the future the SDK may create
9626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9627// for more information on using Contexts.
9628func (c *IoT) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
9629	req, out := c.ListStreamsRequest(input)
9630	req.SetContext(ctx)
9631	req.ApplyOptions(opts...)
9632	return out, req.Send()
9633}
9634
9635const opListTargetsForPolicy = "ListTargetsForPolicy"
9636
9637// ListTargetsForPolicyRequest generates a "aws/request.Request" representing the
9638// client's request for the ListTargetsForPolicy operation. The "output" return
9639// value will be populated with the request's response once the request completes
9640// successfuly.
9641//
9642// Use "Send" method on the returned Request to send the API call to the service.
9643// the "output" return value is not valid until after Send returns without error.
9644//
9645// See ListTargetsForPolicy for more information on using the ListTargetsForPolicy
9646// API call, and error handling.
9647//
9648// This method is useful when you want to inject custom logic or configuration
9649// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9650//
9651//
9652//    // Example sending a request using the ListTargetsForPolicyRequest method.
9653//    req, resp := client.ListTargetsForPolicyRequest(params)
9654//
9655//    err := req.Send()
9656//    if err == nil { // resp is now filled
9657//        fmt.Println(resp)
9658//    }
9659func (c *IoT) ListTargetsForPolicyRequest(input *ListTargetsForPolicyInput) (req *request.Request, output *ListTargetsForPolicyOutput) {
9660	op := &request.Operation{
9661		Name:       opListTargetsForPolicy,
9662		HTTPMethod: "POST",
9663		HTTPPath:   "/policy-targets/{policyName}",
9664	}
9665
9666	if input == nil {
9667		input = &ListTargetsForPolicyInput{}
9668	}
9669
9670	output = &ListTargetsForPolicyOutput{}
9671	req = c.newRequest(op, input, output)
9672	return
9673}
9674
9675// ListTargetsForPolicy API operation for AWS IoT.
9676//
9677// List targets for the specified policy.
9678//
9679// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9680// with awserr.Error's Code and Message methods to get detailed information about
9681// the error.
9682//
9683// See the AWS API reference guide for AWS IoT's
9684// API operation ListTargetsForPolicy for usage and error information.
9685//
9686// Returned Error Codes:
9687//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
9688//   The specified resource does not exist.
9689//
9690//   * ErrCodeInvalidRequestException "InvalidRequestException"
9691//   The request is not valid.
9692//
9693//   * ErrCodeThrottlingException "ThrottlingException"
9694//   The rate exceeds the limit.
9695//
9696//   * ErrCodeUnauthorizedException "UnauthorizedException"
9697//   You are not authorized to perform this operation.
9698//
9699//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
9700//   The service is temporarily unavailable.
9701//
9702//   * ErrCodeInternalFailureException "InternalFailureException"
9703//   An unexpected error has occurred.
9704//
9705//   * ErrCodeLimitExceededException "LimitExceededException"
9706//   A limit has been exceeded.
9707//
9708func (c *IoT) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
9709	req, out := c.ListTargetsForPolicyRequest(input)
9710	return out, req.Send()
9711}
9712
9713// ListTargetsForPolicyWithContext is the same as ListTargetsForPolicy with the addition of
9714// the ability to pass a context and additional request options.
9715//
9716// See ListTargetsForPolicy for details on how to use this API operation.
9717//
9718// The context must be non-nil and will be used for request cancellation. If
9719// the context is nil a panic will occur. In the future the SDK may create
9720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9721// for more information on using Contexts.
9722func (c *IoT) ListTargetsForPolicyWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, opts ...request.Option) (*ListTargetsForPolicyOutput, error) {
9723	req, out := c.ListTargetsForPolicyRequest(input)
9724	req.SetContext(ctx)
9725	req.ApplyOptions(opts...)
9726	return out, req.Send()
9727}
9728
9729const opListTargetsForSecurityProfile = "ListTargetsForSecurityProfile"
9730
9731// ListTargetsForSecurityProfileRequest generates a "aws/request.Request" representing the
9732// client's request for the ListTargetsForSecurityProfile operation. The "output" return
9733// value will be populated with the request's response once the request completes
9734// successfuly.
9735//
9736// Use "Send" method on the returned Request to send the API call to the service.
9737// the "output" return value is not valid until after Send returns without error.
9738//
9739// See ListTargetsForSecurityProfile for more information on using the ListTargetsForSecurityProfile
9740// API call, and error handling.
9741//
9742// This method is useful when you want to inject custom logic or configuration
9743// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9744//
9745//
9746//    // Example sending a request using the ListTargetsForSecurityProfileRequest method.
9747//    req, resp := client.ListTargetsForSecurityProfileRequest(params)
9748//
9749//    err := req.Send()
9750//    if err == nil { // resp is now filled
9751//        fmt.Println(resp)
9752//    }
9753func (c *IoT) ListTargetsForSecurityProfileRequest(input *ListTargetsForSecurityProfileInput) (req *request.Request, output *ListTargetsForSecurityProfileOutput) {
9754	op := &request.Operation{
9755		Name:       opListTargetsForSecurityProfile,
9756		HTTPMethod: "GET",
9757		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
9758	}
9759
9760	if input == nil {
9761		input = &ListTargetsForSecurityProfileInput{}
9762	}
9763
9764	output = &ListTargetsForSecurityProfileOutput{}
9765	req = c.newRequest(op, input, output)
9766	return
9767}
9768
9769// ListTargetsForSecurityProfile API operation for AWS IoT.
9770//
9771// Lists the targets (thing groups) associated with a given Device Defender
9772// security profile.
9773//
9774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9775// with awserr.Error's Code and Message methods to get detailed information about
9776// the error.
9777//
9778// See the AWS API reference guide for AWS IoT's
9779// API operation ListTargetsForSecurityProfile for usage and error information.
9780//
9781// Returned Error Codes:
9782//   * ErrCodeInvalidRequestException "InvalidRequestException"
9783//   The request is not valid.
9784//
9785//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
9786//   The specified resource does not exist.
9787//
9788//   * ErrCodeThrottlingException "ThrottlingException"
9789//   The rate exceeds the limit.
9790//
9791//   * ErrCodeInternalFailureException "InternalFailureException"
9792//   An unexpected error has occurred.
9793//
9794func (c *IoT) ListTargetsForSecurityProfile(input *ListTargetsForSecurityProfileInput) (*ListTargetsForSecurityProfileOutput, error) {
9795	req, out := c.ListTargetsForSecurityProfileRequest(input)
9796	return out, req.Send()
9797}
9798
9799// ListTargetsForSecurityProfileWithContext is the same as ListTargetsForSecurityProfile with the addition of
9800// the ability to pass a context and additional request options.
9801//
9802// See ListTargetsForSecurityProfile for details on how to use this API operation.
9803//
9804// The context must be non-nil and will be used for request cancellation. If
9805// the context is nil a panic will occur. In the future the SDK may create
9806// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9807// for more information on using Contexts.
9808func (c *IoT) ListTargetsForSecurityProfileWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, opts ...request.Option) (*ListTargetsForSecurityProfileOutput, error) {
9809	req, out := c.ListTargetsForSecurityProfileRequest(input)
9810	req.SetContext(ctx)
9811	req.ApplyOptions(opts...)
9812	return out, req.Send()
9813}
9814
9815const opListThingGroups = "ListThingGroups"
9816
9817// ListThingGroupsRequest generates a "aws/request.Request" representing the
9818// client's request for the ListThingGroups operation. The "output" return
9819// value will be populated with the request's response once the request completes
9820// successfuly.
9821//
9822// Use "Send" method on the returned Request to send the API call to the service.
9823// the "output" return value is not valid until after Send returns without error.
9824//
9825// See ListThingGroups for more information on using the ListThingGroups
9826// API call, and error handling.
9827//
9828// This method is useful when you want to inject custom logic or configuration
9829// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9830//
9831//
9832//    // Example sending a request using the ListThingGroupsRequest method.
9833//    req, resp := client.ListThingGroupsRequest(params)
9834//
9835//    err := req.Send()
9836//    if err == nil { // resp is now filled
9837//        fmt.Println(resp)
9838//    }
9839func (c *IoT) ListThingGroupsRequest(input *ListThingGroupsInput) (req *request.Request, output *ListThingGroupsOutput) {
9840	op := &request.Operation{
9841		Name:       opListThingGroups,
9842		HTTPMethod: "GET",
9843		HTTPPath:   "/thing-groups",
9844	}
9845
9846	if input == nil {
9847		input = &ListThingGroupsInput{}
9848	}
9849
9850	output = &ListThingGroupsOutput{}
9851	req = c.newRequest(op, input, output)
9852	return
9853}
9854
9855// ListThingGroups API operation for AWS IoT.
9856//
9857// List the thing groups in your account.
9858//
9859// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9860// with awserr.Error's Code and Message methods to get detailed information about
9861// the error.
9862//
9863// See the AWS API reference guide for AWS IoT's
9864// API operation ListThingGroups for usage and error information.
9865//
9866// Returned Error Codes:
9867//   * ErrCodeInvalidRequestException "InvalidRequestException"
9868//   The request is not valid.
9869//
9870//   * ErrCodeInternalFailureException "InternalFailureException"
9871//   An unexpected error has occurred.
9872//
9873//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
9874//   The specified resource does not exist.
9875//
9876func (c *IoT) ListThingGroups(input *ListThingGroupsInput) (*ListThingGroupsOutput, error) {
9877	req, out := c.ListThingGroupsRequest(input)
9878	return out, req.Send()
9879}
9880
9881// ListThingGroupsWithContext is the same as ListThingGroups with the addition of
9882// the ability to pass a context and additional request options.
9883//
9884// See ListThingGroups for details on how to use this API operation.
9885//
9886// The context must be non-nil and will be used for request cancellation. If
9887// the context is nil a panic will occur. In the future the SDK may create
9888// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9889// for more information on using Contexts.
9890func (c *IoT) ListThingGroupsWithContext(ctx aws.Context, input *ListThingGroupsInput, opts ...request.Option) (*ListThingGroupsOutput, error) {
9891	req, out := c.ListThingGroupsRequest(input)
9892	req.SetContext(ctx)
9893	req.ApplyOptions(opts...)
9894	return out, req.Send()
9895}
9896
9897const opListThingGroupsForThing = "ListThingGroupsForThing"
9898
9899// ListThingGroupsForThingRequest generates a "aws/request.Request" representing the
9900// client's request for the ListThingGroupsForThing operation. The "output" return
9901// value will be populated with the request's response once the request completes
9902// successfuly.
9903//
9904// Use "Send" method on the returned Request to send the API call to the service.
9905// the "output" return value is not valid until after Send returns without error.
9906//
9907// See ListThingGroupsForThing for more information on using the ListThingGroupsForThing
9908// API call, and error handling.
9909//
9910// This method is useful when you want to inject custom logic or configuration
9911// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9912//
9913//
9914//    // Example sending a request using the ListThingGroupsForThingRequest method.
9915//    req, resp := client.ListThingGroupsForThingRequest(params)
9916//
9917//    err := req.Send()
9918//    if err == nil { // resp is now filled
9919//        fmt.Println(resp)
9920//    }
9921func (c *IoT) ListThingGroupsForThingRequest(input *ListThingGroupsForThingInput) (req *request.Request, output *ListThingGroupsForThingOutput) {
9922	op := &request.Operation{
9923		Name:       opListThingGroupsForThing,
9924		HTTPMethod: "GET",
9925		HTTPPath:   "/things/{thingName}/thing-groups",
9926	}
9927
9928	if input == nil {
9929		input = &ListThingGroupsForThingInput{}
9930	}
9931
9932	output = &ListThingGroupsForThingOutput{}
9933	req = c.newRequest(op, input, output)
9934	return
9935}
9936
9937// ListThingGroupsForThing API operation for AWS IoT.
9938//
9939// List the thing groups to which the specified thing belongs.
9940//
9941// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9942// with awserr.Error's Code and Message methods to get detailed information about
9943// the error.
9944//
9945// See the AWS API reference guide for AWS IoT's
9946// API operation ListThingGroupsForThing for usage and error information.
9947//
9948// Returned Error Codes:
9949//   * ErrCodeInvalidRequestException "InvalidRequestException"
9950//   The request is not valid.
9951//
9952//   * ErrCodeInternalFailureException "InternalFailureException"
9953//   An unexpected error has occurred.
9954//
9955//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
9956//   The specified resource does not exist.
9957//
9958func (c *IoT) ListThingGroupsForThing(input *ListThingGroupsForThingInput) (*ListThingGroupsForThingOutput, error) {
9959	req, out := c.ListThingGroupsForThingRequest(input)
9960	return out, req.Send()
9961}
9962
9963// ListThingGroupsForThingWithContext is the same as ListThingGroupsForThing with the addition of
9964// the ability to pass a context and additional request options.
9965//
9966// See ListThingGroupsForThing for details on how to use this API operation.
9967//
9968// The context must be non-nil and will be used for request cancellation. If
9969// the context is nil a panic will occur. In the future the SDK may create
9970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9971// for more information on using Contexts.
9972func (c *IoT) ListThingGroupsForThingWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, opts ...request.Option) (*ListThingGroupsForThingOutput, error) {
9973	req, out := c.ListThingGroupsForThingRequest(input)
9974	req.SetContext(ctx)
9975	req.ApplyOptions(opts...)
9976	return out, req.Send()
9977}
9978
9979const opListThingPrincipals = "ListThingPrincipals"
9980
9981// ListThingPrincipalsRequest generates a "aws/request.Request" representing the
9982// client's request for the ListThingPrincipals operation. The "output" return
9983// value will be populated with the request's response once the request completes
9984// successfuly.
9985//
9986// Use "Send" method on the returned Request to send the API call to the service.
9987// the "output" return value is not valid until after Send returns without error.
9988//
9989// See ListThingPrincipals for more information on using the ListThingPrincipals
9990// API call, and error handling.
9991//
9992// This method is useful when you want to inject custom logic or configuration
9993// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9994//
9995//
9996//    // Example sending a request using the ListThingPrincipalsRequest method.
9997//    req, resp := client.ListThingPrincipalsRequest(params)
9998//
9999//    err := req.Send()
10000//    if err == nil { // resp is now filled
10001//        fmt.Println(resp)
10002//    }
10003func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *request.Request, output *ListThingPrincipalsOutput) {
10004	op := &request.Operation{
10005		Name:       opListThingPrincipals,
10006		HTTPMethod: "GET",
10007		HTTPPath:   "/things/{thingName}/principals",
10008	}
10009
10010	if input == nil {
10011		input = &ListThingPrincipalsInput{}
10012	}
10013
10014	output = &ListThingPrincipalsOutput{}
10015	req = c.newRequest(op, input, output)
10016	return
10017}
10018
10019// ListThingPrincipals API operation for AWS IoT.
10020//
10021// Lists the principals associated with the specified thing.
10022//
10023// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10024// with awserr.Error's Code and Message methods to get detailed information about
10025// the error.
10026//
10027// See the AWS API reference guide for AWS IoT's
10028// API operation ListThingPrincipals for usage and error information.
10029//
10030// Returned Error Codes:
10031//   * ErrCodeInvalidRequestException "InvalidRequestException"
10032//   The request is not valid.
10033//
10034//   * ErrCodeThrottlingException "ThrottlingException"
10035//   The rate exceeds the limit.
10036//
10037//   * ErrCodeUnauthorizedException "UnauthorizedException"
10038//   You are not authorized to perform this operation.
10039//
10040//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
10041//   The service is temporarily unavailable.
10042//
10043//   * ErrCodeInternalFailureException "InternalFailureException"
10044//   An unexpected error has occurred.
10045//
10046//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
10047//   The specified resource does not exist.
10048//
10049func (c *IoT) ListThingPrincipals(input *ListThingPrincipalsInput) (*ListThingPrincipalsOutput, error) {
10050	req, out := c.ListThingPrincipalsRequest(input)
10051	return out, req.Send()
10052}
10053
10054// ListThingPrincipalsWithContext is the same as ListThingPrincipals with the addition of
10055// the ability to pass a context and additional request options.
10056//
10057// See ListThingPrincipals for details on how to use this API operation.
10058//
10059// The context must be non-nil and will be used for request cancellation. If
10060// the context is nil a panic will occur. In the future the SDK may create
10061// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10062// for more information on using Contexts.
10063func (c *IoT) ListThingPrincipalsWithContext(ctx aws.Context, input *ListThingPrincipalsInput, opts ...request.Option) (*ListThingPrincipalsOutput, error) {
10064	req, out := c.ListThingPrincipalsRequest(input)
10065	req.SetContext(ctx)
10066	req.ApplyOptions(opts...)
10067	return out, req.Send()
10068}
10069
10070const opListThingRegistrationTaskReports = "ListThingRegistrationTaskReports"
10071
10072// ListThingRegistrationTaskReportsRequest generates a "aws/request.Request" representing the
10073// client's request for the ListThingRegistrationTaskReports operation. The "output" return
10074// value will be populated with the request's response once the request completes
10075// successfuly.
10076//
10077// Use "Send" method on the returned Request to send the API call to the service.
10078// the "output" return value is not valid until after Send returns without error.
10079//
10080// See ListThingRegistrationTaskReports for more information on using the ListThingRegistrationTaskReports
10081// API call, and error handling.
10082//
10083// This method is useful when you want to inject custom logic or configuration
10084// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10085//
10086//
10087//    // Example sending a request using the ListThingRegistrationTaskReportsRequest method.
10088//    req, resp := client.ListThingRegistrationTaskReportsRequest(params)
10089//
10090//    err := req.Send()
10091//    if err == nil { // resp is now filled
10092//        fmt.Println(resp)
10093//    }
10094func (c *IoT) ListThingRegistrationTaskReportsRequest(input *ListThingRegistrationTaskReportsInput) (req *request.Request, output *ListThingRegistrationTaskReportsOutput) {
10095	op := &request.Operation{
10096		Name:       opListThingRegistrationTaskReports,
10097		HTTPMethod: "GET",
10098		HTTPPath:   "/thing-registration-tasks/{taskId}/reports",
10099	}
10100
10101	if input == nil {
10102		input = &ListThingRegistrationTaskReportsInput{}
10103	}
10104
10105	output = &ListThingRegistrationTaskReportsOutput{}
10106	req = c.newRequest(op, input, output)
10107	return
10108}
10109
10110// ListThingRegistrationTaskReports API operation for AWS IoT.
10111//
10112// Information about the thing registration tasks.
10113//
10114// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10115// with awserr.Error's Code and Message methods to get detailed information about
10116// the error.
10117//
10118// See the AWS API reference guide for AWS IoT's
10119// API operation ListThingRegistrationTaskReports for usage and error information.
10120//
10121// Returned Error Codes:
10122//   * ErrCodeInvalidRequestException "InvalidRequestException"
10123//   The request is not valid.
10124//
10125//   * ErrCodeThrottlingException "ThrottlingException"
10126//   The rate exceeds the limit.
10127//
10128//   * ErrCodeUnauthorizedException "UnauthorizedException"
10129//   You are not authorized to perform this operation.
10130//
10131//   * ErrCodeInternalFailureException "InternalFailureException"
10132//   An unexpected error has occurred.
10133//
10134func (c *IoT) ListThingRegistrationTaskReports(input *ListThingRegistrationTaskReportsInput) (*ListThingRegistrationTaskReportsOutput, error) {
10135	req, out := c.ListThingRegistrationTaskReportsRequest(input)
10136	return out, req.Send()
10137}
10138
10139// ListThingRegistrationTaskReportsWithContext is the same as ListThingRegistrationTaskReports with the addition of
10140// the ability to pass a context and additional request options.
10141//
10142// See ListThingRegistrationTaskReports for details on how to use this API operation.
10143//
10144// The context must be non-nil and will be used for request cancellation. If
10145// the context is nil a panic will occur. In the future the SDK may create
10146// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10147// for more information on using Contexts.
10148func (c *IoT) ListThingRegistrationTaskReportsWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, opts ...request.Option) (*ListThingRegistrationTaskReportsOutput, error) {
10149	req, out := c.ListThingRegistrationTaskReportsRequest(input)
10150	req.SetContext(ctx)
10151	req.ApplyOptions(opts...)
10152	return out, req.Send()
10153}
10154
10155const opListThingRegistrationTasks = "ListThingRegistrationTasks"
10156
10157// ListThingRegistrationTasksRequest generates a "aws/request.Request" representing the
10158// client's request for the ListThingRegistrationTasks operation. The "output" return
10159// value will be populated with the request's response once the request completes
10160// successfuly.
10161//
10162// Use "Send" method on the returned Request to send the API call to the service.
10163// the "output" return value is not valid until after Send returns without error.
10164//
10165// See ListThingRegistrationTasks for more information on using the ListThingRegistrationTasks
10166// API call, and error handling.
10167//
10168// This method is useful when you want to inject custom logic or configuration
10169// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10170//
10171//
10172//    // Example sending a request using the ListThingRegistrationTasksRequest method.
10173//    req, resp := client.ListThingRegistrationTasksRequest(params)
10174//
10175//    err := req.Send()
10176//    if err == nil { // resp is now filled
10177//        fmt.Println(resp)
10178//    }
10179func (c *IoT) ListThingRegistrationTasksRequest(input *ListThingRegistrationTasksInput) (req *request.Request, output *ListThingRegistrationTasksOutput) {
10180	op := &request.Operation{
10181		Name:       opListThingRegistrationTasks,
10182		HTTPMethod: "GET",
10183		HTTPPath:   "/thing-registration-tasks",
10184	}
10185
10186	if input == nil {
10187		input = &ListThingRegistrationTasksInput{}
10188	}
10189
10190	output = &ListThingRegistrationTasksOutput{}
10191	req = c.newRequest(op, input, output)
10192	return
10193}
10194
10195// ListThingRegistrationTasks API operation for AWS IoT.
10196//
10197// List bulk thing provisioning tasks.
10198//
10199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10200// with awserr.Error's Code and Message methods to get detailed information about
10201// the error.
10202//
10203// See the AWS API reference guide for AWS IoT's
10204// API operation ListThingRegistrationTasks for usage and error information.
10205//
10206// Returned Error Codes:
10207//   * ErrCodeInvalidRequestException "InvalidRequestException"
10208//   The request is not valid.
10209//
10210//   * ErrCodeThrottlingException "ThrottlingException"
10211//   The rate exceeds the limit.
10212//
10213//   * ErrCodeUnauthorizedException "UnauthorizedException"
10214//   You are not authorized to perform this operation.
10215//
10216//   * ErrCodeInternalFailureException "InternalFailureException"
10217//   An unexpected error has occurred.
10218//
10219func (c *IoT) ListThingRegistrationTasks(input *ListThingRegistrationTasksInput) (*ListThingRegistrationTasksOutput, error) {
10220	req, out := c.ListThingRegistrationTasksRequest(input)
10221	return out, req.Send()
10222}
10223
10224// ListThingRegistrationTasksWithContext is the same as ListThingRegistrationTasks with the addition of
10225// the ability to pass a context and additional request options.
10226//
10227// See ListThingRegistrationTasks for details on how to use this API operation.
10228//
10229// The context must be non-nil and will be used for request cancellation. If
10230// the context is nil a panic will occur. In the future the SDK may create
10231// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10232// for more information on using Contexts.
10233func (c *IoT) ListThingRegistrationTasksWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, opts ...request.Option) (*ListThingRegistrationTasksOutput, error) {
10234	req, out := c.ListThingRegistrationTasksRequest(input)
10235	req.SetContext(ctx)
10236	req.ApplyOptions(opts...)
10237	return out, req.Send()
10238}
10239
10240const opListThingTypes = "ListThingTypes"
10241
10242// ListThingTypesRequest generates a "aws/request.Request" representing the
10243// client's request for the ListThingTypes operation. The "output" return
10244// value will be populated with the request's response once the request completes
10245// successfuly.
10246//
10247// Use "Send" method on the returned Request to send the API call to the service.
10248// the "output" return value is not valid until after Send returns without error.
10249//
10250// See ListThingTypes for more information on using the ListThingTypes
10251// API call, and error handling.
10252//
10253// This method is useful when you want to inject custom logic or configuration
10254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10255//
10256//
10257//    // Example sending a request using the ListThingTypesRequest method.
10258//    req, resp := client.ListThingTypesRequest(params)
10259//
10260//    err := req.Send()
10261//    if err == nil { // resp is now filled
10262//        fmt.Println(resp)
10263//    }
10264func (c *IoT) ListThingTypesRequest(input *ListThingTypesInput) (req *request.Request, output *ListThingTypesOutput) {
10265	op := &request.Operation{
10266		Name:       opListThingTypes,
10267		HTTPMethod: "GET",
10268		HTTPPath:   "/thing-types",
10269	}
10270
10271	if input == nil {
10272		input = &ListThingTypesInput{}
10273	}
10274
10275	output = &ListThingTypesOutput{}
10276	req = c.newRequest(op, input, output)
10277	return
10278}
10279
10280// ListThingTypes API operation for AWS IoT.
10281//
10282// Lists the existing thing types.
10283//
10284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10285// with awserr.Error's Code and Message methods to get detailed information about
10286// the error.
10287//
10288// See the AWS API reference guide for AWS IoT's
10289// API operation ListThingTypes for usage and error information.
10290//
10291// Returned Error Codes:
10292//   * ErrCodeInvalidRequestException "InvalidRequestException"
10293//   The request is not valid.
10294//
10295//   * ErrCodeThrottlingException "ThrottlingException"
10296//   The rate exceeds the limit.
10297//
10298//   * ErrCodeUnauthorizedException "UnauthorizedException"
10299//   You are not authorized to perform this operation.
10300//
10301//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
10302//   The service is temporarily unavailable.
10303//
10304//   * ErrCodeInternalFailureException "InternalFailureException"
10305//   An unexpected error has occurred.
10306//
10307func (c *IoT) ListThingTypes(input *ListThingTypesInput) (*ListThingTypesOutput, error) {
10308	req, out := c.ListThingTypesRequest(input)
10309	return out, req.Send()
10310}
10311
10312// ListThingTypesWithContext is the same as ListThingTypes with the addition of
10313// the ability to pass a context and additional request options.
10314//
10315// See ListThingTypes for details on how to use this API operation.
10316//
10317// The context must be non-nil and will be used for request cancellation. If
10318// the context is nil a panic will occur. In the future the SDK may create
10319// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10320// for more information on using Contexts.
10321func (c *IoT) ListThingTypesWithContext(ctx aws.Context, input *ListThingTypesInput, opts ...request.Option) (*ListThingTypesOutput, error) {
10322	req, out := c.ListThingTypesRequest(input)
10323	req.SetContext(ctx)
10324	req.ApplyOptions(opts...)
10325	return out, req.Send()
10326}
10327
10328const opListThings = "ListThings"
10329
10330// ListThingsRequest generates a "aws/request.Request" representing the
10331// client's request for the ListThings operation. The "output" return
10332// value will be populated with the request's response once the request completes
10333// successfuly.
10334//
10335// Use "Send" method on the returned Request to send the API call to the service.
10336// the "output" return value is not valid until after Send returns without error.
10337//
10338// See ListThings for more information on using the ListThings
10339// API call, and error handling.
10340//
10341// This method is useful when you want to inject custom logic or configuration
10342// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10343//
10344//
10345//    // Example sending a request using the ListThingsRequest method.
10346//    req, resp := client.ListThingsRequest(params)
10347//
10348//    err := req.Send()
10349//    if err == nil { // resp is now filled
10350//        fmt.Println(resp)
10351//    }
10352func (c *IoT) ListThingsRequest(input *ListThingsInput) (req *request.Request, output *ListThingsOutput) {
10353	op := &request.Operation{
10354		Name:       opListThings,
10355		HTTPMethod: "GET",
10356		HTTPPath:   "/things",
10357	}
10358
10359	if input == nil {
10360		input = &ListThingsInput{}
10361	}
10362
10363	output = &ListThingsOutput{}
10364	req = c.newRequest(op, input, output)
10365	return
10366}
10367
10368// ListThings API operation for AWS IoT.
10369//
10370// Lists your things. Use the attributeName and attributeValue parameters to
10371// filter your things. For example, calling ListThings with attributeName=Color
10372// and attributeValue=Red retrieves all things in the registry that contain
10373// an attribute Color with the value Red.
10374//
10375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10376// with awserr.Error's Code and Message methods to get detailed information about
10377// the error.
10378//
10379// See the AWS API reference guide for AWS IoT's
10380// API operation ListThings for usage and error information.
10381//
10382// Returned Error Codes:
10383//   * ErrCodeInvalidRequestException "InvalidRequestException"
10384//   The request is not valid.
10385//
10386//   * ErrCodeThrottlingException "ThrottlingException"
10387//   The rate exceeds the limit.
10388//
10389//   * ErrCodeUnauthorizedException "UnauthorizedException"
10390//   You are not authorized to perform this operation.
10391//
10392//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
10393//   The service is temporarily unavailable.
10394//
10395//   * ErrCodeInternalFailureException "InternalFailureException"
10396//   An unexpected error has occurred.
10397//
10398func (c *IoT) ListThings(input *ListThingsInput) (*ListThingsOutput, error) {
10399	req, out := c.ListThingsRequest(input)
10400	return out, req.Send()
10401}
10402
10403// ListThingsWithContext is the same as ListThings with the addition of
10404// the ability to pass a context and additional request options.
10405//
10406// See ListThings for details on how to use this API operation.
10407//
10408// The context must be non-nil and will be used for request cancellation. If
10409// the context is nil a panic will occur. In the future the SDK may create
10410// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10411// for more information on using Contexts.
10412func (c *IoT) ListThingsWithContext(ctx aws.Context, input *ListThingsInput, opts ...request.Option) (*ListThingsOutput, error) {
10413	req, out := c.ListThingsRequest(input)
10414	req.SetContext(ctx)
10415	req.ApplyOptions(opts...)
10416	return out, req.Send()
10417}
10418
10419const opListThingsInThingGroup = "ListThingsInThingGroup"
10420
10421// ListThingsInThingGroupRequest generates a "aws/request.Request" representing the
10422// client's request for the ListThingsInThingGroup operation. The "output" return
10423// value will be populated with the request's response once the request completes
10424// successfuly.
10425//
10426// Use "Send" method on the returned Request to send the API call to the service.
10427// the "output" return value is not valid until after Send returns without error.
10428//
10429// See ListThingsInThingGroup for more information on using the ListThingsInThingGroup
10430// API call, and error handling.
10431//
10432// This method is useful when you want to inject custom logic or configuration
10433// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10434//
10435//
10436//    // Example sending a request using the ListThingsInThingGroupRequest method.
10437//    req, resp := client.ListThingsInThingGroupRequest(params)
10438//
10439//    err := req.Send()
10440//    if err == nil { // resp is now filled
10441//        fmt.Println(resp)
10442//    }
10443func (c *IoT) ListThingsInThingGroupRequest(input *ListThingsInThingGroupInput) (req *request.Request, output *ListThingsInThingGroupOutput) {
10444	op := &request.Operation{
10445		Name:       opListThingsInThingGroup,
10446		HTTPMethod: "GET",
10447		HTTPPath:   "/thing-groups/{thingGroupName}/things",
10448	}
10449
10450	if input == nil {
10451		input = &ListThingsInThingGroupInput{}
10452	}
10453
10454	output = &ListThingsInThingGroupOutput{}
10455	req = c.newRequest(op, input, output)
10456	return
10457}
10458
10459// ListThingsInThingGroup API operation for AWS IoT.
10460//
10461// Lists the things in the specified group.
10462//
10463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10464// with awserr.Error's Code and Message methods to get detailed information about
10465// the error.
10466//
10467// See the AWS API reference guide for AWS IoT's
10468// API operation ListThingsInThingGroup for usage and error information.
10469//
10470// Returned Error Codes:
10471//   * ErrCodeInvalidRequestException "InvalidRequestException"
10472//   The request is not valid.
10473//
10474//   * ErrCodeInternalFailureException "InternalFailureException"
10475//   An unexpected error has occurred.
10476//
10477//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
10478//   The specified resource does not exist.
10479//
10480func (c *IoT) ListThingsInThingGroup(input *ListThingsInThingGroupInput) (*ListThingsInThingGroupOutput, error) {
10481	req, out := c.ListThingsInThingGroupRequest(input)
10482	return out, req.Send()
10483}
10484
10485// ListThingsInThingGroupWithContext is the same as ListThingsInThingGroup with the addition of
10486// the ability to pass a context and additional request options.
10487//
10488// See ListThingsInThingGroup for details on how to use this API operation.
10489//
10490// The context must be non-nil and will be used for request cancellation. If
10491// the context is nil a panic will occur. In the future the SDK may create
10492// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10493// for more information on using Contexts.
10494func (c *IoT) ListThingsInThingGroupWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, opts ...request.Option) (*ListThingsInThingGroupOutput, error) {
10495	req, out := c.ListThingsInThingGroupRequest(input)
10496	req.SetContext(ctx)
10497	req.ApplyOptions(opts...)
10498	return out, req.Send()
10499}
10500
10501const opListTopicRules = "ListTopicRules"
10502
10503// ListTopicRulesRequest generates a "aws/request.Request" representing the
10504// client's request for the ListTopicRules operation. The "output" return
10505// value will be populated with the request's response once the request completes
10506// successfuly.
10507//
10508// Use "Send" method on the returned Request to send the API call to the service.
10509// the "output" return value is not valid until after Send returns without error.
10510//
10511// See ListTopicRules for more information on using the ListTopicRules
10512// API call, and error handling.
10513//
10514// This method is useful when you want to inject custom logic or configuration
10515// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10516//
10517//
10518//    // Example sending a request using the ListTopicRulesRequest method.
10519//    req, resp := client.ListTopicRulesRequest(params)
10520//
10521//    err := req.Send()
10522//    if err == nil { // resp is now filled
10523//        fmt.Println(resp)
10524//    }
10525func (c *IoT) ListTopicRulesRequest(input *ListTopicRulesInput) (req *request.Request, output *ListTopicRulesOutput) {
10526	op := &request.Operation{
10527		Name:       opListTopicRules,
10528		HTTPMethod: "GET",
10529		HTTPPath:   "/rules",
10530	}
10531
10532	if input == nil {
10533		input = &ListTopicRulesInput{}
10534	}
10535
10536	output = &ListTopicRulesOutput{}
10537	req = c.newRequest(op, input, output)
10538	return
10539}
10540
10541// ListTopicRules API operation for AWS IoT.
10542//
10543// Lists the rules for the specific topic.
10544//
10545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10546// with awserr.Error's Code and Message methods to get detailed information about
10547// the error.
10548//
10549// See the AWS API reference guide for AWS IoT's
10550// API operation ListTopicRules for usage and error information.
10551//
10552// Returned Error Codes:
10553//   * ErrCodeInternalException "InternalException"
10554//   An unexpected error has occurred.
10555//
10556//   * ErrCodeInvalidRequestException "InvalidRequestException"
10557//   The request is not valid.
10558//
10559//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
10560//   The service is temporarily unavailable.
10561//
10562func (c *IoT) ListTopicRules(input *ListTopicRulesInput) (*ListTopicRulesOutput, error) {
10563	req, out := c.ListTopicRulesRequest(input)
10564	return out, req.Send()
10565}
10566
10567// ListTopicRulesWithContext is the same as ListTopicRules with the addition of
10568// the ability to pass a context and additional request options.
10569//
10570// See ListTopicRules for details on how to use this API operation.
10571//
10572// The context must be non-nil and will be used for request cancellation. If
10573// the context is nil a panic will occur. In the future the SDK may create
10574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10575// for more information on using Contexts.
10576func (c *IoT) ListTopicRulesWithContext(ctx aws.Context, input *ListTopicRulesInput, opts ...request.Option) (*ListTopicRulesOutput, error) {
10577	req, out := c.ListTopicRulesRequest(input)
10578	req.SetContext(ctx)
10579	req.ApplyOptions(opts...)
10580	return out, req.Send()
10581}
10582
10583const opListV2LoggingLevels = "ListV2LoggingLevels"
10584
10585// ListV2LoggingLevelsRequest generates a "aws/request.Request" representing the
10586// client's request for the ListV2LoggingLevels operation. The "output" return
10587// value will be populated with the request's response once the request completes
10588// successfuly.
10589//
10590// Use "Send" method on the returned Request to send the API call to the service.
10591// the "output" return value is not valid until after Send returns without error.
10592//
10593// See ListV2LoggingLevels for more information on using the ListV2LoggingLevels
10594// API call, and error handling.
10595//
10596// This method is useful when you want to inject custom logic or configuration
10597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10598//
10599//
10600//    // Example sending a request using the ListV2LoggingLevelsRequest method.
10601//    req, resp := client.ListV2LoggingLevelsRequest(params)
10602//
10603//    err := req.Send()
10604//    if err == nil { // resp is now filled
10605//        fmt.Println(resp)
10606//    }
10607func (c *IoT) ListV2LoggingLevelsRequest(input *ListV2LoggingLevelsInput) (req *request.Request, output *ListV2LoggingLevelsOutput) {
10608	op := &request.Operation{
10609		Name:       opListV2LoggingLevels,
10610		HTTPMethod: "GET",
10611		HTTPPath:   "/v2LoggingLevel",
10612	}
10613
10614	if input == nil {
10615		input = &ListV2LoggingLevelsInput{}
10616	}
10617
10618	output = &ListV2LoggingLevelsOutput{}
10619	req = c.newRequest(op, input, output)
10620	return
10621}
10622
10623// ListV2LoggingLevels API operation for AWS IoT.
10624//
10625// Lists logging levels.
10626//
10627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10628// with awserr.Error's Code and Message methods to get detailed information about
10629// the error.
10630//
10631// See the AWS API reference guide for AWS IoT's
10632// API operation ListV2LoggingLevels for usage and error information.
10633//
10634// Returned Error Codes:
10635//   * ErrCodeInternalException "InternalException"
10636//   An unexpected error has occurred.
10637//
10638//   * ErrCodeNotConfiguredException "NotConfiguredException"
10639//   The resource is not configured.
10640//
10641//   * ErrCodeInvalidRequestException "InvalidRequestException"
10642//   The request is not valid.
10643//
10644//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
10645//   The service is temporarily unavailable.
10646//
10647func (c *IoT) ListV2LoggingLevels(input *ListV2LoggingLevelsInput) (*ListV2LoggingLevelsOutput, error) {
10648	req, out := c.ListV2LoggingLevelsRequest(input)
10649	return out, req.Send()
10650}
10651
10652// ListV2LoggingLevelsWithContext is the same as ListV2LoggingLevels with the addition of
10653// the ability to pass a context and additional request options.
10654//
10655// See ListV2LoggingLevels for details on how to use this API operation.
10656//
10657// The context must be non-nil and will be used for request cancellation. If
10658// the context is nil a panic will occur. In the future the SDK may create
10659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10660// for more information on using Contexts.
10661func (c *IoT) ListV2LoggingLevelsWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, opts ...request.Option) (*ListV2LoggingLevelsOutput, error) {
10662	req, out := c.ListV2LoggingLevelsRequest(input)
10663	req.SetContext(ctx)
10664	req.ApplyOptions(opts...)
10665	return out, req.Send()
10666}
10667
10668const opListViolationEvents = "ListViolationEvents"
10669
10670// ListViolationEventsRequest generates a "aws/request.Request" representing the
10671// client's request for the ListViolationEvents operation. The "output" return
10672// value will be populated with the request's response once the request completes
10673// successfuly.
10674//
10675// Use "Send" method on the returned Request to send the API call to the service.
10676// the "output" return value is not valid until after Send returns without error.
10677//
10678// See ListViolationEvents for more information on using the ListViolationEvents
10679// API call, and error handling.
10680//
10681// This method is useful when you want to inject custom logic or configuration
10682// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10683//
10684//
10685//    // Example sending a request using the ListViolationEventsRequest method.
10686//    req, resp := client.ListViolationEventsRequest(params)
10687//
10688//    err := req.Send()
10689//    if err == nil { // resp is now filled
10690//        fmt.Println(resp)
10691//    }
10692func (c *IoT) ListViolationEventsRequest(input *ListViolationEventsInput) (req *request.Request, output *ListViolationEventsOutput) {
10693	op := &request.Operation{
10694		Name:       opListViolationEvents,
10695		HTTPMethod: "GET",
10696		HTTPPath:   "/violation-events",
10697	}
10698
10699	if input == nil {
10700		input = &ListViolationEventsInput{}
10701	}
10702
10703	output = &ListViolationEventsOutput{}
10704	req = c.newRequest(op, input, output)
10705	return
10706}
10707
10708// ListViolationEvents API operation for AWS IoT.
10709//
10710// Lists the Device Defender security profile violations discovered during the
10711// given time period. You can use filters to limit the results to those alerts
10712// issued for a particular security profile, behavior or thing (device).
10713//
10714// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10715// with awserr.Error's Code and Message methods to get detailed information about
10716// the error.
10717//
10718// See the AWS API reference guide for AWS IoT's
10719// API operation ListViolationEvents for usage and error information.
10720//
10721// Returned Error Codes:
10722//   * ErrCodeInvalidRequestException "InvalidRequestException"
10723//   The request is not valid.
10724//
10725//   * ErrCodeThrottlingException "ThrottlingException"
10726//   The rate exceeds the limit.
10727//
10728//   * ErrCodeInternalFailureException "InternalFailureException"
10729//   An unexpected error has occurred.
10730//
10731func (c *IoT) ListViolationEvents(input *ListViolationEventsInput) (*ListViolationEventsOutput, error) {
10732	req, out := c.ListViolationEventsRequest(input)
10733	return out, req.Send()
10734}
10735
10736// ListViolationEventsWithContext is the same as ListViolationEvents with the addition of
10737// the ability to pass a context and additional request options.
10738//
10739// See ListViolationEvents for details on how to use this API operation.
10740//
10741// The context must be non-nil and will be used for request cancellation. If
10742// the context is nil a panic will occur. In the future the SDK may create
10743// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10744// for more information on using Contexts.
10745func (c *IoT) ListViolationEventsWithContext(ctx aws.Context, input *ListViolationEventsInput, opts ...request.Option) (*ListViolationEventsOutput, error) {
10746	req, out := c.ListViolationEventsRequest(input)
10747	req.SetContext(ctx)
10748	req.ApplyOptions(opts...)
10749	return out, req.Send()
10750}
10751
10752const opRegisterCACertificate = "RegisterCACertificate"
10753
10754// RegisterCACertificateRequest generates a "aws/request.Request" representing the
10755// client's request for the RegisterCACertificate operation. The "output" return
10756// value will be populated with the request's response once the request completes
10757// successfuly.
10758//
10759// Use "Send" method on the returned Request to send the API call to the service.
10760// the "output" return value is not valid until after Send returns without error.
10761//
10762// See RegisterCACertificate for more information on using the RegisterCACertificate
10763// API call, and error handling.
10764//
10765// This method is useful when you want to inject custom logic or configuration
10766// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10767//
10768//
10769//    // Example sending a request using the RegisterCACertificateRequest method.
10770//    req, resp := client.RegisterCACertificateRequest(params)
10771//
10772//    err := req.Send()
10773//    if err == nil { // resp is now filled
10774//        fmt.Println(resp)
10775//    }
10776func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
10777	op := &request.Operation{
10778		Name:       opRegisterCACertificate,
10779		HTTPMethod: "POST",
10780		HTTPPath:   "/cacertificate",
10781	}
10782
10783	if input == nil {
10784		input = &RegisterCACertificateInput{}
10785	}
10786
10787	output = &RegisterCACertificateOutput{}
10788	req = c.newRequest(op, input, output)
10789	return
10790}
10791
10792// RegisterCACertificate API operation for AWS IoT.
10793//
10794// Registers a CA certificate with AWS IoT. This CA certificate can then be
10795// used to sign device certificates, which can be then registered with AWS IoT.
10796// You can register up to 10 CA certificates per AWS account that have the same
10797// subject field. This enables you to have up to 10 certificate authorities
10798// sign your device certificates. If you have more than one CA certificate registered,
10799// make sure you pass the CA certificate when you register your device certificates
10800// with the RegisterCertificate API.
10801//
10802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10803// with awserr.Error's Code and Message methods to get detailed information about
10804// the error.
10805//
10806// See the AWS API reference guide for AWS IoT's
10807// API operation RegisterCACertificate for usage and error information.
10808//
10809// Returned Error Codes:
10810//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
10811//   The resource already exists.
10812//
10813//   * ErrCodeRegistrationCodeValidationException "RegistrationCodeValidationException"
10814//   The registration code is invalid.
10815//
10816//   * ErrCodeInvalidRequestException "InvalidRequestException"
10817//   The request is not valid.
10818//
10819//   * ErrCodeCertificateValidationException "CertificateValidationException"
10820//   The certificate is invalid.
10821//
10822//   * ErrCodeThrottlingException "ThrottlingException"
10823//   The rate exceeds the limit.
10824//
10825//   * ErrCodeLimitExceededException "LimitExceededException"
10826//   A limit has been exceeded.
10827//
10828//   * ErrCodeUnauthorizedException "UnauthorizedException"
10829//   You are not authorized to perform this operation.
10830//
10831//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
10832//   The service is temporarily unavailable.
10833//
10834//   * ErrCodeInternalFailureException "InternalFailureException"
10835//   An unexpected error has occurred.
10836//
10837func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
10838	req, out := c.RegisterCACertificateRequest(input)
10839	return out, req.Send()
10840}
10841
10842// RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
10843// the ability to pass a context and additional request options.
10844//
10845// See RegisterCACertificate for details on how to use this API operation.
10846//
10847// The context must be non-nil and will be used for request cancellation. If
10848// the context is nil a panic will occur. In the future the SDK may create
10849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10850// for more information on using Contexts.
10851func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
10852	req, out := c.RegisterCACertificateRequest(input)
10853	req.SetContext(ctx)
10854	req.ApplyOptions(opts...)
10855	return out, req.Send()
10856}
10857
10858const opRegisterCertificate = "RegisterCertificate"
10859
10860// RegisterCertificateRequest generates a "aws/request.Request" representing the
10861// client's request for the RegisterCertificate operation. The "output" return
10862// value will be populated with the request's response once the request completes
10863// successfuly.
10864//
10865// Use "Send" method on the returned Request to send the API call to the service.
10866// the "output" return value is not valid until after Send returns without error.
10867//
10868// See RegisterCertificate for more information on using the RegisterCertificate
10869// API call, and error handling.
10870//
10871// This method is useful when you want to inject custom logic or configuration
10872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10873//
10874//
10875//    // Example sending a request using the RegisterCertificateRequest method.
10876//    req, resp := client.RegisterCertificateRequest(params)
10877//
10878//    err := req.Send()
10879//    if err == nil { // resp is now filled
10880//        fmt.Println(resp)
10881//    }
10882func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
10883	op := &request.Operation{
10884		Name:       opRegisterCertificate,
10885		HTTPMethod: "POST",
10886		HTTPPath:   "/certificate/register",
10887	}
10888
10889	if input == nil {
10890		input = &RegisterCertificateInput{}
10891	}
10892
10893	output = &RegisterCertificateOutput{}
10894	req = c.newRequest(op, input, output)
10895	return
10896}
10897
10898// RegisterCertificate API operation for AWS IoT.
10899//
10900// Registers a device certificate with AWS IoT. If you have more than one CA
10901// certificate that has the same subject field, you must specify the CA certificate
10902// that was used to sign the device certificate being registered.
10903//
10904// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10905// with awserr.Error's Code and Message methods to get detailed information about
10906// the error.
10907//
10908// See the AWS API reference guide for AWS IoT's
10909// API operation RegisterCertificate for usage and error information.
10910//
10911// Returned Error Codes:
10912//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
10913//   The resource already exists.
10914//
10915//   * ErrCodeInvalidRequestException "InvalidRequestException"
10916//   The request is not valid.
10917//
10918//   * ErrCodeCertificateValidationException "CertificateValidationException"
10919//   The certificate is invalid.
10920//
10921//   * ErrCodeCertificateStateException "CertificateStateException"
10922//   The certificate operation is not allowed.
10923//
10924//   * ErrCodeCertificateConflictException "CertificateConflictException"
10925//   Unable to verify the CA certificate used to sign the device certificate you
10926//   are attempting to register. This is happens when you have registered more
10927//   than one CA certificate that has the same subject field and public key.
10928//
10929//   * ErrCodeThrottlingException "ThrottlingException"
10930//   The rate exceeds the limit.
10931//
10932//   * ErrCodeUnauthorizedException "UnauthorizedException"
10933//   You are not authorized to perform this operation.
10934//
10935//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
10936//   The service is temporarily unavailable.
10937//
10938//   * ErrCodeInternalFailureException "InternalFailureException"
10939//   An unexpected error has occurred.
10940//
10941func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
10942	req, out := c.RegisterCertificateRequest(input)
10943	return out, req.Send()
10944}
10945
10946// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
10947// the ability to pass a context and additional request options.
10948//
10949// See RegisterCertificate for details on how to use this API operation.
10950//
10951// The context must be non-nil and will be used for request cancellation. If
10952// the context is nil a panic will occur. In the future the SDK may create
10953// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10954// for more information on using Contexts.
10955func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
10956	req, out := c.RegisterCertificateRequest(input)
10957	req.SetContext(ctx)
10958	req.ApplyOptions(opts...)
10959	return out, req.Send()
10960}
10961
10962const opRegisterThing = "RegisterThing"
10963
10964// RegisterThingRequest generates a "aws/request.Request" representing the
10965// client's request for the RegisterThing operation. The "output" return
10966// value will be populated with the request's response once the request completes
10967// successfuly.
10968//
10969// Use "Send" method on the returned Request to send the API call to the service.
10970// the "output" return value is not valid until after Send returns without error.
10971//
10972// See RegisterThing for more information on using the RegisterThing
10973// API call, and error handling.
10974//
10975// This method is useful when you want to inject custom logic or configuration
10976// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10977//
10978//
10979//    // Example sending a request using the RegisterThingRequest method.
10980//    req, resp := client.RegisterThingRequest(params)
10981//
10982//    err := req.Send()
10983//    if err == nil { // resp is now filled
10984//        fmt.Println(resp)
10985//    }
10986func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
10987	op := &request.Operation{
10988		Name:       opRegisterThing,
10989		HTTPMethod: "POST",
10990		HTTPPath:   "/things",
10991	}
10992
10993	if input == nil {
10994		input = &RegisterThingInput{}
10995	}
10996
10997	output = &RegisterThingOutput{}
10998	req = c.newRequest(op, input, output)
10999	return
11000}
11001
11002// RegisterThing API operation for AWS IoT.
11003//
11004// Provisions a thing.
11005//
11006// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11007// with awserr.Error's Code and Message methods to get detailed information about
11008// the error.
11009//
11010// See the AWS API reference guide for AWS IoT's
11011// API operation RegisterThing for usage and error information.
11012//
11013// Returned Error Codes:
11014//   * ErrCodeInternalFailureException "InternalFailureException"
11015//   An unexpected error has occurred.
11016//
11017//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11018//   The service is temporarily unavailable.
11019//
11020//   * ErrCodeInvalidRequestException "InvalidRequestException"
11021//   The request is not valid.
11022//
11023//   * ErrCodeUnauthorizedException "UnauthorizedException"
11024//   You are not authorized to perform this operation.
11025//
11026//   * ErrCodeThrottlingException "ThrottlingException"
11027//   The rate exceeds the limit.
11028//
11029//   * ErrCodeConflictingResourceUpdateException "ConflictingResourceUpdateException"
11030//   A conflicting resource update exception. This exception is thrown when two
11031//   pending updates cause a conflict.
11032//
11033//   * ErrCodeResourceRegistrationFailureException "ResourceRegistrationFailureException"
11034//   The resource registration failed.
11035//
11036func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
11037	req, out := c.RegisterThingRequest(input)
11038	return out, req.Send()
11039}
11040
11041// RegisterThingWithContext is the same as RegisterThing with the addition of
11042// the ability to pass a context and additional request options.
11043//
11044// See RegisterThing for details on how to use this API operation.
11045//
11046// The context must be non-nil and will be used for request cancellation. If
11047// the context is nil a panic will occur. In the future the SDK may create
11048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11049// for more information on using Contexts.
11050func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
11051	req, out := c.RegisterThingRequest(input)
11052	req.SetContext(ctx)
11053	req.ApplyOptions(opts...)
11054	return out, req.Send()
11055}
11056
11057const opRejectCertificateTransfer = "RejectCertificateTransfer"
11058
11059// RejectCertificateTransferRequest generates a "aws/request.Request" representing the
11060// client's request for the RejectCertificateTransfer operation. The "output" return
11061// value will be populated with the request's response once the request completes
11062// successfuly.
11063//
11064// Use "Send" method on the returned Request to send the API call to the service.
11065// the "output" return value is not valid until after Send returns without error.
11066//
11067// See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
11068// API call, and error handling.
11069//
11070// This method is useful when you want to inject custom logic or configuration
11071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11072//
11073//
11074//    // Example sending a request using the RejectCertificateTransferRequest method.
11075//    req, resp := client.RejectCertificateTransferRequest(params)
11076//
11077//    err := req.Send()
11078//    if err == nil { // resp is now filled
11079//        fmt.Println(resp)
11080//    }
11081func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
11082	op := &request.Operation{
11083		Name:       opRejectCertificateTransfer,
11084		HTTPMethod: "PATCH",
11085		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
11086	}
11087
11088	if input == nil {
11089		input = &RejectCertificateTransferInput{}
11090	}
11091
11092	output = &RejectCertificateTransferOutput{}
11093	req = c.newRequest(op, input, output)
11094	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
11095	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11096	return
11097}
11098
11099// RejectCertificateTransfer API operation for AWS IoT.
11100//
11101// Rejects a pending certificate transfer. After AWS IoT rejects a certificate
11102// transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE.
11103//
11104// To check for pending certificate transfers, call ListCertificates to enumerate
11105// your certificates.
11106//
11107// This operation can only be called by the transfer destination. After it is
11108// called, the certificate will be returned to the source's account in the INACTIVE
11109// state.
11110//
11111// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11112// with awserr.Error's Code and Message methods to get detailed information about
11113// the error.
11114//
11115// See the AWS API reference guide for AWS IoT's
11116// API operation RejectCertificateTransfer for usage and error information.
11117//
11118// Returned Error Codes:
11119//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
11120//   The specified resource does not exist.
11121//
11122//   * ErrCodeTransferAlreadyCompletedException "TransferAlreadyCompletedException"
11123//   You can't revert the certificate transfer because the transfer is already
11124//   complete.
11125//
11126//   * ErrCodeInvalidRequestException "InvalidRequestException"
11127//   The request is not valid.
11128//
11129//   * ErrCodeThrottlingException "ThrottlingException"
11130//   The rate exceeds the limit.
11131//
11132//   * ErrCodeUnauthorizedException "UnauthorizedException"
11133//   You are not authorized to perform this operation.
11134//
11135//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11136//   The service is temporarily unavailable.
11137//
11138//   * ErrCodeInternalFailureException "InternalFailureException"
11139//   An unexpected error has occurred.
11140//
11141func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
11142	req, out := c.RejectCertificateTransferRequest(input)
11143	return out, req.Send()
11144}
11145
11146// RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
11147// the ability to pass a context and additional request options.
11148//
11149// See RejectCertificateTransfer for details on how to use this API operation.
11150//
11151// The context must be non-nil and will be used for request cancellation. If
11152// the context is nil a panic will occur. In the future the SDK may create
11153// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11154// for more information on using Contexts.
11155func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
11156	req, out := c.RejectCertificateTransferRequest(input)
11157	req.SetContext(ctx)
11158	req.ApplyOptions(opts...)
11159	return out, req.Send()
11160}
11161
11162const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
11163
11164// RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
11165// client's request for the RemoveThingFromThingGroup operation. The "output" return
11166// value will be populated with the request's response once the request completes
11167// successfuly.
11168//
11169// Use "Send" method on the returned Request to send the API call to the service.
11170// the "output" return value is not valid until after Send returns without error.
11171//
11172// See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
11173// API call, and error handling.
11174//
11175// This method is useful when you want to inject custom logic or configuration
11176// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11177//
11178//
11179//    // Example sending a request using the RemoveThingFromThingGroupRequest method.
11180//    req, resp := client.RemoveThingFromThingGroupRequest(params)
11181//
11182//    err := req.Send()
11183//    if err == nil { // resp is now filled
11184//        fmt.Println(resp)
11185//    }
11186func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
11187	op := &request.Operation{
11188		Name:       opRemoveThingFromThingGroup,
11189		HTTPMethod: "PUT",
11190		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
11191	}
11192
11193	if input == nil {
11194		input = &RemoveThingFromThingGroupInput{}
11195	}
11196
11197	output = &RemoveThingFromThingGroupOutput{}
11198	req = c.newRequest(op, input, output)
11199	return
11200}
11201
11202// RemoveThingFromThingGroup API operation for AWS IoT.
11203//
11204// Remove the specified thing from the specified group.
11205//
11206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11207// with awserr.Error's Code and Message methods to get detailed information about
11208// the error.
11209//
11210// See the AWS API reference guide for AWS IoT's
11211// API operation RemoveThingFromThingGroup for usage and error information.
11212//
11213// Returned Error Codes:
11214//   * ErrCodeInvalidRequestException "InvalidRequestException"
11215//   The request is not valid.
11216//
11217//   * ErrCodeThrottlingException "ThrottlingException"
11218//   The rate exceeds the limit.
11219//
11220//   * ErrCodeInternalFailureException "InternalFailureException"
11221//   An unexpected error has occurred.
11222//
11223//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
11224//   The specified resource does not exist.
11225//
11226func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
11227	req, out := c.RemoveThingFromThingGroupRequest(input)
11228	return out, req.Send()
11229}
11230
11231// RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
11232// the ability to pass a context and additional request options.
11233//
11234// See RemoveThingFromThingGroup for details on how to use this API operation.
11235//
11236// The context must be non-nil and will be used for request cancellation. If
11237// the context is nil a panic will occur. In the future the SDK may create
11238// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11239// for more information on using Contexts.
11240func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
11241	req, out := c.RemoveThingFromThingGroupRequest(input)
11242	req.SetContext(ctx)
11243	req.ApplyOptions(opts...)
11244	return out, req.Send()
11245}
11246
11247const opReplaceTopicRule = "ReplaceTopicRule"
11248
11249// ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
11250// client's request for the ReplaceTopicRule operation. The "output" return
11251// value will be populated with the request's response once the request completes
11252// successfuly.
11253//
11254// Use "Send" method on the returned Request to send the API call to the service.
11255// the "output" return value is not valid until after Send returns without error.
11256//
11257// See ReplaceTopicRule for more information on using the ReplaceTopicRule
11258// API call, and error handling.
11259//
11260// This method is useful when you want to inject custom logic or configuration
11261// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11262//
11263//
11264//    // Example sending a request using the ReplaceTopicRuleRequest method.
11265//    req, resp := client.ReplaceTopicRuleRequest(params)
11266//
11267//    err := req.Send()
11268//    if err == nil { // resp is now filled
11269//        fmt.Println(resp)
11270//    }
11271func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
11272	op := &request.Operation{
11273		Name:       opReplaceTopicRule,
11274		HTTPMethod: "PATCH",
11275		HTTPPath:   "/rules/{ruleName}",
11276	}
11277
11278	if input == nil {
11279		input = &ReplaceTopicRuleInput{}
11280	}
11281
11282	output = &ReplaceTopicRuleOutput{}
11283	req = c.newRequest(op, input, output)
11284	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
11285	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11286	return
11287}
11288
11289// ReplaceTopicRule API operation for AWS IoT.
11290//
11291// Replaces the rule. You must specify all parameters for the new rule. Creating
11292// rules is an administrator-level action. Any user who has permission to create
11293// rules will be able to access data processed by the rule.
11294//
11295// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11296// with awserr.Error's Code and Message methods to get detailed information about
11297// the error.
11298//
11299// See the AWS API reference guide for AWS IoT's
11300// API operation ReplaceTopicRule for usage and error information.
11301//
11302// Returned Error Codes:
11303//   * ErrCodeSqlParseException "SqlParseException"
11304//   The Rule-SQL expression can't be parsed correctly.
11305//
11306//   * ErrCodeInternalException "InternalException"
11307//   An unexpected error has occurred.
11308//
11309//   * ErrCodeInvalidRequestException "InvalidRequestException"
11310//   The request is not valid.
11311//
11312//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11313//   The service is temporarily unavailable.
11314//
11315//   * ErrCodeUnauthorizedException "UnauthorizedException"
11316//   You are not authorized to perform this operation.
11317//
11318func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
11319	req, out := c.ReplaceTopicRuleRequest(input)
11320	return out, req.Send()
11321}
11322
11323// ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
11324// the ability to pass a context and additional request options.
11325//
11326// See ReplaceTopicRule for details on how to use this API operation.
11327//
11328// The context must be non-nil and will be used for request cancellation. If
11329// the context is nil a panic will occur. In the future the SDK may create
11330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11331// for more information on using Contexts.
11332func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
11333	req, out := c.ReplaceTopicRuleRequest(input)
11334	req.SetContext(ctx)
11335	req.ApplyOptions(opts...)
11336	return out, req.Send()
11337}
11338
11339const opSearchIndex = "SearchIndex"
11340
11341// SearchIndexRequest generates a "aws/request.Request" representing the
11342// client's request for the SearchIndex operation. The "output" return
11343// value will be populated with the request's response once the request completes
11344// successfuly.
11345//
11346// Use "Send" method on the returned Request to send the API call to the service.
11347// the "output" return value is not valid until after Send returns without error.
11348//
11349// See SearchIndex for more information on using the SearchIndex
11350// API call, and error handling.
11351//
11352// This method is useful when you want to inject custom logic or configuration
11353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11354//
11355//
11356//    // Example sending a request using the SearchIndexRequest method.
11357//    req, resp := client.SearchIndexRequest(params)
11358//
11359//    err := req.Send()
11360//    if err == nil { // resp is now filled
11361//        fmt.Println(resp)
11362//    }
11363func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
11364	op := &request.Operation{
11365		Name:       opSearchIndex,
11366		HTTPMethod: "POST",
11367		HTTPPath:   "/indices/search",
11368	}
11369
11370	if input == nil {
11371		input = &SearchIndexInput{}
11372	}
11373
11374	output = &SearchIndexOutput{}
11375	req = c.newRequest(op, input, output)
11376	return
11377}
11378
11379// SearchIndex API operation for AWS IoT.
11380//
11381// The query search index.
11382//
11383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11384// with awserr.Error's Code and Message methods to get detailed information about
11385// the error.
11386//
11387// See the AWS API reference guide for AWS IoT's
11388// API operation SearchIndex for usage and error information.
11389//
11390// Returned Error Codes:
11391//   * ErrCodeInvalidRequestException "InvalidRequestException"
11392//   The request is not valid.
11393//
11394//   * ErrCodeThrottlingException "ThrottlingException"
11395//   The rate exceeds the limit.
11396//
11397//   * ErrCodeUnauthorizedException "UnauthorizedException"
11398//   You are not authorized to perform this operation.
11399//
11400//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11401//   The service is temporarily unavailable.
11402//
11403//   * ErrCodeInternalFailureException "InternalFailureException"
11404//   An unexpected error has occurred.
11405//
11406//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
11407//   The specified resource does not exist.
11408//
11409//   * ErrCodeInvalidQueryException "InvalidQueryException"
11410//   The query is invalid.
11411//
11412//   * ErrCodeIndexNotReadyException "IndexNotReadyException"
11413//   The index is not ready.
11414//
11415func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
11416	req, out := c.SearchIndexRequest(input)
11417	return out, req.Send()
11418}
11419
11420// SearchIndexWithContext is the same as SearchIndex with the addition of
11421// the ability to pass a context and additional request options.
11422//
11423// See SearchIndex for details on how to use this API operation.
11424//
11425// The context must be non-nil and will be used for request cancellation. If
11426// the context is nil a panic will occur. In the future the SDK may create
11427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11428// for more information on using Contexts.
11429func (c *IoT) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
11430	req, out := c.SearchIndexRequest(input)
11431	req.SetContext(ctx)
11432	req.ApplyOptions(opts...)
11433	return out, req.Send()
11434}
11435
11436const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
11437
11438// SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
11439// client's request for the SetDefaultAuthorizer operation. The "output" return
11440// value will be populated with the request's response once the request completes
11441// successfuly.
11442//
11443// Use "Send" method on the returned Request to send the API call to the service.
11444// the "output" return value is not valid until after Send returns without error.
11445//
11446// See SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
11447// API call, and error handling.
11448//
11449// This method is useful when you want to inject custom logic or configuration
11450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11451//
11452//
11453//    // Example sending a request using the SetDefaultAuthorizerRequest method.
11454//    req, resp := client.SetDefaultAuthorizerRequest(params)
11455//
11456//    err := req.Send()
11457//    if err == nil { // resp is now filled
11458//        fmt.Println(resp)
11459//    }
11460func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
11461	op := &request.Operation{
11462		Name:       opSetDefaultAuthorizer,
11463		HTTPMethod: "POST",
11464		HTTPPath:   "/default-authorizer",
11465	}
11466
11467	if input == nil {
11468		input = &SetDefaultAuthorizerInput{}
11469	}
11470
11471	output = &SetDefaultAuthorizerOutput{}
11472	req = c.newRequest(op, input, output)
11473	return
11474}
11475
11476// SetDefaultAuthorizer API operation for AWS IoT.
11477//
11478// Sets the default authorizer. This will be used if a websocket connection
11479// is made without specifying an authorizer.
11480//
11481// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11482// with awserr.Error's Code and Message methods to get detailed information about
11483// the error.
11484//
11485// See the AWS API reference guide for AWS IoT's
11486// API operation SetDefaultAuthorizer for usage and error information.
11487//
11488// Returned Error Codes:
11489//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
11490//   The specified resource does not exist.
11491//
11492//   * ErrCodeInvalidRequestException "InvalidRequestException"
11493//   The request is not valid.
11494//
11495//   * ErrCodeThrottlingException "ThrottlingException"
11496//   The rate exceeds the limit.
11497//
11498//   * ErrCodeUnauthorizedException "UnauthorizedException"
11499//   You are not authorized to perform this operation.
11500//
11501//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11502//   The service is temporarily unavailable.
11503//
11504//   * ErrCodeInternalFailureException "InternalFailureException"
11505//   An unexpected error has occurred.
11506//
11507//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
11508//   The resource already exists.
11509//
11510func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
11511	req, out := c.SetDefaultAuthorizerRequest(input)
11512	return out, req.Send()
11513}
11514
11515// SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
11516// the ability to pass a context and additional request options.
11517//
11518// See SetDefaultAuthorizer for details on how to use this API operation.
11519//
11520// The context must be non-nil and will be used for request cancellation. If
11521// the context is nil a panic will occur. In the future the SDK may create
11522// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11523// for more information on using Contexts.
11524func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
11525	req, out := c.SetDefaultAuthorizerRequest(input)
11526	req.SetContext(ctx)
11527	req.ApplyOptions(opts...)
11528	return out, req.Send()
11529}
11530
11531const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
11532
11533// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
11534// client's request for the SetDefaultPolicyVersion operation. The "output" return
11535// value will be populated with the request's response once the request completes
11536// successfuly.
11537//
11538// Use "Send" method on the returned Request to send the API call to the service.
11539// the "output" return value is not valid until after Send returns without error.
11540//
11541// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
11542// API call, and error handling.
11543//
11544// This method is useful when you want to inject custom logic or configuration
11545// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11546//
11547//
11548//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
11549//    req, resp := client.SetDefaultPolicyVersionRequest(params)
11550//
11551//    err := req.Send()
11552//    if err == nil { // resp is now filled
11553//        fmt.Println(resp)
11554//    }
11555func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
11556	op := &request.Operation{
11557		Name:       opSetDefaultPolicyVersion,
11558		HTTPMethod: "PATCH",
11559		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
11560	}
11561
11562	if input == nil {
11563		input = &SetDefaultPolicyVersionInput{}
11564	}
11565
11566	output = &SetDefaultPolicyVersionOutput{}
11567	req = c.newRequest(op, input, output)
11568	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
11569	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11570	return
11571}
11572
11573// SetDefaultPolicyVersion API operation for AWS IoT.
11574//
11575// Sets the specified version of the specified policy as the policy's default
11576// (operative) version. This action affects all certificates to which the policy
11577// is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy
11578// API.
11579//
11580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11581// with awserr.Error's Code and Message methods to get detailed information about
11582// the error.
11583//
11584// See the AWS API reference guide for AWS IoT's
11585// API operation SetDefaultPolicyVersion for usage and error information.
11586//
11587// Returned Error Codes:
11588//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
11589//   The specified resource does not exist.
11590//
11591//   * ErrCodeInvalidRequestException "InvalidRequestException"
11592//   The request is not valid.
11593//
11594//   * ErrCodeThrottlingException "ThrottlingException"
11595//   The rate exceeds the limit.
11596//
11597//   * ErrCodeUnauthorizedException "UnauthorizedException"
11598//   You are not authorized to perform this operation.
11599//
11600//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11601//   The service is temporarily unavailable.
11602//
11603//   * ErrCodeInternalFailureException "InternalFailureException"
11604//   An unexpected error has occurred.
11605//
11606func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
11607	req, out := c.SetDefaultPolicyVersionRequest(input)
11608	return out, req.Send()
11609}
11610
11611// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
11612// the ability to pass a context and additional request options.
11613//
11614// See SetDefaultPolicyVersion for details on how to use this API operation.
11615//
11616// The context must be non-nil and will be used for request cancellation. If
11617// the context is nil a panic will occur. In the future the SDK may create
11618// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11619// for more information on using Contexts.
11620func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
11621	req, out := c.SetDefaultPolicyVersionRequest(input)
11622	req.SetContext(ctx)
11623	req.ApplyOptions(opts...)
11624	return out, req.Send()
11625}
11626
11627const opSetLoggingOptions = "SetLoggingOptions"
11628
11629// SetLoggingOptionsRequest generates a "aws/request.Request" representing the
11630// client's request for the SetLoggingOptions operation. The "output" return
11631// value will be populated with the request's response once the request completes
11632// successfuly.
11633//
11634// Use "Send" method on the returned Request to send the API call to the service.
11635// the "output" return value is not valid until after Send returns without error.
11636//
11637// See SetLoggingOptions for more information on using the SetLoggingOptions
11638// API call, and error handling.
11639//
11640// This method is useful when you want to inject custom logic or configuration
11641// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11642//
11643//
11644//    // Example sending a request using the SetLoggingOptionsRequest method.
11645//    req, resp := client.SetLoggingOptionsRequest(params)
11646//
11647//    err := req.Send()
11648//    if err == nil { // resp is now filled
11649//        fmt.Println(resp)
11650//    }
11651func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
11652	op := &request.Operation{
11653		Name:       opSetLoggingOptions,
11654		HTTPMethod: "POST",
11655		HTTPPath:   "/loggingOptions",
11656	}
11657
11658	if input == nil {
11659		input = &SetLoggingOptionsInput{}
11660	}
11661
11662	output = &SetLoggingOptionsOutput{}
11663	req = c.newRequest(op, input, output)
11664	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
11665	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11666	return
11667}
11668
11669// SetLoggingOptions API operation for AWS IoT.
11670//
11671// Sets the logging options.
11672//
11673// NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
11674//
11675// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11676// with awserr.Error's Code and Message methods to get detailed information about
11677// the error.
11678//
11679// See the AWS API reference guide for AWS IoT's
11680// API operation SetLoggingOptions for usage and error information.
11681//
11682// Returned Error Codes:
11683//   * ErrCodeInternalException "InternalException"
11684//   An unexpected error has occurred.
11685//
11686//   * ErrCodeInvalidRequestException "InvalidRequestException"
11687//   The request is not valid.
11688//
11689//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11690//   The service is temporarily unavailable.
11691//
11692func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
11693	req, out := c.SetLoggingOptionsRequest(input)
11694	return out, req.Send()
11695}
11696
11697// SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
11698// the ability to pass a context and additional request options.
11699//
11700// See SetLoggingOptions for details on how to use this API operation.
11701//
11702// The context must be non-nil and will be used for request cancellation. If
11703// the context is nil a panic will occur. In the future the SDK may create
11704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11705// for more information on using Contexts.
11706func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
11707	req, out := c.SetLoggingOptionsRequest(input)
11708	req.SetContext(ctx)
11709	req.ApplyOptions(opts...)
11710	return out, req.Send()
11711}
11712
11713const opSetV2LoggingLevel = "SetV2LoggingLevel"
11714
11715// SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
11716// client's request for the SetV2LoggingLevel operation. The "output" return
11717// value will be populated with the request's response once the request completes
11718// successfuly.
11719//
11720// Use "Send" method on the returned Request to send the API call to the service.
11721// the "output" return value is not valid until after Send returns without error.
11722//
11723// See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
11724// API call, and error handling.
11725//
11726// This method is useful when you want to inject custom logic or configuration
11727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11728//
11729//
11730//    // Example sending a request using the SetV2LoggingLevelRequest method.
11731//    req, resp := client.SetV2LoggingLevelRequest(params)
11732//
11733//    err := req.Send()
11734//    if err == nil { // resp is now filled
11735//        fmt.Println(resp)
11736//    }
11737func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
11738	op := &request.Operation{
11739		Name:       opSetV2LoggingLevel,
11740		HTTPMethod: "POST",
11741		HTTPPath:   "/v2LoggingLevel",
11742	}
11743
11744	if input == nil {
11745		input = &SetV2LoggingLevelInput{}
11746	}
11747
11748	output = &SetV2LoggingLevelOutput{}
11749	req = c.newRequest(op, input, output)
11750	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
11751	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11752	return
11753}
11754
11755// SetV2LoggingLevel API operation for AWS IoT.
11756//
11757// Sets the logging level.
11758//
11759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11760// with awserr.Error's Code and Message methods to get detailed information about
11761// the error.
11762//
11763// See the AWS API reference guide for AWS IoT's
11764// API operation SetV2LoggingLevel for usage and error information.
11765//
11766// Returned Error Codes:
11767//   * ErrCodeInternalException "InternalException"
11768//   An unexpected error has occurred.
11769//
11770//   * ErrCodeNotConfiguredException "NotConfiguredException"
11771//   The resource is not configured.
11772//
11773//   * ErrCodeInvalidRequestException "InvalidRequestException"
11774//   The request is not valid.
11775//
11776//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11777//   The service is temporarily unavailable.
11778//
11779func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
11780	req, out := c.SetV2LoggingLevelRequest(input)
11781	return out, req.Send()
11782}
11783
11784// SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
11785// the ability to pass a context and additional request options.
11786//
11787// See SetV2LoggingLevel for details on how to use this API operation.
11788//
11789// The context must be non-nil and will be used for request cancellation. If
11790// the context is nil a panic will occur. In the future the SDK may create
11791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11792// for more information on using Contexts.
11793func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
11794	req, out := c.SetV2LoggingLevelRequest(input)
11795	req.SetContext(ctx)
11796	req.ApplyOptions(opts...)
11797	return out, req.Send()
11798}
11799
11800const opSetV2LoggingOptions = "SetV2LoggingOptions"
11801
11802// SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
11803// client's request for the SetV2LoggingOptions operation. The "output" return
11804// value will be populated with the request's response once the request completes
11805// successfuly.
11806//
11807// Use "Send" method on the returned Request to send the API call to the service.
11808// the "output" return value is not valid until after Send returns without error.
11809//
11810// See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
11811// API call, and error handling.
11812//
11813// This method is useful when you want to inject custom logic or configuration
11814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11815//
11816//
11817//    // Example sending a request using the SetV2LoggingOptionsRequest method.
11818//    req, resp := client.SetV2LoggingOptionsRequest(params)
11819//
11820//    err := req.Send()
11821//    if err == nil { // resp is now filled
11822//        fmt.Println(resp)
11823//    }
11824func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
11825	op := &request.Operation{
11826		Name:       opSetV2LoggingOptions,
11827		HTTPMethod: "POST",
11828		HTTPPath:   "/v2LoggingOptions",
11829	}
11830
11831	if input == nil {
11832		input = &SetV2LoggingOptionsInput{}
11833	}
11834
11835	output = &SetV2LoggingOptionsOutput{}
11836	req = c.newRequest(op, input, output)
11837	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
11838	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11839	return
11840}
11841
11842// SetV2LoggingOptions API operation for AWS IoT.
11843//
11844// Sets the logging options for the V2 logging service.
11845//
11846// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11847// with awserr.Error's Code and Message methods to get detailed information about
11848// the error.
11849//
11850// See the AWS API reference guide for AWS IoT's
11851// API operation SetV2LoggingOptions for usage and error information.
11852//
11853// Returned Error Codes:
11854//   * ErrCodeInternalException "InternalException"
11855//   An unexpected error has occurred.
11856//
11857//   * ErrCodeInvalidRequestException "InvalidRequestException"
11858//   The request is not valid.
11859//
11860//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
11861//   The service is temporarily unavailable.
11862//
11863func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
11864	req, out := c.SetV2LoggingOptionsRequest(input)
11865	return out, req.Send()
11866}
11867
11868// SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
11869// the ability to pass a context and additional request options.
11870//
11871// See SetV2LoggingOptions for details on how to use this API operation.
11872//
11873// The context must be non-nil and will be used for request cancellation. If
11874// the context is nil a panic will occur. In the future the SDK may create
11875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11876// for more information on using Contexts.
11877func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
11878	req, out := c.SetV2LoggingOptionsRequest(input)
11879	req.SetContext(ctx)
11880	req.ApplyOptions(opts...)
11881	return out, req.Send()
11882}
11883
11884const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
11885
11886// StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
11887// client's request for the StartOnDemandAuditTask operation. The "output" return
11888// value will be populated with the request's response once the request completes
11889// successfuly.
11890//
11891// Use "Send" method on the returned Request to send the API call to the service.
11892// the "output" return value is not valid until after Send returns without error.
11893//
11894// See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
11895// API call, and error handling.
11896//
11897// This method is useful when you want to inject custom logic or configuration
11898// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11899//
11900//
11901//    // Example sending a request using the StartOnDemandAuditTaskRequest method.
11902//    req, resp := client.StartOnDemandAuditTaskRequest(params)
11903//
11904//    err := req.Send()
11905//    if err == nil { // resp is now filled
11906//        fmt.Println(resp)
11907//    }
11908func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
11909	op := &request.Operation{
11910		Name:       opStartOnDemandAuditTask,
11911		HTTPMethod: "POST",
11912		HTTPPath:   "/audit/tasks",
11913	}
11914
11915	if input == nil {
11916		input = &StartOnDemandAuditTaskInput{}
11917	}
11918
11919	output = &StartOnDemandAuditTaskOutput{}
11920	req = c.newRequest(op, input, output)
11921	return
11922}
11923
11924// StartOnDemandAuditTask API operation for AWS IoT.
11925//
11926// Starts an on-demand Device Defender audit.
11927//
11928// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11929// with awserr.Error's Code and Message methods to get detailed information about
11930// the error.
11931//
11932// See the AWS API reference guide for AWS IoT's
11933// API operation StartOnDemandAuditTask for usage and error information.
11934//
11935// Returned Error Codes:
11936//   * ErrCodeInvalidRequestException "InvalidRequestException"
11937//   The request is not valid.
11938//
11939//   * ErrCodeThrottlingException "ThrottlingException"
11940//   The rate exceeds the limit.
11941//
11942//   * ErrCodeInternalFailureException "InternalFailureException"
11943//   An unexpected error has occurred.
11944//
11945//   * ErrCodeLimitExceededException "LimitExceededException"
11946//   A limit has been exceeded.
11947//
11948func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
11949	req, out := c.StartOnDemandAuditTaskRequest(input)
11950	return out, req.Send()
11951}
11952
11953// StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
11954// the ability to pass a context and additional request options.
11955//
11956// See StartOnDemandAuditTask for details on how to use this API operation.
11957//
11958// The context must be non-nil and will be used for request cancellation. If
11959// the context is nil a panic will occur. In the future the SDK may create
11960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11961// for more information on using Contexts.
11962func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
11963	req, out := c.StartOnDemandAuditTaskRequest(input)
11964	req.SetContext(ctx)
11965	req.ApplyOptions(opts...)
11966	return out, req.Send()
11967}
11968
11969const opStartThingRegistrationTask = "StartThingRegistrationTask"
11970
11971// StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
11972// client's request for the StartThingRegistrationTask operation. The "output" return
11973// value will be populated with the request's response once the request completes
11974// successfuly.
11975//
11976// Use "Send" method on the returned Request to send the API call to the service.
11977// the "output" return value is not valid until after Send returns without error.
11978//
11979// See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
11980// API call, and error handling.
11981//
11982// This method is useful when you want to inject custom logic or configuration
11983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11984//
11985//
11986//    // Example sending a request using the StartThingRegistrationTaskRequest method.
11987//    req, resp := client.StartThingRegistrationTaskRequest(params)
11988//
11989//    err := req.Send()
11990//    if err == nil { // resp is now filled
11991//        fmt.Println(resp)
11992//    }
11993func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
11994	op := &request.Operation{
11995		Name:       opStartThingRegistrationTask,
11996		HTTPMethod: "POST",
11997		HTTPPath:   "/thing-registration-tasks",
11998	}
11999
12000	if input == nil {
12001		input = &StartThingRegistrationTaskInput{}
12002	}
12003
12004	output = &StartThingRegistrationTaskOutput{}
12005	req = c.newRequest(op, input, output)
12006	return
12007}
12008
12009// StartThingRegistrationTask API operation for AWS IoT.
12010//
12011// Creates a bulk thing provisioning task.
12012//
12013// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12014// with awserr.Error's Code and Message methods to get detailed information about
12015// the error.
12016//
12017// See the AWS API reference guide for AWS IoT's
12018// API operation StartThingRegistrationTask for usage and error information.
12019//
12020// Returned Error Codes:
12021//   * ErrCodeInvalidRequestException "InvalidRequestException"
12022//   The request is not valid.
12023//
12024//   * ErrCodeThrottlingException "ThrottlingException"
12025//   The rate exceeds the limit.
12026//
12027//   * ErrCodeUnauthorizedException "UnauthorizedException"
12028//   You are not authorized to perform this operation.
12029//
12030//   * ErrCodeInternalFailureException "InternalFailureException"
12031//   An unexpected error has occurred.
12032//
12033func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
12034	req, out := c.StartThingRegistrationTaskRequest(input)
12035	return out, req.Send()
12036}
12037
12038// StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
12039// the ability to pass a context and additional request options.
12040//
12041// See StartThingRegistrationTask for details on how to use this API operation.
12042//
12043// The context must be non-nil and will be used for request cancellation. If
12044// the context is nil a panic will occur. In the future the SDK may create
12045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12046// for more information on using Contexts.
12047func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
12048	req, out := c.StartThingRegistrationTaskRequest(input)
12049	req.SetContext(ctx)
12050	req.ApplyOptions(opts...)
12051	return out, req.Send()
12052}
12053
12054const opStopThingRegistrationTask = "StopThingRegistrationTask"
12055
12056// StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
12057// client's request for the StopThingRegistrationTask operation. The "output" return
12058// value will be populated with the request's response once the request completes
12059// successfuly.
12060//
12061// Use "Send" method on the returned Request to send the API call to the service.
12062// the "output" return value is not valid until after Send returns without error.
12063//
12064// See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
12065// API call, and error handling.
12066//
12067// This method is useful when you want to inject custom logic or configuration
12068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12069//
12070//
12071//    // Example sending a request using the StopThingRegistrationTaskRequest method.
12072//    req, resp := client.StopThingRegistrationTaskRequest(params)
12073//
12074//    err := req.Send()
12075//    if err == nil { // resp is now filled
12076//        fmt.Println(resp)
12077//    }
12078func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
12079	op := &request.Operation{
12080		Name:       opStopThingRegistrationTask,
12081		HTTPMethod: "PUT",
12082		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
12083	}
12084
12085	if input == nil {
12086		input = &StopThingRegistrationTaskInput{}
12087	}
12088
12089	output = &StopThingRegistrationTaskOutput{}
12090	req = c.newRequest(op, input, output)
12091	return
12092}
12093
12094// StopThingRegistrationTask API operation for AWS IoT.
12095//
12096// Cancels a bulk thing provisioning task.
12097//
12098// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12099// with awserr.Error's Code and Message methods to get detailed information about
12100// the error.
12101//
12102// See the AWS API reference guide for AWS IoT's
12103// API operation StopThingRegistrationTask for usage and error information.
12104//
12105// Returned Error Codes:
12106//   * ErrCodeInvalidRequestException "InvalidRequestException"
12107//   The request is not valid.
12108//
12109//   * ErrCodeThrottlingException "ThrottlingException"
12110//   The rate exceeds the limit.
12111//
12112//   * ErrCodeUnauthorizedException "UnauthorizedException"
12113//   You are not authorized to perform this operation.
12114//
12115//   * ErrCodeInternalFailureException "InternalFailureException"
12116//   An unexpected error has occurred.
12117//
12118//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
12119//   The specified resource does not exist.
12120//
12121func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
12122	req, out := c.StopThingRegistrationTaskRequest(input)
12123	return out, req.Send()
12124}
12125
12126// StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
12127// the ability to pass a context and additional request options.
12128//
12129// See StopThingRegistrationTask for details on how to use this API operation.
12130//
12131// The context must be non-nil and will be used for request cancellation. If
12132// the context is nil a panic will occur. In the future the SDK may create
12133// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12134// for more information on using Contexts.
12135func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
12136	req, out := c.StopThingRegistrationTaskRequest(input)
12137	req.SetContext(ctx)
12138	req.ApplyOptions(opts...)
12139	return out, req.Send()
12140}
12141
12142const opTestAuthorization = "TestAuthorization"
12143
12144// TestAuthorizationRequest generates a "aws/request.Request" representing the
12145// client's request for the TestAuthorization operation. The "output" return
12146// value will be populated with the request's response once the request completes
12147// successfuly.
12148//
12149// Use "Send" method on the returned Request to send the API call to the service.
12150// the "output" return value is not valid until after Send returns without error.
12151//
12152// See TestAuthorization for more information on using the TestAuthorization
12153// API call, and error handling.
12154//
12155// This method is useful when you want to inject custom logic or configuration
12156// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12157//
12158//
12159//    // Example sending a request using the TestAuthorizationRequest method.
12160//    req, resp := client.TestAuthorizationRequest(params)
12161//
12162//    err := req.Send()
12163//    if err == nil { // resp is now filled
12164//        fmt.Println(resp)
12165//    }
12166func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
12167	op := &request.Operation{
12168		Name:       opTestAuthorization,
12169		HTTPMethod: "POST",
12170		HTTPPath:   "/test-authorization",
12171	}
12172
12173	if input == nil {
12174		input = &TestAuthorizationInput{}
12175	}
12176
12177	output = &TestAuthorizationOutput{}
12178	req = c.newRequest(op, input, output)
12179	return
12180}
12181
12182// TestAuthorization API operation for AWS IoT.
12183//
12184// Tests if a specified principal is authorized to perform an AWS IoT action
12185// on a specified resource. Use this to test and debug the authorization behavior
12186// of devices that connect to the AWS IoT device gateway.
12187//
12188// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12189// with awserr.Error's Code and Message methods to get detailed information about
12190// the error.
12191//
12192// See the AWS API reference guide for AWS IoT's
12193// API operation TestAuthorization for usage and error information.
12194//
12195// Returned Error Codes:
12196//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
12197//   The specified resource does not exist.
12198//
12199//   * ErrCodeInvalidRequestException "InvalidRequestException"
12200//   The request is not valid.
12201//
12202//   * ErrCodeThrottlingException "ThrottlingException"
12203//   The rate exceeds the limit.
12204//
12205//   * ErrCodeUnauthorizedException "UnauthorizedException"
12206//   You are not authorized to perform this operation.
12207//
12208//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
12209//   The service is temporarily unavailable.
12210//
12211//   * ErrCodeInternalFailureException "InternalFailureException"
12212//   An unexpected error has occurred.
12213//
12214//   * ErrCodeLimitExceededException "LimitExceededException"
12215//   A limit has been exceeded.
12216//
12217func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
12218	req, out := c.TestAuthorizationRequest(input)
12219	return out, req.Send()
12220}
12221
12222// TestAuthorizationWithContext is the same as TestAuthorization with the addition of
12223// the ability to pass a context and additional request options.
12224//
12225// See TestAuthorization for details on how to use this API operation.
12226//
12227// The context must be non-nil and will be used for request cancellation. If
12228// the context is nil a panic will occur. In the future the SDK may create
12229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12230// for more information on using Contexts.
12231func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
12232	req, out := c.TestAuthorizationRequest(input)
12233	req.SetContext(ctx)
12234	req.ApplyOptions(opts...)
12235	return out, req.Send()
12236}
12237
12238const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
12239
12240// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
12241// client's request for the TestInvokeAuthorizer operation. The "output" return
12242// value will be populated with the request's response once the request completes
12243// successfuly.
12244//
12245// Use "Send" method on the returned Request to send the API call to the service.
12246// the "output" return value is not valid until after Send returns without error.
12247//
12248// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
12249// API call, and error handling.
12250//
12251// This method is useful when you want to inject custom logic or configuration
12252// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12253//
12254//
12255//    // Example sending a request using the TestInvokeAuthorizerRequest method.
12256//    req, resp := client.TestInvokeAuthorizerRequest(params)
12257//
12258//    err := req.Send()
12259//    if err == nil { // resp is now filled
12260//        fmt.Println(resp)
12261//    }
12262func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
12263	op := &request.Operation{
12264		Name:       opTestInvokeAuthorizer,
12265		HTTPMethod: "POST",
12266		HTTPPath:   "/authorizer/{authorizerName}/test",
12267	}
12268
12269	if input == nil {
12270		input = &TestInvokeAuthorizerInput{}
12271	}
12272
12273	output = &TestInvokeAuthorizerOutput{}
12274	req = c.newRequest(op, input, output)
12275	return
12276}
12277
12278// TestInvokeAuthorizer API operation for AWS IoT.
12279//
12280// Tests a custom authorization behavior by invoking a specified custom authorizer.
12281// Use this to test and debug the custom authorization behavior of devices that
12282// connect to the AWS IoT device gateway.
12283//
12284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12285// with awserr.Error's Code and Message methods to get detailed information about
12286// the error.
12287//
12288// See the AWS API reference guide for AWS IoT's
12289// API operation TestInvokeAuthorizer for usage and error information.
12290//
12291// Returned Error Codes:
12292//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
12293//   The specified resource does not exist.
12294//
12295//   * ErrCodeInvalidRequestException "InvalidRequestException"
12296//   The request is not valid.
12297//
12298//   * ErrCodeThrottlingException "ThrottlingException"
12299//   The rate exceeds the limit.
12300//
12301//   * ErrCodeUnauthorizedException "UnauthorizedException"
12302//   You are not authorized to perform this operation.
12303//
12304//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
12305//   The service is temporarily unavailable.
12306//
12307//   * ErrCodeInternalFailureException "InternalFailureException"
12308//   An unexpected error has occurred.
12309//
12310//   * ErrCodeInvalidResponseException "InvalidResponseException"
12311//   The response is invalid.
12312//
12313func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
12314	req, out := c.TestInvokeAuthorizerRequest(input)
12315	return out, req.Send()
12316}
12317
12318// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
12319// the ability to pass a context and additional request options.
12320//
12321// See TestInvokeAuthorizer for details on how to use this API operation.
12322//
12323// The context must be non-nil and will be used for request cancellation. If
12324// the context is nil a panic will occur. In the future the SDK may create
12325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12326// for more information on using Contexts.
12327func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
12328	req, out := c.TestInvokeAuthorizerRequest(input)
12329	req.SetContext(ctx)
12330	req.ApplyOptions(opts...)
12331	return out, req.Send()
12332}
12333
12334const opTransferCertificate = "TransferCertificate"
12335
12336// TransferCertificateRequest generates a "aws/request.Request" representing the
12337// client's request for the TransferCertificate operation. The "output" return
12338// value will be populated with the request's response once the request completes
12339// successfuly.
12340//
12341// Use "Send" method on the returned Request to send the API call to the service.
12342// the "output" return value is not valid until after Send returns without error.
12343//
12344// See TransferCertificate for more information on using the TransferCertificate
12345// API call, and error handling.
12346//
12347// This method is useful when you want to inject custom logic or configuration
12348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12349//
12350//
12351//    // Example sending a request using the TransferCertificateRequest method.
12352//    req, resp := client.TransferCertificateRequest(params)
12353//
12354//    err := req.Send()
12355//    if err == nil { // resp is now filled
12356//        fmt.Println(resp)
12357//    }
12358func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
12359	op := &request.Operation{
12360		Name:       opTransferCertificate,
12361		HTTPMethod: "PATCH",
12362		HTTPPath:   "/transfer-certificate/{certificateId}",
12363	}
12364
12365	if input == nil {
12366		input = &TransferCertificateInput{}
12367	}
12368
12369	output = &TransferCertificateOutput{}
12370	req = c.newRequest(op, input, output)
12371	return
12372}
12373
12374// TransferCertificate API operation for AWS IoT.
12375//
12376// Transfers the specified certificate to the specified AWS account.
12377//
12378// You can cancel the transfer until it is acknowledged by the recipient.
12379//
12380// No notification is sent to the transfer destination's account. It is up to
12381// the caller to notify the transfer target.
12382//
12383// The certificate being transferred must not be in the ACTIVE state. You can
12384// use the UpdateCertificate API to deactivate it.
12385//
12386// The certificate must not have any policies attached to it. You can use the
12387// DetachPrincipalPolicy API to detach them.
12388//
12389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12390// with awserr.Error's Code and Message methods to get detailed information about
12391// the error.
12392//
12393// See the AWS API reference guide for AWS IoT's
12394// API operation TransferCertificate for usage and error information.
12395//
12396// Returned Error Codes:
12397//   * ErrCodeInvalidRequestException "InvalidRequestException"
12398//   The request is not valid.
12399//
12400//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
12401//   The specified resource does not exist.
12402//
12403//   * ErrCodeCertificateStateException "CertificateStateException"
12404//   The certificate operation is not allowed.
12405//
12406//   * ErrCodeTransferConflictException "TransferConflictException"
12407//   You can't transfer the certificate because authorization policies are still
12408//   attached.
12409//
12410//   * ErrCodeThrottlingException "ThrottlingException"
12411//   The rate exceeds the limit.
12412//
12413//   * ErrCodeUnauthorizedException "UnauthorizedException"
12414//   You are not authorized to perform this operation.
12415//
12416//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
12417//   The service is temporarily unavailable.
12418//
12419//   * ErrCodeInternalFailureException "InternalFailureException"
12420//   An unexpected error has occurred.
12421//
12422func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
12423	req, out := c.TransferCertificateRequest(input)
12424	return out, req.Send()
12425}
12426
12427// TransferCertificateWithContext is the same as TransferCertificate with the addition of
12428// the ability to pass a context and additional request options.
12429//
12430// See TransferCertificate for details on how to use this API operation.
12431//
12432// The context must be non-nil and will be used for request cancellation. If
12433// the context is nil a panic will occur. In the future the SDK may create
12434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12435// for more information on using Contexts.
12436func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
12437	req, out := c.TransferCertificateRequest(input)
12438	req.SetContext(ctx)
12439	req.ApplyOptions(opts...)
12440	return out, req.Send()
12441}
12442
12443const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
12444
12445// UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
12446// client's request for the UpdateAccountAuditConfiguration operation. The "output" return
12447// value will be populated with the request's response once the request completes
12448// successfuly.
12449//
12450// Use "Send" method on the returned Request to send the API call to the service.
12451// the "output" return value is not valid until after Send returns without error.
12452//
12453// See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
12454// API call, and error handling.
12455//
12456// This method is useful when you want to inject custom logic or configuration
12457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12458//
12459//
12460//    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
12461//    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
12462//
12463//    err := req.Send()
12464//    if err == nil { // resp is now filled
12465//        fmt.Println(resp)
12466//    }
12467func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
12468	op := &request.Operation{
12469		Name:       opUpdateAccountAuditConfiguration,
12470		HTTPMethod: "PATCH",
12471		HTTPPath:   "/audit/configuration",
12472	}
12473
12474	if input == nil {
12475		input = &UpdateAccountAuditConfigurationInput{}
12476	}
12477
12478	output = &UpdateAccountAuditConfigurationOutput{}
12479	req = c.newRequest(op, input, output)
12480	return
12481}
12482
12483// UpdateAccountAuditConfiguration API operation for AWS IoT.
12484//
12485// Configures or reconfigures the Device Defender audit settings for this account.
12486// Settings include how audit notifications are sent and which audit checks
12487// are enabled or disabled.
12488//
12489// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12490// with awserr.Error's Code and Message methods to get detailed information about
12491// the error.
12492//
12493// See the AWS API reference guide for AWS IoT's
12494// API operation UpdateAccountAuditConfiguration for usage and error information.
12495//
12496// Returned Error Codes:
12497//   * ErrCodeInvalidRequestException "InvalidRequestException"
12498//   The request is not valid.
12499//
12500//   * ErrCodeThrottlingException "ThrottlingException"
12501//   The rate exceeds the limit.
12502//
12503//   * ErrCodeInternalFailureException "InternalFailureException"
12504//   An unexpected error has occurred.
12505//
12506func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
12507	req, out := c.UpdateAccountAuditConfigurationRequest(input)
12508	return out, req.Send()
12509}
12510
12511// UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
12512// the ability to pass a context and additional request options.
12513//
12514// See UpdateAccountAuditConfiguration for details on how to use this API operation.
12515//
12516// The context must be non-nil and will be used for request cancellation. If
12517// the context is nil a panic will occur. In the future the SDK may create
12518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12519// for more information on using Contexts.
12520func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
12521	req, out := c.UpdateAccountAuditConfigurationRequest(input)
12522	req.SetContext(ctx)
12523	req.ApplyOptions(opts...)
12524	return out, req.Send()
12525}
12526
12527const opUpdateAuthorizer = "UpdateAuthorizer"
12528
12529// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
12530// client's request for the UpdateAuthorizer operation. The "output" return
12531// value will be populated with the request's response once the request completes
12532// successfuly.
12533//
12534// Use "Send" method on the returned Request to send the API call to the service.
12535// the "output" return value is not valid until after Send returns without error.
12536//
12537// See UpdateAuthorizer for more information on using the UpdateAuthorizer
12538// API call, and error handling.
12539//
12540// This method is useful when you want to inject custom logic or configuration
12541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12542//
12543//
12544//    // Example sending a request using the UpdateAuthorizerRequest method.
12545//    req, resp := client.UpdateAuthorizerRequest(params)
12546//
12547//    err := req.Send()
12548//    if err == nil { // resp is now filled
12549//        fmt.Println(resp)
12550//    }
12551func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
12552	op := &request.Operation{
12553		Name:       opUpdateAuthorizer,
12554		HTTPMethod: "PUT",
12555		HTTPPath:   "/authorizer/{authorizerName}",
12556	}
12557
12558	if input == nil {
12559		input = &UpdateAuthorizerInput{}
12560	}
12561
12562	output = &UpdateAuthorizerOutput{}
12563	req = c.newRequest(op, input, output)
12564	return
12565}
12566
12567// UpdateAuthorizer API operation for AWS IoT.
12568//
12569// Updates an authorizer.
12570//
12571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12572// with awserr.Error's Code and Message methods to get detailed information about
12573// the error.
12574//
12575// See the AWS API reference guide for AWS IoT's
12576// API operation UpdateAuthorizer for usage and error information.
12577//
12578// Returned Error Codes:
12579//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
12580//   The specified resource does not exist.
12581//
12582//   * ErrCodeInvalidRequestException "InvalidRequestException"
12583//   The request is not valid.
12584//
12585//   * ErrCodeLimitExceededException "LimitExceededException"
12586//   A limit has been exceeded.
12587//
12588//   * ErrCodeThrottlingException "ThrottlingException"
12589//   The rate exceeds the limit.
12590//
12591//   * ErrCodeUnauthorizedException "UnauthorizedException"
12592//   You are not authorized to perform this operation.
12593//
12594//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
12595//   The service is temporarily unavailable.
12596//
12597//   * ErrCodeInternalFailureException "InternalFailureException"
12598//   An unexpected error has occurred.
12599//
12600func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
12601	req, out := c.UpdateAuthorizerRequest(input)
12602	return out, req.Send()
12603}
12604
12605// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
12606// the ability to pass a context and additional request options.
12607//
12608// See UpdateAuthorizer for details on how to use this API operation.
12609//
12610// The context must be non-nil and will be used for request cancellation. If
12611// the context is nil a panic will occur. In the future the SDK may create
12612// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12613// for more information on using Contexts.
12614func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
12615	req, out := c.UpdateAuthorizerRequest(input)
12616	req.SetContext(ctx)
12617	req.ApplyOptions(opts...)
12618	return out, req.Send()
12619}
12620
12621const opUpdateCACertificate = "UpdateCACertificate"
12622
12623// UpdateCACertificateRequest generates a "aws/request.Request" representing the
12624// client's request for the UpdateCACertificate operation. The "output" return
12625// value will be populated with the request's response once the request completes
12626// successfuly.
12627//
12628// Use "Send" method on the returned Request to send the API call to the service.
12629// the "output" return value is not valid until after Send returns without error.
12630//
12631// See UpdateCACertificate for more information on using the UpdateCACertificate
12632// API call, and error handling.
12633//
12634// This method is useful when you want to inject custom logic or configuration
12635// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12636//
12637//
12638//    // Example sending a request using the UpdateCACertificateRequest method.
12639//    req, resp := client.UpdateCACertificateRequest(params)
12640//
12641//    err := req.Send()
12642//    if err == nil { // resp is now filled
12643//        fmt.Println(resp)
12644//    }
12645func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
12646	op := &request.Operation{
12647		Name:       opUpdateCACertificate,
12648		HTTPMethod: "PUT",
12649		HTTPPath:   "/cacertificate/{caCertificateId}",
12650	}
12651
12652	if input == nil {
12653		input = &UpdateCACertificateInput{}
12654	}
12655
12656	output = &UpdateCACertificateOutput{}
12657	req = c.newRequest(op, input, output)
12658	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
12659	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12660	return
12661}
12662
12663// UpdateCACertificate API operation for AWS IoT.
12664//
12665// Updates a registered CA certificate.
12666//
12667// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12668// with awserr.Error's Code and Message methods to get detailed information about
12669// the error.
12670//
12671// See the AWS API reference guide for AWS IoT's
12672// API operation UpdateCACertificate for usage and error information.
12673//
12674// Returned Error Codes:
12675//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
12676//   The specified resource does not exist.
12677//
12678//   * ErrCodeInvalidRequestException "InvalidRequestException"
12679//   The request is not valid.
12680//
12681//   * ErrCodeThrottlingException "ThrottlingException"
12682//   The rate exceeds the limit.
12683//
12684//   * ErrCodeUnauthorizedException "UnauthorizedException"
12685//   You are not authorized to perform this operation.
12686//
12687//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
12688//   The service is temporarily unavailable.
12689//
12690//   * ErrCodeInternalFailureException "InternalFailureException"
12691//   An unexpected error has occurred.
12692//
12693func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
12694	req, out := c.UpdateCACertificateRequest(input)
12695	return out, req.Send()
12696}
12697
12698// UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
12699// the ability to pass a context and additional request options.
12700//
12701// See UpdateCACertificate for details on how to use this API operation.
12702//
12703// The context must be non-nil and will be used for request cancellation. If
12704// the context is nil a panic will occur. In the future the SDK may create
12705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12706// for more information on using Contexts.
12707func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
12708	req, out := c.UpdateCACertificateRequest(input)
12709	req.SetContext(ctx)
12710	req.ApplyOptions(opts...)
12711	return out, req.Send()
12712}
12713
12714const opUpdateCertificate = "UpdateCertificate"
12715
12716// UpdateCertificateRequest generates a "aws/request.Request" representing the
12717// client's request for the UpdateCertificate operation. The "output" return
12718// value will be populated with the request's response once the request completes
12719// successfuly.
12720//
12721// Use "Send" method on the returned Request to send the API call to the service.
12722// the "output" return value is not valid until after Send returns without error.
12723//
12724// See UpdateCertificate for more information on using the UpdateCertificate
12725// API call, and error handling.
12726//
12727// This method is useful when you want to inject custom logic or configuration
12728// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12729//
12730//
12731//    // Example sending a request using the UpdateCertificateRequest method.
12732//    req, resp := client.UpdateCertificateRequest(params)
12733//
12734//    err := req.Send()
12735//    if err == nil { // resp is now filled
12736//        fmt.Println(resp)
12737//    }
12738func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
12739	op := &request.Operation{
12740		Name:       opUpdateCertificate,
12741		HTTPMethod: "PUT",
12742		HTTPPath:   "/certificates/{certificateId}",
12743	}
12744
12745	if input == nil {
12746		input = &UpdateCertificateInput{}
12747	}
12748
12749	output = &UpdateCertificateOutput{}
12750	req = c.newRequest(op, input, output)
12751	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
12752	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12753	return
12754}
12755
12756// UpdateCertificate API operation for AWS IoT.
12757//
12758// Updates the status of the specified certificate. This operation is idempotent.
12759//
12760// Moving a certificate from the ACTIVE state (including REVOKED) will not disconnect
12761// currently connected devices, but these devices will be unable to reconnect.
12762//
12763// The ACTIVE state is required to authenticate devices connecting to AWS IoT
12764// using a certificate.
12765//
12766// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12767// with awserr.Error's Code and Message methods to get detailed information about
12768// the error.
12769//
12770// See the AWS API reference guide for AWS IoT's
12771// API operation UpdateCertificate for usage and error information.
12772//
12773// Returned Error Codes:
12774//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
12775//   The specified resource does not exist.
12776//
12777//   * ErrCodeCertificateStateException "CertificateStateException"
12778//   The certificate operation is not allowed.
12779//
12780//   * ErrCodeInvalidRequestException "InvalidRequestException"
12781//   The request is not valid.
12782//
12783//   * ErrCodeThrottlingException "ThrottlingException"
12784//   The rate exceeds the limit.
12785//
12786//   * ErrCodeUnauthorizedException "UnauthorizedException"
12787//   You are not authorized to perform this operation.
12788//
12789//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
12790//   The service is temporarily unavailable.
12791//
12792//   * ErrCodeInternalFailureException "InternalFailureException"
12793//   An unexpected error has occurred.
12794//
12795func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
12796	req, out := c.UpdateCertificateRequest(input)
12797	return out, req.Send()
12798}
12799
12800// UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
12801// the ability to pass a context and additional request options.
12802//
12803// See UpdateCertificate for details on how to use this API operation.
12804//
12805// The context must be non-nil and will be used for request cancellation. If
12806// the context is nil a panic will occur. In the future the SDK may create
12807// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12808// for more information on using Contexts.
12809func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
12810	req, out := c.UpdateCertificateRequest(input)
12811	req.SetContext(ctx)
12812	req.ApplyOptions(opts...)
12813	return out, req.Send()
12814}
12815
12816const opUpdateEventConfigurations = "UpdateEventConfigurations"
12817
12818// UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
12819// client's request for the UpdateEventConfigurations operation. The "output" return
12820// value will be populated with the request's response once the request completes
12821// successfuly.
12822//
12823// Use "Send" method on the returned Request to send the API call to the service.
12824// the "output" return value is not valid until after Send returns without error.
12825//
12826// See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
12827// API call, and error handling.
12828//
12829// This method is useful when you want to inject custom logic or configuration
12830// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12831//
12832//
12833//    // Example sending a request using the UpdateEventConfigurationsRequest method.
12834//    req, resp := client.UpdateEventConfigurationsRequest(params)
12835//
12836//    err := req.Send()
12837//    if err == nil { // resp is now filled
12838//        fmt.Println(resp)
12839//    }
12840func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
12841	op := &request.Operation{
12842		Name:       opUpdateEventConfigurations,
12843		HTTPMethod: "PATCH",
12844		HTTPPath:   "/event-configurations",
12845	}
12846
12847	if input == nil {
12848		input = &UpdateEventConfigurationsInput{}
12849	}
12850
12851	output = &UpdateEventConfigurationsOutput{}
12852	req = c.newRequest(op, input, output)
12853	return
12854}
12855
12856// UpdateEventConfigurations API operation for AWS IoT.
12857//
12858// Updates the event configurations.
12859//
12860// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12861// with awserr.Error's Code and Message methods to get detailed information about
12862// the error.
12863//
12864// See the AWS API reference guide for AWS IoT's
12865// API operation UpdateEventConfigurations for usage and error information.
12866//
12867// Returned Error Codes:
12868//   * ErrCodeInvalidRequestException "InvalidRequestException"
12869//   The request is not valid.
12870//
12871//   * ErrCodeInternalFailureException "InternalFailureException"
12872//   An unexpected error has occurred.
12873//
12874//   * ErrCodeThrottlingException "ThrottlingException"
12875//   The rate exceeds the limit.
12876//
12877func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
12878	req, out := c.UpdateEventConfigurationsRequest(input)
12879	return out, req.Send()
12880}
12881
12882// UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
12883// the ability to pass a context and additional request options.
12884//
12885// See UpdateEventConfigurations for details on how to use this API operation.
12886//
12887// The context must be non-nil and will be used for request cancellation. If
12888// the context is nil a panic will occur. In the future the SDK may create
12889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12890// for more information on using Contexts.
12891func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
12892	req, out := c.UpdateEventConfigurationsRequest(input)
12893	req.SetContext(ctx)
12894	req.ApplyOptions(opts...)
12895	return out, req.Send()
12896}
12897
12898const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
12899
12900// UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
12901// client's request for the UpdateIndexingConfiguration operation. The "output" return
12902// value will be populated with the request's response once the request completes
12903// successfuly.
12904//
12905// Use "Send" method on the returned Request to send the API call to the service.
12906// the "output" return value is not valid until after Send returns without error.
12907//
12908// See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
12909// API call, and error handling.
12910//
12911// This method is useful when you want to inject custom logic or configuration
12912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12913//
12914//
12915//    // Example sending a request using the UpdateIndexingConfigurationRequest method.
12916//    req, resp := client.UpdateIndexingConfigurationRequest(params)
12917//
12918//    err := req.Send()
12919//    if err == nil { // resp is now filled
12920//        fmt.Println(resp)
12921//    }
12922func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
12923	op := &request.Operation{
12924		Name:       opUpdateIndexingConfiguration,
12925		HTTPMethod: "POST",
12926		HTTPPath:   "/indexing/config",
12927	}
12928
12929	if input == nil {
12930		input = &UpdateIndexingConfigurationInput{}
12931	}
12932
12933	output = &UpdateIndexingConfigurationOutput{}
12934	req = c.newRequest(op, input, output)
12935	return
12936}
12937
12938// UpdateIndexingConfiguration API operation for AWS IoT.
12939//
12940// Updates the search configuration.
12941//
12942// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12943// with awserr.Error's Code and Message methods to get detailed information about
12944// the error.
12945//
12946// See the AWS API reference guide for AWS IoT's
12947// API operation UpdateIndexingConfiguration for usage and error information.
12948//
12949// Returned Error Codes:
12950//   * ErrCodeInvalidRequestException "InvalidRequestException"
12951//   The request is not valid.
12952//
12953//   * ErrCodeThrottlingException "ThrottlingException"
12954//   The rate exceeds the limit.
12955//
12956//   * ErrCodeUnauthorizedException "UnauthorizedException"
12957//   You are not authorized to perform this operation.
12958//
12959//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
12960//   The service is temporarily unavailable.
12961//
12962//   * ErrCodeInternalFailureException "InternalFailureException"
12963//   An unexpected error has occurred.
12964//
12965func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
12966	req, out := c.UpdateIndexingConfigurationRequest(input)
12967	return out, req.Send()
12968}
12969
12970// UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
12971// the ability to pass a context and additional request options.
12972//
12973// See UpdateIndexingConfiguration for details on how to use this API operation.
12974//
12975// The context must be non-nil and will be used for request cancellation. If
12976// the context is nil a panic will occur. In the future the SDK may create
12977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12978// for more information on using Contexts.
12979func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
12980	req, out := c.UpdateIndexingConfigurationRequest(input)
12981	req.SetContext(ctx)
12982	req.ApplyOptions(opts...)
12983	return out, req.Send()
12984}
12985
12986const opUpdateRoleAlias = "UpdateRoleAlias"
12987
12988// UpdateRoleAliasRequest generates a "aws/request.Request" representing the
12989// client's request for the UpdateRoleAlias operation. The "output" return
12990// value will be populated with the request's response once the request completes
12991// successfuly.
12992//
12993// Use "Send" method on the returned Request to send the API call to the service.
12994// the "output" return value is not valid until after Send returns without error.
12995//
12996// See UpdateRoleAlias for more information on using the UpdateRoleAlias
12997// API call, and error handling.
12998//
12999// This method is useful when you want to inject custom logic or configuration
13000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13001//
13002//
13003//    // Example sending a request using the UpdateRoleAliasRequest method.
13004//    req, resp := client.UpdateRoleAliasRequest(params)
13005//
13006//    err := req.Send()
13007//    if err == nil { // resp is now filled
13008//        fmt.Println(resp)
13009//    }
13010func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
13011	op := &request.Operation{
13012		Name:       opUpdateRoleAlias,
13013		HTTPMethod: "PUT",
13014		HTTPPath:   "/role-aliases/{roleAlias}",
13015	}
13016
13017	if input == nil {
13018		input = &UpdateRoleAliasInput{}
13019	}
13020
13021	output = &UpdateRoleAliasOutput{}
13022	req = c.newRequest(op, input, output)
13023	return
13024}
13025
13026// UpdateRoleAlias API operation for AWS IoT.
13027//
13028// Updates a role alias.
13029//
13030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13031// with awserr.Error's Code and Message methods to get detailed information about
13032// the error.
13033//
13034// See the AWS API reference guide for AWS IoT's
13035// API operation UpdateRoleAlias for usage and error information.
13036//
13037// Returned Error Codes:
13038//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
13039//   The specified resource does not exist.
13040//
13041//   * ErrCodeInvalidRequestException "InvalidRequestException"
13042//   The request is not valid.
13043//
13044//   * ErrCodeThrottlingException "ThrottlingException"
13045//   The rate exceeds the limit.
13046//
13047//   * ErrCodeUnauthorizedException "UnauthorizedException"
13048//   You are not authorized to perform this operation.
13049//
13050//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
13051//   The service is temporarily unavailable.
13052//
13053//   * ErrCodeInternalFailureException "InternalFailureException"
13054//   An unexpected error has occurred.
13055//
13056func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
13057	req, out := c.UpdateRoleAliasRequest(input)
13058	return out, req.Send()
13059}
13060
13061// UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
13062// the ability to pass a context and additional request options.
13063//
13064// See UpdateRoleAlias for details on how to use this API operation.
13065//
13066// The context must be non-nil and will be used for request cancellation. If
13067// the context is nil a panic will occur. In the future the SDK may create
13068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13069// for more information on using Contexts.
13070func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
13071	req, out := c.UpdateRoleAliasRequest(input)
13072	req.SetContext(ctx)
13073	req.ApplyOptions(opts...)
13074	return out, req.Send()
13075}
13076
13077const opUpdateScheduledAudit = "UpdateScheduledAudit"
13078
13079// UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
13080// client's request for the UpdateScheduledAudit operation. The "output" return
13081// value will be populated with the request's response once the request completes
13082// successfuly.
13083//
13084// Use "Send" method on the returned Request to send the API call to the service.
13085// the "output" return value is not valid until after Send returns without error.
13086//
13087// See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
13088// API call, and error handling.
13089//
13090// This method is useful when you want to inject custom logic or configuration
13091// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13092//
13093//
13094//    // Example sending a request using the UpdateScheduledAuditRequest method.
13095//    req, resp := client.UpdateScheduledAuditRequest(params)
13096//
13097//    err := req.Send()
13098//    if err == nil { // resp is now filled
13099//        fmt.Println(resp)
13100//    }
13101func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
13102	op := &request.Operation{
13103		Name:       opUpdateScheduledAudit,
13104		HTTPMethod: "PATCH",
13105		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
13106	}
13107
13108	if input == nil {
13109		input = &UpdateScheduledAuditInput{}
13110	}
13111
13112	output = &UpdateScheduledAuditOutput{}
13113	req = c.newRequest(op, input, output)
13114	return
13115}
13116
13117// UpdateScheduledAudit API operation for AWS IoT.
13118//
13119// Updates a scheduled audit, including what checks are performed and how often
13120// the audit takes place.
13121//
13122// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13123// with awserr.Error's Code and Message methods to get detailed information about
13124// the error.
13125//
13126// See the AWS API reference guide for AWS IoT's
13127// API operation UpdateScheduledAudit for usage and error information.
13128//
13129// Returned Error Codes:
13130//   * ErrCodeInvalidRequestException "InvalidRequestException"
13131//   The request is not valid.
13132//
13133//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
13134//   The specified resource does not exist.
13135//
13136//   * ErrCodeThrottlingException "ThrottlingException"
13137//   The rate exceeds the limit.
13138//
13139//   * ErrCodeInternalFailureException "InternalFailureException"
13140//   An unexpected error has occurred.
13141//
13142func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
13143	req, out := c.UpdateScheduledAuditRequest(input)
13144	return out, req.Send()
13145}
13146
13147// UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
13148// the ability to pass a context and additional request options.
13149//
13150// See UpdateScheduledAudit for details on how to use this API operation.
13151//
13152// The context must be non-nil and will be used for request cancellation. If
13153// the context is nil a panic will occur. In the future the SDK may create
13154// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13155// for more information on using Contexts.
13156func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
13157	req, out := c.UpdateScheduledAuditRequest(input)
13158	req.SetContext(ctx)
13159	req.ApplyOptions(opts...)
13160	return out, req.Send()
13161}
13162
13163const opUpdateSecurityProfile = "UpdateSecurityProfile"
13164
13165// UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
13166// client's request for the UpdateSecurityProfile operation. The "output" return
13167// value will be populated with the request's response once the request completes
13168// successfuly.
13169//
13170// Use "Send" method on the returned Request to send the API call to the service.
13171// the "output" return value is not valid until after Send returns without error.
13172//
13173// See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
13174// API call, and error handling.
13175//
13176// This method is useful when you want to inject custom logic or configuration
13177// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13178//
13179//
13180//    // Example sending a request using the UpdateSecurityProfileRequest method.
13181//    req, resp := client.UpdateSecurityProfileRequest(params)
13182//
13183//    err := req.Send()
13184//    if err == nil { // resp is now filled
13185//        fmt.Println(resp)
13186//    }
13187func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
13188	op := &request.Operation{
13189		Name:       opUpdateSecurityProfile,
13190		HTTPMethod: "PATCH",
13191		HTTPPath:   "/security-profiles/{securityProfileName}",
13192	}
13193
13194	if input == nil {
13195		input = &UpdateSecurityProfileInput{}
13196	}
13197
13198	output = &UpdateSecurityProfileOutput{}
13199	req = c.newRequest(op, input, output)
13200	return
13201}
13202
13203// UpdateSecurityProfile API operation for AWS IoT.
13204//
13205// Updates a Device Defender security profile.
13206//
13207// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13208// with awserr.Error's Code and Message methods to get detailed information about
13209// the error.
13210//
13211// See the AWS API reference guide for AWS IoT's
13212// API operation UpdateSecurityProfile for usage and error information.
13213//
13214// Returned Error Codes:
13215//   * ErrCodeInvalidRequestException "InvalidRequestException"
13216//   The request is not valid.
13217//
13218//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
13219//   The specified resource does not exist.
13220//
13221//   * ErrCodeVersionConflictException "VersionConflictException"
13222//   An exception thrown when the version of an entity specified with the expectedVersion
13223//   parameter does not match the latest version in the system.
13224//
13225//   * ErrCodeThrottlingException "ThrottlingException"
13226//   The rate exceeds the limit.
13227//
13228//   * ErrCodeInternalFailureException "InternalFailureException"
13229//   An unexpected error has occurred.
13230//
13231func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
13232	req, out := c.UpdateSecurityProfileRequest(input)
13233	return out, req.Send()
13234}
13235
13236// UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
13237// the ability to pass a context and additional request options.
13238//
13239// See UpdateSecurityProfile for details on how to use this API operation.
13240//
13241// The context must be non-nil and will be used for request cancellation. If
13242// the context is nil a panic will occur. In the future the SDK may create
13243// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13244// for more information on using Contexts.
13245func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
13246	req, out := c.UpdateSecurityProfileRequest(input)
13247	req.SetContext(ctx)
13248	req.ApplyOptions(opts...)
13249	return out, req.Send()
13250}
13251
13252const opUpdateStream = "UpdateStream"
13253
13254// UpdateStreamRequest generates a "aws/request.Request" representing the
13255// client's request for the UpdateStream operation. The "output" return
13256// value will be populated with the request's response once the request completes
13257// successfuly.
13258//
13259// Use "Send" method on the returned Request to send the API call to the service.
13260// the "output" return value is not valid until after Send returns without error.
13261//
13262// See UpdateStream for more information on using the UpdateStream
13263// API call, and error handling.
13264//
13265// This method is useful when you want to inject custom logic or configuration
13266// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13267//
13268//
13269//    // Example sending a request using the UpdateStreamRequest method.
13270//    req, resp := client.UpdateStreamRequest(params)
13271//
13272//    err := req.Send()
13273//    if err == nil { // resp is now filled
13274//        fmt.Println(resp)
13275//    }
13276func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
13277	op := &request.Operation{
13278		Name:       opUpdateStream,
13279		HTTPMethod: "PUT",
13280		HTTPPath:   "/streams/{streamId}",
13281	}
13282
13283	if input == nil {
13284		input = &UpdateStreamInput{}
13285	}
13286
13287	output = &UpdateStreamOutput{}
13288	req = c.newRequest(op, input, output)
13289	return
13290}
13291
13292// UpdateStream API operation for AWS IoT.
13293//
13294// Updates an existing stream. The stream version will be incremented by one.
13295//
13296// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13297// with awserr.Error's Code and Message methods to get detailed information about
13298// the error.
13299//
13300// See the AWS API reference guide for AWS IoT's
13301// API operation UpdateStream for usage and error information.
13302//
13303// Returned Error Codes:
13304//   * ErrCodeInvalidRequestException "InvalidRequestException"
13305//   The request is not valid.
13306//
13307//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
13308//   The specified resource does not exist.
13309//
13310//   * ErrCodeThrottlingException "ThrottlingException"
13311//   The rate exceeds the limit.
13312//
13313//   * ErrCodeUnauthorizedException "UnauthorizedException"
13314//   You are not authorized to perform this operation.
13315//
13316//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
13317//   The service is temporarily unavailable.
13318//
13319//   * ErrCodeInternalFailureException "InternalFailureException"
13320//   An unexpected error has occurred.
13321//
13322func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
13323	req, out := c.UpdateStreamRequest(input)
13324	return out, req.Send()
13325}
13326
13327// UpdateStreamWithContext is the same as UpdateStream with the addition of
13328// the ability to pass a context and additional request options.
13329//
13330// See UpdateStream for details on how to use this API operation.
13331//
13332// The context must be non-nil and will be used for request cancellation. If
13333// the context is nil a panic will occur. In the future the SDK may create
13334// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13335// for more information on using Contexts.
13336func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
13337	req, out := c.UpdateStreamRequest(input)
13338	req.SetContext(ctx)
13339	req.ApplyOptions(opts...)
13340	return out, req.Send()
13341}
13342
13343const opUpdateThing = "UpdateThing"
13344
13345// UpdateThingRequest generates a "aws/request.Request" representing the
13346// client's request for the UpdateThing operation. The "output" return
13347// value will be populated with the request's response once the request completes
13348// successfuly.
13349//
13350// Use "Send" method on the returned Request to send the API call to the service.
13351// the "output" return value is not valid until after Send returns without error.
13352//
13353// See UpdateThing for more information on using the UpdateThing
13354// API call, and error handling.
13355//
13356// This method is useful when you want to inject custom logic or configuration
13357// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13358//
13359//
13360//    // Example sending a request using the UpdateThingRequest method.
13361//    req, resp := client.UpdateThingRequest(params)
13362//
13363//    err := req.Send()
13364//    if err == nil { // resp is now filled
13365//        fmt.Println(resp)
13366//    }
13367func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
13368	op := &request.Operation{
13369		Name:       opUpdateThing,
13370		HTTPMethod: "PATCH",
13371		HTTPPath:   "/things/{thingName}",
13372	}
13373
13374	if input == nil {
13375		input = &UpdateThingInput{}
13376	}
13377
13378	output = &UpdateThingOutput{}
13379	req = c.newRequest(op, input, output)
13380	return
13381}
13382
13383// UpdateThing API operation for AWS IoT.
13384//
13385// Updates the data for a thing.
13386//
13387// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13388// with awserr.Error's Code and Message methods to get detailed information about
13389// the error.
13390//
13391// See the AWS API reference guide for AWS IoT's
13392// API operation UpdateThing for usage and error information.
13393//
13394// Returned Error Codes:
13395//   * ErrCodeInvalidRequestException "InvalidRequestException"
13396//   The request is not valid.
13397//
13398//   * ErrCodeVersionConflictException "VersionConflictException"
13399//   An exception thrown when the version of an entity specified with the expectedVersion
13400//   parameter does not match the latest version in the system.
13401//
13402//   * ErrCodeThrottlingException "ThrottlingException"
13403//   The rate exceeds the limit.
13404//
13405//   * ErrCodeUnauthorizedException "UnauthorizedException"
13406//   You are not authorized to perform this operation.
13407//
13408//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
13409//   The service is temporarily unavailable.
13410//
13411//   * ErrCodeInternalFailureException "InternalFailureException"
13412//   An unexpected error has occurred.
13413//
13414//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
13415//   The specified resource does not exist.
13416//
13417func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
13418	req, out := c.UpdateThingRequest(input)
13419	return out, req.Send()
13420}
13421
13422// UpdateThingWithContext is the same as UpdateThing with the addition of
13423// the ability to pass a context and additional request options.
13424//
13425// See UpdateThing for details on how to use this API operation.
13426//
13427// The context must be non-nil and will be used for request cancellation. If
13428// the context is nil a panic will occur. In the future the SDK may create
13429// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13430// for more information on using Contexts.
13431func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
13432	req, out := c.UpdateThingRequest(input)
13433	req.SetContext(ctx)
13434	req.ApplyOptions(opts...)
13435	return out, req.Send()
13436}
13437
13438const opUpdateThingGroup = "UpdateThingGroup"
13439
13440// UpdateThingGroupRequest generates a "aws/request.Request" representing the
13441// client's request for the UpdateThingGroup operation. The "output" return
13442// value will be populated with the request's response once the request completes
13443// successfuly.
13444//
13445// Use "Send" method on the returned Request to send the API call to the service.
13446// the "output" return value is not valid until after Send returns without error.
13447//
13448// See UpdateThingGroup for more information on using the UpdateThingGroup
13449// API call, and error handling.
13450//
13451// This method is useful when you want to inject custom logic or configuration
13452// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13453//
13454//
13455//    // Example sending a request using the UpdateThingGroupRequest method.
13456//    req, resp := client.UpdateThingGroupRequest(params)
13457//
13458//    err := req.Send()
13459//    if err == nil { // resp is now filled
13460//        fmt.Println(resp)
13461//    }
13462func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
13463	op := &request.Operation{
13464		Name:       opUpdateThingGroup,
13465		HTTPMethod: "PATCH",
13466		HTTPPath:   "/thing-groups/{thingGroupName}",
13467	}
13468
13469	if input == nil {
13470		input = &UpdateThingGroupInput{}
13471	}
13472
13473	output = &UpdateThingGroupOutput{}
13474	req = c.newRequest(op, input, output)
13475	return
13476}
13477
13478// UpdateThingGroup API operation for AWS IoT.
13479//
13480// Update a thing group.
13481//
13482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13483// with awserr.Error's Code and Message methods to get detailed information about
13484// the error.
13485//
13486// See the AWS API reference guide for AWS IoT's
13487// API operation UpdateThingGroup for usage and error information.
13488//
13489// Returned Error Codes:
13490//   * ErrCodeInvalidRequestException "InvalidRequestException"
13491//   The request is not valid.
13492//
13493//   * ErrCodeVersionConflictException "VersionConflictException"
13494//   An exception thrown when the version of an entity specified with the expectedVersion
13495//   parameter does not match the latest version in the system.
13496//
13497//   * ErrCodeThrottlingException "ThrottlingException"
13498//   The rate exceeds the limit.
13499//
13500//   * ErrCodeInternalFailureException "InternalFailureException"
13501//   An unexpected error has occurred.
13502//
13503//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
13504//   The specified resource does not exist.
13505//
13506func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
13507	req, out := c.UpdateThingGroupRequest(input)
13508	return out, req.Send()
13509}
13510
13511// UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
13512// the ability to pass a context and additional request options.
13513//
13514// See UpdateThingGroup for details on how to use this API operation.
13515//
13516// The context must be non-nil and will be used for request cancellation. If
13517// the context is nil a panic will occur. In the future the SDK may create
13518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13519// for more information on using Contexts.
13520func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
13521	req, out := c.UpdateThingGroupRequest(input)
13522	req.SetContext(ctx)
13523	req.ApplyOptions(opts...)
13524	return out, req.Send()
13525}
13526
13527const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
13528
13529// UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
13530// client's request for the UpdateThingGroupsForThing operation. The "output" return
13531// value will be populated with the request's response once the request completes
13532// successfuly.
13533//
13534// Use "Send" method on the returned Request to send the API call to the service.
13535// the "output" return value is not valid until after Send returns without error.
13536//
13537// See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
13538// API call, and error handling.
13539//
13540// This method is useful when you want to inject custom logic or configuration
13541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13542//
13543//
13544//    // Example sending a request using the UpdateThingGroupsForThingRequest method.
13545//    req, resp := client.UpdateThingGroupsForThingRequest(params)
13546//
13547//    err := req.Send()
13548//    if err == nil { // resp is now filled
13549//        fmt.Println(resp)
13550//    }
13551func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
13552	op := &request.Operation{
13553		Name:       opUpdateThingGroupsForThing,
13554		HTTPMethod: "PUT",
13555		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
13556	}
13557
13558	if input == nil {
13559		input = &UpdateThingGroupsForThingInput{}
13560	}
13561
13562	output = &UpdateThingGroupsForThingOutput{}
13563	req = c.newRequest(op, input, output)
13564	return
13565}
13566
13567// UpdateThingGroupsForThing API operation for AWS IoT.
13568//
13569// Updates the groups to which the thing belongs.
13570//
13571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13572// with awserr.Error's Code and Message methods to get detailed information about
13573// the error.
13574//
13575// See the AWS API reference guide for AWS IoT's
13576// API operation UpdateThingGroupsForThing for usage and error information.
13577//
13578// Returned Error Codes:
13579//   * ErrCodeInvalidRequestException "InvalidRequestException"
13580//   The request is not valid.
13581//
13582//   * ErrCodeThrottlingException "ThrottlingException"
13583//   The rate exceeds the limit.
13584//
13585//   * ErrCodeInternalFailureException "InternalFailureException"
13586//   An unexpected error has occurred.
13587//
13588//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
13589//   The specified resource does not exist.
13590//
13591func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
13592	req, out := c.UpdateThingGroupsForThingRequest(input)
13593	return out, req.Send()
13594}
13595
13596// UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
13597// the ability to pass a context and additional request options.
13598//
13599// See UpdateThingGroupsForThing for details on how to use this API operation.
13600//
13601// The context must be non-nil and will be used for request cancellation. If
13602// the context is nil a panic will occur. In the future the SDK may create
13603// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13604// for more information on using Contexts.
13605func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
13606	req, out := c.UpdateThingGroupsForThingRequest(input)
13607	req.SetContext(ctx)
13608	req.ApplyOptions(opts...)
13609	return out, req.Send()
13610}
13611
13612const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
13613
13614// ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
13615// client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
13616// value will be populated with the request's response once the request completes
13617// successfuly.
13618//
13619// Use "Send" method on the returned Request to send the API call to the service.
13620// the "output" return value is not valid until after Send returns without error.
13621//
13622// See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
13623// API call, and error handling.
13624//
13625// This method is useful when you want to inject custom logic or configuration
13626// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13627//
13628//
13629//    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
13630//    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
13631//
13632//    err := req.Send()
13633//    if err == nil { // resp is now filled
13634//        fmt.Println(resp)
13635//    }
13636func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
13637	op := &request.Operation{
13638		Name:       opValidateSecurityProfileBehaviors,
13639		HTTPMethod: "POST",
13640		HTTPPath:   "/security-profile-behaviors/validate",
13641	}
13642
13643	if input == nil {
13644		input = &ValidateSecurityProfileBehaviorsInput{}
13645	}
13646
13647	output = &ValidateSecurityProfileBehaviorsOutput{}
13648	req = c.newRequest(op, input, output)
13649	return
13650}
13651
13652// ValidateSecurityProfileBehaviors API operation for AWS IoT.
13653//
13654// Validates a Device Defender security profile behaviors specification.
13655//
13656// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13657// with awserr.Error's Code and Message methods to get detailed information about
13658// the error.
13659//
13660// See the AWS API reference guide for AWS IoT's
13661// API operation ValidateSecurityProfileBehaviors for usage and error information.
13662//
13663// Returned Error Codes:
13664//   * ErrCodeInvalidRequestException "InvalidRequestException"
13665//   The request is not valid.
13666//
13667//   * ErrCodeThrottlingException "ThrottlingException"
13668//   The rate exceeds the limit.
13669//
13670//   * ErrCodeInternalFailureException "InternalFailureException"
13671//   An unexpected error has occurred.
13672//
13673func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
13674	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
13675	return out, req.Send()
13676}
13677
13678// ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
13679// the ability to pass a context and additional request options.
13680//
13681// See ValidateSecurityProfileBehaviors for details on how to use this API operation.
13682//
13683// The context must be non-nil and will be used for request cancellation. If
13684// the context is nil a panic will occur. In the future the SDK may create
13685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13686// for more information on using Contexts.
13687func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
13688	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
13689	req.SetContext(ctx)
13690	req.ApplyOptions(opts...)
13691	return out, req.Send()
13692}
13693
13694// The input for the AcceptCertificateTransfer operation.
13695type AcceptCertificateTransferInput struct {
13696	_ struct{} `type:"structure"`
13697
13698	// The ID of the certificate. (The last part of the certificate ARN contains
13699	// the certificate ID.)
13700	//
13701	// CertificateId is a required field
13702	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
13703
13704	// Specifies whether the certificate is active.
13705	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
13706}
13707
13708// String returns the string representation
13709func (s AcceptCertificateTransferInput) String() string {
13710	return awsutil.Prettify(s)
13711}
13712
13713// GoString returns the string representation
13714func (s AcceptCertificateTransferInput) GoString() string {
13715	return s.String()
13716}
13717
13718// Validate inspects the fields of the type to determine if they are valid.
13719func (s *AcceptCertificateTransferInput) Validate() error {
13720	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
13721	if s.CertificateId == nil {
13722		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
13723	}
13724	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
13725		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
13726	}
13727
13728	if invalidParams.Len() > 0 {
13729		return invalidParams
13730	}
13731	return nil
13732}
13733
13734// SetCertificateId sets the CertificateId field's value.
13735func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
13736	s.CertificateId = &v
13737	return s
13738}
13739
13740// SetSetAsActive sets the SetAsActive field's value.
13741func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
13742	s.SetAsActive = &v
13743	return s
13744}
13745
13746type AcceptCertificateTransferOutput struct {
13747	_ struct{} `type:"structure"`
13748}
13749
13750// String returns the string representation
13751func (s AcceptCertificateTransferOutput) String() string {
13752	return awsutil.Prettify(s)
13753}
13754
13755// GoString returns the string representation
13756func (s AcceptCertificateTransferOutput) GoString() string {
13757	return s.String()
13758}
13759
13760// Describes the actions associated with a rule.
13761type Action struct {
13762	_ struct{} `type:"structure"`
13763
13764	// Change the state of a CloudWatch alarm.
13765	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
13766
13767	// Capture a CloudWatch metric.
13768	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
13769
13770	// Write to a DynamoDB table.
13771	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
13772
13773	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
13774	// It allows you to write each attribute in an MQTT message payload into a separate
13775	// DynamoDB column.
13776	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
13777
13778	// Write data to an Amazon Elasticsearch Service domain.
13779	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
13780
13781	// Write to an Amazon Kinesis Firehose stream.
13782	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
13783
13784	// Sends message data to an AWS IoT Analytics channel.
13785	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
13786
13787	// Write data to an Amazon Kinesis stream.
13788	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
13789
13790	// Invoke a Lambda function.
13791	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
13792
13793	// Publish to another MQTT topic.
13794	Republish *RepublishAction `locationName:"republish" type:"structure"`
13795
13796	// Write to an Amazon S3 bucket.
13797	S3 *S3Action `locationName:"s3" type:"structure"`
13798
13799	// Send a message to a Salesforce IoT Cloud Input Stream.
13800	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
13801
13802	// Publish to an Amazon SNS topic.
13803	Sns *SnsAction `locationName:"sns" type:"structure"`
13804
13805	// Publish to an Amazon SQS queue.
13806	Sqs *SqsAction `locationName:"sqs" type:"structure"`
13807
13808	// Starts execution of a Step Functions state machine.
13809	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
13810}
13811
13812// String returns the string representation
13813func (s Action) String() string {
13814	return awsutil.Prettify(s)
13815}
13816
13817// GoString returns the string representation
13818func (s Action) GoString() string {
13819	return s.String()
13820}
13821
13822// Validate inspects the fields of the type to determine if they are valid.
13823func (s *Action) Validate() error {
13824	invalidParams := request.ErrInvalidParams{Context: "Action"}
13825	if s.CloudwatchAlarm != nil {
13826		if err := s.CloudwatchAlarm.Validate(); err != nil {
13827			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
13828		}
13829	}
13830	if s.CloudwatchMetric != nil {
13831		if err := s.CloudwatchMetric.Validate(); err != nil {
13832			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
13833		}
13834	}
13835	if s.DynamoDB != nil {
13836		if err := s.DynamoDB.Validate(); err != nil {
13837			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
13838		}
13839	}
13840	if s.DynamoDBv2 != nil {
13841		if err := s.DynamoDBv2.Validate(); err != nil {
13842			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
13843		}
13844	}
13845	if s.Elasticsearch != nil {
13846		if err := s.Elasticsearch.Validate(); err != nil {
13847			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
13848		}
13849	}
13850	if s.Firehose != nil {
13851		if err := s.Firehose.Validate(); err != nil {
13852			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
13853		}
13854	}
13855	if s.Kinesis != nil {
13856		if err := s.Kinesis.Validate(); err != nil {
13857			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
13858		}
13859	}
13860	if s.Lambda != nil {
13861		if err := s.Lambda.Validate(); err != nil {
13862			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
13863		}
13864	}
13865	if s.Republish != nil {
13866		if err := s.Republish.Validate(); err != nil {
13867			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
13868		}
13869	}
13870	if s.S3 != nil {
13871		if err := s.S3.Validate(); err != nil {
13872			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
13873		}
13874	}
13875	if s.Salesforce != nil {
13876		if err := s.Salesforce.Validate(); err != nil {
13877			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
13878		}
13879	}
13880	if s.Sns != nil {
13881		if err := s.Sns.Validate(); err != nil {
13882			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
13883		}
13884	}
13885	if s.Sqs != nil {
13886		if err := s.Sqs.Validate(); err != nil {
13887			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
13888		}
13889	}
13890	if s.StepFunctions != nil {
13891		if err := s.StepFunctions.Validate(); err != nil {
13892			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
13893		}
13894	}
13895
13896	if invalidParams.Len() > 0 {
13897		return invalidParams
13898	}
13899	return nil
13900}
13901
13902// SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
13903func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
13904	s.CloudwatchAlarm = v
13905	return s
13906}
13907
13908// SetCloudwatchMetric sets the CloudwatchMetric field's value.
13909func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
13910	s.CloudwatchMetric = v
13911	return s
13912}
13913
13914// SetDynamoDB sets the DynamoDB field's value.
13915func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
13916	s.DynamoDB = v
13917	return s
13918}
13919
13920// SetDynamoDBv2 sets the DynamoDBv2 field's value.
13921func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
13922	s.DynamoDBv2 = v
13923	return s
13924}
13925
13926// SetElasticsearch sets the Elasticsearch field's value.
13927func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
13928	s.Elasticsearch = v
13929	return s
13930}
13931
13932// SetFirehose sets the Firehose field's value.
13933func (s *Action) SetFirehose(v *FirehoseAction) *Action {
13934	s.Firehose = v
13935	return s
13936}
13937
13938// SetIotAnalytics sets the IotAnalytics field's value.
13939func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
13940	s.IotAnalytics = v
13941	return s
13942}
13943
13944// SetKinesis sets the Kinesis field's value.
13945func (s *Action) SetKinesis(v *KinesisAction) *Action {
13946	s.Kinesis = v
13947	return s
13948}
13949
13950// SetLambda sets the Lambda field's value.
13951func (s *Action) SetLambda(v *LambdaAction) *Action {
13952	s.Lambda = v
13953	return s
13954}
13955
13956// SetRepublish sets the Republish field's value.
13957func (s *Action) SetRepublish(v *RepublishAction) *Action {
13958	s.Republish = v
13959	return s
13960}
13961
13962// SetS3 sets the S3 field's value.
13963func (s *Action) SetS3(v *S3Action) *Action {
13964	s.S3 = v
13965	return s
13966}
13967
13968// SetSalesforce sets the Salesforce field's value.
13969func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
13970	s.Salesforce = v
13971	return s
13972}
13973
13974// SetSns sets the Sns field's value.
13975func (s *Action) SetSns(v *SnsAction) *Action {
13976	s.Sns = v
13977	return s
13978}
13979
13980// SetSqs sets the Sqs field's value.
13981func (s *Action) SetSqs(v *SqsAction) *Action {
13982	s.Sqs = v
13983	return s
13984}
13985
13986// SetStepFunctions sets the StepFunctions field's value.
13987func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
13988	s.StepFunctions = v
13989	return s
13990}
13991
13992// Information about an active Device Defender security profile behavior violation.
13993type ActiveViolation struct {
13994	_ struct{} `type:"structure"`
13995
13996	// The behavior which is being violated.
13997	Behavior *Behavior `locationName:"behavior" type:"structure"`
13998
13999	// The time the most recent violation occurred.
14000	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
14001
14002	// The value of the metric (the measurement) which caused the most recent violation.
14003	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
14004
14005	// The security profile whose behavior is in violation.
14006	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
14007
14008	// The name of the thing responsible for the active violation.
14009	ThingName *string `locationName:"thingName" min:"1" type:"string"`
14010
14011	// The ID of the active violation.
14012	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
14013
14014	// The time the violation started.
14015	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
14016}
14017
14018// String returns the string representation
14019func (s ActiveViolation) String() string {
14020	return awsutil.Prettify(s)
14021}
14022
14023// GoString returns the string representation
14024func (s ActiveViolation) GoString() string {
14025	return s.String()
14026}
14027
14028// SetBehavior sets the Behavior field's value.
14029func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
14030	s.Behavior = v
14031	return s
14032}
14033
14034// SetLastViolationTime sets the LastViolationTime field's value.
14035func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
14036	s.LastViolationTime = &v
14037	return s
14038}
14039
14040// SetLastViolationValue sets the LastViolationValue field's value.
14041func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
14042	s.LastViolationValue = v
14043	return s
14044}
14045
14046// SetSecurityProfileName sets the SecurityProfileName field's value.
14047func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
14048	s.SecurityProfileName = &v
14049	return s
14050}
14051
14052// SetThingName sets the ThingName field's value.
14053func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
14054	s.ThingName = &v
14055	return s
14056}
14057
14058// SetViolationId sets the ViolationId field's value.
14059func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
14060	s.ViolationId = &v
14061	return s
14062}
14063
14064// SetViolationStartTime sets the ViolationStartTime field's value.
14065func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
14066	s.ViolationStartTime = &v
14067	return s
14068}
14069
14070type AddThingToThingGroupInput struct {
14071	_ struct{} `type:"structure"`
14072
14073	// The ARN of the thing to add to a group.
14074	ThingArn *string `locationName:"thingArn" type:"string"`
14075
14076	// The ARN of the group to which you are adding a thing.
14077	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
14078
14079	// The name of the group to which you are adding a thing.
14080	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
14081
14082	// The name of the thing to add to a group.
14083	ThingName *string `locationName:"thingName" min:"1" type:"string"`
14084}
14085
14086// String returns the string representation
14087func (s AddThingToThingGroupInput) String() string {
14088	return awsutil.Prettify(s)
14089}
14090
14091// GoString returns the string representation
14092func (s AddThingToThingGroupInput) GoString() string {
14093	return s.String()
14094}
14095
14096// Validate inspects the fields of the type to determine if they are valid.
14097func (s *AddThingToThingGroupInput) Validate() error {
14098	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
14099	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
14100		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
14101	}
14102	if s.ThingName != nil && len(*s.ThingName) < 1 {
14103		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
14104	}
14105
14106	if invalidParams.Len() > 0 {
14107		return invalidParams
14108	}
14109	return nil
14110}
14111
14112// SetThingArn sets the ThingArn field's value.
14113func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
14114	s.ThingArn = &v
14115	return s
14116}
14117
14118// SetThingGroupArn sets the ThingGroupArn field's value.
14119func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
14120	s.ThingGroupArn = &v
14121	return s
14122}
14123
14124// SetThingGroupName sets the ThingGroupName field's value.
14125func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
14126	s.ThingGroupName = &v
14127	return s
14128}
14129
14130// SetThingName sets the ThingName field's value.
14131func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
14132	s.ThingName = &v
14133	return s
14134}
14135
14136type AddThingToThingGroupOutput struct {
14137	_ struct{} `type:"structure"`
14138}
14139
14140// String returns the string representation
14141func (s AddThingToThingGroupOutput) String() string {
14142	return awsutil.Prettify(s)
14143}
14144
14145// GoString returns the string representation
14146func (s AddThingToThingGroupOutput) GoString() string {
14147	return s.String()
14148}
14149
14150// A structure containing the alert target ARN and the role ARN.
14151type AlertTarget struct {
14152	_ struct{} `type:"structure"`
14153
14154	// The ARN of the notification target to which alerts are sent.
14155	//
14156	// AlertTargetArn is a required field
14157	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
14158
14159	// The ARN of the role that grants permission to send alerts to the notification
14160	// target.
14161	//
14162	// RoleArn is a required field
14163	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
14164}
14165
14166// String returns the string representation
14167func (s AlertTarget) String() string {
14168	return awsutil.Prettify(s)
14169}
14170
14171// GoString returns the string representation
14172func (s AlertTarget) GoString() string {
14173	return s.String()
14174}
14175
14176// Validate inspects the fields of the type to determine if they are valid.
14177func (s *AlertTarget) Validate() error {
14178	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
14179	if s.AlertTargetArn == nil {
14180		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
14181	}
14182	if s.RoleArn == nil {
14183		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
14184	}
14185	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
14186		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
14187	}
14188
14189	if invalidParams.Len() > 0 {
14190		return invalidParams
14191	}
14192	return nil
14193}
14194
14195// SetAlertTargetArn sets the AlertTargetArn field's value.
14196func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
14197	s.AlertTargetArn = &v
14198	return s
14199}
14200
14201// SetRoleArn sets the RoleArn field's value.
14202func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
14203	s.RoleArn = &v
14204	return s
14205}
14206
14207// Contains information that allowed the authorization.
14208type Allowed struct {
14209	_ struct{} `type:"structure"`
14210
14211	// A list of policies that allowed the authentication.
14212	Policies []*Policy `locationName:"policies" type:"list"`
14213}
14214
14215// String returns the string representation
14216func (s Allowed) String() string {
14217	return awsutil.Prettify(s)
14218}
14219
14220// GoString returns the string representation
14221func (s Allowed) GoString() string {
14222	return s.String()
14223}
14224
14225// SetPolicies sets the Policies field's value.
14226func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
14227	s.Policies = v
14228	return s
14229}
14230
14231type AssociateTargetsWithJobInput struct {
14232	_ struct{} `type:"structure"`
14233
14234	// An optional comment string describing why the job was associated with the
14235	// targets.
14236	Comment *string `locationName:"comment" type:"string"`
14237
14238	// The unique identifier you assigned to this job when it was created.
14239	//
14240	// JobId is a required field
14241	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
14242
14243	// A list of thing group ARNs that define the targets of the job.
14244	//
14245	// Targets is a required field
14246	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
14247}
14248
14249// String returns the string representation
14250func (s AssociateTargetsWithJobInput) String() string {
14251	return awsutil.Prettify(s)
14252}
14253
14254// GoString returns the string representation
14255func (s AssociateTargetsWithJobInput) GoString() string {
14256	return s.String()
14257}
14258
14259// Validate inspects the fields of the type to determine if they are valid.
14260func (s *AssociateTargetsWithJobInput) Validate() error {
14261	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
14262	if s.JobId == nil {
14263		invalidParams.Add(request.NewErrParamRequired("JobId"))
14264	}
14265	if s.JobId != nil && len(*s.JobId) < 1 {
14266		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
14267	}
14268	if s.Targets == nil {
14269		invalidParams.Add(request.NewErrParamRequired("Targets"))
14270	}
14271	if s.Targets != nil && len(s.Targets) < 1 {
14272		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
14273	}
14274
14275	if invalidParams.Len() > 0 {
14276		return invalidParams
14277	}
14278	return nil
14279}
14280
14281// SetComment sets the Comment field's value.
14282func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
14283	s.Comment = &v
14284	return s
14285}
14286
14287// SetJobId sets the JobId field's value.
14288func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
14289	s.JobId = &v
14290	return s
14291}
14292
14293// SetTargets sets the Targets field's value.
14294func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
14295	s.Targets = v
14296	return s
14297}
14298
14299type AssociateTargetsWithJobOutput struct {
14300	_ struct{} `type:"structure"`
14301
14302	// A short text description of the job.
14303	Description *string `locationName:"description" type:"string"`
14304
14305	// An ARN identifying the job.
14306	JobArn *string `locationName:"jobArn" type:"string"`
14307
14308	// The unique identifier you assigned to this job when it was created.
14309	JobId *string `locationName:"jobId" min:"1" type:"string"`
14310}
14311
14312// String returns the string representation
14313func (s AssociateTargetsWithJobOutput) String() string {
14314	return awsutil.Prettify(s)
14315}
14316
14317// GoString returns the string representation
14318func (s AssociateTargetsWithJobOutput) GoString() string {
14319	return s.String()
14320}
14321
14322// SetDescription sets the Description field's value.
14323func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
14324	s.Description = &v
14325	return s
14326}
14327
14328// SetJobArn sets the JobArn field's value.
14329func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
14330	s.JobArn = &v
14331	return s
14332}
14333
14334// SetJobId sets the JobId field's value.
14335func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
14336	s.JobId = &v
14337	return s
14338}
14339
14340type AttachPolicyInput struct {
14341	_ struct{} `type:"structure"`
14342
14343	// The name of the policy to attach.
14344	//
14345	// PolicyName is a required field
14346	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
14347
14348	// The identity to which the policy is attached.
14349	//
14350	// Target is a required field
14351	Target *string `locationName:"target" type:"string" required:"true"`
14352}
14353
14354// String returns the string representation
14355func (s AttachPolicyInput) String() string {
14356	return awsutil.Prettify(s)
14357}
14358
14359// GoString returns the string representation
14360func (s AttachPolicyInput) GoString() string {
14361	return s.String()
14362}
14363
14364// Validate inspects the fields of the type to determine if they are valid.
14365func (s *AttachPolicyInput) Validate() error {
14366	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
14367	if s.PolicyName == nil {
14368		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
14369	}
14370	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
14371		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
14372	}
14373	if s.Target == nil {
14374		invalidParams.Add(request.NewErrParamRequired("Target"))
14375	}
14376
14377	if invalidParams.Len() > 0 {
14378		return invalidParams
14379	}
14380	return nil
14381}
14382
14383// SetPolicyName sets the PolicyName field's value.
14384func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
14385	s.PolicyName = &v
14386	return s
14387}
14388
14389// SetTarget sets the Target field's value.
14390func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
14391	s.Target = &v
14392	return s
14393}
14394
14395type AttachPolicyOutput struct {
14396	_ struct{} `type:"structure"`
14397}
14398
14399// String returns the string representation
14400func (s AttachPolicyOutput) String() string {
14401	return awsutil.Prettify(s)
14402}
14403
14404// GoString returns the string representation
14405func (s AttachPolicyOutput) GoString() string {
14406	return s.String()
14407}
14408
14409// The input for the AttachPrincipalPolicy operation.
14410type AttachPrincipalPolicyInput struct {
14411	_ struct{} `type:"structure"`
14412
14413	// The policy name.
14414	//
14415	// PolicyName is a required field
14416	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
14417
14418	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
14419	// operation) or an Amazon Cognito ID.
14420	//
14421	// Principal is a required field
14422	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
14423}
14424
14425// String returns the string representation
14426func (s AttachPrincipalPolicyInput) String() string {
14427	return awsutil.Prettify(s)
14428}
14429
14430// GoString returns the string representation
14431func (s AttachPrincipalPolicyInput) GoString() string {
14432	return s.String()
14433}
14434
14435// Validate inspects the fields of the type to determine if they are valid.
14436func (s *AttachPrincipalPolicyInput) Validate() error {
14437	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
14438	if s.PolicyName == nil {
14439		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
14440	}
14441	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
14442		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
14443	}
14444	if s.Principal == nil {
14445		invalidParams.Add(request.NewErrParamRequired("Principal"))
14446	}
14447
14448	if invalidParams.Len() > 0 {
14449		return invalidParams
14450	}
14451	return nil
14452}
14453
14454// SetPolicyName sets the PolicyName field's value.
14455func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
14456	s.PolicyName = &v
14457	return s
14458}
14459
14460// SetPrincipal sets the Principal field's value.
14461func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
14462	s.Principal = &v
14463	return s
14464}
14465
14466type AttachPrincipalPolicyOutput struct {
14467	_ struct{} `type:"structure"`
14468}
14469
14470// String returns the string representation
14471func (s AttachPrincipalPolicyOutput) String() string {
14472	return awsutil.Prettify(s)
14473}
14474
14475// GoString returns the string representation
14476func (s AttachPrincipalPolicyOutput) GoString() string {
14477	return s.String()
14478}
14479
14480type AttachSecurityProfileInput struct {
14481	_ struct{} `type:"structure"`
14482
14483	// The security profile that is attached.
14484	//
14485	// SecurityProfileName is a required field
14486	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
14487
14488	// The ARN of the target (thing group) to which the security profile is attached.
14489	//
14490	// SecurityProfileTargetArn is a required field
14491	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
14492}
14493
14494// String returns the string representation
14495func (s AttachSecurityProfileInput) String() string {
14496	return awsutil.Prettify(s)
14497}
14498
14499// GoString returns the string representation
14500func (s AttachSecurityProfileInput) GoString() string {
14501	return s.String()
14502}
14503
14504// Validate inspects the fields of the type to determine if they are valid.
14505func (s *AttachSecurityProfileInput) Validate() error {
14506	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
14507	if s.SecurityProfileName == nil {
14508		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
14509	}
14510	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
14511		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
14512	}
14513	if s.SecurityProfileTargetArn == nil {
14514		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
14515	}
14516
14517	if invalidParams.Len() > 0 {
14518		return invalidParams
14519	}
14520	return nil
14521}
14522
14523// SetSecurityProfileName sets the SecurityProfileName field's value.
14524func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
14525	s.SecurityProfileName = &v
14526	return s
14527}
14528
14529// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
14530func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
14531	s.SecurityProfileTargetArn = &v
14532	return s
14533}
14534
14535type AttachSecurityProfileOutput struct {
14536	_ struct{} `type:"structure"`
14537}
14538
14539// String returns the string representation
14540func (s AttachSecurityProfileOutput) String() string {
14541	return awsutil.Prettify(s)
14542}
14543
14544// GoString returns the string representation
14545func (s AttachSecurityProfileOutput) GoString() string {
14546	return s.String()
14547}
14548
14549// The input for the AttachThingPrincipal operation.
14550type AttachThingPrincipalInput struct {
14551	_ struct{} `type:"structure"`
14552
14553	// The principal, such as a certificate or other credential.
14554	//
14555	// Principal is a required field
14556	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
14557
14558	// The name of the thing.
14559	//
14560	// ThingName is a required field
14561	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
14562}
14563
14564// String returns the string representation
14565func (s AttachThingPrincipalInput) String() string {
14566	return awsutil.Prettify(s)
14567}
14568
14569// GoString returns the string representation
14570func (s AttachThingPrincipalInput) GoString() string {
14571	return s.String()
14572}
14573
14574// Validate inspects the fields of the type to determine if they are valid.
14575func (s *AttachThingPrincipalInput) Validate() error {
14576	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
14577	if s.Principal == nil {
14578		invalidParams.Add(request.NewErrParamRequired("Principal"))
14579	}
14580	if s.ThingName == nil {
14581		invalidParams.Add(request.NewErrParamRequired("ThingName"))
14582	}
14583	if s.ThingName != nil && len(*s.ThingName) < 1 {
14584		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
14585	}
14586
14587	if invalidParams.Len() > 0 {
14588		return invalidParams
14589	}
14590	return nil
14591}
14592
14593// SetPrincipal sets the Principal field's value.
14594func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
14595	s.Principal = &v
14596	return s
14597}
14598
14599// SetThingName sets the ThingName field's value.
14600func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
14601	s.ThingName = &v
14602	return s
14603}
14604
14605// The output from the AttachThingPrincipal operation.
14606type AttachThingPrincipalOutput struct {
14607	_ struct{} `type:"structure"`
14608}
14609
14610// String returns the string representation
14611func (s AttachThingPrincipalOutput) String() string {
14612	return awsutil.Prettify(s)
14613}
14614
14615// GoString returns the string representation
14616func (s AttachThingPrincipalOutput) GoString() string {
14617	return s.String()
14618}
14619
14620// The attribute payload.
14621type AttributePayload struct {
14622	_ struct{} `type:"structure"`
14623
14624	// A JSON string containing up to three key-value pair in JSON format. For example:
14625	//
14626	// {\"attributes\":{\"string1\":\"string2\"}}
14627	Attributes map[string]*string `locationName:"attributes" type:"map"`
14628
14629	// Specifies whether the list of attributes provided in the AttributePayload
14630	// is merged with the attributes stored in the registry, instead of overwriting
14631	// them.
14632	//
14633	// To remove an attribute, call UpdateThing with an empty attribute value.
14634	//
14635	// The merge attribute is only valid when calling UpdateThing.
14636	Merge *bool `locationName:"merge" type:"boolean"`
14637}
14638
14639// String returns the string representation
14640func (s AttributePayload) String() string {
14641	return awsutil.Prettify(s)
14642}
14643
14644// GoString returns the string representation
14645func (s AttributePayload) GoString() string {
14646	return s.String()
14647}
14648
14649// SetAttributes sets the Attributes field's value.
14650func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
14651	s.Attributes = v
14652	return s
14653}
14654
14655// SetMerge sets the Merge field's value.
14656func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
14657	s.Merge = &v
14658	return s
14659}
14660
14661// Which audit checks are enabled and disabled for this account.
14662type AuditCheckConfiguration struct {
14663	_ struct{} `type:"structure"`
14664
14665	// True if this audit check is enabled for this account.
14666	Enabled *bool `locationName:"enabled" type:"boolean"`
14667}
14668
14669// String returns the string representation
14670func (s AuditCheckConfiguration) String() string {
14671	return awsutil.Prettify(s)
14672}
14673
14674// GoString returns the string representation
14675func (s AuditCheckConfiguration) GoString() string {
14676	return s.String()
14677}
14678
14679// SetEnabled sets the Enabled field's value.
14680func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
14681	s.Enabled = &v
14682	return s
14683}
14684
14685// Information about the audit check.
14686type AuditCheckDetails struct {
14687	_ struct{} `type:"structure"`
14688
14689	// True if the check completed and found all resources compliant.
14690	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
14691
14692	// The completion status of this check, one of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
14693	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
14694	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
14695
14696	// The code of any error encountered when performing this check during this
14697	// audit. One of "INSUFFICIENT_PERMISSIONS", or "AUDIT_CHECK_DISABLED".
14698	ErrorCode *string `locationName:"errorCode" type:"string"`
14699
14700	// The message associated with any error encountered when performing this check
14701	// during this audit.
14702	Message *string `locationName:"message" type:"string"`
14703
14704	// The number of resources that the check found non-compliant.
14705	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
14706
14707	// The number of resources on which the check was performed.
14708	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
14709}
14710
14711// String returns the string representation
14712func (s AuditCheckDetails) String() string {
14713	return awsutil.Prettify(s)
14714}
14715
14716// GoString returns the string representation
14717func (s AuditCheckDetails) GoString() string {
14718	return s.String()
14719}
14720
14721// SetCheckCompliant sets the CheckCompliant field's value.
14722func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
14723	s.CheckCompliant = &v
14724	return s
14725}
14726
14727// SetCheckRunStatus sets the CheckRunStatus field's value.
14728func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
14729	s.CheckRunStatus = &v
14730	return s
14731}
14732
14733// SetErrorCode sets the ErrorCode field's value.
14734func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
14735	s.ErrorCode = &v
14736	return s
14737}
14738
14739// SetMessage sets the Message field's value.
14740func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
14741	s.Message = &v
14742	return s
14743}
14744
14745// SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
14746func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
14747	s.NonCompliantResourcesCount = &v
14748	return s
14749}
14750
14751// SetTotalResourcesCount sets the TotalResourcesCount field's value.
14752func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
14753	s.TotalResourcesCount = &v
14754	return s
14755}
14756
14757// The findings (results) of the audit.
14758type AuditFinding struct {
14759	_ struct{} `type:"structure"`
14760
14761	// The audit check that generated this result.
14762	CheckName *string `locationName:"checkName" type:"string"`
14763
14764	// The time the result (finding) was discovered.
14765	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
14766
14767	// The resource that was found to be non-compliant with the audit check.
14768	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
14769
14770	// The reason the resource was non-compliant.
14771	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
14772
14773	// A code which indicates the reason that the resource was non-compliant.
14774	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
14775
14776	// The list of related resources.
14777	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
14778
14779	// The severity of the result (finding).
14780	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
14781
14782	// The ID of the audit that generated this result (finding)
14783	TaskId *string `locationName:"taskId" min:"1" type:"string"`
14784
14785	// The time the audit started.
14786	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
14787}
14788
14789// String returns the string representation
14790func (s AuditFinding) String() string {
14791	return awsutil.Prettify(s)
14792}
14793
14794// GoString returns the string representation
14795func (s AuditFinding) GoString() string {
14796	return s.String()
14797}
14798
14799// SetCheckName sets the CheckName field's value.
14800func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
14801	s.CheckName = &v
14802	return s
14803}
14804
14805// SetFindingTime sets the FindingTime field's value.
14806func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
14807	s.FindingTime = &v
14808	return s
14809}
14810
14811// SetNonCompliantResource sets the NonCompliantResource field's value.
14812func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
14813	s.NonCompliantResource = v
14814	return s
14815}
14816
14817// SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
14818func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
14819	s.ReasonForNonCompliance = &v
14820	return s
14821}
14822
14823// SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
14824func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
14825	s.ReasonForNonComplianceCode = &v
14826	return s
14827}
14828
14829// SetRelatedResources sets the RelatedResources field's value.
14830func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
14831	s.RelatedResources = v
14832	return s
14833}
14834
14835// SetSeverity sets the Severity field's value.
14836func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
14837	s.Severity = &v
14838	return s
14839}
14840
14841// SetTaskId sets the TaskId field's value.
14842func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
14843	s.TaskId = &v
14844	return s
14845}
14846
14847// SetTaskStartTime sets the TaskStartTime field's value.
14848func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
14849	s.TaskStartTime = &v
14850	return s
14851}
14852
14853// Information about the targets to which audit notifications are sent.
14854type AuditNotificationTarget struct {
14855	_ struct{} `type:"structure"`
14856
14857	// True if notifications to the target are enabled.
14858	Enabled *bool `locationName:"enabled" type:"boolean"`
14859
14860	// The ARN of the role that grants permission to send notifications to the target.
14861	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
14862
14863	// The ARN of the target (SNS topic) to which audit notifications are sent.
14864	TargetArn *string `locationName:"targetArn" type:"string"`
14865}
14866
14867// String returns the string representation
14868func (s AuditNotificationTarget) String() string {
14869	return awsutil.Prettify(s)
14870}
14871
14872// GoString returns the string representation
14873func (s AuditNotificationTarget) GoString() string {
14874	return s.String()
14875}
14876
14877// Validate inspects the fields of the type to determine if they are valid.
14878func (s *AuditNotificationTarget) Validate() error {
14879	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
14880	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
14881		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
14882	}
14883
14884	if invalidParams.Len() > 0 {
14885		return invalidParams
14886	}
14887	return nil
14888}
14889
14890// SetEnabled sets the Enabled field's value.
14891func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
14892	s.Enabled = &v
14893	return s
14894}
14895
14896// SetRoleArn sets the RoleArn field's value.
14897func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
14898	s.RoleArn = &v
14899	return s
14900}
14901
14902// SetTargetArn sets the TargetArn field's value.
14903func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
14904	s.TargetArn = &v
14905	return s
14906}
14907
14908// The audits that were performed.
14909type AuditTaskMetadata struct {
14910	_ struct{} `type:"structure"`
14911
14912	// The ID of this audit.
14913	TaskId *string `locationName:"taskId" min:"1" type:"string"`
14914
14915	// The status of this audit: one of "IN_PROGRESS", "COMPLETED", "FAILED" or
14916	// "CANCELED".
14917	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
14918
14919	// The type of this audit: one of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
14920	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
14921}
14922
14923// String returns the string representation
14924func (s AuditTaskMetadata) String() string {
14925	return awsutil.Prettify(s)
14926}
14927
14928// GoString returns the string representation
14929func (s AuditTaskMetadata) GoString() string {
14930	return s.String()
14931}
14932
14933// SetTaskId sets the TaskId field's value.
14934func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
14935	s.TaskId = &v
14936	return s
14937}
14938
14939// SetTaskStatus sets the TaskStatus field's value.
14940func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
14941	s.TaskStatus = &v
14942	return s
14943}
14944
14945// SetTaskType sets the TaskType field's value.
14946func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
14947	s.TaskType = &v
14948	return s
14949}
14950
14951// A collection of authorization information.
14952type AuthInfo struct {
14953	_ struct{} `type:"structure"`
14954
14955	// The type of action for which the principal is being authorized.
14956	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
14957
14958	// The resources for which the principal is being authorized to perform the
14959	// specified action.
14960	Resources []*string `locationName:"resources" type:"list"`
14961}
14962
14963// String returns the string representation
14964func (s AuthInfo) String() string {
14965	return awsutil.Prettify(s)
14966}
14967
14968// GoString returns the string representation
14969func (s AuthInfo) GoString() string {
14970	return s.String()
14971}
14972
14973// SetActionType sets the ActionType field's value.
14974func (s *AuthInfo) SetActionType(v string) *AuthInfo {
14975	s.ActionType = &v
14976	return s
14977}
14978
14979// SetResources sets the Resources field's value.
14980func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
14981	s.Resources = v
14982	return s
14983}
14984
14985// The authorizer result.
14986type AuthResult struct {
14987	_ struct{} `type:"structure"`
14988
14989	// The policies and statements that allowed the specified action.
14990	Allowed *Allowed `locationName:"allowed" type:"structure"`
14991
14992	// The final authorization decision of this scenario. Multiple statements are
14993	// taken into account when determining the authorization decision. An explicit
14994	// deny statement can override multiple allow statements.
14995	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
14996
14997	// Authorization information.
14998	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
14999
15000	// The policies and statements that denied the specified action.
15001	Denied *Denied `locationName:"denied" type:"structure"`
15002
15003	// Contains any missing context values found while evaluating policy.
15004	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
15005}
15006
15007// String returns the string representation
15008func (s AuthResult) String() string {
15009	return awsutil.Prettify(s)
15010}
15011
15012// GoString returns the string representation
15013func (s AuthResult) GoString() string {
15014	return s.String()
15015}
15016
15017// SetAllowed sets the Allowed field's value.
15018func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
15019	s.Allowed = v
15020	return s
15021}
15022
15023// SetAuthDecision sets the AuthDecision field's value.
15024func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
15025	s.AuthDecision = &v
15026	return s
15027}
15028
15029// SetAuthInfo sets the AuthInfo field's value.
15030func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
15031	s.AuthInfo = v
15032	return s
15033}
15034
15035// SetDenied sets the Denied field's value.
15036func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
15037	s.Denied = v
15038	return s
15039}
15040
15041// SetMissingContextValues sets the MissingContextValues field's value.
15042func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
15043	s.MissingContextValues = v
15044	return s
15045}
15046
15047// The authorizer description.
15048type AuthorizerDescription struct {
15049	_ struct{} `type:"structure"`
15050
15051	// The authorizer ARN.
15052	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
15053
15054	// The authorizer's Lambda function ARN.
15055	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
15056
15057	// The authorizer name.
15058	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
15059
15060	// The UNIX timestamp of when the authorizer was created.
15061	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
15062
15063	// The UNIX timestamp of when the authorizer was last updated.
15064	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
15065
15066	// The status of the authorizer.
15067	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
15068
15069	// The key used to extract the token from the HTTP headers.
15070	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
15071
15072	// The public keys used to validate the token signature returned by your custom
15073	// authentication service.
15074	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
15075}
15076
15077// String returns the string representation
15078func (s AuthorizerDescription) String() string {
15079	return awsutil.Prettify(s)
15080}
15081
15082// GoString returns the string representation
15083func (s AuthorizerDescription) GoString() string {
15084	return s.String()
15085}
15086
15087// SetAuthorizerArn sets the AuthorizerArn field's value.
15088func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
15089	s.AuthorizerArn = &v
15090	return s
15091}
15092
15093// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
15094func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
15095	s.AuthorizerFunctionArn = &v
15096	return s
15097}
15098
15099// SetAuthorizerName sets the AuthorizerName field's value.
15100func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
15101	s.AuthorizerName = &v
15102	return s
15103}
15104
15105// SetCreationDate sets the CreationDate field's value.
15106func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
15107	s.CreationDate = &v
15108	return s
15109}
15110
15111// SetLastModifiedDate sets the LastModifiedDate field's value.
15112func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
15113	s.LastModifiedDate = &v
15114	return s
15115}
15116
15117// SetStatus sets the Status field's value.
15118func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
15119	s.Status = &v
15120	return s
15121}
15122
15123// SetTokenKeyName sets the TokenKeyName field's value.
15124func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
15125	s.TokenKeyName = &v
15126	return s
15127}
15128
15129// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
15130func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
15131	s.TokenSigningPublicKeys = v
15132	return s
15133}
15134
15135// The authorizer summary.
15136type AuthorizerSummary struct {
15137	_ struct{} `type:"structure"`
15138
15139	// The authorizer ARN.
15140	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
15141
15142	// The authorizer name.
15143	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
15144}
15145
15146// String returns the string representation
15147func (s AuthorizerSummary) String() string {
15148	return awsutil.Prettify(s)
15149}
15150
15151// GoString returns the string representation
15152func (s AuthorizerSummary) GoString() string {
15153	return s.String()
15154}
15155
15156// SetAuthorizerArn sets the AuthorizerArn field's value.
15157func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
15158	s.AuthorizerArn = &v
15159	return s
15160}
15161
15162// SetAuthorizerName sets the AuthorizerName field's value.
15163func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
15164	s.AuthorizerName = &v
15165	return s
15166}
15167
15168// A Device Defender security profile behavior.
15169type Behavior struct {
15170	_ struct{} `type:"structure"`
15171
15172	// The criteria that determine if a device is behaving normally in regard to
15173	// the metric.
15174	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
15175
15176	// What is measured by the behavior.
15177	Metric *string `locationName:"metric" type:"string"`
15178
15179	// The name you have given to the behavior.
15180	//
15181	// Name is a required field
15182	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
15183}
15184
15185// String returns the string representation
15186func (s Behavior) String() string {
15187	return awsutil.Prettify(s)
15188}
15189
15190// GoString returns the string representation
15191func (s Behavior) GoString() string {
15192	return s.String()
15193}
15194
15195// Validate inspects the fields of the type to determine if they are valid.
15196func (s *Behavior) Validate() error {
15197	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
15198	if s.Name == nil {
15199		invalidParams.Add(request.NewErrParamRequired("Name"))
15200	}
15201	if s.Name != nil && len(*s.Name) < 1 {
15202		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15203	}
15204
15205	if invalidParams.Len() > 0 {
15206		return invalidParams
15207	}
15208	return nil
15209}
15210
15211// SetCriteria sets the Criteria field's value.
15212func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
15213	s.Criteria = v
15214	return s
15215}
15216
15217// SetMetric sets the Metric field's value.
15218func (s *Behavior) SetMetric(v string) *Behavior {
15219	s.Metric = &v
15220	return s
15221}
15222
15223// SetName sets the Name field's value.
15224func (s *Behavior) SetName(v string) *Behavior {
15225	s.Name = &v
15226	return s
15227}
15228
15229// The criteria by which the behavior is determined to be normal.
15230type BehaviorCriteria struct {
15231	_ struct{} `type:"structure"`
15232
15233	// The operator that relates the thing measured (metric) to the criteria (value).
15234	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
15235
15236	// Use this to specify the period of time over which the behavior is evaluated,
15237	// for those criteria which have a time dimension (for example, NUM_MESSAGES_SENT).
15238	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
15239
15240	// The value to be compared with the metric.
15241	Value *MetricValue `locationName:"value" type:"structure"`
15242}
15243
15244// String returns the string representation
15245func (s BehaviorCriteria) String() string {
15246	return awsutil.Prettify(s)
15247}
15248
15249// GoString returns the string representation
15250func (s BehaviorCriteria) GoString() string {
15251	return s.String()
15252}
15253
15254// SetComparisonOperator sets the ComparisonOperator field's value.
15255func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
15256	s.ComparisonOperator = &v
15257	return s
15258}
15259
15260// SetDurationSeconds sets the DurationSeconds field's value.
15261func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
15262	s.DurationSeconds = &v
15263	return s
15264}
15265
15266// SetValue sets the Value field's value.
15267func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
15268	s.Value = v
15269	return s
15270}
15271
15272// A CA certificate.
15273type CACertificate struct {
15274	_ struct{} `type:"structure"`
15275
15276	// The ARN of the CA certificate.
15277	CertificateArn *string `locationName:"certificateArn" type:"string"`
15278
15279	// The ID of the CA certificate.
15280	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
15281
15282	// The date the CA certificate was created.
15283	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
15284
15285	// The status of the CA certificate.
15286	//
15287	// The status value REGISTER_INACTIVE is deprecated and should not be used.
15288	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
15289}
15290
15291// String returns the string representation
15292func (s CACertificate) String() string {
15293	return awsutil.Prettify(s)
15294}
15295
15296// GoString returns the string representation
15297func (s CACertificate) GoString() string {
15298	return s.String()
15299}
15300
15301// SetCertificateArn sets the CertificateArn field's value.
15302func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
15303	s.CertificateArn = &v
15304	return s
15305}
15306
15307// SetCertificateId sets the CertificateId field's value.
15308func (s *CACertificate) SetCertificateId(v string) *CACertificate {
15309	s.CertificateId = &v
15310	return s
15311}
15312
15313// SetCreationDate sets the CreationDate field's value.
15314func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
15315	s.CreationDate = &v
15316	return s
15317}
15318
15319// SetStatus sets the Status field's value.
15320func (s *CACertificate) SetStatus(v string) *CACertificate {
15321	s.Status = &v
15322	return s
15323}
15324
15325// Describes a CA certificate.
15326type CACertificateDescription struct {
15327	_ struct{} `type:"structure"`
15328
15329	// Whether the CA certificate configured for auto registration of device certificates.
15330	// Valid values are "ENABLE" and "DISABLE"
15331	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
15332
15333	// The CA certificate ARN.
15334	CertificateArn *string `locationName:"certificateArn" type:"string"`
15335
15336	// The CA certificate ID.
15337	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
15338
15339	// The CA certificate data, in PEM format.
15340	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
15341
15342	// The date the CA certificate was created.
15343	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
15344
15345	// The customer version of the CA certificate.
15346	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
15347
15348	// The generation ID of the CA certificate.
15349	GenerationId *string `locationName:"generationId" type:"string"`
15350
15351	// The date the CA certificate was last modified.
15352	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
15353
15354	// The owner of the CA certificate.
15355	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
15356
15357	// The status of a CA certificate.
15358	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
15359
15360	// When the CA certificate is valid.
15361	Validity *CertificateValidity `locationName:"validity" type:"structure"`
15362}
15363
15364// String returns the string representation
15365func (s CACertificateDescription) String() string {
15366	return awsutil.Prettify(s)
15367}
15368
15369// GoString returns the string representation
15370func (s CACertificateDescription) GoString() string {
15371	return s.String()
15372}
15373
15374// SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
15375func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
15376	s.AutoRegistrationStatus = &v
15377	return s
15378}
15379
15380// SetCertificateArn sets the CertificateArn field's value.
15381func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
15382	s.CertificateArn = &v
15383	return s
15384}
15385
15386// SetCertificateId sets the CertificateId field's value.
15387func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
15388	s.CertificateId = &v
15389	return s
15390}
15391
15392// SetCertificatePem sets the CertificatePem field's value.
15393func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
15394	s.CertificatePem = &v
15395	return s
15396}
15397
15398// SetCreationDate sets the CreationDate field's value.
15399func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
15400	s.CreationDate = &v
15401	return s
15402}
15403
15404// SetCustomerVersion sets the CustomerVersion field's value.
15405func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
15406	s.CustomerVersion = &v
15407	return s
15408}
15409
15410// SetGenerationId sets the GenerationId field's value.
15411func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
15412	s.GenerationId = &v
15413	return s
15414}
15415
15416// SetLastModifiedDate sets the LastModifiedDate field's value.
15417func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
15418	s.LastModifiedDate = &v
15419	return s
15420}
15421
15422// SetOwnedBy sets the OwnedBy field's value.
15423func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
15424	s.OwnedBy = &v
15425	return s
15426}
15427
15428// SetStatus sets the Status field's value.
15429func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
15430	s.Status = &v
15431	return s
15432}
15433
15434// SetValidity sets the Validity field's value.
15435func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
15436	s.Validity = v
15437	return s
15438}
15439
15440type CancelAuditTaskInput struct {
15441	_ struct{} `type:"structure"`
15442
15443	// The ID of the audit you want to cancel. You can only cancel an audit that
15444	// is "IN_PROGRESS".
15445	//
15446	// TaskId is a required field
15447	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
15448}
15449
15450// String returns the string representation
15451func (s CancelAuditTaskInput) String() string {
15452	return awsutil.Prettify(s)
15453}
15454
15455// GoString returns the string representation
15456func (s CancelAuditTaskInput) GoString() string {
15457	return s.String()
15458}
15459
15460// Validate inspects the fields of the type to determine if they are valid.
15461func (s *CancelAuditTaskInput) Validate() error {
15462	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
15463	if s.TaskId == nil {
15464		invalidParams.Add(request.NewErrParamRequired("TaskId"))
15465	}
15466	if s.TaskId != nil && len(*s.TaskId) < 1 {
15467		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
15468	}
15469
15470	if invalidParams.Len() > 0 {
15471		return invalidParams
15472	}
15473	return nil
15474}
15475
15476// SetTaskId sets the TaskId field's value.
15477func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
15478	s.TaskId = &v
15479	return s
15480}
15481
15482type CancelAuditTaskOutput struct {
15483	_ struct{} `type:"structure"`
15484}
15485
15486// String returns the string representation
15487func (s CancelAuditTaskOutput) String() string {
15488	return awsutil.Prettify(s)
15489}
15490
15491// GoString returns the string representation
15492func (s CancelAuditTaskOutput) GoString() string {
15493	return s.String()
15494}
15495
15496// The input for the CancelCertificateTransfer operation.
15497type CancelCertificateTransferInput struct {
15498	_ struct{} `type:"structure"`
15499
15500	// The ID of the certificate. (The last part of the certificate ARN contains
15501	// the certificate ID.)
15502	//
15503	// CertificateId is a required field
15504	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
15505}
15506
15507// String returns the string representation
15508func (s CancelCertificateTransferInput) String() string {
15509	return awsutil.Prettify(s)
15510}
15511
15512// GoString returns the string representation
15513func (s CancelCertificateTransferInput) GoString() string {
15514	return s.String()
15515}
15516
15517// Validate inspects the fields of the type to determine if they are valid.
15518func (s *CancelCertificateTransferInput) Validate() error {
15519	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
15520	if s.CertificateId == nil {
15521		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
15522	}
15523	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
15524		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
15525	}
15526
15527	if invalidParams.Len() > 0 {
15528		return invalidParams
15529	}
15530	return nil
15531}
15532
15533// SetCertificateId sets the CertificateId field's value.
15534func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
15535	s.CertificateId = &v
15536	return s
15537}
15538
15539type CancelCertificateTransferOutput struct {
15540	_ struct{} `type:"structure"`
15541}
15542
15543// String returns the string representation
15544func (s CancelCertificateTransferOutput) String() string {
15545	return awsutil.Prettify(s)
15546}
15547
15548// GoString returns the string representation
15549func (s CancelCertificateTransferOutput) GoString() string {
15550	return s.String()
15551}
15552
15553type CancelJobExecutionInput struct {
15554	_ struct{} `type:"structure"`
15555
15556	// (Optional) The expected current version of the job execution. Each time you
15557	// update the job execution, its version is incremented. If the version of the
15558	// job execution stored in Jobs does not match, the update is rejected with
15559	// a VersionMismatch error, and an ErrorResponse that contains the current job
15560	// execution status data is returned. (This makes it unnecessary to perform
15561	// a separate DescribeJobExecution request in order to obtain the job execution
15562	// status data.)
15563	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
15564
15565	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
15566	// or QUEUED, otherwise the job execution will be canceled only if it has status
15567	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
15568	// you do not set force to true, then an InvalidStateTransitionException will
15569	// be thrown. The default is false.
15570	//
15571	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
15572	// be unable to update the job execution status. Use caution and ensure that
15573	// the device is able to recover to a valid state.
15574	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
15575
15576	// The ID of the job to be canceled.
15577	//
15578	// JobId is a required field
15579	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
15580
15581	// A collection of name/value pairs that describe the status of the job execution.
15582	// If not specified, the statusDetails are unchanged. You can specify at most
15583	// 10 name/value pairs.
15584	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
15585
15586	// The name of the thing whose execution of the job will be canceled.
15587	//
15588	// ThingName is a required field
15589	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
15590}
15591
15592// String returns the string representation
15593func (s CancelJobExecutionInput) String() string {
15594	return awsutil.Prettify(s)
15595}
15596
15597// GoString returns the string representation
15598func (s CancelJobExecutionInput) GoString() string {
15599	return s.String()
15600}
15601
15602// Validate inspects the fields of the type to determine if they are valid.
15603func (s *CancelJobExecutionInput) Validate() error {
15604	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
15605	if s.JobId == nil {
15606		invalidParams.Add(request.NewErrParamRequired("JobId"))
15607	}
15608	if s.JobId != nil && len(*s.JobId) < 1 {
15609		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
15610	}
15611	if s.ThingName == nil {
15612		invalidParams.Add(request.NewErrParamRequired("ThingName"))
15613	}
15614	if s.ThingName != nil && len(*s.ThingName) < 1 {
15615		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
15616	}
15617
15618	if invalidParams.Len() > 0 {
15619		return invalidParams
15620	}
15621	return nil
15622}
15623
15624// SetExpectedVersion sets the ExpectedVersion field's value.
15625func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
15626	s.ExpectedVersion = &v
15627	return s
15628}
15629
15630// SetForce sets the Force field's value.
15631func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
15632	s.Force = &v
15633	return s
15634}
15635
15636// SetJobId sets the JobId field's value.
15637func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
15638	s.JobId = &v
15639	return s
15640}
15641
15642// SetStatusDetails sets the StatusDetails field's value.
15643func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
15644	s.StatusDetails = v
15645	return s
15646}
15647
15648// SetThingName sets the ThingName field's value.
15649func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
15650	s.ThingName = &v
15651	return s
15652}
15653
15654type CancelJobExecutionOutput struct {
15655	_ struct{} `type:"structure"`
15656}
15657
15658// String returns the string representation
15659func (s CancelJobExecutionOutput) String() string {
15660	return awsutil.Prettify(s)
15661}
15662
15663// GoString returns the string representation
15664func (s CancelJobExecutionOutput) GoString() string {
15665	return s.String()
15666}
15667
15668type CancelJobInput struct {
15669	_ struct{} `type:"structure"`
15670
15671	// An optional comment string describing why the job was canceled.
15672	Comment *string `locationName:"comment" type:"string"`
15673
15674	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
15675	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
15676	// The default is false.
15677	//
15678	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
15679	// the job to be unable to update the job execution status. Use caution and
15680	// ensure that each device executing a job which is canceled is able to recover
15681	// to a valid state.
15682	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
15683
15684	// The unique identifier you assigned to this job when it was created.
15685	//
15686	// JobId is a required field
15687	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
15688}
15689
15690// String returns the string representation
15691func (s CancelJobInput) String() string {
15692	return awsutil.Prettify(s)
15693}
15694
15695// GoString returns the string representation
15696func (s CancelJobInput) GoString() string {
15697	return s.String()
15698}
15699
15700// Validate inspects the fields of the type to determine if they are valid.
15701func (s *CancelJobInput) Validate() error {
15702	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
15703	if s.JobId == nil {
15704		invalidParams.Add(request.NewErrParamRequired("JobId"))
15705	}
15706	if s.JobId != nil && len(*s.JobId) < 1 {
15707		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
15708	}
15709
15710	if invalidParams.Len() > 0 {
15711		return invalidParams
15712	}
15713	return nil
15714}
15715
15716// SetComment sets the Comment field's value.
15717func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
15718	s.Comment = &v
15719	return s
15720}
15721
15722// SetForce sets the Force field's value.
15723func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
15724	s.Force = &v
15725	return s
15726}
15727
15728// SetJobId sets the JobId field's value.
15729func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
15730	s.JobId = &v
15731	return s
15732}
15733
15734type CancelJobOutput struct {
15735	_ struct{} `type:"structure"`
15736
15737	// A short text description of the job.
15738	Description *string `locationName:"description" type:"string"`
15739
15740	// The job ARN.
15741	JobArn *string `locationName:"jobArn" type:"string"`
15742
15743	// The unique identifier you assigned to this job when it was created.
15744	JobId *string `locationName:"jobId" min:"1" type:"string"`
15745}
15746
15747// String returns the string representation
15748func (s CancelJobOutput) String() string {
15749	return awsutil.Prettify(s)
15750}
15751
15752// GoString returns the string representation
15753func (s CancelJobOutput) GoString() string {
15754	return s.String()
15755}
15756
15757// SetDescription sets the Description field's value.
15758func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
15759	s.Description = &v
15760	return s
15761}
15762
15763// SetJobArn sets the JobArn field's value.
15764func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
15765	s.JobArn = &v
15766	return s
15767}
15768
15769// SetJobId sets the JobId field's value.
15770func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
15771	s.JobId = &v
15772	return s
15773}
15774
15775// Information about a certificate.
15776type Certificate struct {
15777	_ struct{} `type:"structure"`
15778
15779	// The ARN of the certificate.
15780	CertificateArn *string `locationName:"certificateArn" type:"string"`
15781
15782	// The ID of the certificate. (The last part of the certificate ARN contains
15783	// the certificate ID.)
15784	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
15785
15786	// The date and time the certificate was created.
15787	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
15788
15789	// The status of the certificate.
15790	//
15791	// The status value REGISTER_INACTIVE is deprecated and should not be used.
15792	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
15793}
15794
15795// String returns the string representation
15796func (s Certificate) String() string {
15797	return awsutil.Prettify(s)
15798}
15799
15800// GoString returns the string representation
15801func (s Certificate) GoString() string {
15802	return s.String()
15803}
15804
15805// SetCertificateArn sets the CertificateArn field's value.
15806func (s *Certificate) SetCertificateArn(v string) *Certificate {
15807	s.CertificateArn = &v
15808	return s
15809}
15810
15811// SetCertificateId sets the CertificateId field's value.
15812func (s *Certificate) SetCertificateId(v string) *Certificate {
15813	s.CertificateId = &v
15814	return s
15815}
15816
15817// SetCreationDate sets the CreationDate field's value.
15818func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
15819	s.CreationDate = &v
15820	return s
15821}
15822
15823// SetStatus sets the Status field's value.
15824func (s *Certificate) SetStatus(v string) *Certificate {
15825	s.Status = &v
15826	return s
15827}
15828
15829// Describes a certificate.
15830type CertificateDescription struct {
15831	_ struct{} `type:"structure"`
15832
15833	// The certificate ID of the CA certificate used to sign this certificate.
15834	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
15835
15836	// The ARN of the certificate.
15837	CertificateArn *string `locationName:"certificateArn" type:"string"`
15838
15839	// The ID of the certificate.
15840	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
15841
15842	// The certificate data, in PEM format.
15843	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
15844
15845	// The date and time the certificate was created.
15846	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
15847
15848	// The customer version of the certificate.
15849	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
15850
15851	// The generation ID of the certificate.
15852	GenerationId *string `locationName:"generationId" type:"string"`
15853
15854	// The date and time the certificate was last modified.
15855	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
15856
15857	// The ID of the AWS account that owns the certificate.
15858	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
15859
15860	// The ID of the AWS account of the previous owner of the certificate.
15861	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
15862
15863	// The status of the certificate.
15864	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
15865
15866	// The transfer data.
15867	TransferData *TransferData `locationName:"transferData" type:"structure"`
15868
15869	// When the certificate is valid.
15870	Validity *CertificateValidity `locationName:"validity" type:"structure"`
15871}
15872
15873// String returns the string representation
15874func (s CertificateDescription) String() string {
15875	return awsutil.Prettify(s)
15876}
15877
15878// GoString returns the string representation
15879func (s CertificateDescription) GoString() string {
15880	return s.String()
15881}
15882
15883// SetCaCertificateId sets the CaCertificateId field's value.
15884func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
15885	s.CaCertificateId = &v
15886	return s
15887}
15888
15889// SetCertificateArn sets the CertificateArn field's value.
15890func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
15891	s.CertificateArn = &v
15892	return s
15893}
15894
15895// SetCertificateId sets the CertificateId field's value.
15896func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
15897	s.CertificateId = &v
15898	return s
15899}
15900
15901// SetCertificatePem sets the CertificatePem field's value.
15902func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
15903	s.CertificatePem = &v
15904	return s
15905}
15906
15907// SetCreationDate sets the CreationDate field's value.
15908func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
15909	s.CreationDate = &v
15910	return s
15911}
15912
15913// SetCustomerVersion sets the CustomerVersion field's value.
15914func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
15915	s.CustomerVersion = &v
15916	return s
15917}
15918
15919// SetGenerationId sets the GenerationId field's value.
15920func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
15921	s.GenerationId = &v
15922	return s
15923}
15924
15925// SetLastModifiedDate sets the LastModifiedDate field's value.
15926func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
15927	s.LastModifiedDate = &v
15928	return s
15929}
15930
15931// SetOwnedBy sets the OwnedBy field's value.
15932func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
15933	s.OwnedBy = &v
15934	return s
15935}
15936
15937// SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
15938func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
15939	s.PreviousOwnedBy = &v
15940	return s
15941}
15942
15943// SetStatus sets the Status field's value.
15944func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
15945	s.Status = &v
15946	return s
15947}
15948
15949// SetTransferData sets the TransferData field's value.
15950func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
15951	s.TransferData = v
15952	return s
15953}
15954
15955// SetValidity sets the Validity field's value.
15956func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
15957	s.Validity = v
15958	return s
15959}
15960
15961// When the certificate is valid.
15962type CertificateValidity struct {
15963	_ struct{} `type:"structure"`
15964
15965	// The certificate is not valid after this date.
15966	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
15967
15968	// The certificate is not valid before this date.
15969	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
15970}
15971
15972// String returns the string representation
15973func (s CertificateValidity) String() string {
15974	return awsutil.Prettify(s)
15975}
15976
15977// GoString returns the string representation
15978func (s CertificateValidity) GoString() string {
15979	return s.String()
15980}
15981
15982// SetNotAfter sets the NotAfter field's value.
15983func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
15984	s.NotAfter = &v
15985	return s
15986}
15987
15988// SetNotBefore sets the NotBefore field's value.
15989func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
15990	s.NotBefore = &v
15991	return s
15992}
15993
15994type ClearDefaultAuthorizerInput struct {
15995	_ struct{} `type:"structure"`
15996}
15997
15998// String returns the string representation
15999func (s ClearDefaultAuthorizerInput) String() string {
16000	return awsutil.Prettify(s)
16001}
16002
16003// GoString returns the string representation
16004func (s ClearDefaultAuthorizerInput) GoString() string {
16005	return s.String()
16006}
16007
16008type ClearDefaultAuthorizerOutput struct {
16009	_ struct{} `type:"structure"`
16010}
16011
16012// String returns the string representation
16013func (s ClearDefaultAuthorizerOutput) String() string {
16014	return awsutil.Prettify(s)
16015}
16016
16017// GoString returns the string representation
16018func (s ClearDefaultAuthorizerOutput) GoString() string {
16019	return s.String()
16020}
16021
16022// Describes an action that updates a CloudWatch alarm.
16023type CloudwatchAlarmAction struct {
16024	_ struct{} `type:"structure"`
16025
16026	// The CloudWatch alarm name.
16027	//
16028	// AlarmName is a required field
16029	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
16030
16031	// The IAM role that allows access to the CloudWatch alarm.
16032	//
16033	// RoleArn is a required field
16034	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
16035
16036	// The reason for the alarm change.
16037	//
16038	// StateReason is a required field
16039	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
16040
16041	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
16042	//
16043	// StateValue is a required field
16044	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
16045}
16046
16047// String returns the string representation
16048func (s CloudwatchAlarmAction) String() string {
16049	return awsutil.Prettify(s)
16050}
16051
16052// GoString returns the string representation
16053func (s CloudwatchAlarmAction) GoString() string {
16054	return s.String()
16055}
16056
16057// Validate inspects the fields of the type to determine if they are valid.
16058func (s *CloudwatchAlarmAction) Validate() error {
16059	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
16060	if s.AlarmName == nil {
16061		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
16062	}
16063	if s.RoleArn == nil {
16064		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
16065	}
16066	if s.StateReason == nil {
16067		invalidParams.Add(request.NewErrParamRequired("StateReason"))
16068	}
16069	if s.StateValue == nil {
16070		invalidParams.Add(request.NewErrParamRequired("StateValue"))
16071	}
16072
16073	if invalidParams.Len() > 0 {
16074		return invalidParams
16075	}
16076	return nil
16077}
16078
16079// SetAlarmName sets the AlarmName field's value.
16080func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
16081	s.AlarmName = &v
16082	return s
16083}
16084
16085// SetRoleArn sets the RoleArn field's value.
16086func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
16087	s.RoleArn = &v
16088	return s
16089}
16090
16091// SetStateReason sets the StateReason field's value.
16092func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
16093	s.StateReason = &v
16094	return s
16095}
16096
16097// SetStateValue sets the StateValue field's value.
16098func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
16099	s.StateValue = &v
16100	return s
16101}
16102
16103// Describes an action that captures a CloudWatch metric.
16104type CloudwatchMetricAction struct {
16105	_ struct{} `type:"structure"`
16106
16107	// The CloudWatch metric name.
16108	//
16109	// MetricName is a required field
16110	MetricName *string `locationName:"metricName" type:"string" required:"true"`
16111
16112	// The CloudWatch metric namespace name.
16113	//
16114	// MetricNamespace is a required field
16115	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
16116
16117	// An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
16118	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
16119
16120	// The metric unit (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
16121	// supported by CloudWatch.
16122	//
16123	// MetricUnit is a required field
16124	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
16125
16126	// The CloudWatch metric value.
16127	//
16128	// MetricValue is a required field
16129	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
16130
16131	// The IAM role that allows access to the CloudWatch metric.
16132	//
16133	// RoleArn is a required field
16134	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
16135}
16136
16137// String returns the string representation
16138func (s CloudwatchMetricAction) String() string {
16139	return awsutil.Prettify(s)
16140}
16141
16142// GoString returns the string representation
16143func (s CloudwatchMetricAction) GoString() string {
16144	return s.String()
16145}
16146
16147// Validate inspects the fields of the type to determine if they are valid.
16148func (s *CloudwatchMetricAction) Validate() error {
16149	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
16150	if s.MetricName == nil {
16151		invalidParams.Add(request.NewErrParamRequired("MetricName"))
16152	}
16153	if s.MetricNamespace == nil {
16154		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
16155	}
16156	if s.MetricUnit == nil {
16157		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
16158	}
16159	if s.MetricValue == nil {
16160		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
16161	}
16162	if s.RoleArn == nil {
16163		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
16164	}
16165
16166	if invalidParams.Len() > 0 {
16167		return invalidParams
16168	}
16169	return nil
16170}
16171
16172// SetMetricName sets the MetricName field's value.
16173func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
16174	s.MetricName = &v
16175	return s
16176}
16177
16178// SetMetricNamespace sets the MetricNamespace field's value.
16179func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
16180	s.MetricNamespace = &v
16181	return s
16182}
16183
16184// SetMetricTimestamp sets the MetricTimestamp field's value.
16185func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
16186	s.MetricTimestamp = &v
16187	return s
16188}
16189
16190// SetMetricUnit sets the MetricUnit field's value.
16191func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
16192	s.MetricUnit = &v
16193	return s
16194}
16195
16196// SetMetricValue sets the MetricValue field's value.
16197func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
16198	s.MetricValue = &v
16199	return s
16200}
16201
16202// SetRoleArn sets the RoleArn field's value.
16203func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
16204	s.RoleArn = &v
16205	return s
16206}
16207
16208// Describes the method to use when code signing a file.
16209type CodeSigning struct {
16210	_ struct{} `type:"structure"`
16211
16212	// The ID of the AWSSignerJob which was created to sign the file.
16213	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
16214
16215	// A custom method for code signing a file.
16216	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
16217}
16218
16219// String returns the string representation
16220func (s CodeSigning) String() string {
16221	return awsutil.Prettify(s)
16222}
16223
16224// GoString returns the string representation
16225func (s CodeSigning) GoString() string {
16226	return s.String()
16227}
16228
16229// Validate inspects the fields of the type to determine if they are valid.
16230func (s *CodeSigning) Validate() error {
16231	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
16232	if s.CustomCodeSigning != nil {
16233		if err := s.CustomCodeSigning.Validate(); err != nil {
16234			invalidParams.AddNested("CustomCodeSigning", err.(request.ErrInvalidParams))
16235		}
16236	}
16237
16238	if invalidParams.Len() > 0 {
16239		return invalidParams
16240	}
16241	return nil
16242}
16243
16244// SetAwsSignerJobId sets the AwsSignerJobId field's value.
16245func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
16246	s.AwsSignerJobId = &v
16247	return s
16248}
16249
16250// SetCustomCodeSigning sets the CustomCodeSigning field's value.
16251func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
16252	s.CustomCodeSigning = v
16253	return s
16254}
16255
16256// Describes the certificate chain being used when code signing a file.
16257type CodeSigningCertificateChain struct {
16258	_ struct{} `type:"structure"`
16259
16260	// The name of the certificate.
16261	CertificateName *string `locationName:"certificateName" type:"string"`
16262
16263	// A base64 encoded binary representation of the code signing certificate chain.
16264	InlineDocument *string `locationName:"inlineDocument" type:"string"`
16265
16266	// A stream of the certificate chain files.
16267	Stream *Stream `locationName:"stream" type:"structure"`
16268}
16269
16270// String returns the string representation
16271func (s CodeSigningCertificateChain) String() string {
16272	return awsutil.Prettify(s)
16273}
16274
16275// GoString returns the string representation
16276func (s CodeSigningCertificateChain) GoString() string {
16277	return s.String()
16278}
16279
16280// Validate inspects the fields of the type to determine if they are valid.
16281func (s *CodeSigningCertificateChain) Validate() error {
16282	invalidParams := request.ErrInvalidParams{Context: "CodeSigningCertificateChain"}
16283	if s.Stream != nil {
16284		if err := s.Stream.Validate(); err != nil {
16285			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
16286		}
16287	}
16288
16289	if invalidParams.Len() > 0 {
16290		return invalidParams
16291	}
16292	return nil
16293}
16294
16295// SetCertificateName sets the CertificateName field's value.
16296func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
16297	s.CertificateName = &v
16298	return s
16299}
16300
16301// SetInlineDocument sets the InlineDocument field's value.
16302func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
16303	s.InlineDocument = &v
16304	return s
16305}
16306
16307// SetStream sets the Stream field's value.
16308func (s *CodeSigningCertificateChain) SetStream(v *Stream) *CodeSigningCertificateChain {
16309	s.Stream = v
16310	return s
16311}
16312
16313// Describes the signature for a file.
16314type CodeSigningSignature struct {
16315	_ struct{} `type:"structure"`
16316
16317	// A base64 encoded binary representation of the code signing signature.
16318	//
16319	// InlineDocument is automatically base64 encoded/decoded by the SDK.
16320	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
16321
16322	// A stream of the code signing signature.
16323	Stream *Stream `locationName:"stream" type:"structure"`
16324}
16325
16326// String returns the string representation
16327func (s CodeSigningSignature) String() string {
16328	return awsutil.Prettify(s)
16329}
16330
16331// GoString returns the string representation
16332func (s CodeSigningSignature) GoString() string {
16333	return s.String()
16334}
16335
16336// Validate inspects the fields of the type to determine if they are valid.
16337func (s *CodeSigningSignature) Validate() error {
16338	invalidParams := request.ErrInvalidParams{Context: "CodeSigningSignature"}
16339	if s.Stream != nil {
16340		if err := s.Stream.Validate(); err != nil {
16341			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
16342		}
16343	}
16344
16345	if invalidParams.Len() > 0 {
16346		return invalidParams
16347	}
16348	return nil
16349}
16350
16351// SetInlineDocument sets the InlineDocument field's value.
16352func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
16353	s.InlineDocument = v
16354	return s
16355}
16356
16357// SetStream sets the Stream field's value.
16358func (s *CodeSigningSignature) SetStream(v *Stream) *CodeSigningSignature {
16359	s.Stream = v
16360	return s
16361}
16362
16363// Configuration.
16364type Configuration struct {
16365	_ struct{} `type:"structure"`
16366
16367	// True to enable the configuration.
16368	Enabled *bool `type:"boolean"`
16369}
16370
16371// String returns the string representation
16372func (s Configuration) String() string {
16373	return awsutil.Prettify(s)
16374}
16375
16376// GoString returns the string representation
16377func (s Configuration) GoString() string {
16378	return s.String()
16379}
16380
16381// SetEnabled sets the Enabled field's value.
16382func (s *Configuration) SetEnabled(v bool) *Configuration {
16383	s.Enabled = &v
16384	return s
16385}
16386
16387type CreateAuthorizerInput struct {
16388	_ struct{} `type:"structure"`
16389
16390	// The ARN of the authorizer's Lambda function.
16391	//
16392	// AuthorizerFunctionArn is a required field
16393	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
16394
16395	// The authorizer name.
16396	//
16397	// AuthorizerName is a required field
16398	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
16399
16400	// The status of the create authorizer request.
16401	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
16402
16403	// The name of the token key used to extract the token from the HTTP headers.
16404	//
16405	// TokenKeyName is a required field
16406	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string" required:"true"`
16407
16408	// The public keys used to verify the digital signature returned by your custom
16409	// authentication service.
16410	//
16411	// TokenSigningPublicKeys is a required field
16412	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map" required:"true"`
16413}
16414
16415// String returns the string representation
16416func (s CreateAuthorizerInput) String() string {
16417	return awsutil.Prettify(s)
16418}
16419
16420// GoString returns the string representation
16421func (s CreateAuthorizerInput) GoString() string {
16422	return s.String()
16423}
16424
16425// Validate inspects the fields of the type to determine if they are valid.
16426func (s *CreateAuthorizerInput) Validate() error {
16427	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
16428	if s.AuthorizerFunctionArn == nil {
16429		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
16430	}
16431	if s.AuthorizerName == nil {
16432		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
16433	}
16434	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
16435		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
16436	}
16437	if s.TokenKeyName == nil {
16438		invalidParams.Add(request.NewErrParamRequired("TokenKeyName"))
16439	}
16440	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
16441		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
16442	}
16443	if s.TokenSigningPublicKeys == nil {
16444		invalidParams.Add(request.NewErrParamRequired("TokenSigningPublicKeys"))
16445	}
16446
16447	if invalidParams.Len() > 0 {
16448		return invalidParams
16449	}
16450	return nil
16451}
16452
16453// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
16454func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
16455	s.AuthorizerFunctionArn = &v
16456	return s
16457}
16458
16459// SetAuthorizerName sets the AuthorizerName field's value.
16460func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
16461	s.AuthorizerName = &v
16462	return s
16463}
16464
16465// SetStatus sets the Status field's value.
16466func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
16467	s.Status = &v
16468	return s
16469}
16470
16471// SetTokenKeyName sets the TokenKeyName field's value.
16472func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
16473	s.TokenKeyName = &v
16474	return s
16475}
16476
16477// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
16478func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
16479	s.TokenSigningPublicKeys = v
16480	return s
16481}
16482
16483type CreateAuthorizerOutput struct {
16484	_ struct{} `type:"structure"`
16485
16486	// The authorizer ARN.
16487	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
16488
16489	// The authorizer's name.
16490	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
16491}
16492
16493// String returns the string representation
16494func (s CreateAuthorizerOutput) String() string {
16495	return awsutil.Prettify(s)
16496}
16497
16498// GoString returns the string representation
16499func (s CreateAuthorizerOutput) GoString() string {
16500	return s.String()
16501}
16502
16503// SetAuthorizerArn sets the AuthorizerArn field's value.
16504func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
16505	s.AuthorizerArn = &v
16506	return s
16507}
16508
16509// SetAuthorizerName sets the AuthorizerName field's value.
16510func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
16511	s.AuthorizerName = &v
16512	return s
16513}
16514
16515// The input for the CreateCertificateFromCsr operation.
16516type CreateCertificateFromCsrInput struct {
16517	_ struct{} `type:"structure"`
16518
16519	// The certificate signing request (CSR).
16520	//
16521	// CertificateSigningRequest is a required field
16522	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
16523
16524	// Specifies whether the certificate is active.
16525	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
16526}
16527
16528// String returns the string representation
16529func (s CreateCertificateFromCsrInput) String() string {
16530	return awsutil.Prettify(s)
16531}
16532
16533// GoString returns the string representation
16534func (s CreateCertificateFromCsrInput) GoString() string {
16535	return s.String()
16536}
16537
16538// Validate inspects the fields of the type to determine if they are valid.
16539func (s *CreateCertificateFromCsrInput) Validate() error {
16540	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
16541	if s.CertificateSigningRequest == nil {
16542		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
16543	}
16544	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
16545		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
16546	}
16547
16548	if invalidParams.Len() > 0 {
16549		return invalidParams
16550	}
16551	return nil
16552}
16553
16554// SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
16555func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
16556	s.CertificateSigningRequest = &v
16557	return s
16558}
16559
16560// SetSetAsActive sets the SetAsActive field's value.
16561func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
16562	s.SetAsActive = &v
16563	return s
16564}
16565
16566// The output from the CreateCertificateFromCsr operation.
16567type CreateCertificateFromCsrOutput struct {
16568	_ struct{} `type:"structure"`
16569
16570	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
16571	// a principal for policy operations.
16572	CertificateArn *string `locationName:"certificateArn" type:"string"`
16573
16574	// The ID of the certificate. Certificate management operations only take a
16575	// certificateId.
16576	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
16577
16578	// The certificate data, in PEM format.
16579	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
16580}
16581
16582// String returns the string representation
16583func (s CreateCertificateFromCsrOutput) String() string {
16584	return awsutil.Prettify(s)
16585}
16586
16587// GoString returns the string representation
16588func (s CreateCertificateFromCsrOutput) GoString() string {
16589	return s.String()
16590}
16591
16592// SetCertificateArn sets the CertificateArn field's value.
16593func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
16594	s.CertificateArn = &v
16595	return s
16596}
16597
16598// SetCertificateId sets the CertificateId field's value.
16599func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
16600	s.CertificateId = &v
16601	return s
16602}
16603
16604// SetCertificatePem sets the CertificatePem field's value.
16605func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
16606	s.CertificatePem = &v
16607	return s
16608}
16609
16610type CreateJobInput struct {
16611	_ struct{} `type:"structure"`
16612
16613	// A short text description of the job.
16614	Description *string `locationName:"description" type:"string"`
16615
16616	// The job document.
16617	Document *string `locationName:"document" type:"string"`
16618
16619	// An S3 link to the job document.
16620	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
16621
16622	// Allows you to create a staged rollout of the job.
16623	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
16624
16625	// A job identifier which must be unique for your AWS account. We recommend
16626	// using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here.
16627	//
16628	// JobId is a required field
16629	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
16630
16631	// Configuration information for pre-signed S3 URLs.
16632	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
16633
16634	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
16635	// after all those things specified as targets have completed the job (SNAPSHOT).
16636	// If continuous, the job may also be run on a thing when a change is detected
16637	// in a target. For example, a job will run on a thing when the thing is added
16638	// to a target group, even after the job was completed by all things originally
16639	// in the group.
16640	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
16641
16642	// A list of things and thing groups to which the job should be sent.
16643	//
16644	// Targets is a required field
16645	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
16646}
16647
16648// String returns the string representation
16649func (s CreateJobInput) String() string {
16650	return awsutil.Prettify(s)
16651}
16652
16653// GoString returns the string representation
16654func (s CreateJobInput) GoString() string {
16655	return s.String()
16656}
16657
16658// Validate inspects the fields of the type to determine if they are valid.
16659func (s *CreateJobInput) Validate() error {
16660	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
16661	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
16662		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
16663	}
16664	if s.JobId == nil {
16665		invalidParams.Add(request.NewErrParamRequired("JobId"))
16666	}
16667	if s.JobId != nil && len(*s.JobId) < 1 {
16668		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
16669	}
16670	if s.Targets == nil {
16671		invalidParams.Add(request.NewErrParamRequired("Targets"))
16672	}
16673	if s.Targets != nil && len(s.Targets) < 1 {
16674		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
16675	}
16676	if s.JobExecutionsRolloutConfig != nil {
16677		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
16678			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
16679		}
16680	}
16681	if s.PresignedUrlConfig != nil {
16682		if err := s.PresignedUrlConfig.Validate(); err != nil {
16683			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
16684		}
16685	}
16686
16687	if invalidParams.Len() > 0 {
16688		return invalidParams
16689	}
16690	return nil
16691}
16692
16693// SetDescription sets the Description field's value.
16694func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
16695	s.Description = &v
16696	return s
16697}
16698
16699// SetDocument sets the Document field's value.
16700func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
16701	s.Document = &v
16702	return s
16703}
16704
16705// SetDocumentSource sets the DocumentSource field's value.
16706func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
16707	s.DocumentSource = &v
16708	return s
16709}
16710
16711// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
16712func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
16713	s.JobExecutionsRolloutConfig = v
16714	return s
16715}
16716
16717// SetJobId sets the JobId field's value.
16718func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
16719	s.JobId = &v
16720	return s
16721}
16722
16723// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
16724func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
16725	s.PresignedUrlConfig = v
16726	return s
16727}
16728
16729// SetTargetSelection sets the TargetSelection field's value.
16730func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
16731	s.TargetSelection = &v
16732	return s
16733}
16734
16735// SetTargets sets the Targets field's value.
16736func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
16737	s.Targets = v
16738	return s
16739}
16740
16741type CreateJobOutput struct {
16742	_ struct{} `type:"structure"`
16743
16744	// The job description.
16745	Description *string `locationName:"description" type:"string"`
16746
16747	// The job ARN.
16748	JobArn *string `locationName:"jobArn" type:"string"`
16749
16750	// The unique identifier you assigned to this job.
16751	JobId *string `locationName:"jobId" min:"1" type:"string"`
16752}
16753
16754// String returns the string representation
16755func (s CreateJobOutput) String() string {
16756	return awsutil.Prettify(s)
16757}
16758
16759// GoString returns the string representation
16760func (s CreateJobOutput) GoString() string {
16761	return s.String()
16762}
16763
16764// SetDescription sets the Description field's value.
16765func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
16766	s.Description = &v
16767	return s
16768}
16769
16770// SetJobArn sets the JobArn field's value.
16771func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
16772	s.JobArn = &v
16773	return s
16774}
16775
16776// SetJobId sets the JobId field's value.
16777func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
16778	s.JobId = &v
16779	return s
16780}
16781
16782// The input for the CreateKeysAndCertificate operation.
16783type CreateKeysAndCertificateInput struct {
16784	_ struct{} `type:"structure"`
16785
16786	// Specifies whether the certificate is active.
16787	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
16788}
16789
16790// String returns the string representation
16791func (s CreateKeysAndCertificateInput) String() string {
16792	return awsutil.Prettify(s)
16793}
16794
16795// GoString returns the string representation
16796func (s CreateKeysAndCertificateInput) GoString() string {
16797	return s.String()
16798}
16799
16800// SetSetAsActive sets the SetAsActive field's value.
16801func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
16802	s.SetAsActive = &v
16803	return s
16804}
16805
16806// The output of the CreateKeysAndCertificate operation.
16807type CreateKeysAndCertificateOutput struct {
16808	_ struct{} `type:"structure"`
16809
16810	// The ARN of the certificate.
16811	CertificateArn *string `locationName:"certificateArn" type:"string"`
16812
16813	// The ID of the certificate. AWS IoT issues a default subject name for the
16814	// certificate (for example, AWS IoT Certificate).
16815	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
16816
16817	// The certificate data, in PEM format.
16818	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
16819
16820	// The generated key pair.
16821	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
16822}
16823
16824// String returns the string representation
16825func (s CreateKeysAndCertificateOutput) String() string {
16826	return awsutil.Prettify(s)
16827}
16828
16829// GoString returns the string representation
16830func (s CreateKeysAndCertificateOutput) GoString() string {
16831	return s.String()
16832}
16833
16834// SetCertificateArn sets the CertificateArn field's value.
16835func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
16836	s.CertificateArn = &v
16837	return s
16838}
16839
16840// SetCertificateId sets the CertificateId field's value.
16841func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
16842	s.CertificateId = &v
16843	return s
16844}
16845
16846// SetCertificatePem sets the CertificatePem field's value.
16847func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
16848	s.CertificatePem = &v
16849	return s
16850}
16851
16852// SetKeyPair sets the KeyPair field's value.
16853func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
16854	s.KeyPair = v
16855	return s
16856}
16857
16858type CreateOTAUpdateInput struct {
16859	_ struct{} `type:"structure"`
16860
16861	// A list of additional OTA update parameters which are name-value pairs.
16862	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
16863
16864	// The description of the OTA update.
16865	Description *string `locationName:"description" type:"string"`
16866
16867	// The files to be streamed by the OTA update.
16868	//
16869	// Files is a required field
16870	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
16871
16872	// The ID of the OTA update to be created.
16873	//
16874	// OtaUpdateId is a required field
16875	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
16876
16877	// The IAM role that allows access to the AWS IoT Jobs service.
16878	//
16879	// RoleArn is a required field
16880	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
16881
16882	// Specifies whether the update will continue to run (CONTINUOUS), or will be
16883	// complete after all the things specified as targets have completed the update
16884	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
16885	// is detected in a target. For example, an update will run on a thing when
16886	// the thing is added to a target group, even after the update was completed
16887	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
16888	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
16889
16890	// The targeted devices to receive OTA updates.
16891	//
16892	// Targets is a required field
16893	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
16894}
16895
16896// String returns the string representation
16897func (s CreateOTAUpdateInput) String() string {
16898	return awsutil.Prettify(s)
16899}
16900
16901// GoString returns the string representation
16902func (s CreateOTAUpdateInput) GoString() string {
16903	return s.String()
16904}
16905
16906// Validate inspects the fields of the type to determine if they are valid.
16907func (s *CreateOTAUpdateInput) Validate() error {
16908	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
16909	if s.Files == nil {
16910		invalidParams.Add(request.NewErrParamRequired("Files"))
16911	}
16912	if s.Files != nil && len(s.Files) < 1 {
16913		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
16914	}
16915	if s.OtaUpdateId == nil {
16916		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
16917	}
16918	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
16919		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
16920	}
16921	if s.RoleArn == nil {
16922		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
16923	}
16924	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
16925		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
16926	}
16927	if s.Targets == nil {
16928		invalidParams.Add(request.NewErrParamRequired("Targets"))
16929	}
16930	if s.Targets != nil && len(s.Targets) < 1 {
16931		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
16932	}
16933	if s.Files != nil {
16934		for i, v := range s.Files {
16935			if v == nil {
16936				continue
16937			}
16938			if err := v.Validate(); err != nil {
16939				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
16940			}
16941		}
16942	}
16943
16944	if invalidParams.Len() > 0 {
16945		return invalidParams
16946	}
16947	return nil
16948}
16949
16950// SetAdditionalParameters sets the AdditionalParameters field's value.
16951func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
16952	s.AdditionalParameters = v
16953	return s
16954}
16955
16956// SetDescription sets the Description field's value.
16957func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
16958	s.Description = &v
16959	return s
16960}
16961
16962// SetFiles sets the Files field's value.
16963func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
16964	s.Files = v
16965	return s
16966}
16967
16968// SetOtaUpdateId sets the OtaUpdateId field's value.
16969func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
16970	s.OtaUpdateId = &v
16971	return s
16972}
16973
16974// SetRoleArn sets the RoleArn field's value.
16975func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
16976	s.RoleArn = &v
16977	return s
16978}
16979
16980// SetTargetSelection sets the TargetSelection field's value.
16981func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
16982	s.TargetSelection = &v
16983	return s
16984}
16985
16986// SetTargets sets the Targets field's value.
16987func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
16988	s.Targets = v
16989	return s
16990}
16991
16992type CreateOTAUpdateOutput struct {
16993	_ struct{} `type:"structure"`
16994
16995	// The AWS IoT job ARN associated with the OTA update.
16996	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
16997
16998	// The AWS IoT job ID associated with the OTA update.
16999	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
17000
17001	// The OTA update ARN.
17002	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
17003
17004	// The OTA update ID.
17005	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
17006
17007	// The OTA update status.
17008	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
17009}
17010
17011// String returns the string representation
17012func (s CreateOTAUpdateOutput) String() string {
17013	return awsutil.Prettify(s)
17014}
17015
17016// GoString returns the string representation
17017func (s CreateOTAUpdateOutput) GoString() string {
17018	return s.String()
17019}
17020
17021// SetAwsIotJobArn sets the AwsIotJobArn field's value.
17022func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
17023	s.AwsIotJobArn = &v
17024	return s
17025}
17026
17027// SetAwsIotJobId sets the AwsIotJobId field's value.
17028func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
17029	s.AwsIotJobId = &v
17030	return s
17031}
17032
17033// SetOtaUpdateArn sets the OtaUpdateArn field's value.
17034func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
17035	s.OtaUpdateArn = &v
17036	return s
17037}
17038
17039// SetOtaUpdateId sets the OtaUpdateId field's value.
17040func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
17041	s.OtaUpdateId = &v
17042	return s
17043}
17044
17045// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
17046func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
17047	s.OtaUpdateStatus = &v
17048	return s
17049}
17050
17051// The input for the CreatePolicy operation.
17052type CreatePolicyInput struct {
17053	_ struct{} `type:"structure"`
17054
17055	// The JSON document that describes the policy. policyDocument must have a minimum
17056	// length of 1, with a maximum length of 2048, excluding whitespace.
17057	//
17058	// PolicyDocument is a required field
17059	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
17060
17061	// The policy name.
17062	//
17063	// PolicyName is a required field
17064	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
17065}
17066
17067// String returns the string representation
17068func (s CreatePolicyInput) String() string {
17069	return awsutil.Prettify(s)
17070}
17071
17072// GoString returns the string representation
17073func (s CreatePolicyInput) GoString() string {
17074	return s.String()
17075}
17076
17077// Validate inspects the fields of the type to determine if they are valid.
17078func (s *CreatePolicyInput) Validate() error {
17079	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
17080	if s.PolicyDocument == nil {
17081		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
17082	}
17083	if s.PolicyName == nil {
17084		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
17085	}
17086	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
17087		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
17088	}
17089
17090	if invalidParams.Len() > 0 {
17091		return invalidParams
17092	}
17093	return nil
17094}
17095
17096// SetPolicyDocument sets the PolicyDocument field's value.
17097func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
17098	s.PolicyDocument = &v
17099	return s
17100}
17101
17102// SetPolicyName sets the PolicyName field's value.
17103func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
17104	s.PolicyName = &v
17105	return s
17106}
17107
17108// The output from the CreatePolicy operation.
17109type CreatePolicyOutput struct {
17110	_ struct{} `type:"structure"`
17111
17112	// The policy ARN.
17113	PolicyArn *string `locationName:"policyArn" type:"string"`
17114
17115	// The JSON document that describes the policy.
17116	PolicyDocument *string `locationName:"policyDocument" type:"string"`
17117
17118	// The policy name.
17119	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
17120
17121	// The policy version ID.
17122	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
17123}
17124
17125// String returns the string representation
17126func (s CreatePolicyOutput) String() string {
17127	return awsutil.Prettify(s)
17128}
17129
17130// GoString returns the string representation
17131func (s CreatePolicyOutput) GoString() string {
17132	return s.String()
17133}
17134
17135// SetPolicyArn sets the PolicyArn field's value.
17136func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
17137	s.PolicyArn = &v
17138	return s
17139}
17140
17141// SetPolicyDocument sets the PolicyDocument field's value.
17142func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
17143	s.PolicyDocument = &v
17144	return s
17145}
17146
17147// SetPolicyName sets the PolicyName field's value.
17148func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
17149	s.PolicyName = &v
17150	return s
17151}
17152
17153// SetPolicyVersionId sets the PolicyVersionId field's value.
17154func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
17155	s.PolicyVersionId = &v
17156	return s
17157}
17158
17159// The input for the CreatePolicyVersion operation.
17160type CreatePolicyVersionInput struct {
17161	_ struct{} `type:"structure"`
17162
17163	// The JSON document that describes the policy. Minimum length of 1. Maximum
17164	// length of 2048, excluding whitespace.
17165	//
17166	// PolicyDocument is a required field
17167	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
17168
17169	// The policy name.
17170	//
17171	// PolicyName is a required field
17172	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
17173
17174	// Specifies whether the policy version is set as the default. When this parameter
17175	// is true, the new policy version becomes the operative version (that is, the
17176	// version that is in effect for the certificates to which the policy is attached).
17177	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
17178}
17179
17180// String returns the string representation
17181func (s CreatePolicyVersionInput) String() string {
17182	return awsutil.Prettify(s)
17183}
17184
17185// GoString returns the string representation
17186func (s CreatePolicyVersionInput) GoString() string {
17187	return s.String()
17188}
17189
17190// Validate inspects the fields of the type to determine if they are valid.
17191func (s *CreatePolicyVersionInput) Validate() error {
17192	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
17193	if s.PolicyDocument == nil {
17194		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
17195	}
17196	if s.PolicyName == nil {
17197		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
17198	}
17199	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
17200		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
17201	}
17202
17203	if invalidParams.Len() > 0 {
17204		return invalidParams
17205	}
17206	return nil
17207}
17208
17209// SetPolicyDocument sets the PolicyDocument field's value.
17210func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
17211	s.PolicyDocument = &v
17212	return s
17213}
17214
17215// SetPolicyName sets the PolicyName field's value.
17216func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
17217	s.PolicyName = &v
17218	return s
17219}
17220
17221// SetSetAsDefault sets the SetAsDefault field's value.
17222func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
17223	s.SetAsDefault = &v
17224	return s
17225}
17226
17227// The output of the CreatePolicyVersion operation.
17228type CreatePolicyVersionOutput struct {
17229	_ struct{} `type:"structure"`
17230
17231	// Specifies whether the policy version is the default.
17232	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
17233
17234	// The policy ARN.
17235	PolicyArn *string `locationName:"policyArn" type:"string"`
17236
17237	// The JSON document that describes the policy.
17238	PolicyDocument *string `locationName:"policyDocument" type:"string"`
17239
17240	// The policy version ID.
17241	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
17242}
17243
17244// String returns the string representation
17245func (s CreatePolicyVersionOutput) String() string {
17246	return awsutil.Prettify(s)
17247}
17248
17249// GoString returns the string representation
17250func (s CreatePolicyVersionOutput) GoString() string {
17251	return s.String()
17252}
17253
17254// SetIsDefaultVersion sets the IsDefaultVersion field's value.
17255func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
17256	s.IsDefaultVersion = &v
17257	return s
17258}
17259
17260// SetPolicyArn sets the PolicyArn field's value.
17261func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
17262	s.PolicyArn = &v
17263	return s
17264}
17265
17266// SetPolicyDocument sets the PolicyDocument field's value.
17267func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
17268	s.PolicyDocument = &v
17269	return s
17270}
17271
17272// SetPolicyVersionId sets the PolicyVersionId field's value.
17273func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
17274	s.PolicyVersionId = &v
17275	return s
17276}
17277
17278type CreateRoleAliasInput struct {
17279	_ struct{} `type:"structure"`
17280
17281	// How long (in seconds) the credentials will be valid.
17282	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
17283
17284	// The role alias that points to a role ARN. This allows you to change the role
17285	// without having to update the device.
17286	//
17287	// RoleAlias is a required field
17288	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
17289
17290	// The role ARN.
17291	//
17292	// RoleArn is a required field
17293	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
17294}
17295
17296// String returns the string representation
17297func (s CreateRoleAliasInput) String() string {
17298	return awsutil.Prettify(s)
17299}
17300
17301// GoString returns the string representation
17302func (s CreateRoleAliasInput) GoString() string {
17303	return s.String()
17304}
17305
17306// Validate inspects the fields of the type to determine if they are valid.
17307func (s *CreateRoleAliasInput) Validate() error {
17308	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
17309	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
17310		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
17311	}
17312	if s.RoleAlias == nil {
17313		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
17314	}
17315	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
17316		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
17317	}
17318	if s.RoleArn == nil {
17319		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
17320	}
17321	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
17322		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
17323	}
17324
17325	if invalidParams.Len() > 0 {
17326		return invalidParams
17327	}
17328	return nil
17329}
17330
17331// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
17332func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
17333	s.CredentialDurationSeconds = &v
17334	return s
17335}
17336
17337// SetRoleAlias sets the RoleAlias field's value.
17338func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
17339	s.RoleAlias = &v
17340	return s
17341}
17342
17343// SetRoleArn sets the RoleArn field's value.
17344func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
17345	s.RoleArn = &v
17346	return s
17347}
17348
17349type CreateRoleAliasOutput struct {
17350	_ struct{} `type:"structure"`
17351
17352	// The role alias.
17353	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
17354
17355	// The role alias ARN.
17356	RoleAliasArn *string `locationName:"roleAliasArn" type:"string"`
17357}
17358
17359// String returns the string representation
17360func (s CreateRoleAliasOutput) String() string {
17361	return awsutil.Prettify(s)
17362}
17363
17364// GoString returns the string representation
17365func (s CreateRoleAliasOutput) GoString() string {
17366	return s.String()
17367}
17368
17369// SetRoleAlias sets the RoleAlias field's value.
17370func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
17371	s.RoleAlias = &v
17372	return s
17373}
17374
17375// SetRoleAliasArn sets the RoleAliasArn field's value.
17376func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
17377	s.RoleAliasArn = &v
17378	return s
17379}
17380
17381type CreateScheduledAuditInput struct {
17382	_ struct{} `type:"structure"`
17383
17384	// The day of the month on which the scheduled audit takes place. Can be "1"
17385	// through "31" or "LAST". This field is required if the "frequency" parameter
17386	// is set to "MONTHLY". If days 29-31 are specified, and the month does not
17387	// have that many days, the audit takes place on the "LAST" day of the month.
17388	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
17389
17390	// The day of the week on which the scheduled audit takes place. Can be one
17391	// of "SUN", "MON", "TUE", "WED", "THU", "FRI" or "SAT". This field is required
17392	// if the "frequency" parameter is set to "WEEKLY" or "BIWEEKLY".
17393	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
17394
17395	// How often the scheduled audit takes place. Can be one of "DAILY", "WEEKLY",
17396	// "BIWEEKLY" or "MONTHLY". The actual start time of each audit is determined
17397	// by the system.
17398	//
17399	// Frequency is a required field
17400	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
17401
17402	// The name you want to give to the scheduled audit. (Max. 128 chars)
17403	//
17404	// ScheduledAuditName is a required field
17405	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
17406
17407	// Which checks are performed during the scheduled audit. Checks must be enabled
17408	// for your account. (Use DescribeAccountAuditConfiguration to see the list
17409	// of all checks including those that are enabled or UpdateAccountAuditConfiguration
17410	// to select which checks are enabled.)
17411	//
17412	// TargetCheckNames is a required field
17413	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
17414}
17415
17416// String returns the string representation
17417func (s CreateScheduledAuditInput) String() string {
17418	return awsutil.Prettify(s)
17419}
17420
17421// GoString returns the string representation
17422func (s CreateScheduledAuditInput) GoString() string {
17423	return s.String()
17424}
17425
17426// Validate inspects the fields of the type to determine if they are valid.
17427func (s *CreateScheduledAuditInput) Validate() error {
17428	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
17429	if s.Frequency == nil {
17430		invalidParams.Add(request.NewErrParamRequired("Frequency"))
17431	}
17432	if s.ScheduledAuditName == nil {
17433		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
17434	}
17435	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
17436		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
17437	}
17438	if s.TargetCheckNames == nil {
17439		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
17440	}
17441
17442	if invalidParams.Len() > 0 {
17443		return invalidParams
17444	}
17445	return nil
17446}
17447
17448// SetDayOfMonth sets the DayOfMonth field's value.
17449func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
17450	s.DayOfMonth = &v
17451	return s
17452}
17453
17454// SetDayOfWeek sets the DayOfWeek field's value.
17455func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
17456	s.DayOfWeek = &v
17457	return s
17458}
17459
17460// SetFrequency sets the Frequency field's value.
17461func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
17462	s.Frequency = &v
17463	return s
17464}
17465
17466// SetScheduledAuditName sets the ScheduledAuditName field's value.
17467func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
17468	s.ScheduledAuditName = &v
17469	return s
17470}
17471
17472// SetTargetCheckNames sets the TargetCheckNames field's value.
17473func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
17474	s.TargetCheckNames = v
17475	return s
17476}
17477
17478type CreateScheduledAuditOutput struct {
17479	_ struct{} `type:"structure"`
17480
17481	// The ARN of the scheduled audit.
17482	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
17483}
17484
17485// String returns the string representation
17486func (s CreateScheduledAuditOutput) String() string {
17487	return awsutil.Prettify(s)
17488}
17489
17490// GoString returns the string representation
17491func (s CreateScheduledAuditOutput) GoString() string {
17492	return s.String()
17493}
17494
17495// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
17496func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
17497	s.ScheduledAuditArn = &v
17498	return s
17499}
17500
17501type CreateSecurityProfileInput struct {
17502	_ struct{} `type:"structure"`
17503
17504	// Specifies the destinations to which alerts are sent. (Alerts are always sent
17505	// to the console.) Alerts are generated when a device (thing) violates a behavior.
17506	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
17507
17508	// Specifies the behaviors that, when violated by a device (thing), cause an
17509	// alert.
17510	//
17511	// Behaviors is a required field
17512	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
17513
17514	// A description of the security profile.
17515	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
17516
17517	// The name you are giving to the security profile.
17518	//
17519	// SecurityProfileName is a required field
17520	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
17521}
17522
17523// String returns the string representation
17524func (s CreateSecurityProfileInput) String() string {
17525	return awsutil.Prettify(s)
17526}
17527
17528// GoString returns the string representation
17529func (s CreateSecurityProfileInput) GoString() string {
17530	return s.String()
17531}
17532
17533// Validate inspects the fields of the type to determine if they are valid.
17534func (s *CreateSecurityProfileInput) Validate() error {
17535	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
17536	if s.Behaviors == nil {
17537		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
17538	}
17539	if s.SecurityProfileName == nil {
17540		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
17541	}
17542	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
17543		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
17544	}
17545	if s.AlertTargets != nil {
17546		for i, v := range s.AlertTargets {
17547			if v == nil {
17548				continue
17549			}
17550			if err := v.Validate(); err != nil {
17551				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
17552			}
17553		}
17554	}
17555	if s.Behaviors != nil {
17556		for i, v := range s.Behaviors {
17557			if v == nil {
17558				continue
17559			}
17560			if err := v.Validate(); err != nil {
17561				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
17562			}
17563		}
17564	}
17565
17566	if invalidParams.Len() > 0 {
17567		return invalidParams
17568	}
17569	return nil
17570}
17571
17572// SetAlertTargets sets the AlertTargets field's value.
17573func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
17574	s.AlertTargets = v
17575	return s
17576}
17577
17578// SetBehaviors sets the Behaviors field's value.
17579func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
17580	s.Behaviors = v
17581	return s
17582}
17583
17584// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
17585func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
17586	s.SecurityProfileDescription = &v
17587	return s
17588}
17589
17590// SetSecurityProfileName sets the SecurityProfileName field's value.
17591func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
17592	s.SecurityProfileName = &v
17593	return s
17594}
17595
17596type CreateSecurityProfileOutput struct {
17597	_ struct{} `type:"structure"`
17598
17599	// The ARN of the security profile.
17600	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
17601
17602	// The name you gave to the security profile.
17603	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
17604}
17605
17606// String returns the string representation
17607func (s CreateSecurityProfileOutput) String() string {
17608	return awsutil.Prettify(s)
17609}
17610
17611// GoString returns the string representation
17612func (s CreateSecurityProfileOutput) GoString() string {
17613	return s.String()
17614}
17615
17616// SetSecurityProfileArn sets the SecurityProfileArn field's value.
17617func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
17618	s.SecurityProfileArn = &v
17619	return s
17620}
17621
17622// SetSecurityProfileName sets the SecurityProfileName field's value.
17623func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
17624	s.SecurityProfileName = &v
17625	return s
17626}
17627
17628type CreateStreamInput struct {
17629	_ struct{} `type:"structure"`
17630
17631	// A description of the stream.
17632	Description *string `locationName:"description" type:"string"`
17633
17634	// The files to stream.
17635	//
17636	// Files is a required field
17637	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
17638
17639	// An IAM role that allows the IoT service principal assumes to access your
17640	// S3 files.
17641	//
17642	// RoleArn is a required field
17643	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
17644
17645	// The stream ID.
17646	//
17647	// StreamId is a required field
17648	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
17649}
17650
17651// String returns the string representation
17652func (s CreateStreamInput) String() string {
17653	return awsutil.Prettify(s)
17654}
17655
17656// GoString returns the string representation
17657func (s CreateStreamInput) GoString() string {
17658	return s.String()
17659}
17660
17661// Validate inspects the fields of the type to determine if they are valid.
17662func (s *CreateStreamInput) Validate() error {
17663	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
17664	if s.Files == nil {
17665		invalidParams.Add(request.NewErrParamRequired("Files"))
17666	}
17667	if s.Files != nil && len(s.Files) < 1 {
17668		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
17669	}
17670	if s.RoleArn == nil {
17671		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
17672	}
17673	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
17674		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
17675	}
17676	if s.StreamId == nil {
17677		invalidParams.Add(request.NewErrParamRequired("StreamId"))
17678	}
17679	if s.StreamId != nil && len(*s.StreamId) < 1 {
17680		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
17681	}
17682	if s.Files != nil {
17683		for i, v := range s.Files {
17684			if v == nil {
17685				continue
17686			}
17687			if err := v.Validate(); err != nil {
17688				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
17689			}
17690		}
17691	}
17692
17693	if invalidParams.Len() > 0 {
17694		return invalidParams
17695	}
17696	return nil
17697}
17698
17699// SetDescription sets the Description field's value.
17700func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
17701	s.Description = &v
17702	return s
17703}
17704
17705// SetFiles sets the Files field's value.
17706func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
17707	s.Files = v
17708	return s
17709}
17710
17711// SetRoleArn sets the RoleArn field's value.
17712func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
17713	s.RoleArn = &v
17714	return s
17715}
17716
17717// SetStreamId sets the StreamId field's value.
17718func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
17719	s.StreamId = &v
17720	return s
17721}
17722
17723type CreateStreamOutput struct {
17724	_ struct{} `type:"structure"`
17725
17726	// A description of the stream.
17727	Description *string `locationName:"description" type:"string"`
17728
17729	// The stream ARN.
17730	StreamArn *string `locationName:"streamArn" type:"string"`
17731
17732	// The stream ID.
17733	StreamId *string `locationName:"streamId" min:"1" type:"string"`
17734
17735	// The version of the stream.
17736	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
17737}
17738
17739// String returns the string representation
17740func (s CreateStreamOutput) String() string {
17741	return awsutil.Prettify(s)
17742}
17743
17744// GoString returns the string representation
17745func (s CreateStreamOutput) GoString() string {
17746	return s.String()
17747}
17748
17749// SetDescription sets the Description field's value.
17750func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
17751	s.Description = &v
17752	return s
17753}
17754
17755// SetStreamArn sets the StreamArn field's value.
17756func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
17757	s.StreamArn = &v
17758	return s
17759}
17760
17761// SetStreamId sets the StreamId field's value.
17762func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
17763	s.StreamId = &v
17764	return s
17765}
17766
17767// SetStreamVersion sets the StreamVersion field's value.
17768func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
17769	s.StreamVersion = &v
17770	return s
17771}
17772
17773type CreateThingGroupInput struct {
17774	_ struct{} `type:"structure"`
17775
17776	// The name of the parent thing group.
17777	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
17778
17779	// The thing group name to create.
17780	//
17781	// ThingGroupName is a required field
17782	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
17783
17784	// The thing group properties.
17785	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
17786}
17787
17788// String returns the string representation
17789func (s CreateThingGroupInput) String() string {
17790	return awsutil.Prettify(s)
17791}
17792
17793// GoString returns the string representation
17794func (s CreateThingGroupInput) GoString() string {
17795	return s.String()
17796}
17797
17798// Validate inspects the fields of the type to determine if they are valid.
17799func (s *CreateThingGroupInput) Validate() error {
17800	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
17801	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
17802		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
17803	}
17804	if s.ThingGroupName == nil {
17805		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
17806	}
17807	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
17808		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
17809	}
17810
17811	if invalidParams.Len() > 0 {
17812		return invalidParams
17813	}
17814	return nil
17815}
17816
17817// SetParentGroupName sets the ParentGroupName field's value.
17818func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
17819	s.ParentGroupName = &v
17820	return s
17821}
17822
17823// SetThingGroupName sets the ThingGroupName field's value.
17824func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
17825	s.ThingGroupName = &v
17826	return s
17827}
17828
17829// SetThingGroupProperties sets the ThingGroupProperties field's value.
17830func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
17831	s.ThingGroupProperties = v
17832	return s
17833}
17834
17835type CreateThingGroupOutput struct {
17836	_ struct{} `type:"structure"`
17837
17838	// The thing group ARN.
17839	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
17840
17841	// The thing group ID.
17842	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
17843
17844	// The thing group name.
17845	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
17846}
17847
17848// String returns the string representation
17849func (s CreateThingGroupOutput) String() string {
17850	return awsutil.Prettify(s)
17851}
17852
17853// GoString returns the string representation
17854func (s CreateThingGroupOutput) GoString() string {
17855	return s.String()
17856}
17857
17858// SetThingGroupArn sets the ThingGroupArn field's value.
17859func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
17860	s.ThingGroupArn = &v
17861	return s
17862}
17863
17864// SetThingGroupId sets the ThingGroupId field's value.
17865func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
17866	s.ThingGroupId = &v
17867	return s
17868}
17869
17870// SetThingGroupName sets the ThingGroupName field's value.
17871func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
17872	s.ThingGroupName = &v
17873	return s
17874}
17875
17876// The input for the CreateThing operation.
17877type CreateThingInput struct {
17878	_ struct{} `type:"structure"`
17879
17880	// The attribute payload, which consists of up to three name/value pairs in
17881	// a JSON document. For example:
17882	//
17883	// {\"attributes\":{\"string1\":\"string2\"}}
17884	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
17885
17886	// The name of the thing to create.
17887	//
17888	// ThingName is a required field
17889	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
17890
17891	// The name of the thing type associated with the new thing.
17892	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
17893}
17894
17895// String returns the string representation
17896func (s CreateThingInput) String() string {
17897	return awsutil.Prettify(s)
17898}
17899
17900// GoString returns the string representation
17901func (s CreateThingInput) GoString() string {
17902	return s.String()
17903}
17904
17905// Validate inspects the fields of the type to determine if they are valid.
17906func (s *CreateThingInput) Validate() error {
17907	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
17908	if s.ThingName == nil {
17909		invalidParams.Add(request.NewErrParamRequired("ThingName"))
17910	}
17911	if s.ThingName != nil && len(*s.ThingName) < 1 {
17912		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
17913	}
17914	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
17915		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
17916	}
17917
17918	if invalidParams.Len() > 0 {
17919		return invalidParams
17920	}
17921	return nil
17922}
17923
17924// SetAttributePayload sets the AttributePayload field's value.
17925func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
17926	s.AttributePayload = v
17927	return s
17928}
17929
17930// SetThingName sets the ThingName field's value.
17931func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
17932	s.ThingName = &v
17933	return s
17934}
17935
17936// SetThingTypeName sets the ThingTypeName field's value.
17937func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
17938	s.ThingTypeName = &v
17939	return s
17940}
17941
17942// The output of the CreateThing operation.
17943type CreateThingOutput struct {
17944	_ struct{} `type:"structure"`
17945
17946	// The ARN of the new thing.
17947	ThingArn *string `locationName:"thingArn" type:"string"`
17948
17949	// The thing ID.
17950	ThingId *string `locationName:"thingId" type:"string"`
17951
17952	// The name of the new thing.
17953	ThingName *string `locationName:"thingName" min:"1" type:"string"`
17954}
17955
17956// String returns the string representation
17957func (s CreateThingOutput) String() string {
17958	return awsutil.Prettify(s)
17959}
17960
17961// GoString returns the string representation
17962func (s CreateThingOutput) GoString() string {
17963	return s.String()
17964}
17965
17966// SetThingArn sets the ThingArn field's value.
17967func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
17968	s.ThingArn = &v
17969	return s
17970}
17971
17972// SetThingId sets the ThingId field's value.
17973func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
17974	s.ThingId = &v
17975	return s
17976}
17977
17978// SetThingName sets the ThingName field's value.
17979func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
17980	s.ThingName = &v
17981	return s
17982}
17983
17984// The input for the CreateThingType operation.
17985type CreateThingTypeInput struct {
17986	_ struct{} `type:"structure"`
17987
17988	// The name of the thing type.
17989	//
17990	// ThingTypeName is a required field
17991	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
17992
17993	// The ThingTypeProperties for the thing type to create. It contains information
17994	// about the new thing type including a description, and a list of searchable
17995	// thing attribute names.
17996	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
17997}
17998
17999// String returns the string representation
18000func (s CreateThingTypeInput) String() string {
18001	return awsutil.Prettify(s)
18002}
18003
18004// GoString returns the string representation
18005func (s CreateThingTypeInput) GoString() string {
18006	return s.String()
18007}
18008
18009// Validate inspects the fields of the type to determine if they are valid.
18010func (s *CreateThingTypeInput) Validate() error {
18011	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
18012	if s.ThingTypeName == nil {
18013		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
18014	}
18015	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
18016		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
18017	}
18018
18019	if invalidParams.Len() > 0 {
18020		return invalidParams
18021	}
18022	return nil
18023}
18024
18025// SetThingTypeName sets the ThingTypeName field's value.
18026func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
18027	s.ThingTypeName = &v
18028	return s
18029}
18030
18031// SetThingTypeProperties sets the ThingTypeProperties field's value.
18032func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
18033	s.ThingTypeProperties = v
18034	return s
18035}
18036
18037// The output of the CreateThingType operation.
18038type CreateThingTypeOutput struct {
18039	_ struct{} `type:"structure"`
18040
18041	// The Amazon Resource Name (ARN) of the thing type.
18042	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
18043
18044	// The thing type ID.
18045	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
18046
18047	// The name of the thing type.
18048	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
18049}
18050
18051// String returns the string representation
18052func (s CreateThingTypeOutput) String() string {
18053	return awsutil.Prettify(s)
18054}
18055
18056// GoString returns the string representation
18057func (s CreateThingTypeOutput) GoString() string {
18058	return s.String()
18059}
18060
18061// SetThingTypeArn sets the ThingTypeArn field's value.
18062func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
18063	s.ThingTypeArn = &v
18064	return s
18065}
18066
18067// SetThingTypeId sets the ThingTypeId field's value.
18068func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
18069	s.ThingTypeId = &v
18070	return s
18071}
18072
18073// SetThingTypeName sets the ThingTypeName field's value.
18074func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
18075	s.ThingTypeName = &v
18076	return s
18077}
18078
18079// The input for the CreateTopicRule operation.
18080type CreateTopicRuleInput struct {
18081	_ struct{} `type:"structure" payload:"TopicRulePayload"`
18082
18083	// The name of the rule.
18084	//
18085	// RuleName is a required field
18086	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
18087
18088	// The rule payload.
18089	//
18090	// TopicRulePayload is a required field
18091	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
18092}
18093
18094// String returns the string representation
18095func (s CreateTopicRuleInput) String() string {
18096	return awsutil.Prettify(s)
18097}
18098
18099// GoString returns the string representation
18100func (s CreateTopicRuleInput) GoString() string {
18101	return s.String()
18102}
18103
18104// Validate inspects the fields of the type to determine if they are valid.
18105func (s *CreateTopicRuleInput) Validate() error {
18106	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
18107	if s.RuleName == nil {
18108		invalidParams.Add(request.NewErrParamRequired("RuleName"))
18109	}
18110	if s.RuleName != nil && len(*s.RuleName) < 1 {
18111		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
18112	}
18113	if s.TopicRulePayload == nil {
18114		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
18115	}
18116	if s.TopicRulePayload != nil {
18117		if err := s.TopicRulePayload.Validate(); err != nil {
18118			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
18119		}
18120	}
18121
18122	if invalidParams.Len() > 0 {
18123		return invalidParams
18124	}
18125	return nil
18126}
18127
18128// SetRuleName sets the RuleName field's value.
18129func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
18130	s.RuleName = &v
18131	return s
18132}
18133
18134// SetTopicRulePayload sets the TopicRulePayload field's value.
18135func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
18136	s.TopicRulePayload = v
18137	return s
18138}
18139
18140type CreateTopicRuleOutput struct {
18141	_ struct{} `type:"structure"`
18142}
18143
18144// String returns the string representation
18145func (s CreateTopicRuleOutput) String() string {
18146	return awsutil.Prettify(s)
18147}
18148
18149// GoString returns the string representation
18150func (s CreateTopicRuleOutput) GoString() string {
18151	return s.String()
18152}
18153
18154// Describes a custom method used to code sign a file.
18155type CustomCodeSigning struct {
18156	_ struct{} `type:"structure"`
18157
18158	// The certificate chain.
18159	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
18160
18161	// The hash algorithm used to code sign the file.
18162	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
18163
18164	// The signature for the file.
18165	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
18166
18167	// The signature algorithm used to code sign the file.
18168	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
18169}
18170
18171// String returns the string representation
18172func (s CustomCodeSigning) String() string {
18173	return awsutil.Prettify(s)
18174}
18175
18176// GoString returns the string representation
18177func (s CustomCodeSigning) GoString() string {
18178	return s.String()
18179}
18180
18181// Validate inspects the fields of the type to determine if they are valid.
18182func (s *CustomCodeSigning) Validate() error {
18183	invalidParams := request.ErrInvalidParams{Context: "CustomCodeSigning"}
18184	if s.CertificateChain != nil {
18185		if err := s.CertificateChain.Validate(); err != nil {
18186			invalidParams.AddNested("CertificateChain", err.(request.ErrInvalidParams))
18187		}
18188	}
18189	if s.Signature != nil {
18190		if err := s.Signature.Validate(); err != nil {
18191			invalidParams.AddNested("Signature", err.(request.ErrInvalidParams))
18192		}
18193	}
18194
18195	if invalidParams.Len() > 0 {
18196		return invalidParams
18197	}
18198	return nil
18199}
18200
18201// SetCertificateChain sets the CertificateChain field's value.
18202func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
18203	s.CertificateChain = v
18204	return s
18205}
18206
18207// SetHashAlgorithm sets the HashAlgorithm field's value.
18208func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
18209	s.HashAlgorithm = &v
18210	return s
18211}
18212
18213// SetSignature sets the Signature field's value.
18214func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
18215	s.Signature = v
18216	return s
18217}
18218
18219// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
18220func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
18221	s.SignatureAlgorithm = &v
18222	return s
18223}
18224
18225type DeleteAccountAuditConfigurationInput struct {
18226	_ struct{} `type:"structure"`
18227
18228	// If true, all scheduled audits are deleted.
18229	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
18230}
18231
18232// String returns the string representation
18233func (s DeleteAccountAuditConfigurationInput) String() string {
18234	return awsutil.Prettify(s)
18235}
18236
18237// GoString returns the string representation
18238func (s DeleteAccountAuditConfigurationInput) GoString() string {
18239	return s.String()
18240}
18241
18242// SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
18243func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
18244	s.DeleteScheduledAudits = &v
18245	return s
18246}
18247
18248type DeleteAccountAuditConfigurationOutput struct {
18249	_ struct{} `type:"structure"`
18250}
18251
18252// String returns the string representation
18253func (s DeleteAccountAuditConfigurationOutput) String() string {
18254	return awsutil.Prettify(s)
18255}
18256
18257// GoString returns the string representation
18258func (s DeleteAccountAuditConfigurationOutput) GoString() string {
18259	return s.String()
18260}
18261
18262type DeleteAuthorizerInput struct {
18263	_ struct{} `type:"structure"`
18264
18265	// The name of the authorizer to delete.
18266	//
18267	// AuthorizerName is a required field
18268	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
18269}
18270
18271// String returns the string representation
18272func (s DeleteAuthorizerInput) String() string {
18273	return awsutil.Prettify(s)
18274}
18275
18276// GoString returns the string representation
18277func (s DeleteAuthorizerInput) GoString() string {
18278	return s.String()
18279}
18280
18281// Validate inspects the fields of the type to determine if they are valid.
18282func (s *DeleteAuthorizerInput) Validate() error {
18283	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
18284	if s.AuthorizerName == nil {
18285		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
18286	}
18287	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
18288		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
18289	}
18290
18291	if invalidParams.Len() > 0 {
18292		return invalidParams
18293	}
18294	return nil
18295}
18296
18297// SetAuthorizerName sets the AuthorizerName field's value.
18298func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
18299	s.AuthorizerName = &v
18300	return s
18301}
18302
18303type DeleteAuthorizerOutput struct {
18304	_ struct{} `type:"structure"`
18305}
18306
18307// String returns the string representation
18308func (s DeleteAuthorizerOutput) String() string {
18309	return awsutil.Prettify(s)
18310}
18311
18312// GoString returns the string representation
18313func (s DeleteAuthorizerOutput) GoString() string {
18314	return s.String()
18315}
18316
18317// Input for the DeleteCACertificate operation.
18318type DeleteCACertificateInput struct {
18319	_ struct{} `type:"structure"`
18320
18321	// The ID of the certificate to delete. (The last part of the certificate ARN
18322	// contains the certificate ID.)
18323	//
18324	// CertificateId is a required field
18325	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
18326}
18327
18328// String returns the string representation
18329func (s DeleteCACertificateInput) String() string {
18330	return awsutil.Prettify(s)
18331}
18332
18333// GoString returns the string representation
18334func (s DeleteCACertificateInput) GoString() string {
18335	return s.String()
18336}
18337
18338// Validate inspects the fields of the type to determine if they are valid.
18339func (s *DeleteCACertificateInput) Validate() error {
18340	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
18341	if s.CertificateId == nil {
18342		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
18343	}
18344	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
18345		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
18346	}
18347
18348	if invalidParams.Len() > 0 {
18349		return invalidParams
18350	}
18351	return nil
18352}
18353
18354// SetCertificateId sets the CertificateId field's value.
18355func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
18356	s.CertificateId = &v
18357	return s
18358}
18359
18360// The output for the DeleteCACertificate operation.
18361type DeleteCACertificateOutput struct {
18362	_ struct{} `type:"structure"`
18363}
18364
18365// String returns the string representation
18366func (s DeleteCACertificateOutput) String() string {
18367	return awsutil.Prettify(s)
18368}
18369
18370// GoString returns the string representation
18371func (s DeleteCACertificateOutput) GoString() string {
18372	return s.String()
18373}
18374
18375// The input for the DeleteCertificate operation.
18376type DeleteCertificateInput struct {
18377	_ struct{} `type:"structure"`
18378
18379	// The ID of the certificate. (The last part of the certificate ARN contains
18380	// the certificate ID.)
18381	//
18382	// CertificateId is a required field
18383	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
18384
18385	// Forces a certificate request to be deleted.
18386	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
18387}
18388
18389// String returns the string representation
18390func (s DeleteCertificateInput) String() string {
18391	return awsutil.Prettify(s)
18392}
18393
18394// GoString returns the string representation
18395func (s DeleteCertificateInput) GoString() string {
18396	return s.String()
18397}
18398
18399// Validate inspects the fields of the type to determine if they are valid.
18400func (s *DeleteCertificateInput) Validate() error {
18401	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
18402	if s.CertificateId == nil {
18403		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
18404	}
18405	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
18406		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
18407	}
18408
18409	if invalidParams.Len() > 0 {
18410		return invalidParams
18411	}
18412	return nil
18413}
18414
18415// SetCertificateId sets the CertificateId field's value.
18416func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
18417	s.CertificateId = &v
18418	return s
18419}
18420
18421// SetForceDelete sets the ForceDelete field's value.
18422func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
18423	s.ForceDelete = &v
18424	return s
18425}
18426
18427type DeleteCertificateOutput struct {
18428	_ struct{} `type:"structure"`
18429}
18430
18431// String returns the string representation
18432func (s DeleteCertificateOutput) String() string {
18433	return awsutil.Prettify(s)
18434}
18435
18436// GoString returns the string representation
18437func (s DeleteCertificateOutput) GoString() string {
18438	return s.String()
18439}
18440
18441type DeleteJobExecutionInput struct {
18442	_ struct{} `type:"structure"`
18443
18444	// The ID of the job execution to be deleted. The executionNumber refers to
18445	// the execution of a particular job on a particular device.
18446	//
18447	// Note that once a job execution is deleted, the executionNumber may be reused
18448	// by IoT, so be sure you get and use the correct value here.
18449	//
18450	// ExecutionNumber is a required field
18451	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
18452
18453	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
18454	// Otherwise, you can only delete a job execution which is in a terminal state
18455	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
18456	// will occur. The default is false.
18457	//
18458	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
18459	// be unable to access job information or update the job execution status. Use
18460	// caution and ensure that the device is able to recover to a valid state.
18461	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
18462
18463	// The ID of the job whose execution on a particular device will be deleted.
18464	//
18465	// JobId is a required field
18466	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
18467
18468	// The name of the thing whose job execution will be deleted.
18469	//
18470	// ThingName is a required field
18471	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
18472}
18473
18474// String returns the string representation
18475func (s DeleteJobExecutionInput) String() string {
18476	return awsutil.Prettify(s)
18477}
18478
18479// GoString returns the string representation
18480func (s DeleteJobExecutionInput) GoString() string {
18481	return s.String()
18482}
18483
18484// Validate inspects the fields of the type to determine if they are valid.
18485func (s *DeleteJobExecutionInput) Validate() error {
18486	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
18487	if s.ExecutionNumber == nil {
18488		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
18489	}
18490	if s.JobId == nil {
18491		invalidParams.Add(request.NewErrParamRequired("JobId"))
18492	}
18493	if s.JobId != nil && len(*s.JobId) < 1 {
18494		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
18495	}
18496	if s.ThingName == nil {
18497		invalidParams.Add(request.NewErrParamRequired("ThingName"))
18498	}
18499	if s.ThingName != nil && len(*s.ThingName) < 1 {
18500		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
18501	}
18502
18503	if invalidParams.Len() > 0 {
18504		return invalidParams
18505	}
18506	return nil
18507}
18508
18509// SetExecutionNumber sets the ExecutionNumber field's value.
18510func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
18511	s.ExecutionNumber = &v
18512	return s
18513}
18514
18515// SetForce sets the Force field's value.
18516func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
18517	s.Force = &v
18518	return s
18519}
18520
18521// SetJobId sets the JobId field's value.
18522func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
18523	s.JobId = &v
18524	return s
18525}
18526
18527// SetThingName sets the ThingName field's value.
18528func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
18529	s.ThingName = &v
18530	return s
18531}
18532
18533type DeleteJobExecutionOutput struct {
18534	_ struct{} `type:"structure"`
18535}
18536
18537// String returns the string representation
18538func (s DeleteJobExecutionOutput) String() string {
18539	return awsutil.Prettify(s)
18540}
18541
18542// GoString returns the string representation
18543func (s DeleteJobExecutionOutput) GoString() string {
18544	return s.String()
18545}
18546
18547type DeleteJobInput struct {
18548	_ struct{} `type:"structure"`
18549
18550	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
18551	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
18552	// or an exception will occur. The default is false.
18553	//
18554	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
18555	// the job to be unable to access job information or update the job execution
18556	// status. Use caution and ensure that each device executing a job which is
18557	// deleted is able to recover to a valid state.
18558	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
18559
18560	// The ID of the job to be deleted.
18561	//
18562	// After a job deletion is completed, you may reuse this jobId when you create
18563	// a new job. However, this is not recommended, and you must ensure that your
18564	// devices are not using the jobId to refer to the deleted job.
18565	//
18566	// JobId is a required field
18567	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
18568}
18569
18570// String returns the string representation
18571func (s DeleteJobInput) String() string {
18572	return awsutil.Prettify(s)
18573}
18574
18575// GoString returns the string representation
18576func (s DeleteJobInput) GoString() string {
18577	return s.String()
18578}
18579
18580// Validate inspects the fields of the type to determine if they are valid.
18581func (s *DeleteJobInput) Validate() error {
18582	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
18583	if s.JobId == nil {
18584		invalidParams.Add(request.NewErrParamRequired("JobId"))
18585	}
18586	if s.JobId != nil && len(*s.JobId) < 1 {
18587		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
18588	}
18589
18590	if invalidParams.Len() > 0 {
18591		return invalidParams
18592	}
18593	return nil
18594}
18595
18596// SetForce sets the Force field's value.
18597func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
18598	s.Force = &v
18599	return s
18600}
18601
18602// SetJobId sets the JobId field's value.
18603func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
18604	s.JobId = &v
18605	return s
18606}
18607
18608type DeleteJobOutput struct {
18609	_ struct{} `type:"structure"`
18610}
18611
18612// String returns the string representation
18613func (s DeleteJobOutput) String() string {
18614	return awsutil.Prettify(s)
18615}
18616
18617// GoString returns the string representation
18618func (s DeleteJobOutput) GoString() string {
18619	return s.String()
18620}
18621
18622type DeleteOTAUpdateInput struct {
18623	_ struct{} `type:"structure"`
18624
18625	// The OTA update ID to delete.
18626	//
18627	// OtaUpdateId is a required field
18628	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
18629}
18630
18631// String returns the string representation
18632func (s DeleteOTAUpdateInput) String() string {
18633	return awsutil.Prettify(s)
18634}
18635
18636// GoString returns the string representation
18637func (s DeleteOTAUpdateInput) GoString() string {
18638	return s.String()
18639}
18640
18641// Validate inspects the fields of the type to determine if they are valid.
18642func (s *DeleteOTAUpdateInput) Validate() error {
18643	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
18644	if s.OtaUpdateId == nil {
18645		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
18646	}
18647	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
18648		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
18649	}
18650
18651	if invalidParams.Len() > 0 {
18652		return invalidParams
18653	}
18654	return nil
18655}
18656
18657// SetOtaUpdateId sets the OtaUpdateId field's value.
18658func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
18659	s.OtaUpdateId = &v
18660	return s
18661}
18662
18663type DeleteOTAUpdateOutput struct {
18664	_ struct{} `type:"structure"`
18665}
18666
18667// String returns the string representation
18668func (s DeleteOTAUpdateOutput) String() string {
18669	return awsutil.Prettify(s)
18670}
18671
18672// GoString returns the string representation
18673func (s DeleteOTAUpdateOutput) GoString() string {
18674	return s.String()
18675}
18676
18677// The input for the DeletePolicy operation.
18678type DeletePolicyInput struct {
18679	_ struct{} `type:"structure"`
18680
18681	// The name of the policy to delete.
18682	//
18683	// PolicyName is a required field
18684	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
18685}
18686
18687// String returns the string representation
18688func (s DeletePolicyInput) String() string {
18689	return awsutil.Prettify(s)
18690}
18691
18692// GoString returns the string representation
18693func (s DeletePolicyInput) GoString() string {
18694	return s.String()
18695}
18696
18697// Validate inspects the fields of the type to determine if they are valid.
18698func (s *DeletePolicyInput) Validate() error {
18699	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
18700	if s.PolicyName == nil {
18701		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
18702	}
18703	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
18704		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
18705	}
18706
18707	if invalidParams.Len() > 0 {
18708		return invalidParams
18709	}
18710	return nil
18711}
18712
18713// SetPolicyName sets the PolicyName field's value.
18714func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
18715	s.PolicyName = &v
18716	return s
18717}
18718
18719type DeletePolicyOutput struct {
18720	_ struct{} `type:"structure"`
18721}
18722
18723// String returns the string representation
18724func (s DeletePolicyOutput) String() string {
18725	return awsutil.Prettify(s)
18726}
18727
18728// GoString returns the string representation
18729func (s DeletePolicyOutput) GoString() string {
18730	return s.String()
18731}
18732
18733// The input for the DeletePolicyVersion operation.
18734type DeletePolicyVersionInput struct {
18735	_ struct{} `type:"structure"`
18736
18737	// The name of the policy.
18738	//
18739	// PolicyName is a required field
18740	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
18741
18742	// The policy version ID.
18743	//
18744	// PolicyVersionId is a required field
18745	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
18746}
18747
18748// String returns the string representation
18749func (s DeletePolicyVersionInput) String() string {
18750	return awsutil.Prettify(s)
18751}
18752
18753// GoString returns the string representation
18754func (s DeletePolicyVersionInput) GoString() string {
18755	return s.String()
18756}
18757
18758// Validate inspects the fields of the type to determine if they are valid.
18759func (s *DeletePolicyVersionInput) Validate() error {
18760	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
18761	if s.PolicyName == nil {
18762		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
18763	}
18764	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
18765		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
18766	}
18767	if s.PolicyVersionId == nil {
18768		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
18769	}
18770
18771	if invalidParams.Len() > 0 {
18772		return invalidParams
18773	}
18774	return nil
18775}
18776
18777// SetPolicyName sets the PolicyName field's value.
18778func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
18779	s.PolicyName = &v
18780	return s
18781}
18782
18783// SetPolicyVersionId sets the PolicyVersionId field's value.
18784func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
18785	s.PolicyVersionId = &v
18786	return s
18787}
18788
18789type DeletePolicyVersionOutput struct {
18790	_ struct{} `type:"structure"`
18791}
18792
18793// String returns the string representation
18794func (s DeletePolicyVersionOutput) String() string {
18795	return awsutil.Prettify(s)
18796}
18797
18798// GoString returns the string representation
18799func (s DeletePolicyVersionOutput) GoString() string {
18800	return s.String()
18801}
18802
18803// The input for the DeleteRegistrationCode operation.
18804type DeleteRegistrationCodeInput struct {
18805	_ struct{} `type:"structure"`
18806}
18807
18808// String returns the string representation
18809func (s DeleteRegistrationCodeInput) String() string {
18810	return awsutil.Prettify(s)
18811}
18812
18813// GoString returns the string representation
18814func (s DeleteRegistrationCodeInput) GoString() string {
18815	return s.String()
18816}
18817
18818// The output for the DeleteRegistrationCode operation.
18819type DeleteRegistrationCodeOutput struct {
18820	_ struct{} `type:"structure"`
18821}
18822
18823// String returns the string representation
18824func (s DeleteRegistrationCodeOutput) String() string {
18825	return awsutil.Prettify(s)
18826}
18827
18828// GoString returns the string representation
18829func (s DeleteRegistrationCodeOutput) GoString() string {
18830	return s.String()
18831}
18832
18833type DeleteRoleAliasInput struct {
18834	_ struct{} `type:"structure"`
18835
18836	// The role alias to delete.
18837	//
18838	// RoleAlias is a required field
18839	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
18840}
18841
18842// String returns the string representation
18843func (s DeleteRoleAliasInput) String() string {
18844	return awsutil.Prettify(s)
18845}
18846
18847// GoString returns the string representation
18848func (s DeleteRoleAliasInput) GoString() string {
18849	return s.String()
18850}
18851
18852// Validate inspects the fields of the type to determine if they are valid.
18853func (s *DeleteRoleAliasInput) Validate() error {
18854	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
18855	if s.RoleAlias == nil {
18856		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
18857	}
18858	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
18859		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
18860	}
18861
18862	if invalidParams.Len() > 0 {
18863		return invalidParams
18864	}
18865	return nil
18866}
18867
18868// SetRoleAlias sets the RoleAlias field's value.
18869func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
18870	s.RoleAlias = &v
18871	return s
18872}
18873
18874type DeleteRoleAliasOutput struct {
18875	_ struct{} `type:"structure"`
18876}
18877
18878// String returns the string representation
18879func (s DeleteRoleAliasOutput) String() string {
18880	return awsutil.Prettify(s)
18881}
18882
18883// GoString returns the string representation
18884func (s DeleteRoleAliasOutput) GoString() string {
18885	return s.String()
18886}
18887
18888type DeleteScheduledAuditInput struct {
18889	_ struct{} `type:"structure"`
18890
18891	// The name of the scheduled audit you want to delete.
18892	//
18893	// ScheduledAuditName is a required field
18894	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
18895}
18896
18897// String returns the string representation
18898func (s DeleteScheduledAuditInput) String() string {
18899	return awsutil.Prettify(s)
18900}
18901
18902// GoString returns the string representation
18903func (s DeleteScheduledAuditInput) GoString() string {
18904	return s.String()
18905}
18906
18907// Validate inspects the fields of the type to determine if they are valid.
18908func (s *DeleteScheduledAuditInput) Validate() error {
18909	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
18910	if s.ScheduledAuditName == nil {
18911		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
18912	}
18913	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
18914		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
18915	}
18916
18917	if invalidParams.Len() > 0 {
18918		return invalidParams
18919	}
18920	return nil
18921}
18922
18923// SetScheduledAuditName sets the ScheduledAuditName field's value.
18924func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
18925	s.ScheduledAuditName = &v
18926	return s
18927}
18928
18929type DeleteScheduledAuditOutput struct {
18930	_ struct{} `type:"structure"`
18931}
18932
18933// String returns the string representation
18934func (s DeleteScheduledAuditOutput) String() string {
18935	return awsutil.Prettify(s)
18936}
18937
18938// GoString returns the string representation
18939func (s DeleteScheduledAuditOutput) GoString() string {
18940	return s.String()
18941}
18942
18943type DeleteSecurityProfileInput struct {
18944	_ struct{} `type:"structure"`
18945
18946	// The expected version of the security profile. A new version is generated
18947	// whenever the security profile is updated. If you specify a value that is
18948	// different than the actual version, a VersionConflictException is thrown.
18949	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
18950
18951	// The name of the security profile to be deleted.
18952	//
18953	// SecurityProfileName is a required field
18954	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
18955}
18956
18957// String returns the string representation
18958func (s DeleteSecurityProfileInput) String() string {
18959	return awsutil.Prettify(s)
18960}
18961
18962// GoString returns the string representation
18963func (s DeleteSecurityProfileInput) GoString() string {
18964	return s.String()
18965}
18966
18967// Validate inspects the fields of the type to determine if they are valid.
18968func (s *DeleteSecurityProfileInput) Validate() error {
18969	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
18970	if s.SecurityProfileName == nil {
18971		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
18972	}
18973	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
18974		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
18975	}
18976
18977	if invalidParams.Len() > 0 {
18978		return invalidParams
18979	}
18980	return nil
18981}
18982
18983// SetExpectedVersion sets the ExpectedVersion field's value.
18984func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
18985	s.ExpectedVersion = &v
18986	return s
18987}
18988
18989// SetSecurityProfileName sets the SecurityProfileName field's value.
18990func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
18991	s.SecurityProfileName = &v
18992	return s
18993}
18994
18995type DeleteSecurityProfileOutput struct {
18996	_ struct{} `type:"structure"`
18997}
18998
18999// String returns the string representation
19000func (s DeleteSecurityProfileOutput) String() string {
19001	return awsutil.Prettify(s)
19002}
19003
19004// GoString returns the string representation
19005func (s DeleteSecurityProfileOutput) GoString() string {
19006	return s.String()
19007}
19008
19009type DeleteStreamInput struct {
19010	_ struct{} `type:"structure"`
19011
19012	// The stream ID.
19013	//
19014	// StreamId is a required field
19015	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
19016}
19017
19018// String returns the string representation
19019func (s DeleteStreamInput) String() string {
19020	return awsutil.Prettify(s)
19021}
19022
19023// GoString returns the string representation
19024func (s DeleteStreamInput) GoString() string {
19025	return s.String()
19026}
19027
19028// Validate inspects the fields of the type to determine if they are valid.
19029func (s *DeleteStreamInput) Validate() error {
19030	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
19031	if s.StreamId == nil {
19032		invalidParams.Add(request.NewErrParamRequired("StreamId"))
19033	}
19034	if s.StreamId != nil && len(*s.StreamId) < 1 {
19035		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
19036	}
19037
19038	if invalidParams.Len() > 0 {
19039		return invalidParams
19040	}
19041	return nil
19042}
19043
19044// SetStreamId sets the StreamId field's value.
19045func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
19046	s.StreamId = &v
19047	return s
19048}
19049
19050type DeleteStreamOutput struct {
19051	_ struct{} `type:"structure"`
19052}
19053
19054// String returns the string representation
19055func (s DeleteStreamOutput) String() string {
19056	return awsutil.Prettify(s)
19057}
19058
19059// GoString returns the string representation
19060func (s DeleteStreamOutput) GoString() string {
19061	return s.String()
19062}
19063
19064type DeleteThingGroupInput struct {
19065	_ struct{} `type:"structure"`
19066
19067	// The expected version of the thing group to delete.
19068	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
19069
19070	// The name of the thing group to delete.
19071	//
19072	// ThingGroupName is a required field
19073	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
19074}
19075
19076// String returns the string representation
19077func (s DeleteThingGroupInput) String() string {
19078	return awsutil.Prettify(s)
19079}
19080
19081// GoString returns the string representation
19082func (s DeleteThingGroupInput) GoString() string {
19083	return s.String()
19084}
19085
19086// Validate inspects the fields of the type to determine if they are valid.
19087func (s *DeleteThingGroupInput) Validate() error {
19088	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
19089	if s.ThingGroupName == nil {
19090		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
19091	}
19092	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
19093		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
19094	}
19095
19096	if invalidParams.Len() > 0 {
19097		return invalidParams
19098	}
19099	return nil
19100}
19101
19102// SetExpectedVersion sets the ExpectedVersion field's value.
19103func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
19104	s.ExpectedVersion = &v
19105	return s
19106}
19107
19108// SetThingGroupName sets the ThingGroupName field's value.
19109func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
19110	s.ThingGroupName = &v
19111	return s
19112}
19113
19114type DeleteThingGroupOutput struct {
19115	_ struct{} `type:"structure"`
19116}
19117
19118// String returns the string representation
19119func (s DeleteThingGroupOutput) String() string {
19120	return awsutil.Prettify(s)
19121}
19122
19123// GoString returns the string representation
19124func (s DeleteThingGroupOutput) GoString() string {
19125	return s.String()
19126}
19127
19128// The input for the DeleteThing operation.
19129type DeleteThingInput struct {
19130	_ struct{} `type:"structure"`
19131
19132	// The expected version of the thing record in the registry. If the version
19133	// of the record in the registry does not match the expected version specified
19134	// in the request, the DeleteThing request is rejected with a VersionConflictException.
19135	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
19136
19137	// The name of the thing to delete.
19138	//
19139	// ThingName is a required field
19140	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
19141}
19142
19143// String returns the string representation
19144func (s DeleteThingInput) String() string {
19145	return awsutil.Prettify(s)
19146}
19147
19148// GoString returns the string representation
19149func (s DeleteThingInput) GoString() string {
19150	return s.String()
19151}
19152
19153// Validate inspects the fields of the type to determine if they are valid.
19154func (s *DeleteThingInput) Validate() error {
19155	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
19156	if s.ThingName == nil {
19157		invalidParams.Add(request.NewErrParamRequired("ThingName"))
19158	}
19159	if s.ThingName != nil && len(*s.ThingName) < 1 {
19160		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
19161	}
19162
19163	if invalidParams.Len() > 0 {
19164		return invalidParams
19165	}
19166	return nil
19167}
19168
19169// SetExpectedVersion sets the ExpectedVersion field's value.
19170func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
19171	s.ExpectedVersion = &v
19172	return s
19173}
19174
19175// SetThingName sets the ThingName field's value.
19176func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
19177	s.ThingName = &v
19178	return s
19179}
19180
19181// The output of the DeleteThing operation.
19182type DeleteThingOutput struct {
19183	_ struct{} `type:"structure"`
19184}
19185
19186// String returns the string representation
19187func (s DeleteThingOutput) String() string {
19188	return awsutil.Prettify(s)
19189}
19190
19191// GoString returns the string representation
19192func (s DeleteThingOutput) GoString() string {
19193	return s.String()
19194}
19195
19196// The input for the DeleteThingType operation.
19197type DeleteThingTypeInput struct {
19198	_ struct{} `type:"structure"`
19199
19200	// The name of the thing type.
19201	//
19202	// ThingTypeName is a required field
19203	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
19204}
19205
19206// String returns the string representation
19207func (s DeleteThingTypeInput) String() string {
19208	return awsutil.Prettify(s)
19209}
19210
19211// GoString returns the string representation
19212func (s DeleteThingTypeInput) GoString() string {
19213	return s.String()
19214}
19215
19216// Validate inspects the fields of the type to determine if they are valid.
19217func (s *DeleteThingTypeInput) Validate() error {
19218	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
19219	if s.ThingTypeName == nil {
19220		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
19221	}
19222	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
19223		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
19224	}
19225
19226	if invalidParams.Len() > 0 {
19227		return invalidParams
19228	}
19229	return nil
19230}
19231
19232// SetThingTypeName sets the ThingTypeName field's value.
19233func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
19234	s.ThingTypeName = &v
19235	return s
19236}
19237
19238// The output for the DeleteThingType operation.
19239type DeleteThingTypeOutput struct {
19240	_ struct{} `type:"structure"`
19241}
19242
19243// String returns the string representation
19244func (s DeleteThingTypeOutput) String() string {
19245	return awsutil.Prettify(s)
19246}
19247
19248// GoString returns the string representation
19249func (s DeleteThingTypeOutput) GoString() string {
19250	return s.String()
19251}
19252
19253// The input for the DeleteTopicRule operation.
19254type DeleteTopicRuleInput struct {
19255	_ struct{} `type:"structure"`
19256
19257	// The name of the rule.
19258	//
19259	// RuleName is a required field
19260	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
19261}
19262
19263// String returns the string representation
19264func (s DeleteTopicRuleInput) String() string {
19265	return awsutil.Prettify(s)
19266}
19267
19268// GoString returns the string representation
19269func (s DeleteTopicRuleInput) GoString() string {
19270	return s.String()
19271}
19272
19273// Validate inspects the fields of the type to determine if they are valid.
19274func (s *DeleteTopicRuleInput) Validate() error {
19275	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
19276	if s.RuleName == nil {
19277		invalidParams.Add(request.NewErrParamRequired("RuleName"))
19278	}
19279	if s.RuleName != nil && len(*s.RuleName) < 1 {
19280		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
19281	}
19282
19283	if invalidParams.Len() > 0 {
19284		return invalidParams
19285	}
19286	return nil
19287}
19288
19289// SetRuleName sets the RuleName field's value.
19290func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
19291	s.RuleName = &v
19292	return s
19293}
19294
19295type DeleteTopicRuleOutput struct {
19296	_ struct{} `type:"structure"`
19297}
19298
19299// String returns the string representation
19300func (s DeleteTopicRuleOutput) String() string {
19301	return awsutil.Prettify(s)
19302}
19303
19304// GoString returns the string representation
19305func (s DeleteTopicRuleOutput) GoString() string {
19306	return s.String()
19307}
19308
19309type DeleteV2LoggingLevelInput struct {
19310	_ struct{} `type:"structure"`
19311
19312	// The name of the resource for which you are configuring logging.
19313	//
19314	// TargetName is a required field
19315	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
19316
19317	// The type of resource for which you are configuring logging. Must be THING_Group.
19318	//
19319	// TargetType is a required field
19320	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
19321}
19322
19323// String returns the string representation
19324func (s DeleteV2LoggingLevelInput) String() string {
19325	return awsutil.Prettify(s)
19326}
19327
19328// GoString returns the string representation
19329func (s DeleteV2LoggingLevelInput) GoString() string {
19330	return s.String()
19331}
19332
19333// Validate inspects the fields of the type to determine if they are valid.
19334func (s *DeleteV2LoggingLevelInput) Validate() error {
19335	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
19336	if s.TargetName == nil {
19337		invalidParams.Add(request.NewErrParamRequired("TargetName"))
19338	}
19339	if s.TargetType == nil {
19340		invalidParams.Add(request.NewErrParamRequired("TargetType"))
19341	}
19342
19343	if invalidParams.Len() > 0 {
19344		return invalidParams
19345	}
19346	return nil
19347}
19348
19349// SetTargetName sets the TargetName field's value.
19350func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
19351	s.TargetName = &v
19352	return s
19353}
19354
19355// SetTargetType sets the TargetType field's value.
19356func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
19357	s.TargetType = &v
19358	return s
19359}
19360
19361type DeleteV2LoggingLevelOutput struct {
19362	_ struct{} `type:"structure"`
19363}
19364
19365// String returns the string representation
19366func (s DeleteV2LoggingLevelOutput) String() string {
19367	return awsutil.Prettify(s)
19368}
19369
19370// GoString returns the string representation
19371func (s DeleteV2LoggingLevelOutput) GoString() string {
19372	return s.String()
19373}
19374
19375// Contains information that denied the authorization.
19376type Denied struct {
19377	_ struct{} `type:"structure"`
19378
19379	// Information that explicitly denies the authorization.
19380	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
19381
19382	// Information that implicitly denies the authorization. When a policy doesn't
19383	// explicitly deny or allow an action on a resource it is considered an implicit
19384	// deny.
19385	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
19386}
19387
19388// String returns the string representation
19389func (s Denied) String() string {
19390	return awsutil.Prettify(s)
19391}
19392
19393// GoString returns the string representation
19394func (s Denied) GoString() string {
19395	return s.String()
19396}
19397
19398// SetExplicitDeny sets the ExplicitDeny field's value.
19399func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
19400	s.ExplicitDeny = v
19401	return s
19402}
19403
19404// SetImplicitDeny sets the ImplicitDeny field's value.
19405func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
19406	s.ImplicitDeny = v
19407	return s
19408}
19409
19410// The input for the DeprecateThingType operation.
19411type DeprecateThingTypeInput struct {
19412	_ struct{} `type:"structure"`
19413
19414	// The name of the thing type to deprecate.
19415	//
19416	// ThingTypeName is a required field
19417	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
19418
19419	// Whether to undeprecate a deprecated thing type. If true, the thing type will
19420	// not be deprecated anymore and you can associate it with things.
19421	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
19422}
19423
19424// String returns the string representation
19425func (s DeprecateThingTypeInput) String() string {
19426	return awsutil.Prettify(s)
19427}
19428
19429// GoString returns the string representation
19430func (s DeprecateThingTypeInput) GoString() string {
19431	return s.String()
19432}
19433
19434// Validate inspects the fields of the type to determine if they are valid.
19435func (s *DeprecateThingTypeInput) Validate() error {
19436	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
19437	if s.ThingTypeName == nil {
19438		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
19439	}
19440	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
19441		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
19442	}
19443
19444	if invalidParams.Len() > 0 {
19445		return invalidParams
19446	}
19447	return nil
19448}
19449
19450// SetThingTypeName sets the ThingTypeName field's value.
19451func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
19452	s.ThingTypeName = &v
19453	return s
19454}
19455
19456// SetUndoDeprecate sets the UndoDeprecate field's value.
19457func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
19458	s.UndoDeprecate = &v
19459	return s
19460}
19461
19462// The output for the DeprecateThingType operation.
19463type DeprecateThingTypeOutput struct {
19464	_ struct{} `type:"structure"`
19465}
19466
19467// String returns the string representation
19468func (s DeprecateThingTypeOutput) String() string {
19469	return awsutil.Prettify(s)
19470}
19471
19472// GoString returns the string representation
19473func (s DeprecateThingTypeOutput) GoString() string {
19474	return s.String()
19475}
19476
19477type DescribeAccountAuditConfigurationInput struct {
19478	_ struct{} `type:"structure"`
19479}
19480
19481// String returns the string representation
19482func (s DescribeAccountAuditConfigurationInput) String() string {
19483	return awsutil.Prettify(s)
19484}
19485
19486// GoString returns the string representation
19487func (s DescribeAccountAuditConfigurationInput) GoString() string {
19488	return s.String()
19489}
19490
19491type DescribeAccountAuditConfigurationOutput struct {
19492	_ struct{} `type:"structure"`
19493
19494	// Which audit checks are enabled and disabled for this account.
19495	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
19496
19497	// Information about the targets to which audit notifications are sent for this
19498	// account.
19499	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
19500
19501	// The ARN of the role that grants permission to AWS IoT to access information
19502	// about your devices, policies, certificates and other items as necessary when
19503	// performing an audit.
19504	//
19505	// On the first call to UpdateAccountAuditConfiguration this parameter is required.
19506	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
19507}
19508
19509// String returns the string representation
19510func (s DescribeAccountAuditConfigurationOutput) String() string {
19511	return awsutil.Prettify(s)
19512}
19513
19514// GoString returns the string representation
19515func (s DescribeAccountAuditConfigurationOutput) GoString() string {
19516	return s.String()
19517}
19518
19519// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
19520func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
19521	s.AuditCheckConfigurations = v
19522	return s
19523}
19524
19525// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
19526func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
19527	s.AuditNotificationTargetConfigurations = v
19528	return s
19529}
19530
19531// SetRoleArn sets the RoleArn field's value.
19532func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
19533	s.RoleArn = &v
19534	return s
19535}
19536
19537type DescribeAuditTaskInput struct {
19538	_ struct{} `type:"structure"`
19539
19540	// The ID of the audit whose information you want to get.
19541	//
19542	// TaskId is a required field
19543	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
19544}
19545
19546// String returns the string representation
19547func (s DescribeAuditTaskInput) String() string {
19548	return awsutil.Prettify(s)
19549}
19550
19551// GoString returns the string representation
19552func (s DescribeAuditTaskInput) GoString() string {
19553	return s.String()
19554}
19555
19556// Validate inspects the fields of the type to determine if they are valid.
19557func (s *DescribeAuditTaskInput) Validate() error {
19558	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
19559	if s.TaskId == nil {
19560		invalidParams.Add(request.NewErrParamRequired("TaskId"))
19561	}
19562	if s.TaskId != nil && len(*s.TaskId) < 1 {
19563		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
19564	}
19565
19566	if invalidParams.Len() > 0 {
19567		return invalidParams
19568	}
19569	return nil
19570}
19571
19572// SetTaskId sets the TaskId field's value.
19573func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
19574	s.TaskId = &v
19575	return s
19576}
19577
19578type DescribeAuditTaskOutput struct {
19579	_ struct{} `type:"structure"`
19580
19581	// Detailed information about each check performed during this audit.
19582	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
19583
19584	// The name of the scheduled audit (only if the audit was a scheduled audit).
19585	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
19586
19587	// The time the audit started.
19588	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
19589
19590	// Statistical information about the audit.
19591	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
19592
19593	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
19594	// "CANCELED".
19595	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
19596
19597	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
19598	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
19599}
19600
19601// String returns the string representation
19602func (s DescribeAuditTaskOutput) String() string {
19603	return awsutil.Prettify(s)
19604}
19605
19606// GoString returns the string representation
19607func (s DescribeAuditTaskOutput) GoString() string {
19608	return s.String()
19609}
19610
19611// SetAuditDetails sets the AuditDetails field's value.
19612func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
19613	s.AuditDetails = v
19614	return s
19615}
19616
19617// SetScheduledAuditName sets the ScheduledAuditName field's value.
19618func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
19619	s.ScheduledAuditName = &v
19620	return s
19621}
19622
19623// SetTaskStartTime sets the TaskStartTime field's value.
19624func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
19625	s.TaskStartTime = &v
19626	return s
19627}
19628
19629// SetTaskStatistics sets the TaskStatistics field's value.
19630func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
19631	s.TaskStatistics = v
19632	return s
19633}
19634
19635// SetTaskStatus sets the TaskStatus field's value.
19636func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
19637	s.TaskStatus = &v
19638	return s
19639}
19640
19641// SetTaskType sets the TaskType field's value.
19642func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
19643	s.TaskType = &v
19644	return s
19645}
19646
19647type DescribeAuthorizerInput struct {
19648	_ struct{} `type:"structure"`
19649
19650	// The name of the authorizer to describe.
19651	//
19652	// AuthorizerName is a required field
19653	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
19654}
19655
19656// String returns the string representation
19657func (s DescribeAuthorizerInput) String() string {
19658	return awsutil.Prettify(s)
19659}
19660
19661// GoString returns the string representation
19662func (s DescribeAuthorizerInput) GoString() string {
19663	return s.String()
19664}
19665
19666// Validate inspects the fields of the type to determine if they are valid.
19667func (s *DescribeAuthorizerInput) Validate() error {
19668	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
19669	if s.AuthorizerName == nil {
19670		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
19671	}
19672	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
19673		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
19674	}
19675
19676	if invalidParams.Len() > 0 {
19677		return invalidParams
19678	}
19679	return nil
19680}
19681
19682// SetAuthorizerName sets the AuthorizerName field's value.
19683func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
19684	s.AuthorizerName = &v
19685	return s
19686}
19687
19688type DescribeAuthorizerOutput struct {
19689	_ struct{} `type:"structure"`
19690
19691	// The authorizer description.
19692	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
19693}
19694
19695// String returns the string representation
19696func (s DescribeAuthorizerOutput) String() string {
19697	return awsutil.Prettify(s)
19698}
19699
19700// GoString returns the string representation
19701func (s DescribeAuthorizerOutput) GoString() string {
19702	return s.String()
19703}
19704
19705// SetAuthorizerDescription sets the AuthorizerDescription field's value.
19706func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
19707	s.AuthorizerDescription = v
19708	return s
19709}
19710
19711// The input for the DescribeCACertificate operation.
19712type DescribeCACertificateInput struct {
19713	_ struct{} `type:"structure"`
19714
19715	// The CA certificate identifier.
19716	//
19717	// CertificateId is a required field
19718	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
19719}
19720
19721// String returns the string representation
19722func (s DescribeCACertificateInput) String() string {
19723	return awsutil.Prettify(s)
19724}
19725
19726// GoString returns the string representation
19727func (s DescribeCACertificateInput) GoString() string {
19728	return s.String()
19729}
19730
19731// Validate inspects the fields of the type to determine if they are valid.
19732func (s *DescribeCACertificateInput) Validate() error {
19733	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
19734	if s.CertificateId == nil {
19735		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
19736	}
19737	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
19738		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
19739	}
19740
19741	if invalidParams.Len() > 0 {
19742		return invalidParams
19743	}
19744	return nil
19745}
19746
19747// SetCertificateId sets the CertificateId field's value.
19748func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
19749	s.CertificateId = &v
19750	return s
19751}
19752
19753// The output from the DescribeCACertificate operation.
19754type DescribeCACertificateOutput struct {
19755	_ struct{} `type:"structure"`
19756
19757	// The CA certificate description.
19758	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
19759
19760	// Information about the registration configuration.
19761	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
19762}
19763
19764// String returns the string representation
19765func (s DescribeCACertificateOutput) String() string {
19766	return awsutil.Prettify(s)
19767}
19768
19769// GoString returns the string representation
19770func (s DescribeCACertificateOutput) GoString() string {
19771	return s.String()
19772}
19773
19774// SetCertificateDescription sets the CertificateDescription field's value.
19775func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
19776	s.CertificateDescription = v
19777	return s
19778}
19779
19780// SetRegistrationConfig sets the RegistrationConfig field's value.
19781func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
19782	s.RegistrationConfig = v
19783	return s
19784}
19785
19786// The input for the DescribeCertificate operation.
19787type DescribeCertificateInput struct {
19788	_ struct{} `type:"structure"`
19789
19790	// The ID of the certificate. (The last part of the certificate ARN contains
19791	// the certificate ID.)
19792	//
19793	// CertificateId is a required field
19794	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
19795}
19796
19797// String returns the string representation
19798func (s DescribeCertificateInput) String() string {
19799	return awsutil.Prettify(s)
19800}
19801
19802// GoString returns the string representation
19803func (s DescribeCertificateInput) GoString() string {
19804	return s.String()
19805}
19806
19807// Validate inspects the fields of the type to determine if they are valid.
19808func (s *DescribeCertificateInput) Validate() error {
19809	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
19810	if s.CertificateId == nil {
19811		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
19812	}
19813	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
19814		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
19815	}
19816
19817	if invalidParams.Len() > 0 {
19818		return invalidParams
19819	}
19820	return nil
19821}
19822
19823// SetCertificateId sets the CertificateId field's value.
19824func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
19825	s.CertificateId = &v
19826	return s
19827}
19828
19829// The output of the DescribeCertificate operation.
19830type DescribeCertificateOutput struct {
19831	_ struct{} `type:"structure"`
19832
19833	// The description of the certificate.
19834	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
19835}
19836
19837// String returns the string representation
19838func (s DescribeCertificateOutput) String() string {
19839	return awsutil.Prettify(s)
19840}
19841
19842// GoString returns the string representation
19843func (s DescribeCertificateOutput) GoString() string {
19844	return s.String()
19845}
19846
19847// SetCertificateDescription sets the CertificateDescription field's value.
19848func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
19849	s.CertificateDescription = v
19850	return s
19851}
19852
19853type DescribeDefaultAuthorizerInput struct {
19854	_ struct{} `type:"structure"`
19855}
19856
19857// String returns the string representation
19858func (s DescribeDefaultAuthorizerInput) String() string {
19859	return awsutil.Prettify(s)
19860}
19861
19862// GoString returns the string representation
19863func (s DescribeDefaultAuthorizerInput) GoString() string {
19864	return s.String()
19865}
19866
19867type DescribeDefaultAuthorizerOutput struct {
19868	_ struct{} `type:"structure"`
19869
19870	// The default authorizer's description.
19871	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
19872}
19873
19874// String returns the string representation
19875func (s DescribeDefaultAuthorizerOutput) String() string {
19876	return awsutil.Prettify(s)
19877}
19878
19879// GoString returns the string representation
19880func (s DescribeDefaultAuthorizerOutput) GoString() string {
19881	return s.String()
19882}
19883
19884// SetAuthorizerDescription sets the AuthorizerDescription field's value.
19885func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
19886	s.AuthorizerDescription = v
19887	return s
19888}
19889
19890// The input for the DescribeEndpoint operation.
19891type DescribeEndpointInput struct {
19892	_ struct{} `type:"structure"`
19893
19894	// The endpoint type.
19895	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
19896}
19897
19898// String returns the string representation
19899func (s DescribeEndpointInput) String() string {
19900	return awsutil.Prettify(s)
19901}
19902
19903// GoString returns the string representation
19904func (s DescribeEndpointInput) GoString() string {
19905	return s.String()
19906}
19907
19908// SetEndpointType sets the EndpointType field's value.
19909func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
19910	s.EndpointType = &v
19911	return s
19912}
19913
19914// The output from the DescribeEndpoint operation.
19915type DescribeEndpointOutput struct {
19916	_ struct{} `type:"structure"`
19917
19918	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
19919	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
19920}
19921
19922// String returns the string representation
19923func (s DescribeEndpointOutput) String() string {
19924	return awsutil.Prettify(s)
19925}
19926
19927// GoString returns the string representation
19928func (s DescribeEndpointOutput) GoString() string {
19929	return s.String()
19930}
19931
19932// SetEndpointAddress sets the EndpointAddress field's value.
19933func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
19934	s.EndpointAddress = &v
19935	return s
19936}
19937
19938type DescribeEventConfigurationsInput struct {
19939	_ struct{} `type:"structure"`
19940}
19941
19942// String returns the string representation
19943func (s DescribeEventConfigurationsInput) String() string {
19944	return awsutil.Prettify(s)
19945}
19946
19947// GoString returns the string representation
19948func (s DescribeEventConfigurationsInput) GoString() string {
19949	return s.String()
19950}
19951
19952type DescribeEventConfigurationsOutput struct {
19953	_ struct{} `type:"structure"`
19954
19955	// The creation date of the event configuration.
19956	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
19957
19958	// The event configurations.
19959	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
19960
19961	// The date the event configurations were last modified.
19962	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
19963}
19964
19965// String returns the string representation
19966func (s DescribeEventConfigurationsOutput) String() string {
19967	return awsutil.Prettify(s)
19968}
19969
19970// GoString returns the string representation
19971func (s DescribeEventConfigurationsOutput) GoString() string {
19972	return s.String()
19973}
19974
19975// SetCreationDate sets the CreationDate field's value.
19976func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
19977	s.CreationDate = &v
19978	return s
19979}
19980
19981// SetEventConfigurations sets the EventConfigurations field's value.
19982func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
19983	s.EventConfigurations = v
19984	return s
19985}
19986
19987// SetLastModifiedDate sets the LastModifiedDate field's value.
19988func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
19989	s.LastModifiedDate = &v
19990	return s
19991}
19992
19993type DescribeIndexInput struct {
19994	_ struct{} `type:"structure"`
19995
19996	// The index name.
19997	//
19998	// IndexName is a required field
19999	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
20000}
20001
20002// String returns the string representation
20003func (s DescribeIndexInput) String() string {
20004	return awsutil.Prettify(s)
20005}
20006
20007// GoString returns the string representation
20008func (s DescribeIndexInput) GoString() string {
20009	return s.String()
20010}
20011
20012// Validate inspects the fields of the type to determine if they are valid.
20013func (s *DescribeIndexInput) Validate() error {
20014	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
20015	if s.IndexName == nil {
20016		invalidParams.Add(request.NewErrParamRequired("IndexName"))
20017	}
20018	if s.IndexName != nil && len(*s.IndexName) < 1 {
20019		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
20020	}
20021
20022	if invalidParams.Len() > 0 {
20023		return invalidParams
20024	}
20025	return nil
20026}
20027
20028// SetIndexName sets the IndexName field's value.
20029func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
20030	s.IndexName = &v
20031	return s
20032}
20033
20034type DescribeIndexOutput struct {
20035	_ struct{} `type:"structure"`
20036
20037	// The index name.
20038	IndexName *string `locationName:"indexName" min:"1" type:"string"`
20039
20040	// The index status.
20041	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
20042
20043	// Contains a value that specifies the type of indexing performed. Valid values
20044	// are:
20045	//
20046	// REGISTRY – Your thing index will contain only registry data.
20047	//
20048	// REGISTRY_AND_SHADOW - Your thing index will contain registry and shadow data.
20049	Schema *string `locationName:"schema" type:"string"`
20050}
20051
20052// String returns the string representation
20053func (s DescribeIndexOutput) String() string {
20054	return awsutil.Prettify(s)
20055}
20056
20057// GoString returns the string representation
20058func (s DescribeIndexOutput) GoString() string {
20059	return s.String()
20060}
20061
20062// SetIndexName sets the IndexName field's value.
20063func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
20064	s.IndexName = &v
20065	return s
20066}
20067
20068// SetIndexStatus sets the IndexStatus field's value.
20069func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
20070	s.IndexStatus = &v
20071	return s
20072}
20073
20074// SetSchema sets the Schema field's value.
20075func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
20076	s.Schema = &v
20077	return s
20078}
20079
20080type DescribeJobExecutionInput struct {
20081	_ struct{} `type:"structure"`
20082
20083	// A string (consisting of the digits "0" through "9" which is used to specify
20084	// a particular job execution on a particular device.
20085	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
20086
20087	// The unique identifier you assigned to this job when it was created.
20088	//
20089	// JobId is a required field
20090	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
20091
20092	// The name of the thing on which the job execution is running.
20093	//
20094	// ThingName is a required field
20095	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
20096}
20097
20098// String returns the string representation
20099func (s DescribeJobExecutionInput) String() string {
20100	return awsutil.Prettify(s)
20101}
20102
20103// GoString returns the string representation
20104func (s DescribeJobExecutionInput) GoString() string {
20105	return s.String()
20106}
20107
20108// Validate inspects the fields of the type to determine if they are valid.
20109func (s *DescribeJobExecutionInput) Validate() error {
20110	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
20111	if s.JobId == nil {
20112		invalidParams.Add(request.NewErrParamRequired("JobId"))
20113	}
20114	if s.JobId != nil && len(*s.JobId) < 1 {
20115		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
20116	}
20117	if s.ThingName == nil {
20118		invalidParams.Add(request.NewErrParamRequired("ThingName"))
20119	}
20120	if s.ThingName != nil && len(*s.ThingName) < 1 {
20121		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
20122	}
20123
20124	if invalidParams.Len() > 0 {
20125		return invalidParams
20126	}
20127	return nil
20128}
20129
20130// SetExecutionNumber sets the ExecutionNumber field's value.
20131func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
20132	s.ExecutionNumber = &v
20133	return s
20134}
20135
20136// SetJobId sets the JobId field's value.
20137func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
20138	s.JobId = &v
20139	return s
20140}
20141
20142// SetThingName sets the ThingName field's value.
20143func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
20144	s.ThingName = &v
20145	return s
20146}
20147
20148type DescribeJobExecutionOutput struct {
20149	_ struct{} `type:"structure"`
20150
20151	// Information about the job execution.
20152	Execution *JobExecution `locationName:"execution" type:"structure"`
20153}
20154
20155// String returns the string representation
20156func (s DescribeJobExecutionOutput) String() string {
20157	return awsutil.Prettify(s)
20158}
20159
20160// GoString returns the string representation
20161func (s DescribeJobExecutionOutput) GoString() string {
20162	return s.String()
20163}
20164
20165// SetExecution sets the Execution field's value.
20166func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
20167	s.Execution = v
20168	return s
20169}
20170
20171type DescribeJobInput struct {
20172	_ struct{} `type:"structure"`
20173
20174	// The unique identifier you assigned to this job when it was created.
20175	//
20176	// JobId is a required field
20177	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
20178}
20179
20180// String returns the string representation
20181func (s DescribeJobInput) String() string {
20182	return awsutil.Prettify(s)
20183}
20184
20185// GoString returns the string representation
20186func (s DescribeJobInput) GoString() string {
20187	return s.String()
20188}
20189
20190// Validate inspects the fields of the type to determine if they are valid.
20191func (s *DescribeJobInput) Validate() error {
20192	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
20193	if s.JobId == nil {
20194		invalidParams.Add(request.NewErrParamRequired("JobId"))
20195	}
20196	if s.JobId != nil && len(*s.JobId) < 1 {
20197		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
20198	}
20199
20200	if invalidParams.Len() > 0 {
20201		return invalidParams
20202	}
20203	return nil
20204}
20205
20206// SetJobId sets the JobId field's value.
20207func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
20208	s.JobId = &v
20209	return s
20210}
20211
20212type DescribeJobOutput struct {
20213	_ struct{} `type:"structure"`
20214
20215	// An S3 link to the job document.
20216	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
20217
20218	// Information about the job.
20219	Job *Job `locationName:"job" type:"structure"`
20220}
20221
20222// String returns the string representation
20223func (s DescribeJobOutput) String() string {
20224	return awsutil.Prettify(s)
20225}
20226
20227// GoString returns the string representation
20228func (s DescribeJobOutput) GoString() string {
20229	return s.String()
20230}
20231
20232// SetDocumentSource sets the DocumentSource field's value.
20233func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
20234	s.DocumentSource = &v
20235	return s
20236}
20237
20238// SetJob sets the Job field's value.
20239func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
20240	s.Job = v
20241	return s
20242}
20243
20244type DescribeRoleAliasInput struct {
20245	_ struct{} `type:"structure"`
20246
20247	// The role alias to describe.
20248	//
20249	// RoleAlias is a required field
20250	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
20251}
20252
20253// String returns the string representation
20254func (s DescribeRoleAliasInput) String() string {
20255	return awsutil.Prettify(s)
20256}
20257
20258// GoString returns the string representation
20259func (s DescribeRoleAliasInput) GoString() string {
20260	return s.String()
20261}
20262
20263// Validate inspects the fields of the type to determine if they are valid.
20264func (s *DescribeRoleAliasInput) Validate() error {
20265	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
20266	if s.RoleAlias == nil {
20267		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
20268	}
20269	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
20270		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
20271	}
20272
20273	if invalidParams.Len() > 0 {
20274		return invalidParams
20275	}
20276	return nil
20277}
20278
20279// SetRoleAlias sets the RoleAlias field's value.
20280func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
20281	s.RoleAlias = &v
20282	return s
20283}
20284
20285type DescribeRoleAliasOutput struct {
20286	_ struct{} `type:"structure"`
20287
20288	// The role alias description.
20289	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
20290}
20291
20292// String returns the string representation
20293func (s DescribeRoleAliasOutput) String() string {
20294	return awsutil.Prettify(s)
20295}
20296
20297// GoString returns the string representation
20298func (s DescribeRoleAliasOutput) GoString() string {
20299	return s.String()
20300}
20301
20302// SetRoleAliasDescription sets the RoleAliasDescription field's value.
20303func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
20304	s.RoleAliasDescription = v
20305	return s
20306}
20307
20308type DescribeScheduledAuditInput struct {
20309	_ struct{} `type:"structure"`
20310
20311	// The name of the scheduled audit whose information you want to get.
20312	//
20313	// ScheduledAuditName is a required field
20314	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
20315}
20316
20317// String returns the string representation
20318func (s DescribeScheduledAuditInput) String() string {
20319	return awsutil.Prettify(s)
20320}
20321
20322// GoString returns the string representation
20323func (s DescribeScheduledAuditInput) GoString() string {
20324	return s.String()
20325}
20326
20327// Validate inspects the fields of the type to determine if they are valid.
20328func (s *DescribeScheduledAuditInput) Validate() error {
20329	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
20330	if s.ScheduledAuditName == nil {
20331		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
20332	}
20333	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
20334		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
20335	}
20336
20337	if invalidParams.Len() > 0 {
20338		return invalidParams
20339	}
20340	return nil
20341}
20342
20343// SetScheduledAuditName sets the ScheduledAuditName field's value.
20344func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
20345	s.ScheduledAuditName = &v
20346	return s
20347}
20348
20349type DescribeScheduledAuditOutput struct {
20350	_ struct{} `type:"structure"`
20351
20352	// The day of the month on which the scheduled audit takes place. Will be "1"
20353	// through "31" or "LAST". If days 29-31 are specified, and the month does not
20354	// have that many days, the audit takes place on the "LAST" day of the month.
20355	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
20356
20357	// The day of the week on which the scheduled audit takes place. One of "SUN",
20358	// "MON", "TUE", "WED", "THU", "FRI" or "SAT".
20359	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
20360
20361	// How often the scheduled audit takes place. One of "DAILY", "WEEKLY", "BIWEEKLY"
20362	// or "MONTHLY". The actual start time of each audit is determined by the system.
20363	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
20364
20365	// The ARN of the scheduled audit.
20366	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
20367
20368	// The name of the scheduled audit.
20369	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
20370
20371	// Which checks are performed during the scheduled audit. (Note that checks
20372	// must be enabled for your account. (Use DescribeAccountAuditConfiguration
20373	// to see the list of all checks including those that are enabled or UpdateAccountAuditConfiguration
20374	// to select which checks are enabled.)
20375	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
20376}
20377
20378// String returns the string representation
20379func (s DescribeScheduledAuditOutput) String() string {
20380	return awsutil.Prettify(s)
20381}
20382
20383// GoString returns the string representation
20384func (s DescribeScheduledAuditOutput) GoString() string {
20385	return s.String()
20386}
20387
20388// SetDayOfMonth sets the DayOfMonth field's value.
20389func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
20390	s.DayOfMonth = &v
20391	return s
20392}
20393
20394// SetDayOfWeek sets the DayOfWeek field's value.
20395func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
20396	s.DayOfWeek = &v
20397	return s
20398}
20399
20400// SetFrequency sets the Frequency field's value.
20401func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
20402	s.Frequency = &v
20403	return s
20404}
20405
20406// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
20407func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
20408	s.ScheduledAuditArn = &v
20409	return s
20410}
20411
20412// SetScheduledAuditName sets the ScheduledAuditName field's value.
20413func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
20414	s.ScheduledAuditName = &v
20415	return s
20416}
20417
20418// SetTargetCheckNames sets the TargetCheckNames field's value.
20419func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
20420	s.TargetCheckNames = v
20421	return s
20422}
20423
20424type DescribeSecurityProfileInput struct {
20425	_ struct{} `type:"structure"`
20426
20427	// The name of the security profile whose information you want to get.
20428	//
20429	// SecurityProfileName is a required field
20430	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
20431}
20432
20433// String returns the string representation
20434func (s DescribeSecurityProfileInput) String() string {
20435	return awsutil.Prettify(s)
20436}
20437
20438// GoString returns the string representation
20439func (s DescribeSecurityProfileInput) GoString() string {
20440	return s.String()
20441}
20442
20443// Validate inspects the fields of the type to determine if they are valid.
20444func (s *DescribeSecurityProfileInput) Validate() error {
20445	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
20446	if s.SecurityProfileName == nil {
20447		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
20448	}
20449	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
20450		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
20451	}
20452
20453	if invalidParams.Len() > 0 {
20454		return invalidParams
20455	}
20456	return nil
20457}
20458
20459// SetSecurityProfileName sets the SecurityProfileName field's value.
20460func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
20461	s.SecurityProfileName = &v
20462	return s
20463}
20464
20465type DescribeSecurityProfileOutput struct {
20466	_ struct{} `type:"structure"`
20467
20468	// Where the alerts are sent. (Alerts are always sent to the console.)
20469	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
20470
20471	// Specifies the behaviors that, when violated by a device (thing), cause an
20472	// alert.
20473	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
20474
20475	// The time the security profile was created.
20476	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
20477
20478	// The time the security profile was last modified.
20479	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
20480
20481	// The ARN of the security profile.
20482	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
20483
20484	// A description of the security profile (associated with the security profile
20485	// when it was created or updated).
20486	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
20487
20488	// The name of the security profile.
20489	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
20490
20491	// The version of the security profile. A new version is generated whenever
20492	// the security profile is updated.
20493	Version *int64 `locationName:"version" type:"long"`
20494}
20495
20496// String returns the string representation
20497func (s DescribeSecurityProfileOutput) String() string {
20498	return awsutil.Prettify(s)
20499}
20500
20501// GoString returns the string representation
20502func (s DescribeSecurityProfileOutput) GoString() string {
20503	return s.String()
20504}
20505
20506// SetAlertTargets sets the AlertTargets field's value.
20507func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
20508	s.AlertTargets = v
20509	return s
20510}
20511
20512// SetBehaviors sets the Behaviors field's value.
20513func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
20514	s.Behaviors = v
20515	return s
20516}
20517
20518// SetCreationDate sets the CreationDate field's value.
20519func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
20520	s.CreationDate = &v
20521	return s
20522}
20523
20524// SetLastModifiedDate sets the LastModifiedDate field's value.
20525func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
20526	s.LastModifiedDate = &v
20527	return s
20528}
20529
20530// SetSecurityProfileArn sets the SecurityProfileArn field's value.
20531func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
20532	s.SecurityProfileArn = &v
20533	return s
20534}
20535
20536// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
20537func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
20538	s.SecurityProfileDescription = &v
20539	return s
20540}
20541
20542// SetSecurityProfileName sets the SecurityProfileName field's value.
20543func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
20544	s.SecurityProfileName = &v
20545	return s
20546}
20547
20548// SetVersion sets the Version field's value.
20549func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
20550	s.Version = &v
20551	return s
20552}
20553
20554type DescribeStreamInput struct {
20555	_ struct{} `type:"structure"`
20556
20557	// The stream ID.
20558	//
20559	// StreamId is a required field
20560	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
20561}
20562
20563// String returns the string representation
20564func (s DescribeStreamInput) String() string {
20565	return awsutil.Prettify(s)
20566}
20567
20568// GoString returns the string representation
20569func (s DescribeStreamInput) GoString() string {
20570	return s.String()
20571}
20572
20573// Validate inspects the fields of the type to determine if they are valid.
20574func (s *DescribeStreamInput) Validate() error {
20575	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
20576	if s.StreamId == nil {
20577		invalidParams.Add(request.NewErrParamRequired("StreamId"))
20578	}
20579	if s.StreamId != nil && len(*s.StreamId) < 1 {
20580		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
20581	}
20582
20583	if invalidParams.Len() > 0 {
20584		return invalidParams
20585	}
20586	return nil
20587}
20588
20589// SetStreamId sets the StreamId field's value.
20590func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
20591	s.StreamId = &v
20592	return s
20593}
20594
20595type DescribeStreamOutput struct {
20596	_ struct{} `type:"structure"`
20597
20598	// Information about the stream.
20599	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
20600}
20601
20602// String returns the string representation
20603func (s DescribeStreamOutput) String() string {
20604	return awsutil.Prettify(s)
20605}
20606
20607// GoString returns the string representation
20608func (s DescribeStreamOutput) GoString() string {
20609	return s.String()
20610}
20611
20612// SetStreamInfo sets the StreamInfo field's value.
20613func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
20614	s.StreamInfo = v
20615	return s
20616}
20617
20618type DescribeThingGroupInput struct {
20619	_ struct{} `type:"structure"`
20620
20621	// The name of the thing group.
20622	//
20623	// ThingGroupName is a required field
20624	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
20625}
20626
20627// String returns the string representation
20628func (s DescribeThingGroupInput) String() string {
20629	return awsutil.Prettify(s)
20630}
20631
20632// GoString returns the string representation
20633func (s DescribeThingGroupInput) GoString() string {
20634	return s.String()
20635}
20636
20637// Validate inspects the fields of the type to determine if they are valid.
20638func (s *DescribeThingGroupInput) Validate() error {
20639	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
20640	if s.ThingGroupName == nil {
20641		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
20642	}
20643	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
20644		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
20645	}
20646
20647	if invalidParams.Len() > 0 {
20648		return invalidParams
20649	}
20650	return nil
20651}
20652
20653// SetThingGroupName sets the ThingGroupName field's value.
20654func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
20655	s.ThingGroupName = &v
20656	return s
20657}
20658
20659type DescribeThingGroupOutput struct {
20660	_ struct{} `type:"structure"`
20661
20662	// The thing group ARN.
20663	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
20664
20665	// The thing group ID.
20666	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
20667
20668	// Thing group metadata.
20669	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
20670
20671	// The name of the thing group.
20672	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
20673
20674	// The thing group properties.
20675	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
20676
20677	// The version of the thing group.
20678	Version *int64 `locationName:"version" type:"long"`
20679}
20680
20681// String returns the string representation
20682func (s DescribeThingGroupOutput) String() string {
20683	return awsutil.Prettify(s)
20684}
20685
20686// GoString returns the string representation
20687func (s DescribeThingGroupOutput) GoString() string {
20688	return s.String()
20689}
20690
20691// SetThingGroupArn sets the ThingGroupArn field's value.
20692func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
20693	s.ThingGroupArn = &v
20694	return s
20695}
20696
20697// SetThingGroupId sets the ThingGroupId field's value.
20698func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
20699	s.ThingGroupId = &v
20700	return s
20701}
20702
20703// SetThingGroupMetadata sets the ThingGroupMetadata field's value.
20704func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
20705	s.ThingGroupMetadata = v
20706	return s
20707}
20708
20709// SetThingGroupName sets the ThingGroupName field's value.
20710func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
20711	s.ThingGroupName = &v
20712	return s
20713}
20714
20715// SetThingGroupProperties sets the ThingGroupProperties field's value.
20716func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
20717	s.ThingGroupProperties = v
20718	return s
20719}
20720
20721// SetVersion sets the Version field's value.
20722func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
20723	s.Version = &v
20724	return s
20725}
20726
20727// The input for the DescribeThing operation.
20728type DescribeThingInput struct {
20729	_ struct{} `type:"structure"`
20730
20731	// The name of the thing.
20732	//
20733	// ThingName is a required field
20734	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
20735}
20736
20737// String returns the string representation
20738func (s DescribeThingInput) String() string {
20739	return awsutil.Prettify(s)
20740}
20741
20742// GoString returns the string representation
20743func (s DescribeThingInput) GoString() string {
20744	return s.String()
20745}
20746
20747// Validate inspects the fields of the type to determine if they are valid.
20748func (s *DescribeThingInput) Validate() error {
20749	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
20750	if s.ThingName == nil {
20751		invalidParams.Add(request.NewErrParamRequired("ThingName"))
20752	}
20753	if s.ThingName != nil && len(*s.ThingName) < 1 {
20754		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
20755	}
20756
20757	if invalidParams.Len() > 0 {
20758		return invalidParams
20759	}
20760	return nil
20761}
20762
20763// SetThingName sets the ThingName field's value.
20764func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
20765	s.ThingName = &v
20766	return s
20767}
20768
20769// The output from the DescribeThing operation.
20770type DescribeThingOutput struct {
20771	_ struct{} `type:"structure"`
20772
20773	// The thing attributes.
20774	Attributes map[string]*string `locationName:"attributes" type:"map"`
20775
20776	// The default client ID.
20777	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
20778
20779	// The ARN of the thing to describe.
20780	ThingArn *string `locationName:"thingArn" type:"string"`
20781
20782	// The ID of the thing to describe.
20783	ThingId *string `locationName:"thingId" type:"string"`
20784
20785	// The name of the thing.
20786	ThingName *string `locationName:"thingName" min:"1" type:"string"`
20787
20788	// The thing type name.
20789	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
20790
20791	// The current version of the thing record in the registry.
20792	//
20793	// To avoid unintentional changes to the information in the registry, you can
20794	// pass the version information in the expectedVersion parameter of the UpdateThing
20795	// and DeleteThing calls.
20796	Version *int64 `locationName:"version" type:"long"`
20797}
20798
20799// String returns the string representation
20800func (s DescribeThingOutput) String() string {
20801	return awsutil.Prettify(s)
20802}
20803
20804// GoString returns the string representation
20805func (s DescribeThingOutput) GoString() string {
20806	return s.String()
20807}
20808
20809// SetAttributes sets the Attributes field's value.
20810func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
20811	s.Attributes = v
20812	return s
20813}
20814
20815// SetDefaultClientId sets the DefaultClientId field's value.
20816func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
20817	s.DefaultClientId = &v
20818	return s
20819}
20820
20821// SetThingArn sets the ThingArn field's value.
20822func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
20823	s.ThingArn = &v
20824	return s
20825}
20826
20827// SetThingId sets the ThingId field's value.
20828func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
20829	s.ThingId = &v
20830	return s
20831}
20832
20833// SetThingName sets the ThingName field's value.
20834func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
20835	s.ThingName = &v
20836	return s
20837}
20838
20839// SetThingTypeName sets the ThingTypeName field's value.
20840func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
20841	s.ThingTypeName = &v
20842	return s
20843}
20844
20845// SetVersion sets the Version field's value.
20846func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
20847	s.Version = &v
20848	return s
20849}
20850
20851type DescribeThingRegistrationTaskInput struct {
20852	_ struct{} `type:"structure"`
20853
20854	// The task ID.
20855	//
20856	// TaskId is a required field
20857	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
20858}
20859
20860// String returns the string representation
20861func (s DescribeThingRegistrationTaskInput) String() string {
20862	return awsutil.Prettify(s)
20863}
20864
20865// GoString returns the string representation
20866func (s DescribeThingRegistrationTaskInput) GoString() string {
20867	return s.String()
20868}
20869
20870// Validate inspects the fields of the type to determine if they are valid.
20871func (s *DescribeThingRegistrationTaskInput) Validate() error {
20872	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
20873	if s.TaskId == nil {
20874		invalidParams.Add(request.NewErrParamRequired("TaskId"))
20875	}
20876
20877	if invalidParams.Len() > 0 {
20878		return invalidParams
20879	}
20880	return nil
20881}
20882
20883// SetTaskId sets the TaskId field's value.
20884func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
20885	s.TaskId = &v
20886	return s
20887}
20888
20889type DescribeThingRegistrationTaskOutput struct {
20890	_ struct{} `type:"structure"`
20891
20892	// The task creation date.
20893	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
20894
20895	// The number of things that failed to be provisioned.
20896	FailureCount *int64 `locationName:"failureCount" type:"integer"`
20897
20898	// The S3 bucket that contains the input file.
20899	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
20900
20901	// The input file key.
20902	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
20903
20904	// The date when the task was last modified.
20905	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
20906
20907	// The message.
20908	Message *string `locationName:"message" type:"string"`
20909
20910	// The progress of the bulk provisioning task expressed as a percentage.
20911	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
20912
20913	// The role ARN that grants access to the input file bucket.
20914	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
20915
20916	// The status of the bulk thing provisioning task.
20917	Status *string `locationName:"status" type:"string" enum:"Status"`
20918
20919	// The number of things successfully provisioned.
20920	SuccessCount *int64 `locationName:"successCount" type:"integer"`
20921
20922	// The task ID.
20923	TaskId *string `locationName:"taskId" type:"string"`
20924
20925	// The task's template.
20926	TemplateBody *string `locationName:"templateBody" type:"string"`
20927}
20928
20929// String returns the string representation
20930func (s DescribeThingRegistrationTaskOutput) String() string {
20931	return awsutil.Prettify(s)
20932}
20933
20934// GoString returns the string representation
20935func (s DescribeThingRegistrationTaskOutput) GoString() string {
20936	return s.String()
20937}
20938
20939// SetCreationDate sets the CreationDate field's value.
20940func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
20941	s.CreationDate = &v
20942	return s
20943}
20944
20945// SetFailureCount sets the FailureCount field's value.
20946func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
20947	s.FailureCount = &v
20948	return s
20949}
20950
20951// SetInputFileBucket sets the InputFileBucket field's value.
20952func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
20953	s.InputFileBucket = &v
20954	return s
20955}
20956
20957// SetInputFileKey sets the InputFileKey field's value.
20958func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
20959	s.InputFileKey = &v
20960	return s
20961}
20962
20963// SetLastModifiedDate sets the LastModifiedDate field's value.
20964func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
20965	s.LastModifiedDate = &v
20966	return s
20967}
20968
20969// SetMessage sets the Message field's value.
20970func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
20971	s.Message = &v
20972	return s
20973}
20974
20975// SetPercentageProgress sets the PercentageProgress field's value.
20976func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
20977	s.PercentageProgress = &v
20978	return s
20979}
20980
20981// SetRoleArn sets the RoleArn field's value.
20982func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
20983	s.RoleArn = &v
20984	return s
20985}
20986
20987// SetStatus sets the Status field's value.
20988func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
20989	s.Status = &v
20990	return s
20991}
20992
20993// SetSuccessCount sets the SuccessCount field's value.
20994func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
20995	s.SuccessCount = &v
20996	return s
20997}
20998
20999// SetTaskId sets the TaskId field's value.
21000func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
21001	s.TaskId = &v
21002	return s
21003}
21004
21005// SetTemplateBody sets the TemplateBody field's value.
21006func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
21007	s.TemplateBody = &v
21008	return s
21009}
21010
21011// The input for the DescribeThingType operation.
21012type DescribeThingTypeInput struct {
21013	_ struct{} `type:"structure"`
21014
21015	// The name of the thing type.
21016	//
21017	// ThingTypeName is a required field
21018	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
21019}
21020
21021// String returns the string representation
21022func (s DescribeThingTypeInput) String() string {
21023	return awsutil.Prettify(s)
21024}
21025
21026// GoString returns the string representation
21027func (s DescribeThingTypeInput) GoString() string {
21028	return s.String()
21029}
21030
21031// Validate inspects the fields of the type to determine if they are valid.
21032func (s *DescribeThingTypeInput) Validate() error {
21033	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
21034	if s.ThingTypeName == nil {
21035		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
21036	}
21037	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
21038		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
21039	}
21040
21041	if invalidParams.Len() > 0 {
21042		return invalidParams
21043	}
21044	return nil
21045}
21046
21047// SetThingTypeName sets the ThingTypeName field's value.
21048func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
21049	s.ThingTypeName = &v
21050	return s
21051}
21052
21053// The output for the DescribeThingType operation.
21054type DescribeThingTypeOutput struct {
21055	_ struct{} `type:"structure"`
21056
21057	// The thing type ARN.
21058	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
21059
21060	// The thing type ID.
21061	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
21062
21063	// The ThingTypeMetadata contains additional information about the thing type
21064	// including: creation date and time, a value indicating whether the thing type
21065	// is deprecated, and a date and time when it was deprecated.
21066	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
21067
21068	// The name of the thing type.
21069	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
21070
21071	// The ThingTypeProperties contains information about the thing type including
21072	// description, and a list of searchable thing attribute names.
21073	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
21074}
21075
21076// String returns the string representation
21077func (s DescribeThingTypeOutput) String() string {
21078	return awsutil.Prettify(s)
21079}
21080
21081// GoString returns the string representation
21082func (s DescribeThingTypeOutput) GoString() string {
21083	return s.String()
21084}
21085
21086// SetThingTypeArn sets the ThingTypeArn field's value.
21087func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
21088	s.ThingTypeArn = &v
21089	return s
21090}
21091
21092// SetThingTypeId sets the ThingTypeId field's value.
21093func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
21094	s.ThingTypeId = &v
21095	return s
21096}
21097
21098// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
21099func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
21100	s.ThingTypeMetadata = v
21101	return s
21102}
21103
21104// SetThingTypeName sets the ThingTypeName field's value.
21105func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
21106	s.ThingTypeName = &v
21107	return s
21108}
21109
21110// SetThingTypeProperties sets the ThingTypeProperties field's value.
21111func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
21112	s.ThingTypeProperties = v
21113	return s
21114}
21115
21116type DetachPolicyInput struct {
21117	_ struct{} `type:"structure"`
21118
21119	// The policy to detach.
21120	//
21121	// PolicyName is a required field
21122	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
21123
21124	// The target from which the policy will be detached.
21125	//
21126	// Target is a required field
21127	Target *string `locationName:"target" type:"string" required:"true"`
21128}
21129
21130// String returns the string representation
21131func (s DetachPolicyInput) String() string {
21132	return awsutil.Prettify(s)
21133}
21134
21135// GoString returns the string representation
21136func (s DetachPolicyInput) GoString() string {
21137	return s.String()
21138}
21139
21140// Validate inspects the fields of the type to determine if they are valid.
21141func (s *DetachPolicyInput) Validate() error {
21142	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
21143	if s.PolicyName == nil {
21144		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
21145	}
21146	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
21147		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
21148	}
21149	if s.Target == nil {
21150		invalidParams.Add(request.NewErrParamRequired("Target"))
21151	}
21152
21153	if invalidParams.Len() > 0 {
21154		return invalidParams
21155	}
21156	return nil
21157}
21158
21159// SetPolicyName sets the PolicyName field's value.
21160func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
21161	s.PolicyName = &v
21162	return s
21163}
21164
21165// SetTarget sets the Target field's value.
21166func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
21167	s.Target = &v
21168	return s
21169}
21170
21171type DetachPolicyOutput struct {
21172	_ struct{} `type:"structure"`
21173}
21174
21175// String returns the string representation
21176func (s DetachPolicyOutput) String() string {
21177	return awsutil.Prettify(s)
21178}
21179
21180// GoString returns the string representation
21181func (s DetachPolicyOutput) GoString() string {
21182	return s.String()
21183}
21184
21185// The input for the DetachPrincipalPolicy operation.
21186type DetachPrincipalPolicyInput struct {
21187	_ struct{} `type:"structure"`
21188
21189	// The name of the policy to detach.
21190	//
21191	// PolicyName is a required field
21192	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
21193
21194	// The principal.
21195	//
21196	// If the principal is a certificate, specify the certificate ARN. If the principal
21197	// is an Amazon Cognito identity, specify the identity ID.
21198	//
21199	// Principal is a required field
21200	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
21201}
21202
21203// String returns the string representation
21204func (s DetachPrincipalPolicyInput) String() string {
21205	return awsutil.Prettify(s)
21206}
21207
21208// GoString returns the string representation
21209func (s DetachPrincipalPolicyInput) GoString() string {
21210	return s.String()
21211}
21212
21213// Validate inspects the fields of the type to determine if they are valid.
21214func (s *DetachPrincipalPolicyInput) Validate() error {
21215	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
21216	if s.PolicyName == nil {
21217		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
21218	}
21219	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
21220		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
21221	}
21222	if s.Principal == nil {
21223		invalidParams.Add(request.NewErrParamRequired("Principal"))
21224	}
21225
21226	if invalidParams.Len() > 0 {
21227		return invalidParams
21228	}
21229	return nil
21230}
21231
21232// SetPolicyName sets the PolicyName field's value.
21233func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
21234	s.PolicyName = &v
21235	return s
21236}
21237
21238// SetPrincipal sets the Principal field's value.
21239func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
21240	s.Principal = &v
21241	return s
21242}
21243
21244type DetachPrincipalPolicyOutput struct {
21245	_ struct{} `type:"structure"`
21246}
21247
21248// String returns the string representation
21249func (s DetachPrincipalPolicyOutput) String() string {
21250	return awsutil.Prettify(s)
21251}
21252
21253// GoString returns the string representation
21254func (s DetachPrincipalPolicyOutput) GoString() string {
21255	return s.String()
21256}
21257
21258type DetachSecurityProfileInput struct {
21259	_ struct{} `type:"structure"`
21260
21261	// The security profile that is detached.
21262	//
21263	// SecurityProfileName is a required field
21264	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
21265
21266	// The ARN of the thing group from which the security profile is detached.
21267	//
21268	// SecurityProfileTargetArn is a required field
21269	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
21270}
21271
21272// String returns the string representation
21273func (s DetachSecurityProfileInput) String() string {
21274	return awsutil.Prettify(s)
21275}
21276
21277// GoString returns the string representation
21278func (s DetachSecurityProfileInput) GoString() string {
21279	return s.String()
21280}
21281
21282// Validate inspects the fields of the type to determine if they are valid.
21283func (s *DetachSecurityProfileInput) Validate() error {
21284	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
21285	if s.SecurityProfileName == nil {
21286		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
21287	}
21288	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
21289		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
21290	}
21291	if s.SecurityProfileTargetArn == nil {
21292		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
21293	}
21294
21295	if invalidParams.Len() > 0 {
21296		return invalidParams
21297	}
21298	return nil
21299}
21300
21301// SetSecurityProfileName sets the SecurityProfileName field's value.
21302func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
21303	s.SecurityProfileName = &v
21304	return s
21305}
21306
21307// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
21308func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
21309	s.SecurityProfileTargetArn = &v
21310	return s
21311}
21312
21313type DetachSecurityProfileOutput struct {
21314	_ struct{} `type:"structure"`
21315}
21316
21317// String returns the string representation
21318func (s DetachSecurityProfileOutput) String() string {
21319	return awsutil.Prettify(s)
21320}
21321
21322// GoString returns the string representation
21323func (s DetachSecurityProfileOutput) GoString() string {
21324	return s.String()
21325}
21326
21327// The input for the DetachThingPrincipal operation.
21328type DetachThingPrincipalInput struct {
21329	_ struct{} `type:"structure"`
21330
21331	// If the principal is a certificate, this value must be ARN of the certificate.
21332	// If the principal is an Amazon Cognito identity, this value must be the ID
21333	// of the Amazon Cognito identity.
21334	//
21335	// Principal is a required field
21336	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
21337
21338	// The name of the thing.
21339	//
21340	// ThingName is a required field
21341	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
21342}
21343
21344// String returns the string representation
21345func (s DetachThingPrincipalInput) String() string {
21346	return awsutil.Prettify(s)
21347}
21348
21349// GoString returns the string representation
21350func (s DetachThingPrincipalInput) GoString() string {
21351	return s.String()
21352}
21353
21354// Validate inspects the fields of the type to determine if they are valid.
21355func (s *DetachThingPrincipalInput) Validate() error {
21356	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
21357	if s.Principal == nil {
21358		invalidParams.Add(request.NewErrParamRequired("Principal"))
21359	}
21360	if s.ThingName == nil {
21361		invalidParams.Add(request.NewErrParamRequired("ThingName"))
21362	}
21363	if s.ThingName != nil && len(*s.ThingName) < 1 {
21364		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
21365	}
21366
21367	if invalidParams.Len() > 0 {
21368		return invalidParams
21369	}
21370	return nil
21371}
21372
21373// SetPrincipal sets the Principal field's value.
21374func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
21375	s.Principal = &v
21376	return s
21377}
21378
21379// SetThingName sets the ThingName field's value.
21380func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
21381	s.ThingName = &v
21382	return s
21383}
21384
21385// The output from the DetachThingPrincipal operation.
21386type DetachThingPrincipalOutput struct {
21387	_ struct{} `type:"structure"`
21388}
21389
21390// String returns the string representation
21391func (s DetachThingPrincipalOutput) String() string {
21392	return awsutil.Prettify(s)
21393}
21394
21395// GoString returns the string representation
21396func (s DetachThingPrincipalOutput) GoString() string {
21397	return s.String()
21398}
21399
21400// The input for the DisableTopicRuleRequest operation.
21401type DisableTopicRuleInput struct {
21402	_ struct{} `type:"structure"`
21403
21404	// The name of the rule to disable.
21405	//
21406	// RuleName is a required field
21407	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
21408}
21409
21410// String returns the string representation
21411func (s DisableTopicRuleInput) String() string {
21412	return awsutil.Prettify(s)
21413}
21414
21415// GoString returns the string representation
21416func (s DisableTopicRuleInput) GoString() string {
21417	return s.String()
21418}
21419
21420// Validate inspects the fields of the type to determine if they are valid.
21421func (s *DisableTopicRuleInput) Validate() error {
21422	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
21423	if s.RuleName == nil {
21424		invalidParams.Add(request.NewErrParamRequired("RuleName"))
21425	}
21426	if s.RuleName != nil && len(*s.RuleName) < 1 {
21427		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
21428	}
21429
21430	if invalidParams.Len() > 0 {
21431		return invalidParams
21432	}
21433	return nil
21434}
21435
21436// SetRuleName sets the RuleName field's value.
21437func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
21438	s.RuleName = &v
21439	return s
21440}
21441
21442type DisableTopicRuleOutput struct {
21443	_ struct{} `type:"structure"`
21444}
21445
21446// String returns the string representation
21447func (s DisableTopicRuleOutput) String() string {
21448	return awsutil.Prettify(s)
21449}
21450
21451// GoString returns the string representation
21452func (s DisableTopicRuleOutput) GoString() string {
21453	return s.String()
21454}
21455
21456// Describes an action to write to a DynamoDB table.
21457//
21458// The tableName, hashKeyField, and rangeKeyField values must match the values
21459// used when you created the table.
21460//
21461// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
21462// These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
21463//
21464// You can specify any valid expression in a WHERE or SELECT clause, including
21465// JSON properties, comparisons, calculations, and functions. For example, the
21466// following field uses the third level of the topic:
21467//
21468// "hashKeyValue": "${topic(3)}"
21469//
21470// The following field uses the timestamp:
21471//
21472// "rangeKeyValue": "${timestamp()}"
21473type DynamoDBAction struct {
21474	_ struct{} `type:"structure"`
21475
21476	// The hash key name.
21477	//
21478	// HashKeyField is a required field
21479	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
21480
21481	// The hash key type. Valid values are "STRING" or "NUMBER"
21482	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
21483
21484	// The hash key value.
21485	//
21486	// HashKeyValue is a required field
21487	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
21488
21489	// The type of operation to be performed. This follows the substitution template,
21490	// so it can be ${operation}, but the substitution must result in one of the
21491	// following: INSERT, UPDATE, or DELETE.
21492	Operation *string `locationName:"operation" type:"string"`
21493
21494	// The action payload. This name can be customized.
21495	PayloadField *string `locationName:"payloadField" type:"string"`
21496
21497	// The range key name.
21498	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
21499
21500	// The range key type. Valid values are "STRING" or "NUMBER"
21501	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
21502
21503	// The range key value.
21504	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
21505
21506	// The ARN of the IAM role that grants access to the DynamoDB table.
21507	//
21508	// RoleArn is a required field
21509	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
21510
21511	// The name of the DynamoDB table.
21512	//
21513	// TableName is a required field
21514	TableName *string `locationName:"tableName" type:"string" required:"true"`
21515}
21516
21517// String returns the string representation
21518func (s DynamoDBAction) String() string {
21519	return awsutil.Prettify(s)
21520}
21521
21522// GoString returns the string representation
21523func (s DynamoDBAction) GoString() string {
21524	return s.String()
21525}
21526
21527// Validate inspects the fields of the type to determine if they are valid.
21528func (s *DynamoDBAction) Validate() error {
21529	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
21530	if s.HashKeyField == nil {
21531		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
21532	}
21533	if s.HashKeyValue == nil {
21534		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
21535	}
21536	if s.RoleArn == nil {
21537		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
21538	}
21539	if s.TableName == nil {
21540		invalidParams.Add(request.NewErrParamRequired("TableName"))
21541	}
21542
21543	if invalidParams.Len() > 0 {
21544		return invalidParams
21545	}
21546	return nil
21547}
21548
21549// SetHashKeyField sets the HashKeyField field's value.
21550func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
21551	s.HashKeyField = &v
21552	return s
21553}
21554
21555// SetHashKeyType sets the HashKeyType field's value.
21556func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
21557	s.HashKeyType = &v
21558	return s
21559}
21560
21561// SetHashKeyValue sets the HashKeyValue field's value.
21562func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
21563	s.HashKeyValue = &v
21564	return s
21565}
21566
21567// SetOperation sets the Operation field's value.
21568func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
21569	s.Operation = &v
21570	return s
21571}
21572
21573// SetPayloadField sets the PayloadField field's value.
21574func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
21575	s.PayloadField = &v
21576	return s
21577}
21578
21579// SetRangeKeyField sets the RangeKeyField field's value.
21580func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
21581	s.RangeKeyField = &v
21582	return s
21583}
21584
21585// SetRangeKeyType sets the RangeKeyType field's value.
21586func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
21587	s.RangeKeyType = &v
21588	return s
21589}
21590
21591// SetRangeKeyValue sets the RangeKeyValue field's value.
21592func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
21593	s.RangeKeyValue = &v
21594	return s
21595}
21596
21597// SetRoleArn sets the RoleArn field's value.
21598func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
21599	s.RoleArn = &v
21600	return s
21601}
21602
21603// SetTableName sets the TableName field's value.
21604func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
21605	s.TableName = &v
21606	return s
21607}
21608
21609// Describes an action to write to a DynamoDB table.
21610//
21611// This DynamoDB action writes each attribute in the message payload into it's
21612// own column in the DynamoDB table.
21613type DynamoDBv2Action struct {
21614	_ struct{} `type:"structure"`
21615
21616	// Specifies the DynamoDB table to which the message data will be written. For
21617	// example:
21618	//
21619	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
21620	// "my-table" } } }
21621	//
21622	// Each attribute in the message payload will be written to a separate column
21623	// in the DynamoDB database.
21624	PutItem *PutItemInput `locationName:"putItem" type:"structure"`
21625
21626	// The ARN of the IAM role that grants access to the DynamoDB table.
21627	RoleArn *string `locationName:"roleArn" type:"string"`
21628}
21629
21630// String returns the string representation
21631func (s DynamoDBv2Action) String() string {
21632	return awsutil.Prettify(s)
21633}
21634
21635// GoString returns the string representation
21636func (s DynamoDBv2Action) GoString() string {
21637	return s.String()
21638}
21639
21640// Validate inspects the fields of the type to determine if they are valid.
21641func (s *DynamoDBv2Action) Validate() error {
21642	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
21643	if s.PutItem != nil {
21644		if err := s.PutItem.Validate(); err != nil {
21645			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
21646		}
21647	}
21648
21649	if invalidParams.Len() > 0 {
21650		return invalidParams
21651	}
21652	return nil
21653}
21654
21655// SetPutItem sets the PutItem field's value.
21656func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
21657	s.PutItem = v
21658	return s
21659}
21660
21661// SetRoleArn sets the RoleArn field's value.
21662func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
21663	s.RoleArn = &v
21664	return s
21665}
21666
21667// The policy that has the effect on the authorization results.
21668type EffectivePolicy struct {
21669	_ struct{} `type:"structure"`
21670
21671	// The policy ARN.
21672	PolicyArn *string `locationName:"policyArn" type:"string"`
21673
21674	// The IAM policy document.
21675	PolicyDocument *string `locationName:"policyDocument" type:"string"`
21676
21677	// The policy name.
21678	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
21679}
21680
21681// String returns the string representation
21682func (s EffectivePolicy) String() string {
21683	return awsutil.Prettify(s)
21684}
21685
21686// GoString returns the string representation
21687func (s EffectivePolicy) GoString() string {
21688	return s.String()
21689}
21690
21691// SetPolicyArn sets the PolicyArn field's value.
21692func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
21693	s.PolicyArn = &v
21694	return s
21695}
21696
21697// SetPolicyDocument sets the PolicyDocument field's value.
21698func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
21699	s.PolicyDocument = &v
21700	return s
21701}
21702
21703// SetPolicyName sets the PolicyName field's value.
21704func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
21705	s.PolicyName = &v
21706	return s
21707}
21708
21709// Describes an action that writes data to an Amazon Elasticsearch Service domain.
21710type ElasticsearchAction struct {
21711	_ struct{} `type:"structure"`
21712
21713	// The endpoint of your Elasticsearch domain.
21714	//
21715	// Endpoint is a required field
21716	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
21717
21718	// The unique identifier for the document you are storing.
21719	//
21720	// Id is a required field
21721	Id *string `locationName:"id" type:"string" required:"true"`
21722
21723	// The Elasticsearch index where you want to store your data.
21724	//
21725	// Index is a required field
21726	Index *string `locationName:"index" type:"string" required:"true"`
21727
21728	// The IAM role ARN that has access to Elasticsearch.
21729	//
21730	// RoleArn is a required field
21731	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
21732
21733	// The type of document you are storing.
21734	//
21735	// Type is a required field
21736	Type *string `locationName:"type" type:"string" required:"true"`
21737}
21738
21739// String returns the string representation
21740func (s ElasticsearchAction) String() string {
21741	return awsutil.Prettify(s)
21742}
21743
21744// GoString returns the string representation
21745func (s ElasticsearchAction) GoString() string {
21746	return s.String()
21747}
21748
21749// Validate inspects the fields of the type to determine if they are valid.
21750func (s *ElasticsearchAction) Validate() error {
21751	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
21752	if s.Endpoint == nil {
21753		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
21754	}
21755	if s.Id == nil {
21756		invalidParams.Add(request.NewErrParamRequired("Id"))
21757	}
21758	if s.Index == nil {
21759		invalidParams.Add(request.NewErrParamRequired("Index"))
21760	}
21761	if s.RoleArn == nil {
21762		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
21763	}
21764	if s.Type == nil {
21765		invalidParams.Add(request.NewErrParamRequired("Type"))
21766	}
21767
21768	if invalidParams.Len() > 0 {
21769		return invalidParams
21770	}
21771	return nil
21772}
21773
21774// SetEndpoint sets the Endpoint field's value.
21775func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
21776	s.Endpoint = &v
21777	return s
21778}
21779
21780// SetId sets the Id field's value.
21781func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
21782	s.Id = &v
21783	return s
21784}
21785
21786// SetIndex sets the Index field's value.
21787func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
21788	s.Index = &v
21789	return s
21790}
21791
21792// SetRoleArn sets the RoleArn field's value.
21793func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
21794	s.RoleArn = &v
21795	return s
21796}
21797
21798// SetType sets the Type field's value.
21799func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
21800	s.Type = &v
21801	return s
21802}
21803
21804// The input for the EnableTopicRuleRequest operation.
21805type EnableTopicRuleInput struct {
21806	_ struct{} `type:"structure"`
21807
21808	// The name of the topic rule to enable.
21809	//
21810	// RuleName is a required field
21811	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
21812}
21813
21814// String returns the string representation
21815func (s EnableTopicRuleInput) String() string {
21816	return awsutil.Prettify(s)
21817}
21818
21819// GoString returns the string representation
21820func (s EnableTopicRuleInput) GoString() string {
21821	return s.String()
21822}
21823
21824// Validate inspects the fields of the type to determine if they are valid.
21825func (s *EnableTopicRuleInput) Validate() error {
21826	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
21827	if s.RuleName == nil {
21828		invalidParams.Add(request.NewErrParamRequired("RuleName"))
21829	}
21830	if s.RuleName != nil && len(*s.RuleName) < 1 {
21831		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
21832	}
21833
21834	if invalidParams.Len() > 0 {
21835		return invalidParams
21836	}
21837	return nil
21838}
21839
21840// SetRuleName sets the RuleName field's value.
21841func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
21842	s.RuleName = &v
21843	return s
21844}
21845
21846type EnableTopicRuleOutput struct {
21847	_ struct{} `type:"structure"`
21848}
21849
21850// String returns the string representation
21851func (s EnableTopicRuleOutput) String() string {
21852	return awsutil.Prettify(s)
21853}
21854
21855// GoString returns the string representation
21856func (s EnableTopicRuleOutput) GoString() string {
21857	return s.String()
21858}
21859
21860// Error information.
21861type ErrorInfo struct {
21862	_ struct{} `type:"structure"`
21863
21864	// The error code.
21865	Code *string `locationName:"code" type:"string"`
21866
21867	// The error message.
21868	Message *string `locationName:"message" type:"string"`
21869}
21870
21871// String returns the string representation
21872func (s ErrorInfo) String() string {
21873	return awsutil.Prettify(s)
21874}
21875
21876// GoString returns the string representation
21877func (s ErrorInfo) GoString() string {
21878	return s.String()
21879}
21880
21881// SetCode sets the Code field's value.
21882func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
21883	s.Code = &v
21884	return s
21885}
21886
21887// SetMessage sets the Message field's value.
21888func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
21889	s.Message = &v
21890	return s
21891}
21892
21893// Information that explicitly denies authorization.
21894type ExplicitDeny struct {
21895	_ struct{} `type:"structure"`
21896
21897	// The policies that denied the authorization.
21898	Policies []*Policy `locationName:"policies" type:"list"`
21899}
21900
21901// String returns the string representation
21902func (s ExplicitDeny) String() string {
21903	return awsutil.Prettify(s)
21904}
21905
21906// GoString returns the string representation
21907func (s ExplicitDeny) GoString() string {
21908	return s.String()
21909}
21910
21911// SetPolicies sets the Policies field's value.
21912func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
21913	s.Policies = v
21914	return s
21915}
21916
21917// Describes an action that writes data to an Amazon Kinesis Firehose stream.
21918type FirehoseAction struct {
21919	_ struct{} `type:"structure"`
21920
21921	// The delivery stream name.
21922	//
21923	// DeliveryStreamName is a required field
21924	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
21925
21926	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
21927	//
21928	// RoleArn is a required field
21929	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
21930
21931	// A character separator that will be used to separate records written to the
21932	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
21933	// newline), ',' (comma).
21934	Separator *string `locationName:"separator" type:"string"`
21935}
21936
21937// String returns the string representation
21938func (s FirehoseAction) String() string {
21939	return awsutil.Prettify(s)
21940}
21941
21942// GoString returns the string representation
21943func (s FirehoseAction) GoString() string {
21944	return s.String()
21945}
21946
21947// Validate inspects the fields of the type to determine if they are valid.
21948func (s *FirehoseAction) Validate() error {
21949	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
21950	if s.DeliveryStreamName == nil {
21951		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
21952	}
21953	if s.RoleArn == nil {
21954		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
21955	}
21956
21957	if invalidParams.Len() > 0 {
21958		return invalidParams
21959	}
21960	return nil
21961}
21962
21963// SetDeliveryStreamName sets the DeliveryStreamName field's value.
21964func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
21965	s.DeliveryStreamName = &v
21966	return s
21967}
21968
21969// SetRoleArn sets the RoleArn field's value.
21970func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
21971	s.RoleArn = &v
21972	return s
21973}
21974
21975// SetSeparator sets the Separator field's value.
21976func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
21977	s.Separator = &v
21978	return s
21979}
21980
21981type GetEffectivePoliciesInput struct {
21982	_ struct{} `type:"structure"`
21983
21984	// The Cognito identity pool ID.
21985	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
21986
21987	// The principal.
21988	Principal *string `locationName:"principal" type:"string"`
21989
21990	// The thing name.
21991	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
21992}
21993
21994// String returns the string representation
21995func (s GetEffectivePoliciesInput) String() string {
21996	return awsutil.Prettify(s)
21997}
21998
21999// GoString returns the string representation
22000func (s GetEffectivePoliciesInput) GoString() string {
22001	return s.String()
22002}
22003
22004// Validate inspects the fields of the type to determine if they are valid.
22005func (s *GetEffectivePoliciesInput) Validate() error {
22006	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
22007	if s.ThingName != nil && len(*s.ThingName) < 1 {
22008		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
22009	}
22010
22011	if invalidParams.Len() > 0 {
22012		return invalidParams
22013	}
22014	return nil
22015}
22016
22017// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
22018func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
22019	s.CognitoIdentityPoolId = &v
22020	return s
22021}
22022
22023// SetPrincipal sets the Principal field's value.
22024func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
22025	s.Principal = &v
22026	return s
22027}
22028
22029// SetThingName sets the ThingName field's value.
22030func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
22031	s.ThingName = &v
22032	return s
22033}
22034
22035type GetEffectivePoliciesOutput struct {
22036	_ struct{} `type:"structure"`
22037
22038	// The effective policies.
22039	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
22040}
22041
22042// String returns the string representation
22043func (s GetEffectivePoliciesOutput) String() string {
22044	return awsutil.Prettify(s)
22045}
22046
22047// GoString returns the string representation
22048func (s GetEffectivePoliciesOutput) GoString() string {
22049	return s.String()
22050}
22051
22052// SetEffectivePolicies sets the EffectivePolicies field's value.
22053func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
22054	s.EffectivePolicies = v
22055	return s
22056}
22057
22058type GetIndexingConfigurationInput struct {
22059	_ struct{} `type:"structure"`
22060}
22061
22062// String returns the string representation
22063func (s GetIndexingConfigurationInput) String() string {
22064	return awsutil.Prettify(s)
22065}
22066
22067// GoString returns the string representation
22068func (s GetIndexingConfigurationInput) GoString() string {
22069	return s.String()
22070}
22071
22072type GetIndexingConfigurationOutput struct {
22073	_ struct{} `type:"structure"`
22074
22075	// Thing indexing configuration.
22076	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
22077}
22078
22079// String returns the string representation
22080func (s GetIndexingConfigurationOutput) String() string {
22081	return awsutil.Prettify(s)
22082}
22083
22084// GoString returns the string representation
22085func (s GetIndexingConfigurationOutput) GoString() string {
22086	return s.String()
22087}
22088
22089// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
22090func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
22091	s.ThingIndexingConfiguration = v
22092	return s
22093}
22094
22095type GetJobDocumentInput struct {
22096	_ struct{} `type:"structure"`
22097
22098	// The unique identifier you assigned to this job when it was created.
22099	//
22100	// JobId is a required field
22101	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
22102}
22103
22104// String returns the string representation
22105func (s GetJobDocumentInput) String() string {
22106	return awsutil.Prettify(s)
22107}
22108
22109// GoString returns the string representation
22110func (s GetJobDocumentInput) GoString() string {
22111	return s.String()
22112}
22113
22114// Validate inspects the fields of the type to determine if they are valid.
22115func (s *GetJobDocumentInput) Validate() error {
22116	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
22117	if s.JobId == nil {
22118		invalidParams.Add(request.NewErrParamRequired("JobId"))
22119	}
22120	if s.JobId != nil && len(*s.JobId) < 1 {
22121		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
22122	}
22123
22124	if invalidParams.Len() > 0 {
22125		return invalidParams
22126	}
22127	return nil
22128}
22129
22130// SetJobId sets the JobId field's value.
22131func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
22132	s.JobId = &v
22133	return s
22134}
22135
22136type GetJobDocumentOutput struct {
22137	_ struct{} `type:"structure"`
22138
22139	// The job document content.
22140	Document *string `locationName:"document" type:"string"`
22141}
22142
22143// String returns the string representation
22144func (s GetJobDocumentOutput) String() string {
22145	return awsutil.Prettify(s)
22146}
22147
22148// GoString returns the string representation
22149func (s GetJobDocumentOutput) GoString() string {
22150	return s.String()
22151}
22152
22153// SetDocument sets the Document field's value.
22154func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
22155	s.Document = &v
22156	return s
22157}
22158
22159// The input for the GetLoggingOptions operation.
22160type GetLoggingOptionsInput struct {
22161	_ struct{} `type:"structure"`
22162}
22163
22164// String returns the string representation
22165func (s GetLoggingOptionsInput) String() string {
22166	return awsutil.Prettify(s)
22167}
22168
22169// GoString returns the string representation
22170func (s GetLoggingOptionsInput) GoString() string {
22171	return s.String()
22172}
22173
22174// The output from the GetLoggingOptions operation.
22175type GetLoggingOptionsOutput struct {
22176	_ struct{} `type:"structure"`
22177
22178	// The logging level.
22179	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
22180
22181	// The ARN of the IAM role that grants access.
22182	RoleArn *string `locationName:"roleArn" type:"string"`
22183}
22184
22185// String returns the string representation
22186func (s GetLoggingOptionsOutput) String() string {
22187	return awsutil.Prettify(s)
22188}
22189
22190// GoString returns the string representation
22191func (s GetLoggingOptionsOutput) GoString() string {
22192	return s.String()
22193}
22194
22195// SetLogLevel sets the LogLevel field's value.
22196func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
22197	s.LogLevel = &v
22198	return s
22199}
22200
22201// SetRoleArn sets the RoleArn field's value.
22202func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
22203	s.RoleArn = &v
22204	return s
22205}
22206
22207type GetOTAUpdateInput struct {
22208	_ struct{} `type:"structure"`
22209
22210	// The OTA update ID.
22211	//
22212	// OtaUpdateId is a required field
22213	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
22214}
22215
22216// String returns the string representation
22217func (s GetOTAUpdateInput) String() string {
22218	return awsutil.Prettify(s)
22219}
22220
22221// GoString returns the string representation
22222func (s GetOTAUpdateInput) GoString() string {
22223	return s.String()
22224}
22225
22226// Validate inspects the fields of the type to determine if they are valid.
22227func (s *GetOTAUpdateInput) Validate() error {
22228	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
22229	if s.OtaUpdateId == nil {
22230		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
22231	}
22232	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
22233		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
22234	}
22235
22236	if invalidParams.Len() > 0 {
22237		return invalidParams
22238	}
22239	return nil
22240}
22241
22242// SetOtaUpdateId sets the OtaUpdateId field's value.
22243func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
22244	s.OtaUpdateId = &v
22245	return s
22246}
22247
22248type GetOTAUpdateOutput struct {
22249	_ struct{} `type:"structure"`
22250
22251	// The OTA update info.
22252	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
22253}
22254
22255// String returns the string representation
22256func (s GetOTAUpdateOutput) String() string {
22257	return awsutil.Prettify(s)
22258}
22259
22260// GoString returns the string representation
22261func (s GetOTAUpdateOutput) GoString() string {
22262	return s.String()
22263}
22264
22265// SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
22266func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
22267	s.OtaUpdateInfo = v
22268	return s
22269}
22270
22271// The input for the GetPolicy operation.
22272type GetPolicyInput struct {
22273	_ struct{} `type:"structure"`
22274
22275	// The name of the policy.
22276	//
22277	// PolicyName is a required field
22278	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
22279}
22280
22281// String returns the string representation
22282func (s GetPolicyInput) String() string {
22283	return awsutil.Prettify(s)
22284}
22285
22286// GoString returns the string representation
22287func (s GetPolicyInput) GoString() string {
22288	return s.String()
22289}
22290
22291// Validate inspects the fields of the type to determine if they are valid.
22292func (s *GetPolicyInput) Validate() error {
22293	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
22294	if s.PolicyName == nil {
22295		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
22296	}
22297	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
22298		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
22299	}
22300
22301	if invalidParams.Len() > 0 {
22302		return invalidParams
22303	}
22304	return nil
22305}
22306
22307// SetPolicyName sets the PolicyName field's value.
22308func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
22309	s.PolicyName = &v
22310	return s
22311}
22312
22313// The output from the GetPolicy operation.
22314type GetPolicyOutput struct {
22315	_ struct{} `type:"structure"`
22316
22317	// The date the policy was created.
22318	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
22319
22320	// The default policy version ID.
22321	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
22322
22323	// The generation ID of the policy.
22324	GenerationId *string `locationName:"generationId" type:"string"`
22325
22326	// The date the policy was last modified.
22327	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
22328
22329	// The policy ARN.
22330	PolicyArn *string `locationName:"policyArn" type:"string"`
22331
22332	// The JSON document that describes the policy.
22333	PolicyDocument *string `locationName:"policyDocument" type:"string"`
22334
22335	// The policy name.
22336	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
22337}
22338
22339// String returns the string representation
22340func (s GetPolicyOutput) String() string {
22341	return awsutil.Prettify(s)
22342}
22343
22344// GoString returns the string representation
22345func (s GetPolicyOutput) GoString() string {
22346	return s.String()
22347}
22348
22349// SetCreationDate sets the CreationDate field's value.
22350func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
22351	s.CreationDate = &v
22352	return s
22353}
22354
22355// SetDefaultVersionId sets the DefaultVersionId field's value.
22356func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
22357	s.DefaultVersionId = &v
22358	return s
22359}
22360
22361// SetGenerationId sets the GenerationId field's value.
22362func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
22363	s.GenerationId = &v
22364	return s
22365}
22366
22367// SetLastModifiedDate sets the LastModifiedDate field's value.
22368func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
22369	s.LastModifiedDate = &v
22370	return s
22371}
22372
22373// SetPolicyArn sets the PolicyArn field's value.
22374func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
22375	s.PolicyArn = &v
22376	return s
22377}
22378
22379// SetPolicyDocument sets the PolicyDocument field's value.
22380func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
22381	s.PolicyDocument = &v
22382	return s
22383}
22384
22385// SetPolicyName sets the PolicyName field's value.
22386func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
22387	s.PolicyName = &v
22388	return s
22389}
22390
22391// The input for the GetPolicyVersion operation.
22392type GetPolicyVersionInput struct {
22393	_ struct{} `type:"structure"`
22394
22395	// The name of the policy.
22396	//
22397	// PolicyName is a required field
22398	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
22399
22400	// The policy version ID.
22401	//
22402	// PolicyVersionId is a required field
22403	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
22404}
22405
22406// String returns the string representation
22407func (s GetPolicyVersionInput) String() string {
22408	return awsutil.Prettify(s)
22409}
22410
22411// GoString returns the string representation
22412func (s GetPolicyVersionInput) GoString() string {
22413	return s.String()
22414}
22415
22416// Validate inspects the fields of the type to determine if they are valid.
22417func (s *GetPolicyVersionInput) Validate() error {
22418	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
22419	if s.PolicyName == nil {
22420		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
22421	}
22422	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
22423		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
22424	}
22425	if s.PolicyVersionId == nil {
22426		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
22427	}
22428
22429	if invalidParams.Len() > 0 {
22430		return invalidParams
22431	}
22432	return nil
22433}
22434
22435// SetPolicyName sets the PolicyName field's value.
22436func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
22437	s.PolicyName = &v
22438	return s
22439}
22440
22441// SetPolicyVersionId sets the PolicyVersionId field's value.
22442func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
22443	s.PolicyVersionId = &v
22444	return s
22445}
22446
22447// The output from the GetPolicyVersion operation.
22448type GetPolicyVersionOutput struct {
22449	_ struct{} `type:"structure"`
22450
22451	// The date the policy version was created.
22452	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
22453
22454	// The generation ID of the policy version.
22455	GenerationId *string `locationName:"generationId" type:"string"`
22456
22457	// Specifies whether the policy version is the default.
22458	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
22459
22460	// The date the policy version was last modified.
22461	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
22462
22463	// The policy ARN.
22464	PolicyArn *string `locationName:"policyArn" type:"string"`
22465
22466	// The JSON document that describes the policy.
22467	PolicyDocument *string `locationName:"policyDocument" type:"string"`
22468
22469	// The policy name.
22470	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
22471
22472	// The policy version ID.
22473	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
22474}
22475
22476// String returns the string representation
22477func (s GetPolicyVersionOutput) String() string {
22478	return awsutil.Prettify(s)
22479}
22480
22481// GoString returns the string representation
22482func (s GetPolicyVersionOutput) GoString() string {
22483	return s.String()
22484}
22485
22486// SetCreationDate sets the CreationDate field's value.
22487func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
22488	s.CreationDate = &v
22489	return s
22490}
22491
22492// SetGenerationId sets the GenerationId field's value.
22493func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
22494	s.GenerationId = &v
22495	return s
22496}
22497
22498// SetIsDefaultVersion sets the IsDefaultVersion field's value.
22499func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
22500	s.IsDefaultVersion = &v
22501	return s
22502}
22503
22504// SetLastModifiedDate sets the LastModifiedDate field's value.
22505func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
22506	s.LastModifiedDate = &v
22507	return s
22508}
22509
22510// SetPolicyArn sets the PolicyArn field's value.
22511func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
22512	s.PolicyArn = &v
22513	return s
22514}
22515
22516// SetPolicyDocument sets the PolicyDocument field's value.
22517func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
22518	s.PolicyDocument = &v
22519	return s
22520}
22521
22522// SetPolicyName sets the PolicyName field's value.
22523func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
22524	s.PolicyName = &v
22525	return s
22526}
22527
22528// SetPolicyVersionId sets the PolicyVersionId field's value.
22529func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
22530	s.PolicyVersionId = &v
22531	return s
22532}
22533
22534// The input to the GetRegistrationCode operation.
22535type GetRegistrationCodeInput struct {
22536	_ struct{} `type:"structure"`
22537}
22538
22539// String returns the string representation
22540func (s GetRegistrationCodeInput) String() string {
22541	return awsutil.Prettify(s)
22542}
22543
22544// GoString returns the string representation
22545func (s GetRegistrationCodeInput) GoString() string {
22546	return s.String()
22547}
22548
22549// The output from the GetRegistrationCode operation.
22550type GetRegistrationCodeOutput struct {
22551	_ struct{} `type:"structure"`
22552
22553	// The CA certificate registration code.
22554	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
22555}
22556
22557// String returns the string representation
22558func (s GetRegistrationCodeOutput) String() string {
22559	return awsutil.Prettify(s)
22560}
22561
22562// GoString returns the string representation
22563func (s GetRegistrationCodeOutput) GoString() string {
22564	return s.String()
22565}
22566
22567// SetRegistrationCode sets the RegistrationCode field's value.
22568func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
22569	s.RegistrationCode = &v
22570	return s
22571}
22572
22573// The input for the GetTopicRule operation.
22574type GetTopicRuleInput struct {
22575	_ struct{} `type:"structure"`
22576
22577	// The name of the rule.
22578	//
22579	// RuleName is a required field
22580	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
22581}
22582
22583// String returns the string representation
22584func (s GetTopicRuleInput) String() string {
22585	return awsutil.Prettify(s)
22586}
22587
22588// GoString returns the string representation
22589func (s GetTopicRuleInput) GoString() string {
22590	return s.String()
22591}
22592
22593// Validate inspects the fields of the type to determine if they are valid.
22594func (s *GetTopicRuleInput) Validate() error {
22595	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
22596	if s.RuleName == nil {
22597		invalidParams.Add(request.NewErrParamRequired("RuleName"))
22598	}
22599	if s.RuleName != nil && len(*s.RuleName) < 1 {
22600		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
22601	}
22602
22603	if invalidParams.Len() > 0 {
22604		return invalidParams
22605	}
22606	return nil
22607}
22608
22609// SetRuleName sets the RuleName field's value.
22610func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
22611	s.RuleName = &v
22612	return s
22613}
22614
22615// The output from the GetTopicRule operation.
22616type GetTopicRuleOutput struct {
22617	_ struct{} `type:"structure"`
22618
22619	// The rule.
22620	Rule *TopicRule `locationName:"rule" type:"structure"`
22621
22622	// The rule ARN.
22623	RuleArn *string `locationName:"ruleArn" type:"string"`
22624}
22625
22626// String returns the string representation
22627func (s GetTopicRuleOutput) String() string {
22628	return awsutil.Prettify(s)
22629}
22630
22631// GoString returns the string representation
22632func (s GetTopicRuleOutput) GoString() string {
22633	return s.String()
22634}
22635
22636// SetRule sets the Rule field's value.
22637func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
22638	s.Rule = v
22639	return s
22640}
22641
22642// SetRuleArn sets the RuleArn field's value.
22643func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
22644	s.RuleArn = &v
22645	return s
22646}
22647
22648type GetV2LoggingOptionsInput struct {
22649	_ struct{} `type:"structure"`
22650}
22651
22652// String returns the string representation
22653func (s GetV2LoggingOptionsInput) String() string {
22654	return awsutil.Prettify(s)
22655}
22656
22657// GoString returns the string representation
22658func (s GetV2LoggingOptionsInput) GoString() string {
22659	return s.String()
22660}
22661
22662type GetV2LoggingOptionsOutput struct {
22663	_ struct{} `type:"structure"`
22664
22665	// The default log level.
22666	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
22667
22668	// Disables all logs.
22669	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
22670
22671	// The IAM role ARN AWS IoT uses to write to your CloudWatch logs.
22672	RoleArn *string `locationName:"roleArn" type:"string"`
22673}
22674
22675// String returns the string representation
22676func (s GetV2LoggingOptionsOutput) String() string {
22677	return awsutil.Prettify(s)
22678}
22679
22680// GoString returns the string representation
22681func (s GetV2LoggingOptionsOutput) GoString() string {
22682	return s.String()
22683}
22684
22685// SetDefaultLogLevel sets the DefaultLogLevel field's value.
22686func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
22687	s.DefaultLogLevel = &v
22688	return s
22689}
22690
22691// SetDisableAllLogs sets the DisableAllLogs field's value.
22692func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
22693	s.DisableAllLogs = &v
22694	return s
22695}
22696
22697// SetRoleArn sets the RoleArn field's value.
22698func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
22699	s.RoleArn = &v
22700	return s
22701}
22702
22703// The name and ARN of a group.
22704type GroupNameAndArn struct {
22705	_ struct{} `type:"structure"`
22706
22707	// The group ARN.
22708	GroupArn *string `locationName:"groupArn" type:"string"`
22709
22710	// The group name.
22711	GroupName *string `locationName:"groupName" min:"1" type:"string"`
22712}
22713
22714// String returns the string representation
22715func (s GroupNameAndArn) String() string {
22716	return awsutil.Prettify(s)
22717}
22718
22719// GoString returns the string representation
22720func (s GroupNameAndArn) GoString() string {
22721	return s.String()
22722}
22723
22724// SetGroupArn sets the GroupArn field's value.
22725func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
22726	s.GroupArn = &v
22727	return s
22728}
22729
22730// SetGroupName sets the GroupName field's value.
22731func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
22732	s.GroupName = &v
22733	return s
22734}
22735
22736// Information that implicitly denies authorization. When policy doesn't explicitly
22737// deny or allow an action on a resource it is considered an implicit deny.
22738type ImplicitDeny struct {
22739	_ struct{} `type:"structure"`
22740
22741	// Policies that don't contain a matching allow or deny statement for the specified
22742	// action on the specified resource.
22743	Policies []*Policy `locationName:"policies" type:"list"`
22744}
22745
22746// String returns the string representation
22747func (s ImplicitDeny) String() string {
22748	return awsutil.Prettify(s)
22749}
22750
22751// GoString returns the string representation
22752func (s ImplicitDeny) GoString() string {
22753	return s.String()
22754}
22755
22756// SetPolicies sets the Policies field's value.
22757func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
22758	s.Policies = v
22759	return s
22760}
22761
22762// Sends messge data to an AWS IoT Analytics channel.
22763type IotAnalyticsAction struct {
22764	_ struct{} `type:"structure"`
22765
22766	// (deprecated) The ARN of the IoT Analytics channel to which message data will
22767	// be sent.
22768	ChannelArn *string `locationName:"channelArn" type:"string"`
22769
22770	// The name of the IoT Analytics channel to which message data will be sent.
22771	ChannelName *string `locationName:"channelName" type:"string"`
22772
22773	// The ARN of the role which has a policy that grants IoT Analytics permission
22774	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
22775	RoleArn *string `locationName:"roleArn" type:"string"`
22776}
22777
22778// String returns the string representation
22779func (s IotAnalyticsAction) String() string {
22780	return awsutil.Prettify(s)
22781}
22782
22783// GoString returns the string representation
22784func (s IotAnalyticsAction) GoString() string {
22785	return s.String()
22786}
22787
22788// SetChannelArn sets the ChannelArn field's value.
22789func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
22790	s.ChannelArn = &v
22791	return s
22792}
22793
22794// SetChannelName sets the ChannelName field's value.
22795func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
22796	s.ChannelName = &v
22797	return s
22798}
22799
22800// SetRoleArn sets the RoleArn field's value.
22801func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
22802	s.RoleArn = &v
22803	return s
22804}
22805
22806// The Job object contains details about a job.
22807type Job struct {
22808	_ struct{} `type:"structure"`
22809
22810	// If the job was updated, describes the reason for the update.
22811	Comment *string `locationName:"comment" type:"string"`
22812
22813	// The time, in milliseconds since the epoch, when the job was completed.
22814	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
22815
22816	// The time, in milliseconds since the epoch, when the job was created.
22817	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
22818
22819	// A short text description of the job.
22820	Description *string `locationName:"description" type:"string"`
22821
22822	// Will be true if the job was canceled with the optional force parameter set
22823	// to true.
22824	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
22825
22826	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
22827	JobArn *string `locationName:"jobArn" type:"string"`
22828
22829	// Allows you to create a staged rollout of a job.
22830	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
22831
22832	// The unique identifier you assigned to this job when it was created.
22833	JobId *string `locationName:"jobId" min:"1" type:"string"`
22834
22835	// Details about the job process.
22836	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
22837
22838	// The time, in milliseconds since the epoch, when the job was last updated.
22839	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
22840
22841	// Configuration for pre-signed S3 URLs.
22842	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
22843
22844	// The status of the job, one of IN_PROGRESS, CANCELED, or COMPLETED.
22845	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
22846
22847	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
22848	// after all those things specified as targets have completed the job (SNAPSHOT).
22849	// If continuous, the job may also be run on a thing when a change is detected
22850	// in a target. For example, a job will run on a device when the thing representing
22851	// the device is added to a target group, even after the job was completed by
22852	// all things originally in the group.
22853	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
22854
22855	// A list of IoT things and thing groups to which the job should be sent.
22856	Targets []*string `locationName:"targets" min:"1" type:"list"`
22857}
22858
22859// String returns the string representation
22860func (s Job) String() string {
22861	return awsutil.Prettify(s)
22862}
22863
22864// GoString returns the string representation
22865func (s Job) GoString() string {
22866	return s.String()
22867}
22868
22869// SetComment sets the Comment field's value.
22870func (s *Job) SetComment(v string) *Job {
22871	s.Comment = &v
22872	return s
22873}
22874
22875// SetCompletedAt sets the CompletedAt field's value.
22876func (s *Job) SetCompletedAt(v time.Time) *Job {
22877	s.CompletedAt = &v
22878	return s
22879}
22880
22881// SetCreatedAt sets the CreatedAt field's value.
22882func (s *Job) SetCreatedAt(v time.Time) *Job {
22883	s.CreatedAt = &v
22884	return s
22885}
22886
22887// SetDescription sets the Description field's value.
22888func (s *Job) SetDescription(v string) *Job {
22889	s.Description = &v
22890	return s
22891}
22892
22893// SetForceCanceled sets the ForceCanceled field's value.
22894func (s *Job) SetForceCanceled(v bool) *Job {
22895	s.ForceCanceled = &v
22896	return s
22897}
22898
22899// SetJobArn sets the JobArn field's value.
22900func (s *Job) SetJobArn(v string) *Job {
22901	s.JobArn = &v
22902	return s
22903}
22904
22905// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
22906func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
22907	s.JobExecutionsRolloutConfig = v
22908	return s
22909}
22910
22911// SetJobId sets the JobId field's value.
22912func (s *Job) SetJobId(v string) *Job {
22913	s.JobId = &v
22914	return s
22915}
22916
22917// SetJobProcessDetails sets the JobProcessDetails field's value.
22918func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
22919	s.JobProcessDetails = v
22920	return s
22921}
22922
22923// SetLastUpdatedAt sets the LastUpdatedAt field's value.
22924func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
22925	s.LastUpdatedAt = &v
22926	return s
22927}
22928
22929// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
22930func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
22931	s.PresignedUrlConfig = v
22932	return s
22933}
22934
22935// SetStatus sets the Status field's value.
22936func (s *Job) SetStatus(v string) *Job {
22937	s.Status = &v
22938	return s
22939}
22940
22941// SetTargetSelection sets the TargetSelection field's value.
22942func (s *Job) SetTargetSelection(v string) *Job {
22943	s.TargetSelection = &v
22944	return s
22945}
22946
22947// SetTargets sets the Targets field's value.
22948func (s *Job) SetTargets(v []*string) *Job {
22949	s.Targets = v
22950	return s
22951}
22952
22953// The job execution object represents the execution of a job on a particular
22954// device.
22955type JobExecution struct {
22956	_ struct{} `type:"structure"`
22957
22958	// A string (consisting of the digits "0" through "9") which identifies this
22959	// particular job execution on this particular device. It can be used in commands
22960	// which return or update job execution information.
22961	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
22962
22963	// Will be true if the job execution was canceled with the optional force parameter
22964	// set to true.
22965	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
22966
22967	// The unique identifier you assigned to the job when it was created.
22968	JobId *string `locationName:"jobId" min:"1" type:"string"`
22969
22970	// The time, in milliseconds since the epoch, when the job execution was last
22971	// updated.
22972	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
22973
22974	// The time, in milliseconds since the epoch, when the job execution was queued.
22975	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
22976
22977	// The time, in milliseconds since the epoch, when the job execution started.
22978	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
22979
22980	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCESS, CANCELED,
22981	// or REJECTED).
22982	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
22983
22984	// A collection of name/value pairs that describe the status of the job execution.
22985	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
22986
22987	// The ARN of the thing on which the job execution is running.
22988	ThingArn *string `locationName:"thingArn" type:"string"`
22989
22990	// The version of the job execution. Job execution versions are incremented
22991	// each time they are updated by a device.
22992	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
22993}
22994
22995// String returns the string representation
22996func (s JobExecution) String() string {
22997	return awsutil.Prettify(s)
22998}
22999
23000// GoString returns the string representation
23001func (s JobExecution) GoString() string {
23002	return s.String()
23003}
23004
23005// SetExecutionNumber sets the ExecutionNumber field's value.
23006func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
23007	s.ExecutionNumber = &v
23008	return s
23009}
23010
23011// SetForceCanceled sets the ForceCanceled field's value.
23012func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
23013	s.ForceCanceled = &v
23014	return s
23015}
23016
23017// SetJobId sets the JobId field's value.
23018func (s *JobExecution) SetJobId(v string) *JobExecution {
23019	s.JobId = &v
23020	return s
23021}
23022
23023// SetLastUpdatedAt sets the LastUpdatedAt field's value.
23024func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
23025	s.LastUpdatedAt = &v
23026	return s
23027}
23028
23029// SetQueuedAt sets the QueuedAt field's value.
23030func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
23031	s.QueuedAt = &v
23032	return s
23033}
23034
23035// SetStartedAt sets the StartedAt field's value.
23036func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
23037	s.StartedAt = &v
23038	return s
23039}
23040
23041// SetStatus sets the Status field's value.
23042func (s *JobExecution) SetStatus(v string) *JobExecution {
23043	s.Status = &v
23044	return s
23045}
23046
23047// SetStatusDetails sets the StatusDetails field's value.
23048func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
23049	s.StatusDetails = v
23050	return s
23051}
23052
23053// SetThingArn sets the ThingArn field's value.
23054func (s *JobExecution) SetThingArn(v string) *JobExecution {
23055	s.ThingArn = &v
23056	return s
23057}
23058
23059// SetVersionNumber sets the VersionNumber field's value.
23060func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
23061	s.VersionNumber = &v
23062	return s
23063}
23064
23065// Details of the job execution status.
23066type JobExecutionStatusDetails struct {
23067	_ struct{} `type:"structure"`
23068
23069	// The job execution status.
23070	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
23071}
23072
23073// String returns the string representation
23074func (s JobExecutionStatusDetails) String() string {
23075	return awsutil.Prettify(s)
23076}
23077
23078// GoString returns the string representation
23079func (s JobExecutionStatusDetails) GoString() string {
23080	return s.String()
23081}
23082
23083// SetDetailsMap sets the DetailsMap field's value.
23084func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
23085	s.DetailsMap = v
23086	return s
23087}
23088
23089// The job execution summary.
23090type JobExecutionSummary struct {
23091	_ struct{} `type:"structure"`
23092
23093	// A string (consisting of the digits "0" through "9") which identifies this
23094	// particular job execution on this particular device. It can be used later
23095	// in commands which return or update job execution information.
23096	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
23097
23098	// The time, in milliseconds since the epoch, when the job execution was last
23099	// updated.
23100	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
23101
23102	// The time, in milliseconds since the epoch, when the job execution was queued.
23103	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
23104
23105	// The time, in milliseconds since the epoch, when the job execution started.
23106	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
23107
23108	// The status of the job execution.
23109	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
23110}
23111
23112// String returns the string representation
23113func (s JobExecutionSummary) String() string {
23114	return awsutil.Prettify(s)
23115}
23116
23117// GoString returns the string representation
23118func (s JobExecutionSummary) GoString() string {
23119	return s.String()
23120}
23121
23122// SetExecutionNumber sets the ExecutionNumber field's value.
23123func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
23124	s.ExecutionNumber = &v
23125	return s
23126}
23127
23128// SetLastUpdatedAt sets the LastUpdatedAt field's value.
23129func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
23130	s.LastUpdatedAt = &v
23131	return s
23132}
23133
23134// SetQueuedAt sets the QueuedAt field's value.
23135func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
23136	s.QueuedAt = &v
23137	return s
23138}
23139
23140// SetStartedAt sets the StartedAt field's value.
23141func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
23142	s.StartedAt = &v
23143	return s
23144}
23145
23146// SetStatus sets the Status field's value.
23147func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
23148	s.Status = &v
23149	return s
23150}
23151
23152// Contains a summary of information about job executions for a specific job.
23153type JobExecutionSummaryForJob struct {
23154	_ struct{} `type:"structure"`
23155
23156	// Contains a subset of information about a job execution.
23157	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
23158
23159	// The ARN of the thing on which the job execution is running.
23160	ThingArn *string `locationName:"thingArn" type:"string"`
23161}
23162
23163// String returns the string representation
23164func (s JobExecutionSummaryForJob) String() string {
23165	return awsutil.Prettify(s)
23166}
23167
23168// GoString returns the string representation
23169func (s JobExecutionSummaryForJob) GoString() string {
23170	return s.String()
23171}
23172
23173// SetJobExecutionSummary sets the JobExecutionSummary field's value.
23174func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
23175	s.JobExecutionSummary = v
23176	return s
23177}
23178
23179// SetThingArn sets the ThingArn field's value.
23180func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
23181	s.ThingArn = &v
23182	return s
23183}
23184
23185// The job execution summary for a thing.
23186type JobExecutionSummaryForThing struct {
23187	_ struct{} `type:"structure"`
23188
23189	// Contains a subset of information about a job execution.
23190	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
23191
23192	// The unique identifier you assigned to this job when it was created.
23193	JobId *string `locationName:"jobId" min:"1" type:"string"`
23194}
23195
23196// String returns the string representation
23197func (s JobExecutionSummaryForThing) String() string {
23198	return awsutil.Prettify(s)
23199}
23200
23201// GoString returns the string representation
23202func (s JobExecutionSummaryForThing) GoString() string {
23203	return s.String()
23204}
23205
23206// SetJobExecutionSummary sets the JobExecutionSummary field's value.
23207func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
23208	s.JobExecutionSummary = v
23209	return s
23210}
23211
23212// SetJobId sets the JobId field's value.
23213func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
23214	s.JobId = &v
23215	return s
23216}
23217
23218// Allows you to create a staged rollout of a job.
23219type JobExecutionsRolloutConfig struct {
23220	_ struct{} `type:"structure"`
23221
23222	// The maximum number of things that will be notified of a pending job, per
23223	// minute. This parameter allows you to create a staged rollout.
23224	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
23225}
23226
23227// String returns the string representation
23228func (s JobExecutionsRolloutConfig) String() string {
23229	return awsutil.Prettify(s)
23230}
23231
23232// GoString returns the string representation
23233func (s JobExecutionsRolloutConfig) GoString() string {
23234	return s.String()
23235}
23236
23237// Validate inspects the fields of the type to determine if they are valid.
23238func (s *JobExecutionsRolloutConfig) Validate() error {
23239	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
23240	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
23241		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
23242	}
23243
23244	if invalidParams.Len() > 0 {
23245		return invalidParams
23246	}
23247	return nil
23248}
23249
23250// SetMaximumPerMinute sets the MaximumPerMinute field's value.
23251func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
23252	s.MaximumPerMinute = &v
23253	return s
23254}
23255
23256// The job process details.
23257type JobProcessDetails struct {
23258	_ struct{} `type:"structure"`
23259
23260	// The number of things that cancelled the job.
23261	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
23262
23263	// The number of things that failed executing the job.
23264	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
23265
23266	// The number of things currently executing the job.
23267	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
23268
23269	// The number of things that are awaiting execution of the job.
23270	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
23271
23272	// The number of things that rejected the job.
23273	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
23274
23275	// The number of things that are no longer scheduled to execute the job because
23276	// they have been deleted or have been removed from the group that was a target
23277	// of the job.
23278	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
23279
23280	// The number of things which successfully completed the job.
23281	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
23282
23283	// The target devices to which the job execution is being rolled out. This value
23284	// will be null after the job execution has finished rolling out to all the
23285	// target devices.
23286	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
23287}
23288
23289// String returns the string representation
23290func (s JobProcessDetails) String() string {
23291	return awsutil.Prettify(s)
23292}
23293
23294// GoString returns the string representation
23295func (s JobProcessDetails) GoString() string {
23296	return s.String()
23297}
23298
23299// SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
23300func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
23301	s.NumberOfCanceledThings = &v
23302	return s
23303}
23304
23305// SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
23306func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
23307	s.NumberOfFailedThings = &v
23308	return s
23309}
23310
23311// SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
23312func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
23313	s.NumberOfInProgressThings = &v
23314	return s
23315}
23316
23317// SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
23318func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
23319	s.NumberOfQueuedThings = &v
23320	return s
23321}
23322
23323// SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
23324func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
23325	s.NumberOfRejectedThings = &v
23326	return s
23327}
23328
23329// SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
23330func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
23331	s.NumberOfRemovedThings = &v
23332	return s
23333}
23334
23335// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
23336func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
23337	s.NumberOfSucceededThings = &v
23338	return s
23339}
23340
23341// SetProcessingTargets sets the ProcessingTargets field's value.
23342func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
23343	s.ProcessingTargets = v
23344	return s
23345}
23346
23347// The job summary.
23348type JobSummary struct {
23349	_ struct{} `type:"structure"`
23350
23351	// The time, in milliseconds since the epoch, when the job completed.
23352	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
23353
23354	// The time, in milliseconds since the epoch, when the job was created.
23355	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
23356
23357	// The job ARN.
23358	JobArn *string `locationName:"jobArn" type:"string"`
23359
23360	// The unique identifier you assigned to this job when it was created.
23361	JobId *string `locationName:"jobId" min:"1" type:"string"`
23362
23363	// The time, in milliseconds since the epoch, when the job was last updated.
23364	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
23365
23366	// The job summary status.
23367	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
23368
23369	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
23370	// after all those things specified as targets have completed the job (SNAPSHOT).
23371	// If continuous, the job may also be run on a thing when a change is detected
23372	// in a target. For example, a job will run on a thing when the thing is added
23373	// to a target group, even after the job was completed by all things originally
23374	// in the group.
23375	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
23376
23377	// The ID of the thing group.
23378	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
23379}
23380
23381// String returns the string representation
23382func (s JobSummary) String() string {
23383	return awsutil.Prettify(s)
23384}
23385
23386// GoString returns the string representation
23387func (s JobSummary) GoString() string {
23388	return s.String()
23389}
23390
23391// SetCompletedAt sets the CompletedAt field's value.
23392func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
23393	s.CompletedAt = &v
23394	return s
23395}
23396
23397// SetCreatedAt sets the CreatedAt field's value.
23398func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
23399	s.CreatedAt = &v
23400	return s
23401}
23402
23403// SetJobArn sets the JobArn field's value.
23404func (s *JobSummary) SetJobArn(v string) *JobSummary {
23405	s.JobArn = &v
23406	return s
23407}
23408
23409// SetJobId sets the JobId field's value.
23410func (s *JobSummary) SetJobId(v string) *JobSummary {
23411	s.JobId = &v
23412	return s
23413}
23414
23415// SetLastUpdatedAt sets the LastUpdatedAt field's value.
23416func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
23417	s.LastUpdatedAt = &v
23418	return s
23419}
23420
23421// SetStatus sets the Status field's value.
23422func (s *JobSummary) SetStatus(v string) *JobSummary {
23423	s.Status = &v
23424	return s
23425}
23426
23427// SetTargetSelection sets the TargetSelection field's value.
23428func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
23429	s.TargetSelection = &v
23430	return s
23431}
23432
23433// SetThingGroupId sets the ThingGroupId field's value.
23434func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
23435	s.ThingGroupId = &v
23436	return s
23437}
23438
23439// Describes a key pair.
23440type KeyPair struct {
23441	_ struct{} `type:"structure"`
23442
23443	// The private key.
23444	PrivateKey *string `min:"1" type:"string"`
23445
23446	// The public key.
23447	PublicKey *string `min:"1" type:"string"`
23448}
23449
23450// String returns the string representation
23451func (s KeyPair) String() string {
23452	return awsutil.Prettify(s)
23453}
23454
23455// GoString returns the string representation
23456func (s KeyPair) GoString() string {
23457	return s.String()
23458}
23459
23460// SetPrivateKey sets the PrivateKey field's value.
23461func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
23462	s.PrivateKey = &v
23463	return s
23464}
23465
23466// SetPublicKey sets the PublicKey field's value.
23467func (s *KeyPair) SetPublicKey(v string) *KeyPair {
23468	s.PublicKey = &v
23469	return s
23470}
23471
23472// Describes an action to write data to an Amazon Kinesis stream.
23473type KinesisAction struct {
23474	_ struct{} `type:"structure"`
23475
23476	// The partition key.
23477	PartitionKey *string `locationName:"partitionKey" type:"string"`
23478
23479	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
23480	//
23481	// RoleArn is a required field
23482	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
23483
23484	// The name of the Amazon Kinesis stream.
23485	//
23486	// StreamName is a required field
23487	StreamName *string `locationName:"streamName" type:"string" required:"true"`
23488}
23489
23490// String returns the string representation
23491func (s KinesisAction) String() string {
23492	return awsutil.Prettify(s)
23493}
23494
23495// GoString returns the string representation
23496func (s KinesisAction) GoString() string {
23497	return s.String()
23498}
23499
23500// Validate inspects the fields of the type to determine if they are valid.
23501func (s *KinesisAction) Validate() error {
23502	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
23503	if s.RoleArn == nil {
23504		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
23505	}
23506	if s.StreamName == nil {
23507		invalidParams.Add(request.NewErrParamRequired("StreamName"))
23508	}
23509
23510	if invalidParams.Len() > 0 {
23511		return invalidParams
23512	}
23513	return nil
23514}
23515
23516// SetPartitionKey sets the PartitionKey field's value.
23517func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
23518	s.PartitionKey = &v
23519	return s
23520}
23521
23522// SetRoleArn sets the RoleArn field's value.
23523func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
23524	s.RoleArn = &v
23525	return s
23526}
23527
23528// SetStreamName sets the StreamName field's value.
23529func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
23530	s.StreamName = &v
23531	return s
23532}
23533
23534// Describes an action to invoke a Lambda function.
23535type LambdaAction struct {
23536	_ struct{} `type:"structure"`
23537
23538	// The ARN of the Lambda function.
23539	//
23540	// FunctionArn is a required field
23541	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
23542}
23543
23544// String returns the string representation
23545func (s LambdaAction) String() string {
23546	return awsutil.Prettify(s)
23547}
23548
23549// GoString returns the string representation
23550func (s LambdaAction) GoString() string {
23551	return s.String()
23552}
23553
23554// Validate inspects the fields of the type to determine if they are valid.
23555func (s *LambdaAction) Validate() error {
23556	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
23557	if s.FunctionArn == nil {
23558		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
23559	}
23560
23561	if invalidParams.Len() > 0 {
23562		return invalidParams
23563	}
23564	return nil
23565}
23566
23567// SetFunctionArn sets the FunctionArn field's value.
23568func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
23569	s.FunctionArn = &v
23570	return s
23571}
23572
23573type ListActiveViolationsInput struct {
23574	_ struct{} `type:"structure"`
23575
23576	// The maximum number of results to return at one time.
23577	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
23578
23579	// The token for the next set of results.
23580	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
23581
23582	// The name of the Device Defender security profile for which violations are
23583	// listed.
23584	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
23585
23586	// The name of the thing whose active violations are listed.
23587	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
23588}
23589
23590// String returns the string representation
23591func (s ListActiveViolationsInput) String() string {
23592	return awsutil.Prettify(s)
23593}
23594
23595// GoString returns the string representation
23596func (s ListActiveViolationsInput) GoString() string {
23597	return s.String()
23598}
23599
23600// Validate inspects the fields of the type to determine if they are valid.
23601func (s *ListActiveViolationsInput) Validate() error {
23602	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
23603	if s.MaxResults != nil && *s.MaxResults < 1 {
23604		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
23605	}
23606	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
23607		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
23608	}
23609	if s.ThingName != nil && len(*s.ThingName) < 1 {
23610		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
23611	}
23612
23613	if invalidParams.Len() > 0 {
23614		return invalidParams
23615	}
23616	return nil
23617}
23618
23619// SetMaxResults sets the MaxResults field's value.
23620func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
23621	s.MaxResults = &v
23622	return s
23623}
23624
23625// SetNextToken sets the NextToken field's value.
23626func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
23627	s.NextToken = &v
23628	return s
23629}
23630
23631// SetSecurityProfileName sets the SecurityProfileName field's value.
23632func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
23633	s.SecurityProfileName = &v
23634	return s
23635}
23636
23637// SetThingName sets the ThingName field's value.
23638func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
23639	s.ThingName = &v
23640	return s
23641}
23642
23643type ListActiveViolationsOutput struct {
23644	_ struct{} `type:"structure"`
23645
23646	// The list of active violations.
23647	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
23648
23649	// A token that can be used to retrieve the next set of results, or null if
23650	// there are no additional results.
23651	NextToken *string `locationName:"nextToken" type:"string"`
23652}
23653
23654// String returns the string representation
23655func (s ListActiveViolationsOutput) String() string {
23656	return awsutil.Prettify(s)
23657}
23658
23659// GoString returns the string representation
23660func (s ListActiveViolationsOutput) GoString() string {
23661	return s.String()
23662}
23663
23664// SetActiveViolations sets the ActiveViolations field's value.
23665func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
23666	s.ActiveViolations = v
23667	return s
23668}
23669
23670// SetNextToken sets the NextToken field's value.
23671func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
23672	s.NextToken = &v
23673	return s
23674}
23675
23676type ListAttachedPoliciesInput struct {
23677	_ struct{} `type:"structure"`
23678
23679	// The token to retrieve the next set of results.
23680	Marker *string `location:"querystring" locationName:"marker" type:"string"`
23681
23682	// The maximum number of results to be returned per request.
23683	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
23684
23685	// When true, recursively list attached policies.
23686	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
23687
23688	// The group for which the policies will be listed.
23689	//
23690	// Target is a required field
23691	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
23692}
23693
23694// String returns the string representation
23695func (s ListAttachedPoliciesInput) String() string {
23696	return awsutil.Prettify(s)
23697}
23698
23699// GoString returns the string representation
23700func (s ListAttachedPoliciesInput) GoString() string {
23701	return s.String()
23702}
23703
23704// Validate inspects the fields of the type to determine if they are valid.
23705func (s *ListAttachedPoliciesInput) Validate() error {
23706	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
23707	if s.PageSize != nil && *s.PageSize < 1 {
23708		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
23709	}
23710	if s.Target == nil {
23711		invalidParams.Add(request.NewErrParamRequired("Target"))
23712	}
23713
23714	if invalidParams.Len() > 0 {
23715		return invalidParams
23716	}
23717	return nil
23718}
23719
23720// SetMarker sets the Marker field's value.
23721func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
23722	s.Marker = &v
23723	return s
23724}
23725
23726// SetPageSize sets the PageSize field's value.
23727func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
23728	s.PageSize = &v
23729	return s
23730}
23731
23732// SetRecursive sets the Recursive field's value.
23733func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
23734	s.Recursive = &v
23735	return s
23736}
23737
23738// SetTarget sets the Target field's value.
23739func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
23740	s.Target = &v
23741	return s
23742}
23743
23744type ListAttachedPoliciesOutput struct {
23745	_ struct{} `type:"structure"`
23746
23747	// The token to retrieve the next set of results, or ``null`` if there are no
23748	// more results.
23749	NextMarker *string `locationName:"nextMarker" type:"string"`
23750
23751	// The policies.
23752	Policies []*Policy `locationName:"policies" type:"list"`
23753}
23754
23755// String returns the string representation
23756func (s ListAttachedPoliciesOutput) String() string {
23757	return awsutil.Prettify(s)
23758}
23759
23760// GoString returns the string representation
23761func (s ListAttachedPoliciesOutput) GoString() string {
23762	return s.String()
23763}
23764
23765// SetNextMarker sets the NextMarker field's value.
23766func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
23767	s.NextMarker = &v
23768	return s
23769}
23770
23771// SetPolicies sets the Policies field's value.
23772func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
23773	s.Policies = v
23774	return s
23775}
23776
23777type ListAuditFindingsInput struct {
23778	_ struct{} `type:"structure"`
23779
23780	// A filter to limit results to the findings for the specified audit check.
23781	CheckName *string `locationName:"checkName" type:"string"`
23782
23783	// A filter to limit results to those found before the specified time. You must
23784	// specify either the startTime and endTime or the taskId, but not both.
23785	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
23786
23787	// The maximum number of results to return at one time. The default is 25.
23788	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
23789
23790	// The token for the next set of results.
23791	NextToken *string `locationName:"nextToken" type:"string"`
23792
23793	// Information identifying the non-compliant resource.
23794	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
23795
23796	// A filter to limit results to those found after the specified time. You must
23797	// specify either the startTime and endTime or the taskId, but not both.
23798	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
23799
23800	// A filter to limit results to the audit with the specified ID. You must specify
23801	// either the taskId or the startTime and endTime, but not both.
23802	TaskId *string `locationName:"taskId" min:"1" type:"string"`
23803}
23804
23805// String returns the string representation
23806func (s ListAuditFindingsInput) String() string {
23807	return awsutil.Prettify(s)
23808}
23809
23810// GoString returns the string representation
23811func (s ListAuditFindingsInput) GoString() string {
23812	return s.String()
23813}
23814
23815// Validate inspects the fields of the type to determine if they are valid.
23816func (s *ListAuditFindingsInput) Validate() error {
23817	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
23818	if s.MaxResults != nil && *s.MaxResults < 1 {
23819		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
23820	}
23821	if s.TaskId != nil && len(*s.TaskId) < 1 {
23822		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
23823	}
23824	if s.ResourceIdentifier != nil {
23825		if err := s.ResourceIdentifier.Validate(); err != nil {
23826			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
23827		}
23828	}
23829
23830	if invalidParams.Len() > 0 {
23831		return invalidParams
23832	}
23833	return nil
23834}
23835
23836// SetCheckName sets the CheckName field's value.
23837func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
23838	s.CheckName = &v
23839	return s
23840}
23841
23842// SetEndTime sets the EndTime field's value.
23843func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
23844	s.EndTime = &v
23845	return s
23846}
23847
23848// SetMaxResults sets the MaxResults field's value.
23849func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
23850	s.MaxResults = &v
23851	return s
23852}
23853
23854// SetNextToken sets the NextToken field's value.
23855func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
23856	s.NextToken = &v
23857	return s
23858}
23859
23860// SetResourceIdentifier sets the ResourceIdentifier field's value.
23861func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
23862	s.ResourceIdentifier = v
23863	return s
23864}
23865
23866// SetStartTime sets the StartTime field's value.
23867func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
23868	s.StartTime = &v
23869	return s
23870}
23871
23872// SetTaskId sets the TaskId field's value.
23873func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
23874	s.TaskId = &v
23875	return s
23876}
23877
23878type ListAuditFindingsOutput struct {
23879	_ struct{} `type:"structure"`
23880
23881	// The findings (results) of the audit.
23882	Findings []*AuditFinding `locationName:"findings" type:"list"`
23883
23884	// A token that can be used to retrieve the next set of results, or null if
23885	// there are no additional results.
23886	NextToken *string `locationName:"nextToken" type:"string"`
23887}
23888
23889// String returns the string representation
23890func (s ListAuditFindingsOutput) String() string {
23891	return awsutil.Prettify(s)
23892}
23893
23894// GoString returns the string representation
23895func (s ListAuditFindingsOutput) GoString() string {
23896	return s.String()
23897}
23898
23899// SetFindings sets the Findings field's value.
23900func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
23901	s.Findings = v
23902	return s
23903}
23904
23905// SetNextToken sets the NextToken field's value.
23906func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
23907	s.NextToken = &v
23908	return s
23909}
23910
23911type ListAuditTasksInput struct {
23912	_ struct{} `type:"structure"`
23913
23914	// The end of the time period.
23915	//
23916	// EndTime is a required field
23917	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
23918
23919	// The maximum number of results to return at one time. The default is 25.
23920	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
23921
23922	// The token for the next set of results.
23923	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
23924
23925	// The beginning of the time period. Note that audit information is retained
23926	// for a limited time (180 days). Requesting a start time prior to what is retained
23927	// results in an "InvalidRequestException".
23928	//
23929	// StartTime is a required field
23930	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
23931
23932	// A filter to limit the output to audits with the specified completion status:
23933	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED" or "CANCELED".
23934	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
23935
23936	// A filter to limit the output to the specified type of audit: can be one of
23937	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
23938	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
23939}
23940
23941// String returns the string representation
23942func (s ListAuditTasksInput) String() string {
23943	return awsutil.Prettify(s)
23944}
23945
23946// GoString returns the string representation
23947func (s ListAuditTasksInput) GoString() string {
23948	return s.String()
23949}
23950
23951// Validate inspects the fields of the type to determine if they are valid.
23952func (s *ListAuditTasksInput) Validate() error {
23953	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
23954	if s.EndTime == nil {
23955		invalidParams.Add(request.NewErrParamRequired("EndTime"))
23956	}
23957	if s.MaxResults != nil && *s.MaxResults < 1 {
23958		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
23959	}
23960	if s.StartTime == nil {
23961		invalidParams.Add(request.NewErrParamRequired("StartTime"))
23962	}
23963
23964	if invalidParams.Len() > 0 {
23965		return invalidParams
23966	}
23967	return nil
23968}
23969
23970// SetEndTime sets the EndTime field's value.
23971func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
23972	s.EndTime = &v
23973	return s
23974}
23975
23976// SetMaxResults sets the MaxResults field's value.
23977func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
23978	s.MaxResults = &v
23979	return s
23980}
23981
23982// SetNextToken sets the NextToken field's value.
23983func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
23984	s.NextToken = &v
23985	return s
23986}
23987
23988// SetStartTime sets the StartTime field's value.
23989func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
23990	s.StartTime = &v
23991	return s
23992}
23993
23994// SetTaskStatus sets the TaskStatus field's value.
23995func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
23996	s.TaskStatus = &v
23997	return s
23998}
23999
24000// SetTaskType sets the TaskType field's value.
24001func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
24002	s.TaskType = &v
24003	return s
24004}
24005
24006type ListAuditTasksOutput struct {
24007	_ struct{} `type:"structure"`
24008
24009	// A token that can be used to retrieve the next set of results, or null if
24010	// there are no additional results.
24011	NextToken *string `locationName:"nextToken" type:"string"`
24012
24013	// The audits that were performed during the specified time period.
24014	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
24015}
24016
24017// String returns the string representation
24018func (s ListAuditTasksOutput) String() string {
24019	return awsutil.Prettify(s)
24020}
24021
24022// GoString returns the string representation
24023func (s ListAuditTasksOutput) GoString() string {
24024	return s.String()
24025}
24026
24027// SetNextToken sets the NextToken field's value.
24028func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
24029	s.NextToken = &v
24030	return s
24031}
24032
24033// SetTasks sets the Tasks field's value.
24034func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
24035	s.Tasks = v
24036	return s
24037}
24038
24039type ListAuthorizersInput struct {
24040	_ struct{} `type:"structure"`
24041
24042	// Return the list of authorizers in ascending alphabetical order.
24043	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
24044
24045	// A marker used to get the next set of results.
24046	Marker *string `location:"querystring" locationName:"marker" type:"string"`
24047
24048	// The maximum number of results to return at one time.
24049	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
24050
24051	// The status of the list authorizers request.
24052	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
24053}
24054
24055// String returns the string representation
24056func (s ListAuthorizersInput) String() string {
24057	return awsutil.Prettify(s)
24058}
24059
24060// GoString returns the string representation
24061func (s ListAuthorizersInput) GoString() string {
24062	return s.String()
24063}
24064
24065// Validate inspects the fields of the type to determine if they are valid.
24066func (s *ListAuthorizersInput) Validate() error {
24067	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
24068	if s.PageSize != nil && *s.PageSize < 1 {
24069		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
24070	}
24071
24072	if invalidParams.Len() > 0 {
24073		return invalidParams
24074	}
24075	return nil
24076}
24077
24078// SetAscendingOrder sets the AscendingOrder field's value.
24079func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
24080	s.AscendingOrder = &v
24081	return s
24082}
24083
24084// SetMarker sets the Marker field's value.
24085func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
24086	s.Marker = &v
24087	return s
24088}
24089
24090// SetPageSize sets the PageSize field's value.
24091func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
24092	s.PageSize = &v
24093	return s
24094}
24095
24096// SetStatus sets the Status field's value.
24097func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
24098	s.Status = &v
24099	return s
24100}
24101
24102type ListAuthorizersOutput struct {
24103	_ struct{} `type:"structure"`
24104
24105	// The authorizers.
24106	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
24107
24108	// A marker used to get the next set of results.
24109	NextMarker *string `locationName:"nextMarker" type:"string"`
24110}
24111
24112// String returns the string representation
24113func (s ListAuthorizersOutput) String() string {
24114	return awsutil.Prettify(s)
24115}
24116
24117// GoString returns the string representation
24118func (s ListAuthorizersOutput) GoString() string {
24119	return s.String()
24120}
24121
24122// SetAuthorizers sets the Authorizers field's value.
24123func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
24124	s.Authorizers = v
24125	return s
24126}
24127
24128// SetNextMarker sets the NextMarker field's value.
24129func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
24130	s.NextMarker = &v
24131	return s
24132}
24133
24134// Input for the ListCACertificates operation.
24135type ListCACertificatesInput struct {
24136	_ struct{} `type:"structure"`
24137
24138	// Determines the order of the results.
24139	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
24140
24141	// The marker for the next set of results.
24142	Marker *string `location:"querystring" locationName:"marker" type:"string"`
24143
24144	// The result page size.
24145	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
24146}
24147
24148// String returns the string representation
24149func (s ListCACertificatesInput) String() string {
24150	return awsutil.Prettify(s)
24151}
24152
24153// GoString returns the string representation
24154func (s ListCACertificatesInput) GoString() string {
24155	return s.String()
24156}
24157
24158// Validate inspects the fields of the type to determine if they are valid.
24159func (s *ListCACertificatesInput) Validate() error {
24160	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
24161	if s.PageSize != nil && *s.PageSize < 1 {
24162		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
24163	}
24164
24165	if invalidParams.Len() > 0 {
24166		return invalidParams
24167	}
24168	return nil
24169}
24170
24171// SetAscendingOrder sets the AscendingOrder field's value.
24172func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
24173	s.AscendingOrder = &v
24174	return s
24175}
24176
24177// SetMarker sets the Marker field's value.
24178func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
24179	s.Marker = &v
24180	return s
24181}
24182
24183// SetPageSize sets the PageSize field's value.
24184func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
24185	s.PageSize = &v
24186	return s
24187}
24188
24189// The output from the ListCACertificates operation.
24190type ListCACertificatesOutput struct {
24191	_ struct{} `type:"structure"`
24192
24193	// The CA certificates registered in your AWS account.
24194	Certificates []*CACertificate `locationName:"certificates" type:"list"`
24195
24196	// The current position within the list of CA certificates.
24197	NextMarker *string `locationName:"nextMarker" type:"string"`
24198}
24199
24200// String returns the string representation
24201func (s ListCACertificatesOutput) String() string {
24202	return awsutil.Prettify(s)
24203}
24204
24205// GoString returns the string representation
24206func (s ListCACertificatesOutput) GoString() string {
24207	return s.String()
24208}
24209
24210// SetCertificates sets the Certificates field's value.
24211func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
24212	s.Certificates = v
24213	return s
24214}
24215
24216// SetNextMarker sets the NextMarker field's value.
24217func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
24218	s.NextMarker = &v
24219	return s
24220}
24221
24222// The input to the ListCertificatesByCA operation.
24223type ListCertificatesByCAInput struct {
24224	_ struct{} `type:"structure"`
24225
24226	// Specifies the order for results. If True, the results are returned in ascending
24227	// order, based on the creation date.
24228	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
24229
24230	// The ID of the CA certificate. This operation will list all registered device
24231	// certificate that were signed by this CA certificate.
24232	//
24233	// CaCertificateId is a required field
24234	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
24235
24236	// The marker for the next set of results.
24237	Marker *string `location:"querystring" locationName:"marker" type:"string"`
24238
24239	// The result page size.
24240	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
24241}
24242
24243// String returns the string representation
24244func (s ListCertificatesByCAInput) String() string {
24245	return awsutil.Prettify(s)
24246}
24247
24248// GoString returns the string representation
24249func (s ListCertificatesByCAInput) GoString() string {
24250	return s.String()
24251}
24252
24253// Validate inspects the fields of the type to determine if they are valid.
24254func (s *ListCertificatesByCAInput) Validate() error {
24255	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
24256	if s.CaCertificateId == nil {
24257		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
24258	}
24259	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
24260		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
24261	}
24262	if s.PageSize != nil && *s.PageSize < 1 {
24263		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
24264	}
24265
24266	if invalidParams.Len() > 0 {
24267		return invalidParams
24268	}
24269	return nil
24270}
24271
24272// SetAscendingOrder sets the AscendingOrder field's value.
24273func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
24274	s.AscendingOrder = &v
24275	return s
24276}
24277
24278// SetCaCertificateId sets the CaCertificateId field's value.
24279func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
24280	s.CaCertificateId = &v
24281	return s
24282}
24283
24284// SetMarker sets the Marker field's value.
24285func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
24286	s.Marker = &v
24287	return s
24288}
24289
24290// SetPageSize sets the PageSize field's value.
24291func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
24292	s.PageSize = &v
24293	return s
24294}
24295
24296// The output of the ListCertificatesByCA operation.
24297type ListCertificatesByCAOutput struct {
24298	_ struct{} `type:"structure"`
24299
24300	// The device certificates signed by the specified CA certificate.
24301	Certificates []*Certificate `locationName:"certificates" type:"list"`
24302
24303	// The marker for the next set of results, or null if there are no additional
24304	// results.
24305	NextMarker *string `locationName:"nextMarker" type:"string"`
24306}
24307
24308// String returns the string representation
24309func (s ListCertificatesByCAOutput) String() string {
24310	return awsutil.Prettify(s)
24311}
24312
24313// GoString returns the string representation
24314func (s ListCertificatesByCAOutput) GoString() string {
24315	return s.String()
24316}
24317
24318// SetCertificates sets the Certificates field's value.
24319func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
24320	s.Certificates = v
24321	return s
24322}
24323
24324// SetNextMarker sets the NextMarker field's value.
24325func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
24326	s.NextMarker = &v
24327	return s
24328}
24329
24330// The input for the ListCertificates operation.
24331type ListCertificatesInput struct {
24332	_ struct{} `type:"structure"`
24333
24334	// Specifies the order for results. If True, the results are returned in ascending
24335	// order, based on the creation date.
24336	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
24337
24338	// The marker for the next set of results.
24339	Marker *string `location:"querystring" locationName:"marker" type:"string"`
24340
24341	// The result page size.
24342	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
24343}
24344
24345// String returns the string representation
24346func (s ListCertificatesInput) String() string {
24347	return awsutil.Prettify(s)
24348}
24349
24350// GoString returns the string representation
24351func (s ListCertificatesInput) GoString() string {
24352	return s.String()
24353}
24354
24355// Validate inspects the fields of the type to determine if they are valid.
24356func (s *ListCertificatesInput) Validate() error {
24357	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
24358	if s.PageSize != nil && *s.PageSize < 1 {
24359		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
24360	}
24361
24362	if invalidParams.Len() > 0 {
24363		return invalidParams
24364	}
24365	return nil
24366}
24367
24368// SetAscendingOrder sets the AscendingOrder field's value.
24369func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
24370	s.AscendingOrder = &v
24371	return s
24372}
24373
24374// SetMarker sets the Marker field's value.
24375func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
24376	s.Marker = &v
24377	return s
24378}
24379
24380// SetPageSize sets the PageSize field's value.
24381func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
24382	s.PageSize = &v
24383	return s
24384}
24385
24386// The output of the ListCertificates operation.
24387type ListCertificatesOutput struct {
24388	_ struct{} `type:"structure"`
24389
24390	// The descriptions of the certificates.
24391	Certificates []*Certificate `locationName:"certificates" type:"list"`
24392
24393	// The marker for the next set of results, or null if there are no additional
24394	// results.
24395	NextMarker *string `locationName:"nextMarker" type:"string"`
24396}
24397
24398// String returns the string representation
24399func (s ListCertificatesOutput) String() string {
24400	return awsutil.Prettify(s)
24401}
24402
24403// GoString returns the string representation
24404func (s ListCertificatesOutput) GoString() string {
24405	return s.String()
24406}
24407
24408// SetCertificates sets the Certificates field's value.
24409func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
24410	s.Certificates = v
24411	return s
24412}
24413
24414// SetNextMarker sets the NextMarker field's value.
24415func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
24416	s.NextMarker = &v
24417	return s
24418}
24419
24420type ListIndicesInput struct {
24421	_ struct{} `type:"structure"`
24422
24423	// The maximum number of results to return at one time.
24424	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
24425
24426	// The token used to get the next set of results, or null if there are no additional
24427	// results.
24428	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
24429}
24430
24431// String returns the string representation
24432func (s ListIndicesInput) String() string {
24433	return awsutil.Prettify(s)
24434}
24435
24436// GoString returns the string representation
24437func (s ListIndicesInput) GoString() string {
24438	return s.String()
24439}
24440
24441// Validate inspects the fields of the type to determine if they are valid.
24442func (s *ListIndicesInput) Validate() error {
24443	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
24444	if s.MaxResults != nil && *s.MaxResults < 1 {
24445		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
24446	}
24447
24448	if invalidParams.Len() > 0 {
24449		return invalidParams
24450	}
24451	return nil
24452}
24453
24454// SetMaxResults sets the MaxResults field's value.
24455func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
24456	s.MaxResults = &v
24457	return s
24458}
24459
24460// SetNextToken sets the NextToken field's value.
24461func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
24462	s.NextToken = &v
24463	return s
24464}
24465
24466type ListIndicesOutput struct {
24467	_ struct{} `type:"structure"`
24468
24469	// The index names.
24470	IndexNames []*string `locationName:"indexNames" type:"list"`
24471
24472	// The token used to get the next set of results, or null if there are no additional
24473	// results.
24474	NextToken *string `locationName:"nextToken" type:"string"`
24475}
24476
24477// String returns the string representation
24478func (s ListIndicesOutput) String() string {
24479	return awsutil.Prettify(s)
24480}
24481
24482// GoString returns the string representation
24483func (s ListIndicesOutput) GoString() string {
24484	return s.String()
24485}
24486
24487// SetIndexNames sets the IndexNames field's value.
24488func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
24489	s.IndexNames = v
24490	return s
24491}
24492
24493// SetNextToken sets the NextToken field's value.
24494func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
24495	s.NextToken = &v
24496	return s
24497}
24498
24499type ListJobExecutionsForJobInput struct {
24500	_ struct{} `type:"structure"`
24501
24502	// The unique identifier you assigned to this job when it was created.
24503	//
24504	// JobId is a required field
24505	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
24506
24507	// The maximum number of results to be returned per request.
24508	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
24509
24510	// The token to retrieve the next set of results.
24511	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
24512
24513	// The status of the job.
24514	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
24515}
24516
24517// String returns the string representation
24518func (s ListJobExecutionsForJobInput) String() string {
24519	return awsutil.Prettify(s)
24520}
24521
24522// GoString returns the string representation
24523func (s ListJobExecutionsForJobInput) GoString() string {
24524	return s.String()
24525}
24526
24527// Validate inspects the fields of the type to determine if they are valid.
24528func (s *ListJobExecutionsForJobInput) Validate() error {
24529	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
24530	if s.JobId == nil {
24531		invalidParams.Add(request.NewErrParamRequired("JobId"))
24532	}
24533	if s.JobId != nil && len(*s.JobId) < 1 {
24534		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
24535	}
24536	if s.MaxResults != nil && *s.MaxResults < 1 {
24537		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
24538	}
24539
24540	if invalidParams.Len() > 0 {
24541		return invalidParams
24542	}
24543	return nil
24544}
24545
24546// SetJobId sets the JobId field's value.
24547func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
24548	s.JobId = &v
24549	return s
24550}
24551
24552// SetMaxResults sets the MaxResults field's value.
24553func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
24554	s.MaxResults = &v
24555	return s
24556}
24557
24558// SetNextToken sets the NextToken field's value.
24559func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
24560	s.NextToken = &v
24561	return s
24562}
24563
24564// SetStatus sets the Status field's value.
24565func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
24566	s.Status = &v
24567	return s
24568}
24569
24570type ListJobExecutionsForJobOutput struct {
24571	_ struct{} `type:"structure"`
24572
24573	// A list of job execution summaries.
24574	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
24575
24576	// The token for the next set of results, or null if there are no additional
24577	// results.
24578	NextToken *string `locationName:"nextToken" type:"string"`
24579}
24580
24581// String returns the string representation
24582func (s ListJobExecutionsForJobOutput) String() string {
24583	return awsutil.Prettify(s)
24584}
24585
24586// GoString returns the string representation
24587func (s ListJobExecutionsForJobOutput) GoString() string {
24588	return s.String()
24589}
24590
24591// SetExecutionSummaries sets the ExecutionSummaries field's value.
24592func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
24593	s.ExecutionSummaries = v
24594	return s
24595}
24596
24597// SetNextToken sets the NextToken field's value.
24598func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
24599	s.NextToken = &v
24600	return s
24601}
24602
24603type ListJobExecutionsForThingInput struct {
24604	_ struct{} `type:"structure"`
24605
24606	// The maximum number of results to be returned per request.
24607	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
24608
24609	// The token to retrieve the next set of results.
24610	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
24611
24612	// An optional filter that lets you search for jobs that have the specified
24613	// status.
24614	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
24615
24616	// The thing name.
24617	//
24618	// ThingName is a required field
24619	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
24620}
24621
24622// String returns the string representation
24623func (s ListJobExecutionsForThingInput) String() string {
24624	return awsutil.Prettify(s)
24625}
24626
24627// GoString returns the string representation
24628func (s ListJobExecutionsForThingInput) GoString() string {
24629	return s.String()
24630}
24631
24632// Validate inspects the fields of the type to determine if they are valid.
24633func (s *ListJobExecutionsForThingInput) Validate() error {
24634	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
24635	if s.MaxResults != nil && *s.MaxResults < 1 {
24636		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
24637	}
24638	if s.ThingName == nil {
24639		invalidParams.Add(request.NewErrParamRequired("ThingName"))
24640	}
24641	if s.ThingName != nil && len(*s.ThingName) < 1 {
24642		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
24643	}
24644
24645	if invalidParams.Len() > 0 {
24646		return invalidParams
24647	}
24648	return nil
24649}
24650
24651// SetMaxResults sets the MaxResults field's value.
24652func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
24653	s.MaxResults = &v
24654	return s
24655}
24656
24657// SetNextToken sets the NextToken field's value.
24658func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
24659	s.NextToken = &v
24660	return s
24661}
24662
24663// SetStatus sets the Status field's value.
24664func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
24665	s.Status = &v
24666	return s
24667}
24668
24669// SetThingName sets the ThingName field's value.
24670func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
24671	s.ThingName = &v
24672	return s
24673}
24674
24675type ListJobExecutionsForThingOutput struct {
24676	_ struct{} `type:"structure"`
24677
24678	// A list of job execution summaries.
24679	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
24680
24681	// The token for the next set of results, or null if there are no additional
24682	// results.
24683	NextToken *string `locationName:"nextToken" type:"string"`
24684}
24685
24686// String returns the string representation
24687func (s ListJobExecutionsForThingOutput) String() string {
24688	return awsutil.Prettify(s)
24689}
24690
24691// GoString returns the string representation
24692func (s ListJobExecutionsForThingOutput) GoString() string {
24693	return s.String()
24694}
24695
24696// SetExecutionSummaries sets the ExecutionSummaries field's value.
24697func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
24698	s.ExecutionSummaries = v
24699	return s
24700}
24701
24702// SetNextToken sets the NextToken field's value.
24703func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
24704	s.NextToken = &v
24705	return s
24706}
24707
24708type ListJobsInput struct {
24709	_ struct{} `type:"structure"`
24710
24711	// The maximum number of results to return per request.
24712	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
24713
24714	// The token to retrieve the next set of results.
24715	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
24716
24717	// An optional filter that lets you search for jobs that have the specified
24718	// status.
24719	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
24720
24721	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
24722	// after all those things specified as targets have completed the job (SNAPSHOT).
24723	// If continuous, the job may also be run on a thing when a change is detected
24724	// in a target. For example, a job will run on a thing when the thing is added
24725	// to a target group, even after the job was completed by all things originally
24726	// in the group.
24727	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
24728
24729	// A filter that limits the returned jobs to those for the specified group.
24730	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
24731
24732	// A filter that limits the returned jobs to those for the specified group.
24733	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
24734}
24735
24736// String returns the string representation
24737func (s ListJobsInput) String() string {
24738	return awsutil.Prettify(s)
24739}
24740
24741// GoString returns the string representation
24742func (s ListJobsInput) GoString() string {
24743	return s.String()
24744}
24745
24746// Validate inspects the fields of the type to determine if they are valid.
24747func (s *ListJobsInput) Validate() error {
24748	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
24749	if s.MaxResults != nil && *s.MaxResults < 1 {
24750		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
24751	}
24752	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
24753		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
24754	}
24755	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
24756		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
24757	}
24758
24759	if invalidParams.Len() > 0 {
24760		return invalidParams
24761	}
24762	return nil
24763}
24764
24765// SetMaxResults sets the MaxResults field's value.
24766func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
24767	s.MaxResults = &v
24768	return s
24769}
24770
24771// SetNextToken sets the NextToken field's value.
24772func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
24773	s.NextToken = &v
24774	return s
24775}
24776
24777// SetStatus sets the Status field's value.
24778func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
24779	s.Status = &v
24780	return s
24781}
24782
24783// SetTargetSelection sets the TargetSelection field's value.
24784func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
24785	s.TargetSelection = &v
24786	return s
24787}
24788
24789// SetThingGroupId sets the ThingGroupId field's value.
24790func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
24791	s.ThingGroupId = &v
24792	return s
24793}
24794
24795// SetThingGroupName sets the ThingGroupName field's value.
24796func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
24797	s.ThingGroupName = &v
24798	return s
24799}
24800
24801type ListJobsOutput struct {
24802	_ struct{} `type:"structure"`
24803
24804	// A list of jobs.
24805	Jobs []*JobSummary `locationName:"jobs" type:"list"`
24806
24807	// The token for the next set of results, or null if there are no additional
24808	// results.
24809	NextToken *string `locationName:"nextToken" type:"string"`
24810}
24811
24812// String returns the string representation
24813func (s ListJobsOutput) String() string {
24814	return awsutil.Prettify(s)
24815}
24816
24817// GoString returns the string representation
24818func (s ListJobsOutput) GoString() string {
24819	return s.String()
24820}
24821
24822// SetJobs sets the Jobs field's value.
24823func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
24824	s.Jobs = v
24825	return s
24826}
24827
24828// SetNextToken sets the NextToken field's value.
24829func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
24830	s.NextToken = &v
24831	return s
24832}
24833
24834type ListOTAUpdatesInput struct {
24835	_ struct{} `type:"structure"`
24836
24837	// The maximum number of results to return at one time.
24838	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
24839
24840	// A token used to retrieve the next set of results.
24841	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
24842
24843	// The OTA update job status.
24844	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
24845}
24846
24847// String returns the string representation
24848func (s ListOTAUpdatesInput) String() string {
24849	return awsutil.Prettify(s)
24850}
24851
24852// GoString returns the string representation
24853func (s ListOTAUpdatesInput) GoString() string {
24854	return s.String()
24855}
24856
24857// Validate inspects the fields of the type to determine if they are valid.
24858func (s *ListOTAUpdatesInput) Validate() error {
24859	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
24860	if s.MaxResults != nil && *s.MaxResults < 1 {
24861		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
24862	}
24863
24864	if invalidParams.Len() > 0 {
24865		return invalidParams
24866	}
24867	return nil
24868}
24869
24870// SetMaxResults sets the MaxResults field's value.
24871func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
24872	s.MaxResults = &v
24873	return s
24874}
24875
24876// SetNextToken sets the NextToken field's value.
24877func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
24878	s.NextToken = &v
24879	return s
24880}
24881
24882// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
24883func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
24884	s.OtaUpdateStatus = &v
24885	return s
24886}
24887
24888type ListOTAUpdatesOutput struct {
24889	_ struct{} `type:"structure"`
24890
24891	// A token to use to get the next set of results.
24892	NextToken *string `locationName:"nextToken" type:"string"`
24893
24894	// A list of OTA update jobs.
24895	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
24896}
24897
24898// String returns the string representation
24899func (s ListOTAUpdatesOutput) String() string {
24900	return awsutil.Prettify(s)
24901}
24902
24903// GoString returns the string representation
24904func (s ListOTAUpdatesOutput) GoString() string {
24905	return s.String()
24906}
24907
24908// SetNextToken sets the NextToken field's value.
24909func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
24910	s.NextToken = &v
24911	return s
24912}
24913
24914// SetOtaUpdates sets the OtaUpdates field's value.
24915func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
24916	s.OtaUpdates = v
24917	return s
24918}
24919
24920// The input to the ListOutgoingCertificates operation.
24921type ListOutgoingCertificatesInput struct {
24922	_ struct{} `type:"structure"`
24923
24924	// Specifies the order for results. If True, the results are returned in ascending
24925	// order, based on the creation date.
24926	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
24927
24928	// The marker for the next set of results.
24929	Marker *string `location:"querystring" locationName:"marker" type:"string"`
24930
24931	// The result page size.
24932	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
24933}
24934
24935// String returns the string representation
24936func (s ListOutgoingCertificatesInput) String() string {
24937	return awsutil.Prettify(s)
24938}
24939
24940// GoString returns the string representation
24941func (s ListOutgoingCertificatesInput) GoString() string {
24942	return s.String()
24943}
24944
24945// Validate inspects the fields of the type to determine if they are valid.
24946func (s *ListOutgoingCertificatesInput) Validate() error {
24947	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
24948	if s.PageSize != nil && *s.PageSize < 1 {
24949		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
24950	}
24951
24952	if invalidParams.Len() > 0 {
24953		return invalidParams
24954	}
24955	return nil
24956}
24957
24958// SetAscendingOrder sets the AscendingOrder field's value.
24959func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
24960	s.AscendingOrder = &v
24961	return s
24962}
24963
24964// SetMarker sets the Marker field's value.
24965func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
24966	s.Marker = &v
24967	return s
24968}
24969
24970// SetPageSize sets the PageSize field's value.
24971func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
24972	s.PageSize = &v
24973	return s
24974}
24975
24976// The output from the ListOutgoingCertificates operation.
24977type ListOutgoingCertificatesOutput struct {
24978	_ struct{} `type:"structure"`
24979
24980	// The marker for the next set of results.
24981	NextMarker *string `locationName:"nextMarker" type:"string"`
24982
24983	// The certificates that are being transferred but not yet accepted.
24984	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
24985}
24986
24987// String returns the string representation
24988func (s ListOutgoingCertificatesOutput) String() string {
24989	return awsutil.Prettify(s)
24990}
24991
24992// GoString returns the string representation
24993func (s ListOutgoingCertificatesOutput) GoString() string {
24994	return s.String()
24995}
24996
24997// SetNextMarker sets the NextMarker field's value.
24998func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
24999	s.NextMarker = &v
25000	return s
25001}
25002
25003// SetOutgoingCertificates sets the OutgoingCertificates field's value.
25004func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
25005	s.OutgoingCertificates = v
25006	return s
25007}
25008
25009// The input for the ListPolicies operation.
25010type ListPoliciesInput struct {
25011	_ struct{} `type:"structure"`
25012
25013	// Specifies the order for results. If true, the results are returned in ascending
25014	// creation order.
25015	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
25016
25017	// The marker for the next set of results.
25018	Marker *string `location:"querystring" locationName:"marker" type:"string"`
25019
25020	// The result page size.
25021	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
25022}
25023
25024// String returns the string representation
25025func (s ListPoliciesInput) String() string {
25026	return awsutil.Prettify(s)
25027}
25028
25029// GoString returns the string representation
25030func (s ListPoliciesInput) GoString() string {
25031	return s.String()
25032}
25033
25034// Validate inspects the fields of the type to determine if they are valid.
25035func (s *ListPoliciesInput) Validate() error {
25036	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
25037	if s.PageSize != nil && *s.PageSize < 1 {
25038		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
25039	}
25040
25041	if invalidParams.Len() > 0 {
25042		return invalidParams
25043	}
25044	return nil
25045}
25046
25047// SetAscendingOrder sets the AscendingOrder field's value.
25048func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
25049	s.AscendingOrder = &v
25050	return s
25051}
25052
25053// SetMarker sets the Marker field's value.
25054func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
25055	s.Marker = &v
25056	return s
25057}
25058
25059// SetPageSize sets the PageSize field's value.
25060func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
25061	s.PageSize = &v
25062	return s
25063}
25064
25065// The output from the ListPolicies operation.
25066type ListPoliciesOutput struct {
25067	_ struct{} `type:"structure"`
25068
25069	// The marker for the next set of results, or null if there are no additional
25070	// results.
25071	NextMarker *string `locationName:"nextMarker" type:"string"`
25072
25073	// The descriptions of the policies.
25074	Policies []*Policy `locationName:"policies" type:"list"`
25075}
25076
25077// String returns the string representation
25078func (s ListPoliciesOutput) String() string {
25079	return awsutil.Prettify(s)
25080}
25081
25082// GoString returns the string representation
25083func (s ListPoliciesOutput) GoString() string {
25084	return s.String()
25085}
25086
25087// SetNextMarker sets the NextMarker field's value.
25088func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
25089	s.NextMarker = &v
25090	return s
25091}
25092
25093// SetPolicies sets the Policies field's value.
25094func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
25095	s.Policies = v
25096	return s
25097}
25098
25099// The input for the ListPolicyPrincipals operation.
25100type ListPolicyPrincipalsInput struct {
25101	_ struct{} `type:"structure"`
25102
25103	// Specifies the order for results. If true, the results are returned in ascending
25104	// creation order.
25105	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
25106
25107	// The marker for the next set of results.
25108	Marker *string `location:"querystring" locationName:"marker" type:"string"`
25109
25110	// The result page size.
25111	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
25112
25113	// The policy name.
25114	//
25115	// PolicyName is a required field
25116	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
25117}
25118
25119// String returns the string representation
25120func (s ListPolicyPrincipalsInput) String() string {
25121	return awsutil.Prettify(s)
25122}
25123
25124// GoString returns the string representation
25125func (s ListPolicyPrincipalsInput) GoString() string {
25126	return s.String()
25127}
25128
25129// Validate inspects the fields of the type to determine if they are valid.
25130func (s *ListPolicyPrincipalsInput) Validate() error {
25131	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
25132	if s.PageSize != nil && *s.PageSize < 1 {
25133		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
25134	}
25135	if s.PolicyName == nil {
25136		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
25137	}
25138	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
25139		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
25140	}
25141
25142	if invalidParams.Len() > 0 {
25143		return invalidParams
25144	}
25145	return nil
25146}
25147
25148// SetAscendingOrder sets the AscendingOrder field's value.
25149func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
25150	s.AscendingOrder = &v
25151	return s
25152}
25153
25154// SetMarker sets the Marker field's value.
25155func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
25156	s.Marker = &v
25157	return s
25158}
25159
25160// SetPageSize sets the PageSize field's value.
25161func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
25162	s.PageSize = &v
25163	return s
25164}
25165
25166// SetPolicyName sets the PolicyName field's value.
25167func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
25168	s.PolicyName = &v
25169	return s
25170}
25171
25172// The output from the ListPolicyPrincipals operation.
25173type ListPolicyPrincipalsOutput struct {
25174	_ struct{} `type:"structure"`
25175
25176	// The marker for the next set of results, or null if there are no additional
25177	// results.
25178	NextMarker *string `locationName:"nextMarker" type:"string"`
25179
25180	// The descriptions of the principals.
25181	Principals []*string `locationName:"principals" type:"list"`
25182}
25183
25184// String returns the string representation
25185func (s ListPolicyPrincipalsOutput) String() string {
25186	return awsutil.Prettify(s)
25187}
25188
25189// GoString returns the string representation
25190func (s ListPolicyPrincipalsOutput) GoString() string {
25191	return s.String()
25192}
25193
25194// SetNextMarker sets the NextMarker field's value.
25195func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
25196	s.NextMarker = &v
25197	return s
25198}
25199
25200// SetPrincipals sets the Principals field's value.
25201func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
25202	s.Principals = v
25203	return s
25204}
25205
25206// The input for the ListPolicyVersions operation.
25207type ListPolicyVersionsInput struct {
25208	_ struct{} `type:"structure"`
25209
25210	// The policy name.
25211	//
25212	// PolicyName is a required field
25213	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
25214}
25215
25216// String returns the string representation
25217func (s ListPolicyVersionsInput) String() string {
25218	return awsutil.Prettify(s)
25219}
25220
25221// GoString returns the string representation
25222func (s ListPolicyVersionsInput) GoString() string {
25223	return s.String()
25224}
25225
25226// Validate inspects the fields of the type to determine if they are valid.
25227func (s *ListPolicyVersionsInput) Validate() error {
25228	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
25229	if s.PolicyName == nil {
25230		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
25231	}
25232	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
25233		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
25234	}
25235
25236	if invalidParams.Len() > 0 {
25237		return invalidParams
25238	}
25239	return nil
25240}
25241
25242// SetPolicyName sets the PolicyName field's value.
25243func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
25244	s.PolicyName = &v
25245	return s
25246}
25247
25248// The output from the ListPolicyVersions operation.
25249type ListPolicyVersionsOutput struct {
25250	_ struct{} `type:"structure"`
25251
25252	// The policy versions.
25253	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
25254}
25255
25256// String returns the string representation
25257func (s ListPolicyVersionsOutput) String() string {
25258	return awsutil.Prettify(s)
25259}
25260
25261// GoString returns the string representation
25262func (s ListPolicyVersionsOutput) GoString() string {
25263	return s.String()
25264}
25265
25266// SetPolicyVersions sets the PolicyVersions field's value.
25267func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
25268	s.PolicyVersions = v
25269	return s
25270}
25271
25272// The input for the ListPrincipalPolicies operation.
25273type ListPrincipalPoliciesInput struct {
25274	_ struct{} `type:"structure"`
25275
25276	// Specifies the order for results. If true, results are returned in ascending
25277	// creation order.
25278	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
25279
25280	// The marker for the next set of results.
25281	Marker *string `location:"querystring" locationName:"marker" type:"string"`
25282
25283	// The result page size.
25284	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
25285
25286	// The principal.
25287	//
25288	// Principal is a required field
25289	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
25290}
25291
25292// String returns the string representation
25293func (s ListPrincipalPoliciesInput) String() string {
25294	return awsutil.Prettify(s)
25295}
25296
25297// GoString returns the string representation
25298func (s ListPrincipalPoliciesInput) GoString() string {
25299	return s.String()
25300}
25301
25302// Validate inspects the fields of the type to determine if they are valid.
25303func (s *ListPrincipalPoliciesInput) Validate() error {
25304	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
25305	if s.PageSize != nil && *s.PageSize < 1 {
25306		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
25307	}
25308	if s.Principal == nil {
25309		invalidParams.Add(request.NewErrParamRequired("Principal"))
25310	}
25311
25312	if invalidParams.Len() > 0 {
25313		return invalidParams
25314	}
25315	return nil
25316}
25317
25318// SetAscendingOrder sets the AscendingOrder field's value.
25319func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
25320	s.AscendingOrder = &v
25321	return s
25322}
25323
25324// SetMarker sets the Marker field's value.
25325func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
25326	s.Marker = &v
25327	return s
25328}
25329
25330// SetPageSize sets the PageSize field's value.
25331func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
25332	s.PageSize = &v
25333	return s
25334}
25335
25336// SetPrincipal sets the Principal field's value.
25337func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
25338	s.Principal = &v
25339	return s
25340}
25341
25342// The output from the ListPrincipalPolicies operation.
25343type ListPrincipalPoliciesOutput struct {
25344	_ struct{} `type:"structure"`
25345
25346	// The marker for the next set of results, or null if there are no additional
25347	// results.
25348	NextMarker *string `locationName:"nextMarker" type:"string"`
25349
25350	// The policies.
25351	Policies []*Policy `locationName:"policies" type:"list"`
25352}
25353
25354// String returns the string representation
25355func (s ListPrincipalPoliciesOutput) String() string {
25356	return awsutil.Prettify(s)
25357}
25358
25359// GoString returns the string representation
25360func (s ListPrincipalPoliciesOutput) GoString() string {
25361	return s.String()
25362}
25363
25364// SetNextMarker sets the NextMarker field's value.
25365func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
25366	s.NextMarker = &v
25367	return s
25368}
25369
25370// SetPolicies sets the Policies field's value.
25371func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
25372	s.Policies = v
25373	return s
25374}
25375
25376// The input for the ListPrincipalThings operation.
25377type ListPrincipalThingsInput struct {
25378	_ struct{} `type:"structure"`
25379
25380	// The maximum number of results to return in this operation.
25381	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
25382
25383	// The token to retrieve the next set of results.
25384	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
25385
25386	// The principal.
25387	//
25388	// Principal is a required field
25389	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
25390}
25391
25392// String returns the string representation
25393func (s ListPrincipalThingsInput) String() string {
25394	return awsutil.Prettify(s)
25395}
25396
25397// GoString returns the string representation
25398func (s ListPrincipalThingsInput) GoString() string {
25399	return s.String()
25400}
25401
25402// Validate inspects the fields of the type to determine if they are valid.
25403func (s *ListPrincipalThingsInput) Validate() error {
25404	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
25405	if s.MaxResults != nil && *s.MaxResults < 1 {
25406		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
25407	}
25408	if s.Principal == nil {
25409		invalidParams.Add(request.NewErrParamRequired("Principal"))
25410	}
25411
25412	if invalidParams.Len() > 0 {
25413		return invalidParams
25414	}
25415	return nil
25416}
25417
25418// SetMaxResults sets the MaxResults field's value.
25419func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
25420	s.MaxResults = &v
25421	return s
25422}
25423
25424// SetNextToken sets the NextToken field's value.
25425func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
25426	s.NextToken = &v
25427	return s
25428}
25429
25430// SetPrincipal sets the Principal field's value.
25431func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
25432	s.Principal = &v
25433	return s
25434}
25435
25436// The output from the ListPrincipalThings operation.
25437type ListPrincipalThingsOutput struct {
25438	_ struct{} `type:"structure"`
25439
25440	// The token used to get the next set of results, or null if there are no additional
25441	// results.
25442	NextToken *string `locationName:"nextToken" type:"string"`
25443
25444	// The things.
25445	Things []*string `locationName:"things" type:"list"`
25446}
25447
25448// String returns the string representation
25449func (s ListPrincipalThingsOutput) String() string {
25450	return awsutil.Prettify(s)
25451}
25452
25453// GoString returns the string representation
25454func (s ListPrincipalThingsOutput) GoString() string {
25455	return s.String()
25456}
25457
25458// SetNextToken sets the NextToken field's value.
25459func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
25460	s.NextToken = &v
25461	return s
25462}
25463
25464// SetThings sets the Things field's value.
25465func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
25466	s.Things = v
25467	return s
25468}
25469
25470type ListRoleAliasesInput struct {
25471	_ struct{} `type:"structure"`
25472
25473	// Return the list of role aliases in ascending alphabetical order.
25474	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
25475
25476	// A marker used to get the next set of results.
25477	Marker *string `location:"querystring" locationName:"marker" type:"string"`
25478
25479	// The maximum number of results to return at one time.
25480	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
25481}
25482
25483// String returns the string representation
25484func (s ListRoleAliasesInput) String() string {
25485	return awsutil.Prettify(s)
25486}
25487
25488// GoString returns the string representation
25489func (s ListRoleAliasesInput) GoString() string {
25490	return s.String()
25491}
25492
25493// Validate inspects the fields of the type to determine if they are valid.
25494func (s *ListRoleAliasesInput) Validate() error {
25495	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
25496	if s.PageSize != nil && *s.PageSize < 1 {
25497		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
25498	}
25499
25500	if invalidParams.Len() > 0 {
25501		return invalidParams
25502	}
25503	return nil
25504}
25505
25506// SetAscendingOrder sets the AscendingOrder field's value.
25507func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
25508	s.AscendingOrder = &v
25509	return s
25510}
25511
25512// SetMarker sets the Marker field's value.
25513func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
25514	s.Marker = &v
25515	return s
25516}
25517
25518// SetPageSize sets the PageSize field's value.
25519func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
25520	s.PageSize = &v
25521	return s
25522}
25523
25524type ListRoleAliasesOutput struct {
25525	_ struct{} `type:"structure"`
25526
25527	// A marker used to get the next set of results.
25528	NextMarker *string `locationName:"nextMarker" type:"string"`
25529
25530	// The role aliases.
25531	RoleAliases []*string `locationName:"roleAliases" type:"list"`
25532}
25533
25534// String returns the string representation
25535func (s ListRoleAliasesOutput) String() string {
25536	return awsutil.Prettify(s)
25537}
25538
25539// GoString returns the string representation
25540func (s ListRoleAliasesOutput) GoString() string {
25541	return s.String()
25542}
25543
25544// SetNextMarker sets the NextMarker field's value.
25545func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
25546	s.NextMarker = &v
25547	return s
25548}
25549
25550// SetRoleAliases sets the RoleAliases field's value.
25551func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
25552	s.RoleAliases = v
25553	return s
25554}
25555
25556type ListScheduledAuditsInput struct {
25557	_ struct{} `type:"structure"`
25558
25559	// The maximum number of results to return at one time. The default is 25.
25560	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
25561
25562	// The token for the next set of results.
25563	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
25564}
25565
25566// String returns the string representation
25567func (s ListScheduledAuditsInput) String() string {
25568	return awsutil.Prettify(s)
25569}
25570
25571// GoString returns the string representation
25572func (s ListScheduledAuditsInput) GoString() string {
25573	return s.String()
25574}
25575
25576// Validate inspects the fields of the type to determine if they are valid.
25577func (s *ListScheduledAuditsInput) Validate() error {
25578	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
25579	if s.MaxResults != nil && *s.MaxResults < 1 {
25580		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
25581	}
25582
25583	if invalidParams.Len() > 0 {
25584		return invalidParams
25585	}
25586	return nil
25587}
25588
25589// SetMaxResults sets the MaxResults field's value.
25590func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
25591	s.MaxResults = &v
25592	return s
25593}
25594
25595// SetNextToken sets the NextToken field's value.
25596func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
25597	s.NextToken = &v
25598	return s
25599}
25600
25601type ListScheduledAuditsOutput struct {
25602	_ struct{} `type:"structure"`
25603
25604	// A token that can be used to retrieve the next set of results, or null if
25605	// there are no additional results.
25606	NextToken *string `locationName:"nextToken" type:"string"`
25607
25608	// The list of scheduled audits.
25609	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
25610}
25611
25612// String returns the string representation
25613func (s ListScheduledAuditsOutput) String() string {
25614	return awsutil.Prettify(s)
25615}
25616
25617// GoString returns the string representation
25618func (s ListScheduledAuditsOutput) GoString() string {
25619	return s.String()
25620}
25621
25622// SetNextToken sets the NextToken field's value.
25623func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
25624	s.NextToken = &v
25625	return s
25626}
25627
25628// SetScheduledAudits sets the ScheduledAudits field's value.
25629func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
25630	s.ScheduledAudits = v
25631	return s
25632}
25633
25634type ListSecurityProfilesForTargetInput struct {
25635	_ struct{} `type:"structure"`
25636
25637	// The maximum number of results to return at one time.
25638	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
25639
25640	// The token for the next set of results.
25641	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
25642
25643	// If true, return child groups as well.
25644	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
25645
25646	// The ARN of the target (thing group) whose attached security profiles you
25647	// want to get.
25648	//
25649	// SecurityProfileTargetArn is a required field
25650	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
25651}
25652
25653// String returns the string representation
25654func (s ListSecurityProfilesForTargetInput) String() string {
25655	return awsutil.Prettify(s)
25656}
25657
25658// GoString returns the string representation
25659func (s ListSecurityProfilesForTargetInput) GoString() string {
25660	return s.String()
25661}
25662
25663// Validate inspects the fields of the type to determine if they are valid.
25664func (s *ListSecurityProfilesForTargetInput) Validate() error {
25665	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
25666	if s.MaxResults != nil && *s.MaxResults < 1 {
25667		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
25668	}
25669	if s.SecurityProfileTargetArn == nil {
25670		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
25671	}
25672
25673	if invalidParams.Len() > 0 {
25674		return invalidParams
25675	}
25676	return nil
25677}
25678
25679// SetMaxResults sets the MaxResults field's value.
25680func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
25681	s.MaxResults = &v
25682	return s
25683}
25684
25685// SetNextToken sets the NextToken field's value.
25686func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
25687	s.NextToken = &v
25688	return s
25689}
25690
25691// SetRecursive sets the Recursive field's value.
25692func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
25693	s.Recursive = &v
25694	return s
25695}
25696
25697// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
25698func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
25699	s.SecurityProfileTargetArn = &v
25700	return s
25701}
25702
25703type ListSecurityProfilesForTargetOutput struct {
25704	_ struct{} `type:"structure"`
25705
25706	// A token that can be used to retrieve the next set of results, or null if
25707	// there are no additional results.
25708	NextToken *string `locationName:"nextToken" type:"string"`
25709
25710	// A list of security profiles and their associated targets.
25711	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
25712}
25713
25714// String returns the string representation
25715func (s ListSecurityProfilesForTargetOutput) String() string {
25716	return awsutil.Prettify(s)
25717}
25718
25719// GoString returns the string representation
25720func (s ListSecurityProfilesForTargetOutput) GoString() string {
25721	return s.String()
25722}
25723
25724// SetNextToken sets the NextToken field's value.
25725func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
25726	s.NextToken = &v
25727	return s
25728}
25729
25730// SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
25731func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
25732	s.SecurityProfileTargetMappings = v
25733	return s
25734}
25735
25736type ListSecurityProfilesInput struct {
25737	_ struct{} `type:"structure"`
25738
25739	// The maximum number of results to return at one time.
25740	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
25741
25742	// The token for the next set of results.
25743	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
25744}
25745
25746// String returns the string representation
25747func (s ListSecurityProfilesInput) String() string {
25748	return awsutil.Prettify(s)
25749}
25750
25751// GoString returns the string representation
25752func (s ListSecurityProfilesInput) GoString() string {
25753	return s.String()
25754}
25755
25756// Validate inspects the fields of the type to determine if they are valid.
25757func (s *ListSecurityProfilesInput) Validate() error {
25758	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
25759	if s.MaxResults != nil && *s.MaxResults < 1 {
25760		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
25761	}
25762
25763	if invalidParams.Len() > 0 {
25764		return invalidParams
25765	}
25766	return nil
25767}
25768
25769// SetMaxResults sets the MaxResults field's value.
25770func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
25771	s.MaxResults = &v
25772	return s
25773}
25774
25775// SetNextToken sets the NextToken field's value.
25776func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
25777	s.NextToken = &v
25778	return s
25779}
25780
25781type ListSecurityProfilesOutput struct {
25782	_ struct{} `type:"structure"`
25783
25784	// A token that can be used to retrieve the next set of results, or null if
25785	// there are no additional results.
25786	NextToken *string `locationName:"nextToken" type:"string"`
25787
25788	// A list of security profile identifiers (names and ARNs).
25789	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
25790}
25791
25792// String returns the string representation
25793func (s ListSecurityProfilesOutput) String() string {
25794	return awsutil.Prettify(s)
25795}
25796
25797// GoString returns the string representation
25798func (s ListSecurityProfilesOutput) GoString() string {
25799	return s.String()
25800}
25801
25802// SetNextToken sets the NextToken field's value.
25803func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
25804	s.NextToken = &v
25805	return s
25806}
25807
25808// SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
25809func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
25810	s.SecurityProfileIdentifiers = v
25811	return s
25812}
25813
25814type ListStreamsInput struct {
25815	_ struct{} `type:"structure"`
25816
25817	// Set to true to return the list of streams in ascending order.
25818	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
25819
25820	// The maximum number of results to return at a time.
25821	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
25822
25823	// A token used to get the next set of results.
25824	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
25825}
25826
25827// String returns the string representation
25828func (s ListStreamsInput) String() string {
25829	return awsutil.Prettify(s)
25830}
25831
25832// GoString returns the string representation
25833func (s ListStreamsInput) GoString() string {
25834	return s.String()
25835}
25836
25837// Validate inspects the fields of the type to determine if they are valid.
25838func (s *ListStreamsInput) Validate() error {
25839	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
25840	if s.MaxResults != nil && *s.MaxResults < 1 {
25841		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
25842	}
25843
25844	if invalidParams.Len() > 0 {
25845		return invalidParams
25846	}
25847	return nil
25848}
25849
25850// SetAscendingOrder sets the AscendingOrder field's value.
25851func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
25852	s.AscendingOrder = &v
25853	return s
25854}
25855
25856// SetMaxResults sets the MaxResults field's value.
25857func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
25858	s.MaxResults = &v
25859	return s
25860}
25861
25862// SetNextToken sets the NextToken field's value.
25863func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
25864	s.NextToken = &v
25865	return s
25866}
25867
25868type ListStreamsOutput struct {
25869	_ struct{} `type:"structure"`
25870
25871	// A token used to get the next set of results.
25872	NextToken *string `locationName:"nextToken" type:"string"`
25873
25874	// A list of streams.
25875	Streams []*StreamSummary `locationName:"streams" type:"list"`
25876}
25877
25878// String returns the string representation
25879func (s ListStreamsOutput) String() string {
25880	return awsutil.Prettify(s)
25881}
25882
25883// GoString returns the string representation
25884func (s ListStreamsOutput) GoString() string {
25885	return s.String()
25886}
25887
25888// SetNextToken sets the NextToken field's value.
25889func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
25890	s.NextToken = &v
25891	return s
25892}
25893
25894// SetStreams sets the Streams field's value.
25895func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
25896	s.Streams = v
25897	return s
25898}
25899
25900type ListTargetsForPolicyInput struct {
25901	_ struct{} `type:"structure"`
25902
25903	// A marker used to get the next set of results.
25904	Marker *string `location:"querystring" locationName:"marker" type:"string"`
25905
25906	// The maximum number of results to return at one time.
25907	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
25908
25909	// The policy name.
25910	//
25911	// PolicyName is a required field
25912	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
25913}
25914
25915// String returns the string representation
25916func (s ListTargetsForPolicyInput) String() string {
25917	return awsutil.Prettify(s)
25918}
25919
25920// GoString returns the string representation
25921func (s ListTargetsForPolicyInput) GoString() string {
25922	return s.String()
25923}
25924
25925// Validate inspects the fields of the type to determine if they are valid.
25926func (s *ListTargetsForPolicyInput) Validate() error {
25927	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
25928	if s.PageSize != nil && *s.PageSize < 1 {
25929		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
25930	}
25931	if s.PolicyName == nil {
25932		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
25933	}
25934	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
25935		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
25936	}
25937
25938	if invalidParams.Len() > 0 {
25939		return invalidParams
25940	}
25941	return nil
25942}
25943
25944// SetMarker sets the Marker field's value.
25945func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
25946	s.Marker = &v
25947	return s
25948}
25949
25950// SetPageSize sets the PageSize field's value.
25951func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
25952	s.PageSize = &v
25953	return s
25954}
25955
25956// SetPolicyName sets the PolicyName field's value.
25957func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
25958	s.PolicyName = &v
25959	return s
25960}
25961
25962type ListTargetsForPolicyOutput struct {
25963	_ struct{} `type:"structure"`
25964
25965	// A marker used to get the next set of results.
25966	NextMarker *string `locationName:"nextMarker" type:"string"`
25967
25968	// The policy targets.
25969	Targets []*string `locationName:"targets" type:"list"`
25970}
25971
25972// String returns the string representation
25973func (s ListTargetsForPolicyOutput) String() string {
25974	return awsutil.Prettify(s)
25975}
25976
25977// GoString returns the string representation
25978func (s ListTargetsForPolicyOutput) GoString() string {
25979	return s.String()
25980}
25981
25982// SetNextMarker sets the NextMarker field's value.
25983func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
25984	s.NextMarker = &v
25985	return s
25986}
25987
25988// SetTargets sets the Targets field's value.
25989func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
25990	s.Targets = v
25991	return s
25992}
25993
25994type ListTargetsForSecurityProfileInput struct {
25995	_ struct{} `type:"structure"`
25996
25997	// The maximum number of results to return at one time.
25998	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
25999
26000	// The token for the next set of results.
26001	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26002
26003	// The security profile.
26004	//
26005	// SecurityProfileName is a required field
26006	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
26007}
26008
26009// String returns the string representation
26010func (s ListTargetsForSecurityProfileInput) String() string {
26011	return awsutil.Prettify(s)
26012}
26013
26014// GoString returns the string representation
26015func (s ListTargetsForSecurityProfileInput) GoString() string {
26016	return s.String()
26017}
26018
26019// Validate inspects the fields of the type to determine if they are valid.
26020func (s *ListTargetsForSecurityProfileInput) Validate() error {
26021	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
26022	if s.MaxResults != nil && *s.MaxResults < 1 {
26023		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26024	}
26025	if s.SecurityProfileName == nil {
26026		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
26027	}
26028	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
26029		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
26030	}
26031
26032	if invalidParams.Len() > 0 {
26033		return invalidParams
26034	}
26035	return nil
26036}
26037
26038// SetMaxResults sets the MaxResults field's value.
26039func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
26040	s.MaxResults = &v
26041	return s
26042}
26043
26044// SetNextToken sets the NextToken field's value.
26045func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
26046	s.NextToken = &v
26047	return s
26048}
26049
26050// SetSecurityProfileName sets the SecurityProfileName field's value.
26051func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
26052	s.SecurityProfileName = &v
26053	return s
26054}
26055
26056type ListTargetsForSecurityProfileOutput struct {
26057	_ struct{} `type:"structure"`
26058
26059	// A token that can be used to retrieve the next set of results, or null if
26060	// there are no additional results.
26061	NextToken *string `locationName:"nextToken" type:"string"`
26062
26063	// The thing groups to which the security profile is attached.
26064	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
26065}
26066
26067// String returns the string representation
26068func (s ListTargetsForSecurityProfileOutput) String() string {
26069	return awsutil.Prettify(s)
26070}
26071
26072// GoString returns the string representation
26073func (s ListTargetsForSecurityProfileOutput) GoString() string {
26074	return s.String()
26075}
26076
26077// SetNextToken sets the NextToken field's value.
26078func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
26079	s.NextToken = &v
26080	return s
26081}
26082
26083// SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
26084func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
26085	s.SecurityProfileTargets = v
26086	return s
26087}
26088
26089type ListThingGroupsForThingInput struct {
26090	_ struct{} `type:"structure"`
26091
26092	// The maximum number of results to return at one time.
26093	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26094
26095	// The token to retrieve the next set of results.
26096	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26097
26098	// The thing name.
26099	//
26100	// ThingName is a required field
26101	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
26102}
26103
26104// String returns the string representation
26105func (s ListThingGroupsForThingInput) String() string {
26106	return awsutil.Prettify(s)
26107}
26108
26109// GoString returns the string representation
26110func (s ListThingGroupsForThingInput) GoString() string {
26111	return s.String()
26112}
26113
26114// Validate inspects the fields of the type to determine if they are valid.
26115func (s *ListThingGroupsForThingInput) Validate() error {
26116	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
26117	if s.MaxResults != nil && *s.MaxResults < 1 {
26118		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26119	}
26120	if s.ThingName == nil {
26121		invalidParams.Add(request.NewErrParamRequired("ThingName"))
26122	}
26123	if s.ThingName != nil && len(*s.ThingName) < 1 {
26124		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
26125	}
26126
26127	if invalidParams.Len() > 0 {
26128		return invalidParams
26129	}
26130	return nil
26131}
26132
26133// SetMaxResults sets the MaxResults field's value.
26134func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
26135	s.MaxResults = &v
26136	return s
26137}
26138
26139// SetNextToken sets the NextToken field's value.
26140func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
26141	s.NextToken = &v
26142	return s
26143}
26144
26145// SetThingName sets the ThingName field's value.
26146func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
26147	s.ThingName = &v
26148	return s
26149}
26150
26151type ListThingGroupsForThingOutput struct {
26152	_ struct{} `type:"structure"`
26153
26154	// The token used to get the next set of results, or null if there are no additional
26155	// results.
26156	NextToken *string `locationName:"nextToken" type:"string"`
26157
26158	// The thing groups.
26159	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
26160}
26161
26162// String returns the string representation
26163func (s ListThingGroupsForThingOutput) String() string {
26164	return awsutil.Prettify(s)
26165}
26166
26167// GoString returns the string representation
26168func (s ListThingGroupsForThingOutput) GoString() string {
26169	return s.String()
26170}
26171
26172// SetNextToken sets the NextToken field's value.
26173func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
26174	s.NextToken = &v
26175	return s
26176}
26177
26178// SetThingGroups sets the ThingGroups field's value.
26179func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
26180	s.ThingGroups = v
26181	return s
26182}
26183
26184type ListThingGroupsInput struct {
26185	_ struct{} `type:"structure"`
26186
26187	// The maximum number of results to return at one time.
26188	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26189
26190	// A filter that limits the results to those with the specified name prefix.
26191	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
26192
26193	// The token to retrieve the next set of results.
26194	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26195
26196	// A filter that limits the results to those with the specified parent group.
26197	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
26198
26199	// If true, return child groups as well.
26200	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
26201}
26202
26203// String returns the string representation
26204func (s ListThingGroupsInput) String() string {
26205	return awsutil.Prettify(s)
26206}
26207
26208// GoString returns the string representation
26209func (s ListThingGroupsInput) GoString() string {
26210	return s.String()
26211}
26212
26213// Validate inspects the fields of the type to determine if they are valid.
26214func (s *ListThingGroupsInput) Validate() error {
26215	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
26216	if s.MaxResults != nil && *s.MaxResults < 1 {
26217		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26218	}
26219	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
26220		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
26221	}
26222	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
26223		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
26224	}
26225
26226	if invalidParams.Len() > 0 {
26227		return invalidParams
26228	}
26229	return nil
26230}
26231
26232// SetMaxResults sets the MaxResults field's value.
26233func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
26234	s.MaxResults = &v
26235	return s
26236}
26237
26238// SetNamePrefixFilter sets the NamePrefixFilter field's value.
26239func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
26240	s.NamePrefixFilter = &v
26241	return s
26242}
26243
26244// SetNextToken sets the NextToken field's value.
26245func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
26246	s.NextToken = &v
26247	return s
26248}
26249
26250// SetParentGroup sets the ParentGroup field's value.
26251func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
26252	s.ParentGroup = &v
26253	return s
26254}
26255
26256// SetRecursive sets the Recursive field's value.
26257func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
26258	s.Recursive = &v
26259	return s
26260}
26261
26262type ListThingGroupsOutput struct {
26263	_ struct{} `type:"structure"`
26264
26265	// The token used to get the next set of results, or null if there are no additional
26266	// results.
26267	NextToken *string `locationName:"nextToken" type:"string"`
26268
26269	// The thing groups.
26270	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
26271}
26272
26273// String returns the string representation
26274func (s ListThingGroupsOutput) String() string {
26275	return awsutil.Prettify(s)
26276}
26277
26278// GoString returns the string representation
26279func (s ListThingGroupsOutput) GoString() string {
26280	return s.String()
26281}
26282
26283// SetNextToken sets the NextToken field's value.
26284func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
26285	s.NextToken = &v
26286	return s
26287}
26288
26289// SetThingGroups sets the ThingGroups field's value.
26290func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
26291	s.ThingGroups = v
26292	return s
26293}
26294
26295// The input for the ListThingPrincipal operation.
26296type ListThingPrincipalsInput struct {
26297	_ struct{} `type:"structure"`
26298
26299	// The name of the thing.
26300	//
26301	// ThingName is a required field
26302	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
26303}
26304
26305// String returns the string representation
26306func (s ListThingPrincipalsInput) String() string {
26307	return awsutil.Prettify(s)
26308}
26309
26310// GoString returns the string representation
26311func (s ListThingPrincipalsInput) GoString() string {
26312	return s.String()
26313}
26314
26315// Validate inspects the fields of the type to determine if they are valid.
26316func (s *ListThingPrincipalsInput) Validate() error {
26317	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
26318	if s.ThingName == nil {
26319		invalidParams.Add(request.NewErrParamRequired("ThingName"))
26320	}
26321	if s.ThingName != nil && len(*s.ThingName) < 1 {
26322		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
26323	}
26324
26325	if invalidParams.Len() > 0 {
26326		return invalidParams
26327	}
26328	return nil
26329}
26330
26331// SetThingName sets the ThingName field's value.
26332func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
26333	s.ThingName = &v
26334	return s
26335}
26336
26337// The output from the ListThingPrincipals operation.
26338type ListThingPrincipalsOutput struct {
26339	_ struct{} `type:"structure"`
26340
26341	// The principals associated with the thing.
26342	Principals []*string `locationName:"principals" type:"list"`
26343}
26344
26345// String returns the string representation
26346func (s ListThingPrincipalsOutput) String() string {
26347	return awsutil.Prettify(s)
26348}
26349
26350// GoString returns the string representation
26351func (s ListThingPrincipalsOutput) GoString() string {
26352	return s.String()
26353}
26354
26355// SetPrincipals sets the Principals field's value.
26356func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
26357	s.Principals = v
26358	return s
26359}
26360
26361type ListThingRegistrationTaskReportsInput struct {
26362	_ struct{} `type:"structure"`
26363
26364	// The maximum number of results to return per request.
26365	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26366
26367	// The token to retrieve the next set of results.
26368	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26369
26370	// The type of task report.
26371	//
26372	// ReportType is a required field
26373	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
26374
26375	// The id of the task.
26376	//
26377	// TaskId is a required field
26378	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
26379}
26380
26381// String returns the string representation
26382func (s ListThingRegistrationTaskReportsInput) String() string {
26383	return awsutil.Prettify(s)
26384}
26385
26386// GoString returns the string representation
26387func (s ListThingRegistrationTaskReportsInput) GoString() string {
26388	return s.String()
26389}
26390
26391// Validate inspects the fields of the type to determine if they are valid.
26392func (s *ListThingRegistrationTaskReportsInput) Validate() error {
26393	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
26394	if s.MaxResults != nil && *s.MaxResults < 1 {
26395		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26396	}
26397	if s.ReportType == nil {
26398		invalidParams.Add(request.NewErrParamRequired("ReportType"))
26399	}
26400	if s.TaskId == nil {
26401		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26402	}
26403
26404	if invalidParams.Len() > 0 {
26405		return invalidParams
26406	}
26407	return nil
26408}
26409
26410// SetMaxResults sets the MaxResults field's value.
26411func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
26412	s.MaxResults = &v
26413	return s
26414}
26415
26416// SetNextToken sets the NextToken field's value.
26417func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
26418	s.NextToken = &v
26419	return s
26420}
26421
26422// SetReportType sets the ReportType field's value.
26423func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
26424	s.ReportType = &v
26425	return s
26426}
26427
26428// SetTaskId sets the TaskId field's value.
26429func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
26430	s.TaskId = &v
26431	return s
26432}
26433
26434type ListThingRegistrationTaskReportsOutput struct {
26435	_ struct{} `type:"structure"`
26436
26437	// The token used to get the next set of results, or null if there are no additional
26438	// results.
26439	NextToken *string `locationName:"nextToken" type:"string"`
26440
26441	// The type of task report.
26442	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
26443
26444	// Links to the task resources.
26445	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
26446}
26447
26448// String returns the string representation
26449func (s ListThingRegistrationTaskReportsOutput) String() string {
26450	return awsutil.Prettify(s)
26451}
26452
26453// GoString returns the string representation
26454func (s ListThingRegistrationTaskReportsOutput) GoString() string {
26455	return s.String()
26456}
26457
26458// SetNextToken sets the NextToken field's value.
26459func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
26460	s.NextToken = &v
26461	return s
26462}
26463
26464// SetReportType sets the ReportType field's value.
26465func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
26466	s.ReportType = &v
26467	return s
26468}
26469
26470// SetResourceLinks sets the ResourceLinks field's value.
26471func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
26472	s.ResourceLinks = v
26473	return s
26474}
26475
26476type ListThingRegistrationTasksInput struct {
26477	_ struct{} `type:"structure"`
26478
26479	// The maximum number of results to return at one time.
26480	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26481
26482	// The token to retrieve the next set of results.
26483	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26484
26485	// The status of the bulk thing provisioning task.
26486	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
26487}
26488
26489// String returns the string representation
26490func (s ListThingRegistrationTasksInput) String() string {
26491	return awsutil.Prettify(s)
26492}
26493
26494// GoString returns the string representation
26495func (s ListThingRegistrationTasksInput) GoString() string {
26496	return s.String()
26497}
26498
26499// Validate inspects the fields of the type to determine if they are valid.
26500func (s *ListThingRegistrationTasksInput) Validate() error {
26501	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
26502	if s.MaxResults != nil && *s.MaxResults < 1 {
26503		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26504	}
26505
26506	if invalidParams.Len() > 0 {
26507		return invalidParams
26508	}
26509	return nil
26510}
26511
26512// SetMaxResults sets the MaxResults field's value.
26513func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
26514	s.MaxResults = &v
26515	return s
26516}
26517
26518// SetNextToken sets the NextToken field's value.
26519func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
26520	s.NextToken = &v
26521	return s
26522}
26523
26524// SetStatus sets the Status field's value.
26525func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
26526	s.Status = &v
26527	return s
26528}
26529
26530type ListThingRegistrationTasksOutput struct {
26531	_ struct{} `type:"structure"`
26532
26533	// The token used to get the next set of results, or null if there are no additional
26534	// results.
26535	NextToken *string `locationName:"nextToken" type:"string"`
26536
26537	// A list of bulk thing provisioning task IDs.
26538	TaskIds []*string `locationName:"taskIds" type:"list"`
26539}
26540
26541// String returns the string representation
26542func (s ListThingRegistrationTasksOutput) String() string {
26543	return awsutil.Prettify(s)
26544}
26545
26546// GoString returns the string representation
26547func (s ListThingRegistrationTasksOutput) GoString() string {
26548	return s.String()
26549}
26550
26551// SetNextToken sets the NextToken field's value.
26552func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
26553	s.NextToken = &v
26554	return s
26555}
26556
26557// SetTaskIds sets the TaskIds field's value.
26558func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
26559	s.TaskIds = v
26560	return s
26561}
26562
26563// The input for the ListThingTypes operation.
26564type ListThingTypesInput struct {
26565	_ struct{} `type:"structure"`
26566
26567	// The maximum number of results to return in this operation.
26568	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26569
26570	// The token to retrieve the next set of results.
26571	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26572
26573	// The name of the thing type.
26574	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
26575}
26576
26577// String returns the string representation
26578func (s ListThingTypesInput) String() string {
26579	return awsutil.Prettify(s)
26580}
26581
26582// GoString returns the string representation
26583func (s ListThingTypesInput) GoString() string {
26584	return s.String()
26585}
26586
26587// Validate inspects the fields of the type to determine if they are valid.
26588func (s *ListThingTypesInput) Validate() error {
26589	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
26590	if s.MaxResults != nil && *s.MaxResults < 1 {
26591		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26592	}
26593	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
26594		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
26595	}
26596
26597	if invalidParams.Len() > 0 {
26598		return invalidParams
26599	}
26600	return nil
26601}
26602
26603// SetMaxResults sets the MaxResults field's value.
26604func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
26605	s.MaxResults = &v
26606	return s
26607}
26608
26609// SetNextToken sets the NextToken field's value.
26610func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
26611	s.NextToken = &v
26612	return s
26613}
26614
26615// SetThingTypeName sets the ThingTypeName field's value.
26616func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
26617	s.ThingTypeName = &v
26618	return s
26619}
26620
26621// The output for the ListThingTypes operation.
26622type ListThingTypesOutput struct {
26623	_ struct{} `type:"structure"`
26624
26625	// The token for the next set of results, or null if there are no additional
26626	// results.
26627	NextToken *string `locationName:"nextToken" type:"string"`
26628
26629	// The thing types.
26630	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
26631}
26632
26633// String returns the string representation
26634func (s ListThingTypesOutput) String() string {
26635	return awsutil.Prettify(s)
26636}
26637
26638// GoString returns the string representation
26639func (s ListThingTypesOutput) GoString() string {
26640	return s.String()
26641}
26642
26643// SetNextToken sets the NextToken field's value.
26644func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
26645	s.NextToken = &v
26646	return s
26647}
26648
26649// SetThingTypes sets the ThingTypes field's value.
26650func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
26651	s.ThingTypes = v
26652	return s
26653}
26654
26655type ListThingsInThingGroupInput struct {
26656	_ struct{} `type:"structure"`
26657
26658	// The maximum number of results to return at one time.
26659	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26660
26661	// The token to retrieve the next set of results.
26662	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26663
26664	// When true, list things in this thing group and in all child groups as well.
26665	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
26666
26667	// The thing group name.
26668	//
26669	// ThingGroupName is a required field
26670	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
26671}
26672
26673// String returns the string representation
26674func (s ListThingsInThingGroupInput) String() string {
26675	return awsutil.Prettify(s)
26676}
26677
26678// GoString returns the string representation
26679func (s ListThingsInThingGroupInput) GoString() string {
26680	return s.String()
26681}
26682
26683// Validate inspects the fields of the type to determine if they are valid.
26684func (s *ListThingsInThingGroupInput) Validate() error {
26685	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
26686	if s.MaxResults != nil && *s.MaxResults < 1 {
26687		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26688	}
26689	if s.ThingGroupName == nil {
26690		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
26691	}
26692	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
26693		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
26694	}
26695
26696	if invalidParams.Len() > 0 {
26697		return invalidParams
26698	}
26699	return nil
26700}
26701
26702// SetMaxResults sets the MaxResults field's value.
26703func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
26704	s.MaxResults = &v
26705	return s
26706}
26707
26708// SetNextToken sets the NextToken field's value.
26709func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
26710	s.NextToken = &v
26711	return s
26712}
26713
26714// SetRecursive sets the Recursive field's value.
26715func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
26716	s.Recursive = &v
26717	return s
26718}
26719
26720// SetThingGroupName sets the ThingGroupName field's value.
26721func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
26722	s.ThingGroupName = &v
26723	return s
26724}
26725
26726type ListThingsInThingGroupOutput struct {
26727	_ struct{} `type:"structure"`
26728
26729	// The token used to get the next set of results, or null if there are no additional
26730	// results.
26731	NextToken *string `locationName:"nextToken" type:"string"`
26732
26733	// The things in the specified thing group.
26734	Things []*string `locationName:"things" type:"list"`
26735}
26736
26737// String returns the string representation
26738func (s ListThingsInThingGroupOutput) String() string {
26739	return awsutil.Prettify(s)
26740}
26741
26742// GoString returns the string representation
26743func (s ListThingsInThingGroupOutput) GoString() string {
26744	return s.String()
26745}
26746
26747// SetNextToken sets the NextToken field's value.
26748func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
26749	s.NextToken = &v
26750	return s
26751}
26752
26753// SetThings sets the Things field's value.
26754func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
26755	s.Things = v
26756	return s
26757}
26758
26759// The input for the ListThings operation.
26760type ListThingsInput struct {
26761	_ struct{} `type:"structure"`
26762
26763	// The attribute name used to search for things.
26764	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
26765
26766	// The attribute value used to search for things.
26767	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
26768
26769	// The maximum number of results to return in this operation.
26770	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26771
26772	// The token to retrieve the next set of results.
26773	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26774
26775	// The name of the thing type used to search for things.
26776	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
26777}
26778
26779// String returns the string representation
26780func (s ListThingsInput) String() string {
26781	return awsutil.Prettify(s)
26782}
26783
26784// GoString returns the string representation
26785func (s ListThingsInput) GoString() string {
26786	return s.String()
26787}
26788
26789// Validate inspects the fields of the type to determine if they are valid.
26790func (s *ListThingsInput) Validate() error {
26791	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
26792	if s.MaxResults != nil && *s.MaxResults < 1 {
26793		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26794	}
26795	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
26796		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
26797	}
26798
26799	if invalidParams.Len() > 0 {
26800		return invalidParams
26801	}
26802	return nil
26803}
26804
26805// SetAttributeName sets the AttributeName field's value.
26806func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
26807	s.AttributeName = &v
26808	return s
26809}
26810
26811// SetAttributeValue sets the AttributeValue field's value.
26812func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
26813	s.AttributeValue = &v
26814	return s
26815}
26816
26817// SetMaxResults sets the MaxResults field's value.
26818func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
26819	s.MaxResults = &v
26820	return s
26821}
26822
26823// SetNextToken sets the NextToken field's value.
26824func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
26825	s.NextToken = &v
26826	return s
26827}
26828
26829// SetThingTypeName sets the ThingTypeName field's value.
26830func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
26831	s.ThingTypeName = &v
26832	return s
26833}
26834
26835// The output from the ListThings operation.
26836type ListThingsOutput struct {
26837	_ struct{} `type:"structure"`
26838
26839	// The token used to get the next set of results, or null if there are no additional
26840	// results.
26841	NextToken *string `locationName:"nextToken" type:"string"`
26842
26843	// The things.
26844	Things []*ThingAttribute `locationName:"things" type:"list"`
26845}
26846
26847// String returns the string representation
26848func (s ListThingsOutput) String() string {
26849	return awsutil.Prettify(s)
26850}
26851
26852// GoString returns the string representation
26853func (s ListThingsOutput) GoString() string {
26854	return s.String()
26855}
26856
26857// SetNextToken sets the NextToken field's value.
26858func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
26859	s.NextToken = &v
26860	return s
26861}
26862
26863// SetThings sets the Things field's value.
26864func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
26865	s.Things = v
26866	return s
26867}
26868
26869// The input for the ListTopicRules operation.
26870type ListTopicRulesInput struct {
26871	_ struct{} `type:"structure"`
26872
26873	// The maximum number of results to return.
26874	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26875
26876	// A token used to retrieve the next value.
26877	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26878
26879	// Specifies whether the rule is disabled.
26880	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
26881
26882	// The topic.
26883	Topic *string `location:"querystring" locationName:"topic" type:"string"`
26884}
26885
26886// String returns the string representation
26887func (s ListTopicRulesInput) String() string {
26888	return awsutil.Prettify(s)
26889}
26890
26891// GoString returns the string representation
26892func (s ListTopicRulesInput) GoString() string {
26893	return s.String()
26894}
26895
26896// Validate inspects the fields of the type to determine if they are valid.
26897func (s *ListTopicRulesInput) Validate() error {
26898	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
26899	if s.MaxResults != nil && *s.MaxResults < 1 {
26900		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26901	}
26902
26903	if invalidParams.Len() > 0 {
26904		return invalidParams
26905	}
26906	return nil
26907}
26908
26909// SetMaxResults sets the MaxResults field's value.
26910func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
26911	s.MaxResults = &v
26912	return s
26913}
26914
26915// SetNextToken sets the NextToken field's value.
26916func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
26917	s.NextToken = &v
26918	return s
26919}
26920
26921// SetRuleDisabled sets the RuleDisabled field's value.
26922func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
26923	s.RuleDisabled = &v
26924	return s
26925}
26926
26927// SetTopic sets the Topic field's value.
26928func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
26929	s.Topic = &v
26930	return s
26931}
26932
26933// The output from the ListTopicRules operation.
26934type ListTopicRulesOutput struct {
26935	_ struct{} `type:"structure"`
26936
26937	// A token used to retrieve the next value.
26938	NextToken *string `locationName:"nextToken" type:"string"`
26939
26940	// The rules.
26941	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
26942}
26943
26944// String returns the string representation
26945func (s ListTopicRulesOutput) String() string {
26946	return awsutil.Prettify(s)
26947}
26948
26949// GoString returns the string representation
26950func (s ListTopicRulesOutput) GoString() string {
26951	return s.String()
26952}
26953
26954// SetNextToken sets the NextToken field's value.
26955func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
26956	s.NextToken = &v
26957	return s
26958}
26959
26960// SetRules sets the Rules field's value.
26961func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
26962	s.Rules = v
26963	return s
26964}
26965
26966type ListV2LoggingLevelsInput struct {
26967	_ struct{} `type:"structure"`
26968
26969	// The maximum number of results to return at one time.
26970	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
26971
26972	// The token used to get the next set of results, or null if there are no additional
26973	// results.
26974	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
26975
26976	// The type of resource for which you are configuring logging. Must be THING_Group.
26977	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
26978}
26979
26980// String returns the string representation
26981func (s ListV2LoggingLevelsInput) String() string {
26982	return awsutil.Prettify(s)
26983}
26984
26985// GoString returns the string representation
26986func (s ListV2LoggingLevelsInput) GoString() string {
26987	return s.String()
26988}
26989
26990// Validate inspects the fields of the type to determine if they are valid.
26991func (s *ListV2LoggingLevelsInput) Validate() error {
26992	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
26993	if s.MaxResults != nil && *s.MaxResults < 1 {
26994		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
26995	}
26996
26997	if invalidParams.Len() > 0 {
26998		return invalidParams
26999	}
27000	return nil
27001}
27002
27003// SetMaxResults sets the MaxResults field's value.
27004func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
27005	s.MaxResults = &v
27006	return s
27007}
27008
27009// SetNextToken sets the NextToken field's value.
27010func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
27011	s.NextToken = &v
27012	return s
27013}
27014
27015// SetTargetType sets the TargetType field's value.
27016func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
27017	s.TargetType = &v
27018	return s
27019}
27020
27021type ListV2LoggingLevelsOutput struct {
27022	_ struct{} `type:"structure"`
27023
27024	// The logging configuration for a target.
27025	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
27026
27027	// The token used to get the next set of results, or null if there are no additional
27028	// results.
27029	NextToken *string `locationName:"nextToken" type:"string"`
27030}
27031
27032// String returns the string representation
27033func (s ListV2LoggingLevelsOutput) String() string {
27034	return awsutil.Prettify(s)
27035}
27036
27037// GoString returns the string representation
27038func (s ListV2LoggingLevelsOutput) GoString() string {
27039	return s.String()
27040}
27041
27042// SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
27043func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
27044	s.LogTargetConfigurations = v
27045	return s
27046}
27047
27048// SetNextToken sets the NextToken field's value.
27049func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
27050	s.NextToken = &v
27051	return s
27052}
27053
27054type ListViolationEventsInput struct {
27055	_ struct{} `type:"structure"`
27056
27057	// The end time for the alerts to be listed.
27058	//
27059	// EndTime is a required field
27060	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
27061
27062	// The maximum number of results to return at one time.
27063	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
27064
27065	// The token for the next set of results.
27066	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
27067
27068	// A filter to limit results to those alerts generated by the specified security
27069	// profile.
27070	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
27071
27072	// The start time for the alerts to be listed.
27073	//
27074	// StartTime is a required field
27075	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
27076
27077	// A filter to limit results to those alerts caused by the specified thing.
27078	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
27079}
27080
27081// String returns the string representation
27082func (s ListViolationEventsInput) String() string {
27083	return awsutil.Prettify(s)
27084}
27085
27086// GoString returns the string representation
27087func (s ListViolationEventsInput) GoString() string {
27088	return s.String()
27089}
27090
27091// Validate inspects the fields of the type to determine if they are valid.
27092func (s *ListViolationEventsInput) Validate() error {
27093	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
27094	if s.EndTime == nil {
27095		invalidParams.Add(request.NewErrParamRequired("EndTime"))
27096	}
27097	if s.MaxResults != nil && *s.MaxResults < 1 {
27098		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
27099	}
27100	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
27101		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
27102	}
27103	if s.StartTime == nil {
27104		invalidParams.Add(request.NewErrParamRequired("StartTime"))
27105	}
27106	if s.ThingName != nil && len(*s.ThingName) < 1 {
27107		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
27108	}
27109
27110	if invalidParams.Len() > 0 {
27111		return invalidParams
27112	}
27113	return nil
27114}
27115
27116// SetEndTime sets the EndTime field's value.
27117func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
27118	s.EndTime = &v
27119	return s
27120}
27121
27122// SetMaxResults sets the MaxResults field's value.
27123func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
27124	s.MaxResults = &v
27125	return s
27126}
27127
27128// SetNextToken sets the NextToken field's value.
27129func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
27130	s.NextToken = &v
27131	return s
27132}
27133
27134// SetSecurityProfileName sets the SecurityProfileName field's value.
27135func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
27136	s.SecurityProfileName = &v
27137	return s
27138}
27139
27140// SetStartTime sets the StartTime field's value.
27141func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
27142	s.StartTime = &v
27143	return s
27144}
27145
27146// SetThingName sets the ThingName field's value.
27147func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
27148	s.ThingName = &v
27149	return s
27150}
27151
27152type ListViolationEventsOutput struct {
27153	_ struct{} `type:"structure"`
27154
27155	// A token that can be used to retrieve the next set of results, or null if
27156	// there are no additional results.
27157	NextToken *string `locationName:"nextToken" type:"string"`
27158
27159	// The security profile violation alerts issued for this account during the
27160	// given time frame, potentially filtered by security profile, behavior violated,
27161	// or thing (device) violating.
27162	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
27163}
27164
27165// String returns the string representation
27166func (s ListViolationEventsOutput) String() string {
27167	return awsutil.Prettify(s)
27168}
27169
27170// GoString returns the string representation
27171func (s ListViolationEventsOutput) GoString() string {
27172	return s.String()
27173}
27174
27175// SetNextToken sets the NextToken field's value.
27176func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
27177	s.NextToken = &v
27178	return s
27179}
27180
27181// SetViolationEvents sets the ViolationEvents field's value.
27182func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
27183	s.ViolationEvents = v
27184	return s
27185}
27186
27187// A log target.
27188type LogTarget struct {
27189	_ struct{} `type:"structure"`
27190
27191	// The target name.
27192	TargetName *string `locationName:"targetName" type:"string"`
27193
27194	// The target type.
27195	//
27196	// TargetType is a required field
27197	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
27198}
27199
27200// String returns the string representation
27201func (s LogTarget) String() string {
27202	return awsutil.Prettify(s)
27203}
27204
27205// GoString returns the string representation
27206func (s LogTarget) GoString() string {
27207	return s.String()
27208}
27209
27210// Validate inspects the fields of the type to determine if they are valid.
27211func (s *LogTarget) Validate() error {
27212	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
27213	if s.TargetType == nil {
27214		invalidParams.Add(request.NewErrParamRequired("TargetType"))
27215	}
27216
27217	if invalidParams.Len() > 0 {
27218		return invalidParams
27219	}
27220	return nil
27221}
27222
27223// SetTargetName sets the TargetName field's value.
27224func (s *LogTarget) SetTargetName(v string) *LogTarget {
27225	s.TargetName = &v
27226	return s
27227}
27228
27229// SetTargetType sets the TargetType field's value.
27230func (s *LogTarget) SetTargetType(v string) *LogTarget {
27231	s.TargetType = &v
27232	return s
27233}
27234
27235// The target configuration.
27236type LogTargetConfiguration struct {
27237	_ struct{} `type:"structure"`
27238
27239	// The logging level.
27240	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
27241
27242	// A log target
27243	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
27244}
27245
27246// String returns the string representation
27247func (s LogTargetConfiguration) String() string {
27248	return awsutil.Prettify(s)
27249}
27250
27251// GoString returns the string representation
27252func (s LogTargetConfiguration) GoString() string {
27253	return s.String()
27254}
27255
27256// SetLogLevel sets the LogLevel field's value.
27257func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
27258	s.LogLevel = &v
27259	return s
27260}
27261
27262// SetLogTarget sets the LogTarget field's value.
27263func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
27264	s.LogTarget = v
27265	return s
27266}
27267
27268// Describes the logging options payload.
27269type LoggingOptionsPayload struct {
27270	_ struct{} `type:"structure"`
27271
27272	// The log level.
27273	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
27274
27275	// The ARN of the IAM role that grants access.
27276	//
27277	// RoleArn is a required field
27278	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27279}
27280
27281// String returns the string representation
27282func (s LoggingOptionsPayload) String() string {
27283	return awsutil.Prettify(s)
27284}
27285
27286// GoString returns the string representation
27287func (s LoggingOptionsPayload) GoString() string {
27288	return s.String()
27289}
27290
27291// Validate inspects the fields of the type to determine if they are valid.
27292func (s *LoggingOptionsPayload) Validate() error {
27293	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
27294	if s.RoleArn == nil {
27295		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27296	}
27297
27298	if invalidParams.Len() > 0 {
27299		return invalidParams
27300	}
27301	return nil
27302}
27303
27304// SetLogLevel sets the LogLevel field's value.
27305func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
27306	s.LogLevel = &v
27307	return s
27308}
27309
27310// SetRoleArn sets the RoleArn field's value.
27311func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
27312	s.RoleArn = &v
27313	return s
27314}
27315
27316// The value to be compared with the metric.
27317type MetricValue struct {
27318	_ struct{} `type:"structure"`
27319
27320	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
27321	// set to be compared with the metric.
27322	Cidrs []*string `locationName:"cidrs" type:"list"`
27323
27324	// If the comparisonOperator calls for a numeric value, use this to specify
27325	// that numeric value to be compared with the metric.
27326	Count *int64 `locationName:"count" type:"long"`
27327
27328	// If the comparisonOperator calls for a set of ports, use this to specify that
27329	// set to be compared with the metric.
27330	Ports []*int64 `locationName:"ports" type:"list"`
27331}
27332
27333// String returns the string representation
27334func (s MetricValue) String() string {
27335	return awsutil.Prettify(s)
27336}
27337
27338// GoString returns the string representation
27339func (s MetricValue) GoString() string {
27340	return s.String()
27341}
27342
27343// SetCidrs sets the Cidrs field's value.
27344func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
27345	s.Cidrs = v
27346	return s
27347}
27348
27349// SetCount sets the Count field's value.
27350func (s *MetricValue) SetCount(v int64) *MetricValue {
27351	s.Count = &v
27352	return s
27353}
27354
27355// SetPorts sets the Ports field's value.
27356func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
27357	s.Ports = v
27358	return s
27359}
27360
27361// Information about the resource that was non-compliant with the audit check.
27362type NonCompliantResource struct {
27363	_ struct{} `type:"structure"`
27364
27365	// Additional information about the non-compliant resource.
27366	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
27367
27368	// Information identifying the non-compliant resource.
27369	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
27370
27371	// The type of the non-compliant resource.
27372	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
27373}
27374
27375// String returns the string representation
27376func (s NonCompliantResource) String() string {
27377	return awsutil.Prettify(s)
27378}
27379
27380// GoString returns the string representation
27381func (s NonCompliantResource) GoString() string {
27382	return s.String()
27383}
27384
27385// SetAdditionalInfo sets the AdditionalInfo field's value.
27386func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
27387	s.AdditionalInfo = v
27388	return s
27389}
27390
27391// SetResourceIdentifier sets the ResourceIdentifier field's value.
27392func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
27393	s.ResourceIdentifier = v
27394	return s
27395}
27396
27397// SetResourceType sets the ResourceType field's value.
27398func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
27399	s.ResourceType = &v
27400	return s
27401}
27402
27403// Describes a file to be associated with an OTA update.
27404type OTAUpdateFile struct {
27405	_ struct{} `type:"structure"`
27406
27407	// A list of name/attribute pairs.
27408	Attributes map[string]*string `locationName:"attributes" type:"map"`
27409
27410	// The code signing method of the file.
27411	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
27412
27413	// The name of the file.
27414	FileName *string `locationName:"fileName" type:"string"`
27415
27416	// The source of the file.
27417	FileSource *Stream `locationName:"fileSource" type:"structure"`
27418
27419	// The file version.
27420	FileVersion *string `locationName:"fileVersion" type:"string"`
27421}
27422
27423// String returns the string representation
27424func (s OTAUpdateFile) String() string {
27425	return awsutil.Prettify(s)
27426}
27427
27428// GoString returns the string representation
27429func (s OTAUpdateFile) GoString() string {
27430	return s.String()
27431}
27432
27433// Validate inspects the fields of the type to determine if they are valid.
27434func (s *OTAUpdateFile) Validate() error {
27435	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
27436	if s.CodeSigning != nil {
27437		if err := s.CodeSigning.Validate(); err != nil {
27438			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
27439		}
27440	}
27441	if s.FileSource != nil {
27442		if err := s.FileSource.Validate(); err != nil {
27443			invalidParams.AddNested("FileSource", err.(request.ErrInvalidParams))
27444		}
27445	}
27446
27447	if invalidParams.Len() > 0 {
27448		return invalidParams
27449	}
27450	return nil
27451}
27452
27453// SetAttributes sets the Attributes field's value.
27454func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
27455	s.Attributes = v
27456	return s
27457}
27458
27459// SetCodeSigning sets the CodeSigning field's value.
27460func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
27461	s.CodeSigning = v
27462	return s
27463}
27464
27465// SetFileName sets the FileName field's value.
27466func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
27467	s.FileName = &v
27468	return s
27469}
27470
27471// SetFileSource sets the FileSource field's value.
27472func (s *OTAUpdateFile) SetFileSource(v *Stream) *OTAUpdateFile {
27473	s.FileSource = v
27474	return s
27475}
27476
27477// SetFileVersion sets the FileVersion field's value.
27478func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
27479	s.FileVersion = &v
27480	return s
27481}
27482
27483// Information about an OTA update.
27484type OTAUpdateInfo struct {
27485	_ struct{} `type:"structure"`
27486
27487	// A collection of name/value pairs
27488	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
27489
27490	// The AWS IoT job ARN associated with the OTA update.
27491	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
27492
27493	// The AWS IoT job ID associated with the OTA update.
27494	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
27495
27496	// The date when the OTA update was created.
27497	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27498
27499	// A description of the OTA update.
27500	Description *string `locationName:"description" type:"string"`
27501
27502	// Error information associated with the OTA update.
27503	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
27504
27505	// The date when the OTA update was last updated.
27506	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
27507
27508	// The OTA update ARN.
27509	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
27510
27511	// A list of files associated with the OTA update.
27512	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
27513
27514	// The OTA update ID.
27515	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
27516
27517	// The status of the OTA update.
27518	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
27519
27520	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
27521	// be complete after all those things specified as targets have completed the
27522	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
27523	// thing when a change is detected in a target. For example, an OTA update will
27524	// run on a thing when the thing is added to a target group, even after the
27525	// OTA update was completed by all things originally in the group.
27526	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
27527
27528	// The targets of the OTA update.
27529	Targets []*string `locationName:"targets" min:"1" type:"list"`
27530}
27531
27532// String returns the string representation
27533func (s OTAUpdateInfo) String() string {
27534	return awsutil.Prettify(s)
27535}
27536
27537// GoString returns the string representation
27538func (s OTAUpdateInfo) GoString() string {
27539	return s.String()
27540}
27541
27542// SetAdditionalParameters sets the AdditionalParameters field's value.
27543func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
27544	s.AdditionalParameters = v
27545	return s
27546}
27547
27548// SetAwsIotJobArn sets the AwsIotJobArn field's value.
27549func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
27550	s.AwsIotJobArn = &v
27551	return s
27552}
27553
27554// SetAwsIotJobId sets the AwsIotJobId field's value.
27555func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
27556	s.AwsIotJobId = &v
27557	return s
27558}
27559
27560// SetCreationDate sets the CreationDate field's value.
27561func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
27562	s.CreationDate = &v
27563	return s
27564}
27565
27566// SetDescription sets the Description field's value.
27567func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
27568	s.Description = &v
27569	return s
27570}
27571
27572// SetErrorInfo sets the ErrorInfo field's value.
27573func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
27574	s.ErrorInfo = v
27575	return s
27576}
27577
27578// SetLastModifiedDate sets the LastModifiedDate field's value.
27579func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
27580	s.LastModifiedDate = &v
27581	return s
27582}
27583
27584// SetOtaUpdateArn sets the OtaUpdateArn field's value.
27585func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
27586	s.OtaUpdateArn = &v
27587	return s
27588}
27589
27590// SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
27591func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
27592	s.OtaUpdateFiles = v
27593	return s
27594}
27595
27596// SetOtaUpdateId sets the OtaUpdateId field's value.
27597func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
27598	s.OtaUpdateId = &v
27599	return s
27600}
27601
27602// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
27603func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
27604	s.OtaUpdateStatus = &v
27605	return s
27606}
27607
27608// SetTargetSelection sets the TargetSelection field's value.
27609func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
27610	s.TargetSelection = &v
27611	return s
27612}
27613
27614// SetTargets sets the Targets field's value.
27615func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
27616	s.Targets = v
27617	return s
27618}
27619
27620// An OTA update summary.
27621type OTAUpdateSummary struct {
27622	_ struct{} `type:"structure"`
27623
27624	// The date when the OTA update was created.
27625	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27626
27627	// The OTA update ARN.
27628	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
27629
27630	// The OTA update ID.
27631	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
27632}
27633
27634// String returns the string representation
27635func (s OTAUpdateSummary) String() string {
27636	return awsutil.Prettify(s)
27637}
27638
27639// GoString returns the string representation
27640func (s OTAUpdateSummary) GoString() string {
27641	return s.String()
27642}
27643
27644// SetCreationDate sets the CreationDate field's value.
27645func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
27646	s.CreationDate = &v
27647	return s
27648}
27649
27650// SetOtaUpdateArn sets the OtaUpdateArn field's value.
27651func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
27652	s.OtaUpdateArn = &v
27653	return s
27654}
27655
27656// SetOtaUpdateId sets the OtaUpdateId field's value.
27657func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
27658	s.OtaUpdateId = &v
27659	return s
27660}
27661
27662// A certificate that has been transferred but not yet accepted.
27663type OutgoingCertificate struct {
27664	_ struct{} `type:"structure"`
27665
27666	// The certificate ARN.
27667	CertificateArn *string `locationName:"certificateArn" type:"string"`
27668
27669	// The certificate ID.
27670	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
27671
27672	// The certificate creation date.
27673	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27674
27675	// The date the transfer was initiated.
27676	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
27677
27678	// The transfer message.
27679	TransferMessage *string `locationName:"transferMessage" type:"string"`
27680
27681	// The AWS account to which the transfer was made.
27682	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
27683}
27684
27685// String returns the string representation
27686func (s OutgoingCertificate) String() string {
27687	return awsutil.Prettify(s)
27688}
27689
27690// GoString returns the string representation
27691func (s OutgoingCertificate) GoString() string {
27692	return s.String()
27693}
27694
27695// SetCertificateArn sets the CertificateArn field's value.
27696func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
27697	s.CertificateArn = &v
27698	return s
27699}
27700
27701// SetCertificateId sets the CertificateId field's value.
27702func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
27703	s.CertificateId = &v
27704	return s
27705}
27706
27707// SetCreationDate sets the CreationDate field's value.
27708func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
27709	s.CreationDate = &v
27710	return s
27711}
27712
27713// SetTransferDate sets the TransferDate field's value.
27714func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
27715	s.TransferDate = &v
27716	return s
27717}
27718
27719// SetTransferMessage sets the TransferMessage field's value.
27720func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
27721	s.TransferMessage = &v
27722	return s
27723}
27724
27725// SetTransferredTo sets the TransferredTo field's value.
27726func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
27727	s.TransferredTo = &v
27728	return s
27729}
27730
27731// Describes an AWS IoT policy.
27732type Policy struct {
27733	_ struct{} `type:"structure"`
27734
27735	// The policy ARN.
27736	PolicyArn *string `locationName:"policyArn" type:"string"`
27737
27738	// The policy name.
27739	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
27740}
27741
27742// String returns the string representation
27743func (s Policy) String() string {
27744	return awsutil.Prettify(s)
27745}
27746
27747// GoString returns the string representation
27748func (s Policy) GoString() string {
27749	return s.String()
27750}
27751
27752// SetPolicyArn sets the PolicyArn field's value.
27753func (s *Policy) SetPolicyArn(v string) *Policy {
27754	s.PolicyArn = &v
27755	return s
27756}
27757
27758// SetPolicyName sets the PolicyName field's value.
27759func (s *Policy) SetPolicyName(v string) *Policy {
27760	s.PolicyName = &v
27761	return s
27762}
27763
27764// Describes a policy version.
27765type PolicyVersion struct {
27766	_ struct{} `type:"structure"`
27767
27768	// The date and time the policy was created.
27769	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
27770
27771	// Specifies whether the policy version is the default.
27772	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
27773
27774	// The policy version ID.
27775	VersionId *string `locationName:"versionId" type:"string"`
27776}
27777
27778// String returns the string representation
27779func (s PolicyVersion) String() string {
27780	return awsutil.Prettify(s)
27781}
27782
27783// GoString returns the string representation
27784func (s PolicyVersion) GoString() string {
27785	return s.String()
27786}
27787
27788// SetCreateDate sets the CreateDate field's value.
27789func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
27790	s.CreateDate = &v
27791	return s
27792}
27793
27794// SetIsDefaultVersion sets the IsDefaultVersion field's value.
27795func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
27796	s.IsDefaultVersion = &v
27797	return s
27798}
27799
27800// SetVersionId sets the VersionId field's value.
27801func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
27802	s.VersionId = &v
27803	return s
27804}
27805
27806// Information about the version of the policy associated with the resource.
27807type PolicyVersionIdentifier struct {
27808	_ struct{} `type:"structure"`
27809
27810	// The name of the policy.
27811	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
27812
27813	// The ID of the version of the policy associated with the resource.
27814	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
27815}
27816
27817// String returns the string representation
27818func (s PolicyVersionIdentifier) String() string {
27819	return awsutil.Prettify(s)
27820}
27821
27822// GoString returns the string representation
27823func (s PolicyVersionIdentifier) GoString() string {
27824	return s.String()
27825}
27826
27827// Validate inspects the fields of the type to determine if they are valid.
27828func (s *PolicyVersionIdentifier) Validate() error {
27829	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
27830	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
27831		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
27832	}
27833
27834	if invalidParams.Len() > 0 {
27835		return invalidParams
27836	}
27837	return nil
27838}
27839
27840// SetPolicyName sets the PolicyName field's value.
27841func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
27842	s.PolicyName = &v
27843	return s
27844}
27845
27846// SetPolicyVersionId sets the PolicyVersionId field's value.
27847func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
27848	s.PolicyVersionId = &v
27849	return s
27850}
27851
27852// Configuration for pre-signed S3 URLs.
27853type PresignedUrlConfig struct {
27854	_ struct{} `type:"structure"`
27855
27856	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
27857	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
27858	// receives an MQTT request for the job document.
27859	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
27860
27861	// The ARN of an IAM role that grants grants permission to download files from
27862	// the S3 bucket where the job data/updates are stored. The role must also grant
27863	// permission for IoT to download the files.
27864	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
27865}
27866
27867// String returns the string representation
27868func (s PresignedUrlConfig) String() string {
27869	return awsutil.Prettify(s)
27870}
27871
27872// GoString returns the string representation
27873func (s PresignedUrlConfig) GoString() string {
27874	return s.String()
27875}
27876
27877// Validate inspects the fields of the type to determine if they are valid.
27878func (s *PresignedUrlConfig) Validate() error {
27879	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
27880	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
27881		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
27882	}
27883	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
27884		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
27885	}
27886
27887	if invalidParams.Len() > 0 {
27888		return invalidParams
27889	}
27890	return nil
27891}
27892
27893// SetExpiresInSec sets the ExpiresInSec field's value.
27894func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
27895	s.ExpiresInSec = &v
27896	return s
27897}
27898
27899// SetRoleArn sets the RoleArn field's value.
27900func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
27901	s.RoleArn = &v
27902	return s
27903}
27904
27905// The input for the DynamoActionVS action that specifies the DynamoDB table
27906// to which the message data will be written.
27907type PutItemInput struct {
27908	_ struct{} `type:"structure"`
27909
27910	// The table where the message data will be written
27911	//
27912	// TableName is a required field
27913	TableName *string `locationName:"tableName" type:"string" required:"true"`
27914}
27915
27916// String returns the string representation
27917func (s PutItemInput) String() string {
27918	return awsutil.Prettify(s)
27919}
27920
27921// GoString returns the string representation
27922func (s PutItemInput) GoString() string {
27923	return s.String()
27924}
27925
27926// Validate inspects the fields of the type to determine if they are valid.
27927func (s *PutItemInput) Validate() error {
27928	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
27929	if s.TableName == nil {
27930		invalidParams.Add(request.NewErrParamRequired("TableName"))
27931	}
27932
27933	if invalidParams.Len() > 0 {
27934		return invalidParams
27935	}
27936	return nil
27937}
27938
27939// SetTableName sets the TableName field's value.
27940func (s *PutItemInput) SetTableName(v string) *PutItemInput {
27941	s.TableName = &v
27942	return s
27943}
27944
27945// The input to the RegisterCACertificate operation.
27946type RegisterCACertificateInput struct {
27947	_ struct{} `type:"structure"`
27948
27949	// Allows this CA certificate to be used for auto registration of device certificates.
27950	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
27951
27952	// The CA certificate.
27953	//
27954	// CaCertificate is a required field
27955	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
27956
27957	// Information about the registration configuration.
27958	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
27959
27960	// A boolean value that specifies if the CA certificate is set to active.
27961	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
27962
27963	// The private key verification certificate.
27964	//
27965	// VerificationCertificate is a required field
27966	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
27967}
27968
27969// String returns the string representation
27970func (s RegisterCACertificateInput) String() string {
27971	return awsutil.Prettify(s)
27972}
27973
27974// GoString returns the string representation
27975func (s RegisterCACertificateInput) GoString() string {
27976	return s.String()
27977}
27978
27979// Validate inspects the fields of the type to determine if they are valid.
27980func (s *RegisterCACertificateInput) Validate() error {
27981	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
27982	if s.CaCertificate == nil {
27983		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
27984	}
27985	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
27986		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
27987	}
27988	if s.VerificationCertificate == nil {
27989		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
27990	}
27991	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
27992		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
27993	}
27994	if s.RegistrationConfig != nil {
27995		if err := s.RegistrationConfig.Validate(); err != nil {
27996			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
27997		}
27998	}
27999
28000	if invalidParams.Len() > 0 {
28001		return invalidParams
28002	}
28003	return nil
28004}
28005
28006// SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
28007func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
28008	s.AllowAutoRegistration = &v
28009	return s
28010}
28011
28012// SetCaCertificate sets the CaCertificate field's value.
28013func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
28014	s.CaCertificate = &v
28015	return s
28016}
28017
28018// SetRegistrationConfig sets the RegistrationConfig field's value.
28019func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
28020	s.RegistrationConfig = v
28021	return s
28022}
28023
28024// SetSetAsActive sets the SetAsActive field's value.
28025func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
28026	s.SetAsActive = &v
28027	return s
28028}
28029
28030// SetVerificationCertificate sets the VerificationCertificate field's value.
28031func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
28032	s.VerificationCertificate = &v
28033	return s
28034}
28035
28036// The output from the RegisterCACertificateResponse operation.
28037type RegisterCACertificateOutput struct {
28038	_ struct{} `type:"structure"`
28039
28040	// The CA certificate ARN.
28041	CertificateArn *string `locationName:"certificateArn" type:"string"`
28042
28043	// The CA certificate identifier.
28044	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28045}
28046
28047// String returns the string representation
28048func (s RegisterCACertificateOutput) String() string {
28049	return awsutil.Prettify(s)
28050}
28051
28052// GoString returns the string representation
28053func (s RegisterCACertificateOutput) GoString() string {
28054	return s.String()
28055}
28056
28057// SetCertificateArn sets the CertificateArn field's value.
28058func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
28059	s.CertificateArn = &v
28060	return s
28061}
28062
28063// SetCertificateId sets the CertificateId field's value.
28064func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
28065	s.CertificateId = &v
28066	return s
28067}
28068
28069// The input to the RegisterCertificate operation.
28070type RegisterCertificateInput struct {
28071	_ struct{} `type:"structure"`
28072
28073	// The CA certificate used to sign the device certificate being registered.
28074	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
28075
28076	// The certificate data, in PEM format.
28077	//
28078	// CertificatePem is a required field
28079	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
28080
28081	// A boolean value that specifies if the CA certificate is set to active.
28082	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
28083
28084	// The status of the register certificate request.
28085	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
28086}
28087
28088// String returns the string representation
28089func (s RegisterCertificateInput) String() string {
28090	return awsutil.Prettify(s)
28091}
28092
28093// GoString returns the string representation
28094func (s RegisterCertificateInput) GoString() string {
28095	return s.String()
28096}
28097
28098// Validate inspects the fields of the type to determine if they are valid.
28099func (s *RegisterCertificateInput) Validate() error {
28100	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
28101	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
28102		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
28103	}
28104	if s.CertificatePem == nil {
28105		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
28106	}
28107	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
28108		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
28109	}
28110
28111	if invalidParams.Len() > 0 {
28112		return invalidParams
28113	}
28114	return nil
28115}
28116
28117// SetCaCertificatePem sets the CaCertificatePem field's value.
28118func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
28119	s.CaCertificatePem = &v
28120	return s
28121}
28122
28123// SetCertificatePem sets the CertificatePem field's value.
28124func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
28125	s.CertificatePem = &v
28126	return s
28127}
28128
28129// SetSetAsActive sets the SetAsActive field's value.
28130func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
28131	s.SetAsActive = &v
28132	return s
28133}
28134
28135// SetStatus sets the Status field's value.
28136func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
28137	s.Status = &v
28138	return s
28139}
28140
28141// The output from the RegisterCertificate operation.
28142type RegisterCertificateOutput struct {
28143	_ struct{} `type:"structure"`
28144
28145	// The certificate ARN.
28146	CertificateArn *string `locationName:"certificateArn" type:"string"`
28147
28148	// The certificate identifier.
28149	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28150}
28151
28152// String returns the string representation
28153func (s RegisterCertificateOutput) String() string {
28154	return awsutil.Prettify(s)
28155}
28156
28157// GoString returns the string representation
28158func (s RegisterCertificateOutput) GoString() string {
28159	return s.String()
28160}
28161
28162// SetCertificateArn sets the CertificateArn field's value.
28163func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
28164	s.CertificateArn = &v
28165	return s
28166}
28167
28168// SetCertificateId sets the CertificateId field's value.
28169func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
28170	s.CertificateId = &v
28171	return s
28172}
28173
28174type RegisterThingInput struct {
28175	_ struct{} `type:"structure"`
28176
28177	// The parameters for provisioning a thing. See Programmatic Provisioning (http://docs.aws.amazon.com/iot/latest/developerguide/programmatic-provisioning.html)
28178	// for more information.
28179	Parameters map[string]*string `locationName:"parameters" type:"map"`
28180
28181	// The provisioning template. See Programmatic Provisioning (http://docs.aws.amazon.com/iot/latest/developerguide/programmatic-provisioning.html)
28182	// for more information.
28183	//
28184	// TemplateBody is a required field
28185	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
28186}
28187
28188// String returns the string representation
28189func (s RegisterThingInput) String() string {
28190	return awsutil.Prettify(s)
28191}
28192
28193// GoString returns the string representation
28194func (s RegisterThingInput) GoString() string {
28195	return s.String()
28196}
28197
28198// Validate inspects the fields of the type to determine if they are valid.
28199func (s *RegisterThingInput) Validate() error {
28200	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
28201	if s.TemplateBody == nil {
28202		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
28203	}
28204
28205	if invalidParams.Len() > 0 {
28206		return invalidParams
28207	}
28208	return nil
28209}
28210
28211// SetParameters sets the Parameters field's value.
28212func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
28213	s.Parameters = v
28214	return s
28215}
28216
28217// SetTemplateBody sets the TemplateBody field's value.
28218func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
28219	s.TemplateBody = &v
28220	return s
28221}
28222
28223type RegisterThingOutput struct {
28224	_ struct{} `type:"structure"`
28225
28226	// .
28227	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
28228
28229	// ARNs for the generated resources.
28230	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
28231}
28232
28233// String returns the string representation
28234func (s RegisterThingOutput) String() string {
28235	return awsutil.Prettify(s)
28236}
28237
28238// GoString returns the string representation
28239func (s RegisterThingOutput) GoString() string {
28240	return s.String()
28241}
28242
28243// SetCertificatePem sets the CertificatePem field's value.
28244func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
28245	s.CertificatePem = &v
28246	return s
28247}
28248
28249// SetResourceArns sets the ResourceArns field's value.
28250func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
28251	s.ResourceArns = v
28252	return s
28253}
28254
28255// The registration configuration.
28256type RegistrationConfig struct {
28257	_ struct{} `type:"structure"`
28258
28259	// The ARN of the role.
28260	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
28261
28262	// The template body.
28263	TemplateBody *string `locationName:"templateBody" type:"string"`
28264}
28265
28266// String returns the string representation
28267func (s RegistrationConfig) String() string {
28268	return awsutil.Prettify(s)
28269}
28270
28271// GoString returns the string representation
28272func (s RegistrationConfig) GoString() string {
28273	return s.String()
28274}
28275
28276// Validate inspects the fields of the type to determine if they are valid.
28277func (s *RegistrationConfig) Validate() error {
28278	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
28279	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
28280		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
28281	}
28282
28283	if invalidParams.Len() > 0 {
28284		return invalidParams
28285	}
28286	return nil
28287}
28288
28289// SetRoleArn sets the RoleArn field's value.
28290func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
28291	s.RoleArn = &v
28292	return s
28293}
28294
28295// SetTemplateBody sets the TemplateBody field's value.
28296func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
28297	s.TemplateBody = &v
28298	return s
28299}
28300
28301// The input for the RejectCertificateTransfer operation.
28302type RejectCertificateTransferInput struct {
28303	_ struct{} `type:"structure"`
28304
28305	// The ID of the certificate. (The last part of the certificate ARN contains
28306	// the certificate ID.)
28307	//
28308	// CertificateId is a required field
28309	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
28310
28311	// The reason the certificate transfer was rejected.
28312	RejectReason *string `locationName:"rejectReason" type:"string"`
28313}
28314
28315// String returns the string representation
28316func (s RejectCertificateTransferInput) String() string {
28317	return awsutil.Prettify(s)
28318}
28319
28320// GoString returns the string representation
28321func (s RejectCertificateTransferInput) GoString() string {
28322	return s.String()
28323}
28324
28325// Validate inspects the fields of the type to determine if they are valid.
28326func (s *RejectCertificateTransferInput) Validate() error {
28327	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
28328	if s.CertificateId == nil {
28329		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
28330	}
28331	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
28332		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
28333	}
28334
28335	if invalidParams.Len() > 0 {
28336		return invalidParams
28337	}
28338	return nil
28339}
28340
28341// SetCertificateId sets the CertificateId field's value.
28342func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
28343	s.CertificateId = &v
28344	return s
28345}
28346
28347// SetRejectReason sets the RejectReason field's value.
28348func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
28349	s.RejectReason = &v
28350	return s
28351}
28352
28353type RejectCertificateTransferOutput struct {
28354	_ struct{} `type:"structure"`
28355}
28356
28357// String returns the string representation
28358func (s RejectCertificateTransferOutput) String() string {
28359	return awsutil.Prettify(s)
28360}
28361
28362// GoString returns the string representation
28363func (s RejectCertificateTransferOutput) GoString() string {
28364	return s.String()
28365}
28366
28367// Information about a related resource.
28368type RelatedResource struct {
28369	_ struct{} `type:"structure"`
28370
28371	// Additional information about the resource.
28372	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
28373
28374	// Information identifying the resource.
28375	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
28376
28377	// The type of resource.
28378	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
28379}
28380
28381// String returns the string representation
28382func (s RelatedResource) String() string {
28383	return awsutil.Prettify(s)
28384}
28385
28386// GoString returns the string representation
28387func (s RelatedResource) GoString() string {
28388	return s.String()
28389}
28390
28391// SetAdditionalInfo sets the AdditionalInfo field's value.
28392func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
28393	s.AdditionalInfo = v
28394	return s
28395}
28396
28397// SetResourceIdentifier sets the ResourceIdentifier field's value.
28398func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
28399	s.ResourceIdentifier = v
28400	return s
28401}
28402
28403// SetResourceType sets the ResourceType field's value.
28404func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
28405	s.ResourceType = &v
28406	return s
28407}
28408
28409type RemoveThingFromThingGroupInput struct {
28410	_ struct{} `type:"structure"`
28411
28412	// The ARN of the thing to remove from the group.
28413	ThingArn *string `locationName:"thingArn" type:"string"`
28414
28415	// The group ARN.
28416	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
28417
28418	// The group name.
28419	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
28420
28421	// The name of the thing to remove from the group.
28422	ThingName *string `locationName:"thingName" min:"1" type:"string"`
28423}
28424
28425// String returns the string representation
28426func (s RemoveThingFromThingGroupInput) String() string {
28427	return awsutil.Prettify(s)
28428}
28429
28430// GoString returns the string representation
28431func (s RemoveThingFromThingGroupInput) GoString() string {
28432	return s.String()
28433}
28434
28435// Validate inspects the fields of the type to determine if they are valid.
28436func (s *RemoveThingFromThingGroupInput) Validate() error {
28437	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
28438	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
28439		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
28440	}
28441	if s.ThingName != nil && len(*s.ThingName) < 1 {
28442		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
28443	}
28444
28445	if invalidParams.Len() > 0 {
28446		return invalidParams
28447	}
28448	return nil
28449}
28450
28451// SetThingArn sets the ThingArn field's value.
28452func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
28453	s.ThingArn = &v
28454	return s
28455}
28456
28457// SetThingGroupArn sets the ThingGroupArn field's value.
28458func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
28459	s.ThingGroupArn = &v
28460	return s
28461}
28462
28463// SetThingGroupName sets the ThingGroupName field's value.
28464func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
28465	s.ThingGroupName = &v
28466	return s
28467}
28468
28469// SetThingName sets the ThingName field's value.
28470func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
28471	s.ThingName = &v
28472	return s
28473}
28474
28475type RemoveThingFromThingGroupOutput struct {
28476	_ struct{} `type:"structure"`
28477}
28478
28479// String returns the string representation
28480func (s RemoveThingFromThingGroupOutput) String() string {
28481	return awsutil.Prettify(s)
28482}
28483
28484// GoString returns the string representation
28485func (s RemoveThingFromThingGroupOutput) GoString() string {
28486	return s.String()
28487}
28488
28489// The input for the ReplaceTopicRule operation.
28490type ReplaceTopicRuleInput struct {
28491	_ struct{} `type:"structure" payload:"TopicRulePayload"`
28492
28493	// The name of the rule.
28494	//
28495	// RuleName is a required field
28496	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
28497
28498	// The rule payload.
28499	//
28500	// TopicRulePayload is a required field
28501	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
28502}
28503
28504// String returns the string representation
28505func (s ReplaceTopicRuleInput) String() string {
28506	return awsutil.Prettify(s)
28507}
28508
28509// GoString returns the string representation
28510func (s ReplaceTopicRuleInput) GoString() string {
28511	return s.String()
28512}
28513
28514// Validate inspects the fields of the type to determine if they are valid.
28515func (s *ReplaceTopicRuleInput) Validate() error {
28516	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
28517	if s.RuleName == nil {
28518		invalidParams.Add(request.NewErrParamRequired("RuleName"))
28519	}
28520	if s.RuleName != nil && len(*s.RuleName) < 1 {
28521		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
28522	}
28523	if s.TopicRulePayload == nil {
28524		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
28525	}
28526	if s.TopicRulePayload != nil {
28527		if err := s.TopicRulePayload.Validate(); err != nil {
28528			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
28529		}
28530	}
28531
28532	if invalidParams.Len() > 0 {
28533		return invalidParams
28534	}
28535	return nil
28536}
28537
28538// SetRuleName sets the RuleName field's value.
28539func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
28540	s.RuleName = &v
28541	return s
28542}
28543
28544// SetTopicRulePayload sets the TopicRulePayload field's value.
28545func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
28546	s.TopicRulePayload = v
28547	return s
28548}
28549
28550type ReplaceTopicRuleOutput struct {
28551	_ struct{} `type:"structure"`
28552}
28553
28554// String returns the string representation
28555func (s ReplaceTopicRuleOutput) String() string {
28556	return awsutil.Prettify(s)
28557}
28558
28559// GoString returns the string representation
28560func (s ReplaceTopicRuleOutput) GoString() string {
28561	return s.String()
28562}
28563
28564// Describes an action to republish to another topic.
28565type RepublishAction struct {
28566	_ struct{} `type:"structure"`
28567
28568	// The ARN of the IAM role that grants access.
28569	//
28570	// RoleArn is a required field
28571	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
28572
28573	// The name of the MQTT topic.
28574	//
28575	// Topic is a required field
28576	Topic *string `locationName:"topic" type:"string" required:"true"`
28577}
28578
28579// String returns the string representation
28580func (s RepublishAction) String() string {
28581	return awsutil.Prettify(s)
28582}
28583
28584// GoString returns the string representation
28585func (s RepublishAction) GoString() string {
28586	return s.String()
28587}
28588
28589// Validate inspects the fields of the type to determine if they are valid.
28590func (s *RepublishAction) Validate() error {
28591	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
28592	if s.RoleArn == nil {
28593		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
28594	}
28595	if s.Topic == nil {
28596		invalidParams.Add(request.NewErrParamRequired("Topic"))
28597	}
28598
28599	if invalidParams.Len() > 0 {
28600		return invalidParams
28601	}
28602	return nil
28603}
28604
28605// SetRoleArn sets the RoleArn field's value.
28606func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
28607	s.RoleArn = &v
28608	return s
28609}
28610
28611// SetTopic sets the Topic field's value.
28612func (s *RepublishAction) SetTopic(v string) *RepublishAction {
28613	s.Topic = &v
28614	return s
28615}
28616
28617// Information identifying the non-compliant resource.
28618type ResourceIdentifier struct {
28619	_ struct{} `type:"structure"`
28620
28621	// The account with which the resource is associated.
28622	Account *string `locationName:"account" min:"12" type:"string"`
28623
28624	// The ID of the CA certificate used to authorize the certificate.
28625	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
28626
28627	// The client ID.
28628	ClientId *string `locationName:"clientId" type:"string"`
28629
28630	// The ID of the Cognito Identity Pool.
28631	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
28632
28633	// The ID of the certificate attached to the resource.
28634	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
28635
28636	// The version of the policy associated with the resource.
28637	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
28638}
28639
28640// String returns the string representation
28641func (s ResourceIdentifier) String() string {
28642	return awsutil.Prettify(s)
28643}
28644
28645// GoString returns the string representation
28646func (s ResourceIdentifier) GoString() string {
28647	return s.String()
28648}
28649
28650// Validate inspects the fields of the type to determine if they are valid.
28651func (s *ResourceIdentifier) Validate() error {
28652	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
28653	if s.Account != nil && len(*s.Account) < 12 {
28654		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
28655	}
28656	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
28657		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
28658	}
28659	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
28660		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
28661	}
28662	if s.PolicyVersionIdentifier != nil {
28663		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
28664			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
28665		}
28666	}
28667
28668	if invalidParams.Len() > 0 {
28669		return invalidParams
28670	}
28671	return nil
28672}
28673
28674// SetAccount sets the Account field's value.
28675func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
28676	s.Account = &v
28677	return s
28678}
28679
28680// SetCaCertificateId sets the CaCertificateId field's value.
28681func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
28682	s.CaCertificateId = &v
28683	return s
28684}
28685
28686// SetClientId sets the ClientId field's value.
28687func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
28688	s.ClientId = &v
28689	return s
28690}
28691
28692// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
28693func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
28694	s.CognitoIdentityPoolId = &v
28695	return s
28696}
28697
28698// SetDeviceCertificateId sets the DeviceCertificateId field's value.
28699func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
28700	s.DeviceCertificateId = &v
28701	return s
28702}
28703
28704// SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
28705func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
28706	s.PolicyVersionIdentifier = v
28707	return s
28708}
28709
28710// Role alias description.
28711type RoleAliasDescription struct {
28712	_ struct{} `type:"structure"`
28713
28714	// The UNIX timestamp of when the role alias was created.
28715	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28716
28717	// The number of seconds for which the credential is valid.
28718	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
28719
28720	// The UNIX timestamp of when the role alias was last modified.
28721	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
28722
28723	// The role alias owner.
28724	Owner *string `locationName:"owner" min:"12" type:"string"`
28725
28726	// The role alias.
28727	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
28728
28729	// The ARN of the role alias.
28730	RoleAliasArn *string `locationName:"roleAliasArn" type:"string"`
28731
28732	// The role ARN.
28733	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
28734}
28735
28736// String returns the string representation
28737func (s RoleAliasDescription) String() string {
28738	return awsutil.Prettify(s)
28739}
28740
28741// GoString returns the string representation
28742func (s RoleAliasDescription) GoString() string {
28743	return s.String()
28744}
28745
28746// SetCreationDate sets the CreationDate field's value.
28747func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
28748	s.CreationDate = &v
28749	return s
28750}
28751
28752// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
28753func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
28754	s.CredentialDurationSeconds = &v
28755	return s
28756}
28757
28758// SetLastModifiedDate sets the LastModifiedDate field's value.
28759func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
28760	s.LastModifiedDate = &v
28761	return s
28762}
28763
28764// SetOwner sets the Owner field's value.
28765func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
28766	s.Owner = &v
28767	return s
28768}
28769
28770// SetRoleAlias sets the RoleAlias field's value.
28771func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
28772	s.RoleAlias = &v
28773	return s
28774}
28775
28776// SetRoleAliasArn sets the RoleAliasArn field's value.
28777func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
28778	s.RoleAliasArn = &v
28779	return s
28780}
28781
28782// SetRoleArn sets the RoleArn field's value.
28783func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
28784	s.RoleArn = &v
28785	return s
28786}
28787
28788// Describes an action to write data to an Amazon S3 bucket.
28789type S3Action struct {
28790	_ struct{} `type:"structure"`
28791
28792	// The Amazon S3 bucket.
28793	//
28794	// BucketName is a required field
28795	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
28796
28797	// The Amazon S3 canned ACL that controls access to the object identified by
28798	// the object key. For more information, see S3 canned ACLs (http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
28799	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
28800
28801	// The object key.
28802	//
28803	// Key is a required field
28804	Key *string `locationName:"key" type:"string" required:"true"`
28805
28806	// The ARN of the IAM role that grants access.
28807	//
28808	// RoleArn is a required field
28809	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
28810}
28811
28812// String returns the string representation
28813func (s S3Action) String() string {
28814	return awsutil.Prettify(s)
28815}
28816
28817// GoString returns the string representation
28818func (s S3Action) GoString() string {
28819	return s.String()
28820}
28821
28822// Validate inspects the fields of the type to determine if they are valid.
28823func (s *S3Action) Validate() error {
28824	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
28825	if s.BucketName == nil {
28826		invalidParams.Add(request.NewErrParamRequired("BucketName"))
28827	}
28828	if s.Key == nil {
28829		invalidParams.Add(request.NewErrParamRequired("Key"))
28830	}
28831	if s.RoleArn == nil {
28832		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
28833	}
28834
28835	if invalidParams.Len() > 0 {
28836		return invalidParams
28837	}
28838	return nil
28839}
28840
28841// SetBucketName sets the BucketName field's value.
28842func (s *S3Action) SetBucketName(v string) *S3Action {
28843	s.BucketName = &v
28844	return s
28845}
28846
28847// SetCannedAcl sets the CannedAcl field's value.
28848func (s *S3Action) SetCannedAcl(v string) *S3Action {
28849	s.CannedAcl = &v
28850	return s
28851}
28852
28853// SetKey sets the Key field's value.
28854func (s *S3Action) SetKey(v string) *S3Action {
28855	s.Key = &v
28856	return s
28857}
28858
28859// SetRoleArn sets the RoleArn field's value.
28860func (s *S3Action) SetRoleArn(v string) *S3Action {
28861	s.RoleArn = &v
28862	return s
28863}
28864
28865// The location in S3 the contains the files to stream.
28866type S3Location struct {
28867	_ struct{} `type:"structure"`
28868
28869	// The S3 bucket that contains the file to stream.
28870	//
28871	// Bucket is a required field
28872	Bucket *string `locationName:"bucket" min:"1" type:"string" required:"true"`
28873
28874	// The name of the file within the S3 bucket to stream.
28875	//
28876	// Key is a required field
28877	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
28878
28879	// The file version.
28880	Version *string `locationName:"version" type:"string"`
28881}
28882
28883// String returns the string representation
28884func (s S3Location) String() string {
28885	return awsutil.Prettify(s)
28886}
28887
28888// GoString returns the string representation
28889func (s S3Location) GoString() string {
28890	return s.String()
28891}
28892
28893// Validate inspects the fields of the type to determine if they are valid.
28894func (s *S3Location) Validate() error {
28895	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
28896	if s.Bucket == nil {
28897		invalidParams.Add(request.NewErrParamRequired("Bucket"))
28898	}
28899	if s.Bucket != nil && len(*s.Bucket) < 1 {
28900		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
28901	}
28902	if s.Key == nil {
28903		invalidParams.Add(request.NewErrParamRequired("Key"))
28904	}
28905	if s.Key != nil && len(*s.Key) < 1 {
28906		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
28907	}
28908
28909	if invalidParams.Len() > 0 {
28910		return invalidParams
28911	}
28912	return nil
28913}
28914
28915// SetBucket sets the Bucket field's value.
28916func (s *S3Location) SetBucket(v string) *S3Location {
28917	s.Bucket = &v
28918	return s
28919}
28920
28921// SetKey sets the Key field's value.
28922func (s *S3Location) SetKey(v string) *S3Location {
28923	s.Key = &v
28924	return s
28925}
28926
28927// SetVersion sets the Version field's value.
28928func (s *S3Location) SetVersion(v string) *S3Location {
28929	s.Version = &v
28930	return s
28931}
28932
28933// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
28934type SalesforceAction struct {
28935	_ struct{} `type:"structure"`
28936
28937	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
28938	// The token is available from the Salesforce IoT Cloud platform after creation
28939	// of the Input Stream.
28940	//
28941	// Token is a required field
28942	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
28943
28944	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
28945	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
28946	//
28947	// Url is a required field
28948	Url *string `locationName:"url" type:"string" required:"true"`
28949}
28950
28951// String returns the string representation
28952func (s SalesforceAction) String() string {
28953	return awsutil.Prettify(s)
28954}
28955
28956// GoString returns the string representation
28957func (s SalesforceAction) GoString() string {
28958	return s.String()
28959}
28960
28961// Validate inspects the fields of the type to determine if they are valid.
28962func (s *SalesforceAction) Validate() error {
28963	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
28964	if s.Token == nil {
28965		invalidParams.Add(request.NewErrParamRequired("Token"))
28966	}
28967	if s.Token != nil && len(*s.Token) < 40 {
28968		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
28969	}
28970	if s.Url == nil {
28971		invalidParams.Add(request.NewErrParamRequired("Url"))
28972	}
28973
28974	if invalidParams.Len() > 0 {
28975		return invalidParams
28976	}
28977	return nil
28978}
28979
28980// SetToken sets the Token field's value.
28981func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
28982	s.Token = &v
28983	return s
28984}
28985
28986// SetUrl sets the Url field's value.
28987func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
28988	s.Url = &v
28989	return s
28990}
28991
28992// Information about the scheduled audit.
28993type ScheduledAuditMetadata struct {
28994	_ struct{} `type:"structure"`
28995
28996	// The day of the month on which the scheduled audit is run (if the frequency
28997	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
28998	// many days, the audit takes place on the "LAST" day of the month.
28999	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
29000
29001	// The day of the week on which the scheduled audit is run (if the frequency
29002	// is "WEEKLY" or "BIWEEKLY").
29003	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
29004
29005	// How often the scheduled audit takes place.
29006	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
29007
29008	// The ARN of the scheduled audit.
29009	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
29010
29011	// The name of the scheduled audit.
29012	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
29013}
29014
29015// String returns the string representation
29016func (s ScheduledAuditMetadata) String() string {
29017	return awsutil.Prettify(s)
29018}
29019
29020// GoString returns the string representation
29021func (s ScheduledAuditMetadata) GoString() string {
29022	return s.String()
29023}
29024
29025// SetDayOfMonth sets the DayOfMonth field's value.
29026func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
29027	s.DayOfMonth = &v
29028	return s
29029}
29030
29031// SetDayOfWeek sets the DayOfWeek field's value.
29032func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
29033	s.DayOfWeek = &v
29034	return s
29035}
29036
29037// SetFrequency sets the Frequency field's value.
29038func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
29039	s.Frequency = &v
29040	return s
29041}
29042
29043// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
29044func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
29045	s.ScheduledAuditArn = &v
29046	return s
29047}
29048
29049// SetScheduledAuditName sets the ScheduledAuditName field's value.
29050func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
29051	s.ScheduledAuditName = &v
29052	return s
29053}
29054
29055type SearchIndexInput struct {
29056	_ struct{} `type:"structure"`
29057
29058	// The search index name.
29059	IndexName *string `locationName:"indexName" min:"1" type:"string"`
29060
29061	// The maximum number of results to return at one time.
29062	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
29063
29064	// The token used to get the next set of results, or null if there are no additional
29065	// results.
29066	NextToken *string `locationName:"nextToken" type:"string"`
29067
29068	// The search query string.
29069	//
29070	// QueryString is a required field
29071	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
29072
29073	// The query version.
29074	QueryVersion *string `locationName:"queryVersion" type:"string"`
29075}
29076
29077// String returns the string representation
29078func (s SearchIndexInput) String() string {
29079	return awsutil.Prettify(s)
29080}
29081
29082// GoString returns the string representation
29083func (s SearchIndexInput) GoString() string {
29084	return s.String()
29085}
29086
29087// Validate inspects the fields of the type to determine if they are valid.
29088func (s *SearchIndexInput) Validate() error {
29089	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
29090	if s.IndexName != nil && len(*s.IndexName) < 1 {
29091		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
29092	}
29093	if s.MaxResults != nil && *s.MaxResults < 1 {
29094		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
29095	}
29096	if s.QueryString == nil {
29097		invalidParams.Add(request.NewErrParamRequired("QueryString"))
29098	}
29099	if s.QueryString != nil && len(*s.QueryString) < 1 {
29100		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
29101	}
29102
29103	if invalidParams.Len() > 0 {
29104		return invalidParams
29105	}
29106	return nil
29107}
29108
29109// SetIndexName sets the IndexName field's value.
29110func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
29111	s.IndexName = &v
29112	return s
29113}
29114
29115// SetMaxResults sets the MaxResults field's value.
29116func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
29117	s.MaxResults = &v
29118	return s
29119}
29120
29121// SetNextToken sets the NextToken field's value.
29122func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
29123	s.NextToken = &v
29124	return s
29125}
29126
29127// SetQueryString sets the QueryString field's value.
29128func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
29129	s.QueryString = &v
29130	return s
29131}
29132
29133// SetQueryVersion sets the QueryVersion field's value.
29134func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
29135	s.QueryVersion = &v
29136	return s
29137}
29138
29139type SearchIndexOutput struct {
29140	_ struct{} `type:"structure"`
29141
29142	// The token used to get the next set of results, or null if there are no additional
29143	// results.
29144	NextToken *string `locationName:"nextToken" type:"string"`
29145
29146	// The things that match the search query.
29147	Things []*ThingDocument `locationName:"things" type:"list"`
29148}
29149
29150// String returns the string representation
29151func (s SearchIndexOutput) String() string {
29152	return awsutil.Prettify(s)
29153}
29154
29155// GoString returns the string representation
29156func (s SearchIndexOutput) GoString() string {
29157	return s.String()
29158}
29159
29160// SetNextToken sets the NextToken field's value.
29161func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
29162	s.NextToken = &v
29163	return s
29164}
29165
29166// SetThings sets the Things field's value.
29167func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
29168	s.Things = v
29169	return s
29170}
29171
29172// Identifying information for a Device Defender security profile.
29173type SecurityProfileIdentifier struct {
29174	_ struct{} `type:"structure"`
29175
29176	// The ARN of the security profile.
29177	//
29178	// Arn is a required field
29179	Arn *string `locationName:"arn" type:"string" required:"true"`
29180
29181	// The name you have given to the security profile.
29182	//
29183	// Name is a required field
29184	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
29185}
29186
29187// String returns the string representation
29188func (s SecurityProfileIdentifier) String() string {
29189	return awsutil.Prettify(s)
29190}
29191
29192// GoString returns the string representation
29193func (s SecurityProfileIdentifier) GoString() string {
29194	return s.String()
29195}
29196
29197// SetArn sets the Arn field's value.
29198func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
29199	s.Arn = &v
29200	return s
29201}
29202
29203// SetName sets the Name field's value.
29204func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
29205	s.Name = &v
29206	return s
29207}
29208
29209// A target to which an alert is sent when a security profile behavior is violated.
29210type SecurityProfileTarget struct {
29211	_ struct{} `type:"structure"`
29212
29213	// The ARN of the security profile.
29214	//
29215	// Arn is a required field
29216	Arn *string `locationName:"arn" type:"string" required:"true"`
29217}
29218
29219// String returns the string representation
29220func (s SecurityProfileTarget) String() string {
29221	return awsutil.Prettify(s)
29222}
29223
29224// GoString returns the string representation
29225func (s SecurityProfileTarget) GoString() string {
29226	return s.String()
29227}
29228
29229// SetArn sets the Arn field's value.
29230func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
29231	s.Arn = &v
29232	return s
29233}
29234
29235// Information about a security profile and the target associated with it.
29236type SecurityProfileTargetMapping struct {
29237	_ struct{} `type:"structure"`
29238
29239	// Information that identifies the security profile.
29240	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
29241
29242	// Information about the target (thing group) associated with the security profile.
29243	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
29244}
29245
29246// String returns the string representation
29247func (s SecurityProfileTargetMapping) String() string {
29248	return awsutil.Prettify(s)
29249}
29250
29251// GoString returns the string representation
29252func (s SecurityProfileTargetMapping) GoString() string {
29253	return s.String()
29254}
29255
29256// SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
29257func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
29258	s.SecurityProfileIdentifier = v
29259	return s
29260}
29261
29262// SetTarget sets the Target field's value.
29263func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
29264	s.Target = v
29265	return s
29266}
29267
29268type SetDefaultAuthorizerInput struct {
29269	_ struct{} `type:"structure"`
29270
29271	// The authorizer name.
29272	//
29273	// AuthorizerName is a required field
29274	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
29275}
29276
29277// String returns the string representation
29278func (s SetDefaultAuthorizerInput) String() string {
29279	return awsutil.Prettify(s)
29280}
29281
29282// GoString returns the string representation
29283func (s SetDefaultAuthorizerInput) GoString() string {
29284	return s.String()
29285}
29286
29287// Validate inspects the fields of the type to determine if they are valid.
29288func (s *SetDefaultAuthorizerInput) Validate() error {
29289	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
29290	if s.AuthorizerName == nil {
29291		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
29292	}
29293	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
29294		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
29295	}
29296
29297	if invalidParams.Len() > 0 {
29298		return invalidParams
29299	}
29300	return nil
29301}
29302
29303// SetAuthorizerName sets the AuthorizerName field's value.
29304func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
29305	s.AuthorizerName = &v
29306	return s
29307}
29308
29309type SetDefaultAuthorizerOutput struct {
29310	_ struct{} `type:"structure"`
29311
29312	// The authorizer ARN.
29313	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
29314
29315	// The authorizer name.
29316	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
29317}
29318
29319// String returns the string representation
29320func (s SetDefaultAuthorizerOutput) String() string {
29321	return awsutil.Prettify(s)
29322}
29323
29324// GoString returns the string representation
29325func (s SetDefaultAuthorizerOutput) GoString() string {
29326	return s.String()
29327}
29328
29329// SetAuthorizerArn sets the AuthorizerArn field's value.
29330func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
29331	s.AuthorizerArn = &v
29332	return s
29333}
29334
29335// SetAuthorizerName sets the AuthorizerName field's value.
29336func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
29337	s.AuthorizerName = &v
29338	return s
29339}
29340
29341// The input for the SetDefaultPolicyVersion operation.
29342type SetDefaultPolicyVersionInput struct {
29343	_ struct{} `type:"structure"`
29344
29345	// The policy name.
29346	//
29347	// PolicyName is a required field
29348	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
29349
29350	// The policy version ID.
29351	//
29352	// PolicyVersionId is a required field
29353	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
29354}
29355
29356// String returns the string representation
29357func (s SetDefaultPolicyVersionInput) String() string {
29358	return awsutil.Prettify(s)
29359}
29360
29361// GoString returns the string representation
29362func (s SetDefaultPolicyVersionInput) GoString() string {
29363	return s.String()
29364}
29365
29366// Validate inspects the fields of the type to determine if they are valid.
29367func (s *SetDefaultPolicyVersionInput) Validate() error {
29368	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
29369	if s.PolicyName == nil {
29370		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
29371	}
29372	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
29373		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
29374	}
29375	if s.PolicyVersionId == nil {
29376		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
29377	}
29378
29379	if invalidParams.Len() > 0 {
29380		return invalidParams
29381	}
29382	return nil
29383}
29384
29385// SetPolicyName sets the PolicyName field's value.
29386func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
29387	s.PolicyName = &v
29388	return s
29389}
29390
29391// SetPolicyVersionId sets the PolicyVersionId field's value.
29392func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
29393	s.PolicyVersionId = &v
29394	return s
29395}
29396
29397type SetDefaultPolicyVersionOutput struct {
29398	_ struct{} `type:"structure"`
29399}
29400
29401// String returns the string representation
29402func (s SetDefaultPolicyVersionOutput) String() string {
29403	return awsutil.Prettify(s)
29404}
29405
29406// GoString returns the string representation
29407func (s SetDefaultPolicyVersionOutput) GoString() string {
29408	return s.String()
29409}
29410
29411// The input for the SetLoggingOptions operation.
29412type SetLoggingOptionsInput struct {
29413	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
29414
29415	// The logging options payload.
29416	//
29417	// LoggingOptionsPayload is a required field
29418	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
29419}
29420
29421// String returns the string representation
29422func (s SetLoggingOptionsInput) String() string {
29423	return awsutil.Prettify(s)
29424}
29425
29426// GoString returns the string representation
29427func (s SetLoggingOptionsInput) GoString() string {
29428	return s.String()
29429}
29430
29431// Validate inspects the fields of the type to determine if they are valid.
29432func (s *SetLoggingOptionsInput) Validate() error {
29433	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
29434	if s.LoggingOptionsPayload == nil {
29435		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
29436	}
29437	if s.LoggingOptionsPayload != nil {
29438		if err := s.LoggingOptionsPayload.Validate(); err != nil {
29439			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
29440		}
29441	}
29442
29443	if invalidParams.Len() > 0 {
29444		return invalidParams
29445	}
29446	return nil
29447}
29448
29449// SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
29450func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
29451	s.LoggingOptionsPayload = v
29452	return s
29453}
29454
29455type SetLoggingOptionsOutput struct {
29456	_ struct{} `type:"structure"`
29457}
29458
29459// String returns the string representation
29460func (s SetLoggingOptionsOutput) String() string {
29461	return awsutil.Prettify(s)
29462}
29463
29464// GoString returns the string representation
29465func (s SetLoggingOptionsOutput) GoString() string {
29466	return s.String()
29467}
29468
29469type SetV2LoggingLevelInput struct {
29470	_ struct{} `type:"structure"`
29471
29472	// The log level.
29473	//
29474	// LogLevel is a required field
29475	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
29476
29477	// The log target.
29478	//
29479	// LogTarget is a required field
29480	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
29481}
29482
29483// String returns the string representation
29484func (s SetV2LoggingLevelInput) String() string {
29485	return awsutil.Prettify(s)
29486}
29487
29488// GoString returns the string representation
29489func (s SetV2LoggingLevelInput) GoString() string {
29490	return s.String()
29491}
29492
29493// Validate inspects the fields of the type to determine if they are valid.
29494func (s *SetV2LoggingLevelInput) Validate() error {
29495	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
29496	if s.LogLevel == nil {
29497		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
29498	}
29499	if s.LogTarget == nil {
29500		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
29501	}
29502	if s.LogTarget != nil {
29503		if err := s.LogTarget.Validate(); err != nil {
29504			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
29505		}
29506	}
29507
29508	if invalidParams.Len() > 0 {
29509		return invalidParams
29510	}
29511	return nil
29512}
29513
29514// SetLogLevel sets the LogLevel field's value.
29515func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
29516	s.LogLevel = &v
29517	return s
29518}
29519
29520// SetLogTarget sets the LogTarget field's value.
29521func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
29522	s.LogTarget = v
29523	return s
29524}
29525
29526type SetV2LoggingLevelOutput struct {
29527	_ struct{} `type:"structure"`
29528}
29529
29530// String returns the string representation
29531func (s SetV2LoggingLevelOutput) String() string {
29532	return awsutil.Prettify(s)
29533}
29534
29535// GoString returns the string representation
29536func (s SetV2LoggingLevelOutput) GoString() string {
29537	return s.String()
29538}
29539
29540type SetV2LoggingOptionsInput struct {
29541	_ struct{} `type:"structure"`
29542
29543	// The default logging level.
29544	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
29545
29546	// If true all logs are disabled. The default is false.
29547	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
29548
29549	// The ARN of the role that allows IoT to write to Cloudwatch logs.
29550	RoleArn *string `locationName:"roleArn" type:"string"`
29551}
29552
29553// String returns the string representation
29554func (s SetV2LoggingOptionsInput) String() string {
29555	return awsutil.Prettify(s)
29556}
29557
29558// GoString returns the string representation
29559func (s SetV2LoggingOptionsInput) GoString() string {
29560	return s.String()
29561}
29562
29563// SetDefaultLogLevel sets the DefaultLogLevel field's value.
29564func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
29565	s.DefaultLogLevel = &v
29566	return s
29567}
29568
29569// SetDisableAllLogs sets the DisableAllLogs field's value.
29570func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
29571	s.DisableAllLogs = &v
29572	return s
29573}
29574
29575// SetRoleArn sets the RoleArn field's value.
29576func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
29577	s.RoleArn = &v
29578	return s
29579}
29580
29581type SetV2LoggingOptionsOutput struct {
29582	_ struct{} `type:"structure"`
29583}
29584
29585// String returns the string representation
29586func (s SetV2LoggingOptionsOutput) String() string {
29587	return awsutil.Prettify(s)
29588}
29589
29590// GoString returns the string representation
29591func (s SetV2LoggingOptionsOutput) GoString() string {
29592	return s.String()
29593}
29594
29595// Describes an action to publish to an Amazon SNS topic.
29596type SnsAction struct {
29597	_ struct{} `type:"structure"`
29598
29599	// (Optional) The message format of the message to publish. Accepted values
29600	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
29601	// this setting to determine if the payload should be parsed and relevant platform-specific
29602	// bits of the payload should be extracted. To read more about SNS message formats,
29603	// see http://docs.aws.amazon.com/sns/latest/dg/json-formats.html (http://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
29604	// refer to their official documentation.
29605	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
29606
29607	// The ARN of the IAM role that grants access.
29608	//
29609	// RoleArn is a required field
29610	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
29611
29612	// The ARN of the SNS topic.
29613	//
29614	// TargetArn is a required field
29615	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
29616}
29617
29618// String returns the string representation
29619func (s SnsAction) String() string {
29620	return awsutil.Prettify(s)
29621}
29622
29623// GoString returns the string representation
29624func (s SnsAction) GoString() string {
29625	return s.String()
29626}
29627
29628// Validate inspects the fields of the type to determine if they are valid.
29629func (s *SnsAction) Validate() error {
29630	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
29631	if s.RoleArn == nil {
29632		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29633	}
29634	if s.TargetArn == nil {
29635		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
29636	}
29637
29638	if invalidParams.Len() > 0 {
29639		return invalidParams
29640	}
29641	return nil
29642}
29643
29644// SetMessageFormat sets the MessageFormat field's value.
29645func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
29646	s.MessageFormat = &v
29647	return s
29648}
29649
29650// SetRoleArn sets the RoleArn field's value.
29651func (s *SnsAction) SetRoleArn(v string) *SnsAction {
29652	s.RoleArn = &v
29653	return s
29654}
29655
29656// SetTargetArn sets the TargetArn field's value.
29657func (s *SnsAction) SetTargetArn(v string) *SnsAction {
29658	s.TargetArn = &v
29659	return s
29660}
29661
29662// Describes an action to publish data to an Amazon SQS queue.
29663type SqsAction struct {
29664	_ struct{} `type:"structure"`
29665
29666	// The URL of the Amazon SQS queue.
29667	//
29668	// QueueUrl is a required field
29669	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
29670
29671	// The ARN of the IAM role that grants access.
29672	//
29673	// RoleArn is a required field
29674	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
29675
29676	// Specifies whether to use Base64 encoding.
29677	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
29678}
29679
29680// String returns the string representation
29681func (s SqsAction) String() string {
29682	return awsutil.Prettify(s)
29683}
29684
29685// GoString returns the string representation
29686func (s SqsAction) GoString() string {
29687	return s.String()
29688}
29689
29690// Validate inspects the fields of the type to determine if they are valid.
29691func (s *SqsAction) Validate() error {
29692	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
29693	if s.QueueUrl == nil {
29694		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
29695	}
29696	if s.RoleArn == nil {
29697		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29698	}
29699
29700	if invalidParams.Len() > 0 {
29701		return invalidParams
29702	}
29703	return nil
29704}
29705
29706// SetQueueUrl sets the QueueUrl field's value.
29707func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
29708	s.QueueUrl = &v
29709	return s
29710}
29711
29712// SetRoleArn sets the RoleArn field's value.
29713func (s *SqsAction) SetRoleArn(v string) *SqsAction {
29714	s.RoleArn = &v
29715	return s
29716}
29717
29718// SetUseBase64 sets the UseBase64 field's value.
29719func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
29720	s.UseBase64 = &v
29721	return s
29722}
29723
29724type StartOnDemandAuditTaskInput struct {
29725	_ struct{} `type:"structure"`
29726
29727	// Which checks are performed during the audit. The checks you specify must
29728	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
29729	// to see the list of all checks including those that are enabled or UpdateAccountAuditConfiguration
29730	// to select which checks are enabled.
29731	//
29732	// TargetCheckNames is a required field
29733	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
29734}
29735
29736// String returns the string representation
29737func (s StartOnDemandAuditTaskInput) String() string {
29738	return awsutil.Prettify(s)
29739}
29740
29741// GoString returns the string representation
29742func (s StartOnDemandAuditTaskInput) GoString() string {
29743	return s.String()
29744}
29745
29746// Validate inspects the fields of the type to determine if they are valid.
29747func (s *StartOnDemandAuditTaskInput) Validate() error {
29748	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
29749	if s.TargetCheckNames == nil {
29750		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
29751	}
29752
29753	if invalidParams.Len() > 0 {
29754		return invalidParams
29755	}
29756	return nil
29757}
29758
29759// SetTargetCheckNames sets the TargetCheckNames field's value.
29760func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
29761	s.TargetCheckNames = v
29762	return s
29763}
29764
29765type StartOnDemandAuditTaskOutput struct {
29766	_ struct{} `type:"structure"`
29767
29768	// The ID of the on-demand audit you started.
29769	TaskId *string `locationName:"taskId" min:"1" type:"string"`
29770}
29771
29772// String returns the string representation
29773func (s StartOnDemandAuditTaskOutput) String() string {
29774	return awsutil.Prettify(s)
29775}
29776
29777// GoString returns the string representation
29778func (s StartOnDemandAuditTaskOutput) GoString() string {
29779	return s.String()
29780}
29781
29782// SetTaskId sets the TaskId field's value.
29783func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
29784	s.TaskId = &v
29785	return s
29786}
29787
29788type StartThingRegistrationTaskInput struct {
29789	_ struct{} `type:"structure"`
29790
29791	// The S3 bucket that contains the input file.
29792	//
29793	// InputFileBucket is a required field
29794	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
29795
29796	// The name of input file within the S3 bucket. This file contains a newline
29797	// delimited JSON file. Each line contains the parameter values to provision
29798	// one device (thing).
29799	//
29800	// InputFileKey is a required field
29801	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
29802
29803	// The IAM role ARN that grants permission the input file.
29804	//
29805	// RoleArn is a required field
29806	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
29807
29808	// The provisioning template.
29809	//
29810	// TemplateBody is a required field
29811	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
29812}
29813
29814// String returns the string representation
29815func (s StartThingRegistrationTaskInput) String() string {
29816	return awsutil.Prettify(s)
29817}
29818
29819// GoString returns the string representation
29820func (s StartThingRegistrationTaskInput) GoString() string {
29821	return s.String()
29822}
29823
29824// Validate inspects the fields of the type to determine if they are valid.
29825func (s *StartThingRegistrationTaskInput) Validate() error {
29826	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
29827	if s.InputFileBucket == nil {
29828		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
29829	}
29830	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
29831		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
29832	}
29833	if s.InputFileKey == nil {
29834		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
29835	}
29836	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
29837		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
29838	}
29839	if s.RoleArn == nil {
29840		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29841	}
29842	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
29843		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
29844	}
29845	if s.TemplateBody == nil {
29846		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
29847	}
29848
29849	if invalidParams.Len() > 0 {
29850		return invalidParams
29851	}
29852	return nil
29853}
29854
29855// SetInputFileBucket sets the InputFileBucket field's value.
29856func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
29857	s.InputFileBucket = &v
29858	return s
29859}
29860
29861// SetInputFileKey sets the InputFileKey field's value.
29862func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
29863	s.InputFileKey = &v
29864	return s
29865}
29866
29867// SetRoleArn sets the RoleArn field's value.
29868func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
29869	s.RoleArn = &v
29870	return s
29871}
29872
29873// SetTemplateBody sets the TemplateBody field's value.
29874func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
29875	s.TemplateBody = &v
29876	return s
29877}
29878
29879type StartThingRegistrationTaskOutput struct {
29880	_ struct{} `type:"structure"`
29881
29882	// The bulk thing provisioning task ID.
29883	TaskId *string `locationName:"taskId" type:"string"`
29884}
29885
29886// String returns the string representation
29887func (s StartThingRegistrationTaskOutput) String() string {
29888	return awsutil.Prettify(s)
29889}
29890
29891// GoString returns the string representation
29892func (s StartThingRegistrationTaskOutput) GoString() string {
29893	return s.String()
29894}
29895
29896// SetTaskId sets the TaskId field's value.
29897func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
29898	s.TaskId = &v
29899	return s
29900}
29901
29902// Starts execution of a Step Functions state machine.
29903type StepFunctionsAction struct {
29904	_ struct{} `type:"structure"`
29905
29906	// (Optional) A name will be given to the state machine execution consisting
29907	// of this prefix followed by a UUID. Step Functions automatically creates a
29908	// unique name for each state machine execution if one is not provided.
29909	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
29910
29911	// The ARN of the role that grants IoT permission to start execution of a state
29912	// machine ("Action":"states:StartExecution").
29913	//
29914	// RoleArn is a required field
29915	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
29916
29917	// The name of the Step Functions state machine whose execution will be started.
29918	//
29919	// StateMachineName is a required field
29920	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
29921}
29922
29923// String returns the string representation
29924func (s StepFunctionsAction) String() string {
29925	return awsutil.Prettify(s)
29926}
29927
29928// GoString returns the string representation
29929func (s StepFunctionsAction) GoString() string {
29930	return s.String()
29931}
29932
29933// Validate inspects the fields of the type to determine if they are valid.
29934func (s *StepFunctionsAction) Validate() error {
29935	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
29936	if s.RoleArn == nil {
29937		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29938	}
29939	if s.StateMachineName == nil {
29940		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
29941	}
29942
29943	if invalidParams.Len() > 0 {
29944		return invalidParams
29945	}
29946	return nil
29947}
29948
29949// SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
29950func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
29951	s.ExecutionNamePrefix = &v
29952	return s
29953}
29954
29955// SetRoleArn sets the RoleArn field's value.
29956func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
29957	s.RoleArn = &v
29958	return s
29959}
29960
29961// SetStateMachineName sets the StateMachineName field's value.
29962func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
29963	s.StateMachineName = &v
29964	return s
29965}
29966
29967type StopThingRegistrationTaskInput struct {
29968	_ struct{} `type:"structure"`
29969
29970	// The bulk thing provisioning task ID.
29971	//
29972	// TaskId is a required field
29973	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
29974}
29975
29976// String returns the string representation
29977func (s StopThingRegistrationTaskInput) String() string {
29978	return awsutil.Prettify(s)
29979}
29980
29981// GoString returns the string representation
29982func (s StopThingRegistrationTaskInput) GoString() string {
29983	return s.String()
29984}
29985
29986// Validate inspects the fields of the type to determine if they are valid.
29987func (s *StopThingRegistrationTaskInput) Validate() error {
29988	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
29989	if s.TaskId == nil {
29990		invalidParams.Add(request.NewErrParamRequired("TaskId"))
29991	}
29992
29993	if invalidParams.Len() > 0 {
29994		return invalidParams
29995	}
29996	return nil
29997}
29998
29999// SetTaskId sets the TaskId field's value.
30000func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
30001	s.TaskId = &v
30002	return s
30003}
30004
30005type StopThingRegistrationTaskOutput struct {
30006	_ struct{} `type:"structure"`
30007}
30008
30009// String returns the string representation
30010func (s StopThingRegistrationTaskOutput) String() string {
30011	return awsutil.Prettify(s)
30012}
30013
30014// GoString returns the string representation
30015func (s StopThingRegistrationTaskOutput) GoString() string {
30016	return s.String()
30017}
30018
30019// Describes a group of files that can be streamed.
30020type Stream struct {
30021	_ struct{} `type:"structure"`
30022
30023	// The ID of a file associated with a stream.
30024	FileId *int64 `locationName:"fileId" type:"integer"`
30025
30026	// The stream ID.
30027	StreamId *string `locationName:"streamId" min:"1" type:"string"`
30028}
30029
30030// String returns the string representation
30031func (s Stream) String() string {
30032	return awsutil.Prettify(s)
30033}
30034
30035// GoString returns the string representation
30036func (s Stream) GoString() string {
30037	return s.String()
30038}
30039
30040// Validate inspects the fields of the type to determine if they are valid.
30041func (s *Stream) Validate() error {
30042	invalidParams := request.ErrInvalidParams{Context: "Stream"}
30043	if s.StreamId != nil && len(*s.StreamId) < 1 {
30044		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
30045	}
30046
30047	if invalidParams.Len() > 0 {
30048		return invalidParams
30049	}
30050	return nil
30051}
30052
30053// SetFileId sets the FileId field's value.
30054func (s *Stream) SetFileId(v int64) *Stream {
30055	s.FileId = &v
30056	return s
30057}
30058
30059// SetStreamId sets the StreamId field's value.
30060func (s *Stream) SetStreamId(v string) *Stream {
30061	s.StreamId = &v
30062	return s
30063}
30064
30065// Represents a file to stream.
30066type StreamFile struct {
30067	_ struct{} `type:"structure"`
30068
30069	// The file ID.
30070	FileId *int64 `locationName:"fileId" type:"integer"`
30071
30072	// The location of the file in S3.
30073	S3Location *S3Location `locationName:"s3Location" type:"structure"`
30074}
30075
30076// String returns the string representation
30077func (s StreamFile) String() string {
30078	return awsutil.Prettify(s)
30079}
30080
30081// GoString returns the string representation
30082func (s StreamFile) GoString() string {
30083	return s.String()
30084}
30085
30086// Validate inspects the fields of the type to determine if they are valid.
30087func (s *StreamFile) Validate() error {
30088	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
30089	if s.S3Location != nil {
30090		if err := s.S3Location.Validate(); err != nil {
30091			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
30092		}
30093	}
30094
30095	if invalidParams.Len() > 0 {
30096		return invalidParams
30097	}
30098	return nil
30099}
30100
30101// SetFileId sets the FileId field's value.
30102func (s *StreamFile) SetFileId(v int64) *StreamFile {
30103	s.FileId = &v
30104	return s
30105}
30106
30107// SetS3Location sets the S3Location field's value.
30108func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
30109	s.S3Location = v
30110	return s
30111}
30112
30113// Information about a stream.
30114type StreamInfo struct {
30115	_ struct{} `type:"structure"`
30116
30117	// The date when the stream was created.
30118	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
30119
30120	// The description of the stream.
30121	Description *string `locationName:"description" type:"string"`
30122
30123	// The files to stream.
30124	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
30125
30126	// The date when the stream was last updated.
30127	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
30128
30129	// An IAM role AWS IoT assumes to access your S3 files.
30130	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
30131
30132	// The stream ARN.
30133	StreamArn *string `locationName:"streamArn" type:"string"`
30134
30135	// The stream ID.
30136	StreamId *string `locationName:"streamId" min:"1" type:"string"`
30137
30138	// The stream version.
30139	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
30140}
30141
30142// String returns the string representation
30143func (s StreamInfo) String() string {
30144	return awsutil.Prettify(s)
30145}
30146
30147// GoString returns the string representation
30148func (s StreamInfo) GoString() string {
30149	return s.String()
30150}
30151
30152// SetCreatedAt sets the CreatedAt field's value.
30153func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
30154	s.CreatedAt = &v
30155	return s
30156}
30157
30158// SetDescription sets the Description field's value.
30159func (s *StreamInfo) SetDescription(v string) *StreamInfo {
30160	s.Description = &v
30161	return s
30162}
30163
30164// SetFiles sets the Files field's value.
30165func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
30166	s.Files = v
30167	return s
30168}
30169
30170// SetLastUpdatedAt sets the LastUpdatedAt field's value.
30171func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
30172	s.LastUpdatedAt = &v
30173	return s
30174}
30175
30176// SetRoleArn sets the RoleArn field's value.
30177func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
30178	s.RoleArn = &v
30179	return s
30180}
30181
30182// SetStreamArn sets the StreamArn field's value.
30183func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
30184	s.StreamArn = &v
30185	return s
30186}
30187
30188// SetStreamId sets the StreamId field's value.
30189func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
30190	s.StreamId = &v
30191	return s
30192}
30193
30194// SetStreamVersion sets the StreamVersion field's value.
30195func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
30196	s.StreamVersion = &v
30197	return s
30198}
30199
30200// A summary of a stream.
30201type StreamSummary struct {
30202	_ struct{} `type:"structure"`
30203
30204	// A description of the stream.
30205	Description *string `locationName:"description" type:"string"`
30206
30207	// The stream ARN.
30208	StreamArn *string `locationName:"streamArn" type:"string"`
30209
30210	// The stream ID.
30211	StreamId *string `locationName:"streamId" min:"1" type:"string"`
30212
30213	// The stream version.
30214	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
30215}
30216
30217// String returns the string representation
30218func (s StreamSummary) String() string {
30219	return awsutil.Prettify(s)
30220}
30221
30222// GoString returns the string representation
30223func (s StreamSummary) GoString() string {
30224	return s.String()
30225}
30226
30227// SetDescription sets the Description field's value.
30228func (s *StreamSummary) SetDescription(v string) *StreamSummary {
30229	s.Description = &v
30230	return s
30231}
30232
30233// SetStreamArn sets the StreamArn field's value.
30234func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
30235	s.StreamArn = &v
30236	return s
30237}
30238
30239// SetStreamId sets the StreamId field's value.
30240func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
30241	s.StreamId = &v
30242	return s
30243}
30244
30245// SetStreamVersion sets the StreamVersion field's value.
30246func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
30247	s.StreamVersion = &v
30248	return s
30249}
30250
30251// Statistics for the checks performed during the audit.
30252type TaskStatistics struct {
30253	_ struct{} `type:"structure"`
30254
30255	// The number of checks that did not run because the audit was canceled.
30256	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
30257
30258	// The number of checks that found compliant resources.
30259	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
30260
30261	// The number of checks
30262	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
30263
30264	// The number of checks in progress.
30265	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
30266
30267	// The number of checks that found non-compliant resources.
30268	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
30269
30270	// The number of checks in this audit.
30271	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
30272
30273	// The number of checks waiting for data collection.
30274	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
30275}
30276
30277// String returns the string representation
30278func (s TaskStatistics) String() string {
30279	return awsutil.Prettify(s)
30280}
30281
30282// GoString returns the string representation
30283func (s TaskStatistics) GoString() string {
30284	return s.String()
30285}
30286
30287// SetCanceledChecks sets the CanceledChecks field's value.
30288func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
30289	s.CanceledChecks = &v
30290	return s
30291}
30292
30293// SetCompliantChecks sets the CompliantChecks field's value.
30294func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
30295	s.CompliantChecks = &v
30296	return s
30297}
30298
30299// SetFailedChecks sets the FailedChecks field's value.
30300func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
30301	s.FailedChecks = &v
30302	return s
30303}
30304
30305// SetInProgressChecks sets the InProgressChecks field's value.
30306func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
30307	s.InProgressChecks = &v
30308	return s
30309}
30310
30311// SetNonCompliantChecks sets the NonCompliantChecks field's value.
30312func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
30313	s.NonCompliantChecks = &v
30314	return s
30315}
30316
30317// SetTotalChecks sets the TotalChecks field's value.
30318func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
30319	s.TotalChecks = &v
30320	return s
30321}
30322
30323// SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
30324func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
30325	s.WaitingForDataCollectionChecks = &v
30326	return s
30327}
30328
30329type TestAuthorizationInput struct {
30330	_ struct{} `type:"structure"`
30331
30332	// A list of authorization info objects. Simulating authorization will create
30333	// a response for each authInfo object in the list.
30334	//
30335	// AuthInfos is a required field
30336	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
30337
30338	// The MQTT client ID.
30339	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
30340
30341	// The Cognito identity pool ID.
30342	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
30343
30344	// When testing custom authorization, the policies specified here are treated
30345	// as if they are attached to the principal being authorized.
30346	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
30347
30348	// When testing custom authorization, the policies specified here are treated
30349	// as if they are not attached to the principal being authorized.
30350	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
30351
30352	// The principal.
30353	Principal *string `locationName:"principal" type:"string"`
30354}
30355
30356// String returns the string representation
30357func (s TestAuthorizationInput) String() string {
30358	return awsutil.Prettify(s)
30359}
30360
30361// GoString returns the string representation
30362func (s TestAuthorizationInput) GoString() string {
30363	return s.String()
30364}
30365
30366// Validate inspects the fields of the type to determine if they are valid.
30367func (s *TestAuthorizationInput) Validate() error {
30368	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
30369	if s.AuthInfos == nil {
30370		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
30371	}
30372	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
30373		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
30374	}
30375
30376	if invalidParams.Len() > 0 {
30377		return invalidParams
30378	}
30379	return nil
30380}
30381
30382// SetAuthInfos sets the AuthInfos field's value.
30383func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
30384	s.AuthInfos = v
30385	return s
30386}
30387
30388// SetClientId sets the ClientId field's value.
30389func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
30390	s.ClientId = &v
30391	return s
30392}
30393
30394// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
30395func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
30396	s.CognitoIdentityPoolId = &v
30397	return s
30398}
30399
30400// SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
30401func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
30402	s.PolicyNamesToAdd = v
30403	return s
30404}
30405
30406// SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
30407func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
30408	s.PolicyNamesToSkip = v
30409	return s
30410}
30411
30412// SetPrincipal sets the Principal field's value.
30413func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
30414	s.Principal = &v
30415	return s
30416}
30417
30418type TestAuthorizationOutput struct {
30419	_ struct{} `type:"structure"`
30420
30421	// The authentication results.
30422	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
30423}
30424
30425// String returns the string representation
30426func (s TestAuthorizationOutput) String() string {
30427	return awsutil.Prettify(s)
30428}
30429
30430// GoString returns the string representation
30431func (s TestAuthorizationOutput) GoString() string {
30432	return s.String()
30433}
30434
30435// SetAuthResults sets the AuthResults field's value.
30436func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
30437	s.AuthResults = v
30438	return s
30439}
30440
30441type TestInvokeAuthorizerInput struct {
30442	_ struct{} `type:"structure"`
30443
30444	// The custom authorizer name.
30445	//
30446	// AuthorizerName is a required field
30447	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
30448
30449	// The token returned by your custom authentication service.
30450	//
30451	// Token is a required field
30452	Token *string `locationName:"token" min:"1" type:"string" required:"true"`
30453
30454	// The signature made with the token and your custom authentication service's
30455	// private key.
30456	//
30457	// TokenSignature is a required field
30458	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string" required:"true"`
30459}
30460
30461// String returns the string representation
30462func (s TestInvokeAuthorizerInput) String() string {
30463	return awsutil.Prettify(s)
30464}
30465
30466// GoString returns the string representation
30467func (s TestInvokeAuthorizerInput) GoString() string {
30468	return s.String()
30469}
30470
30471// Validate inspects the fields of the type to determine if they are valid.
30472func (s *TestInvokeAuthorizerInput) Validate() error {
30473	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
30474	if s.AuthorizerName == nil {
30475		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
30476	}
30477	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
30478		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
30479	}
30480	if s.Token == nil {
30481		invalidParams.Add(request.NewErrParamRequired("Token"))
30482	}
30483	if s.Token != nil && len(*s.Token) < 1 {
30484		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
30485	}
30486	if s.TokenSignature == nil {
30487		invalidParams.Add(request.NewErrParamRequired("TokenSignature"))
30488	}
30489	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
30490		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
30491	}
30492
30493	if invalidParams.Len() > 0 {
30494		return invalidParams
30495	}
30496	return nil
30497}
30498
30499// SetAuthorizerName sets the AuthorizerName field's value.
30500func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
30501	s.AuthorizerName = &v
30502	return s
30503}
30504
30505// SetToken sets the Token field's value.
30506func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
30507	s.Token = &v
30508	return s
30509}
30510
30511// SetTokenSignature sets the TokenSignature field's value.
30512func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
30513	s.TokenSignature = &v
30514	return s
30515}
30516
30517type TestInvokeAuthorizerOutput struct {
30518	_ struct{} `type:"structure"`
30519
30520	// The number of seconds after which the connection is terminated.
30521	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
30522
30523	// True if the token is authenticated, otherwise false.
30524	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
30525
30526	// IAM policy documents.
30527	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
30528
30529	// The principal ID.
30530	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
30531
30532	// The number of seconds after which the temporary credentials are refreshed.
30533	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
30534}
30535
30536// String returns the string representation
30537func (s TestInvokeAuthorizerOutput) String() string {
30538	return awsutil.Prettify(s)
30539}
30540
30541// GoString returns the string representation
30542func (s TestInvokeAuthorizerOutput) GoString() string {
30543	return s.String()
30544}
30545
30546// SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
30547func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
30548	s.DisconnectAfterInSeconds = &v
30549	return s
30550}
30551
30552// SetIsAuthenticated sets the IsAuthenticated field's value.
30553func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
30554	s.IsAuthenticated = &v
30555	return s
30556}
30557
30558// SetPolicyDocuments sets the PolicyDocuments field's value.
30559func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
30560	s.PolicyDocuments = v
30561	return s
30562}
30563
30564// SetPrincipalId sets the PrincipalId field's value.
30565func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
30566	s.PrincipalId = &v
30567	return s
30568}
30569
30570// SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
30571func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
30572	s.RefreshAfterInSeconds = &v
30573	return s
30574}
30575
30576// The properties of the thing, including thing name, thing type name, and a
30577// list of thing attributes.
30578type ThingAttribute struct {
30579	_ struct{} `type:"structure"`
30580
30581	// A list of thing attributes which are name-value pairs.
30582	Attributes map[string]*string `locationName:"attributes" type:"map"`
30583
30584	// The thing ARN.
30585	ThingArn *string `locationName:"thingArn" type:"string"`
30586
30587	// The name of the thing.
30588	ThingName *string `locationName:"thingName" min:"1" type:"string"`
30589
30590	// The name of the thing type, if the thing has been associated with a type.
30591	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
30592
30593	// The version of the thing record in the registry.
30594	Version *int64 `locationName:"version" type:"long"`
30595}
30596
30597// String returns the string representation
30598func (s ThingAttribute) String() string {
30599	return awsutil.Prettify(s)
30600}
30601
30602// GoString returns the string representation
30603func (s ThingAttribute) GoString() string {
30604	return s.String()
30605}
30606
30607// SetAttributes sets the Attributes field's value.
30608func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
30609	s.Attributes = v
30610	return s
30611}
30612
30613// SetThingArn sets the ThingArn field's value.
30614func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
30615	s.ThingArn = &v
30616	return s
30617}
30618
30619// SetThingName sets the ThingName field's value.
30620func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
30621	s.ThingName = &v
30622	return s
30623}
30624
30625// SetThingTypeName sets the ThingTypeName field's value.
30626func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
30627	s.ThingTypeName = &v
30628	return s
30629}
30630
30631// SetVersion sets the Version field's value.
30632func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
30633	s.Version = &v
30634	return s
30635}
30636
30637// The thing search index document.
30638type ThingDocument struct {
30639	_ struct{} `type:"structure"`
30640
30641	// The attributes.
30642	Attributes map[string]*string `locationName:"attributes" type:"map"`
30643
30644	// The shadow.
30645	Shadow *string `locationName:"shadow" type:"string"`
30646
30647	// Thing group names.
30648	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
30649
30650	// The thing ID.
30651	ThingId *string `locationName:"thingId" type:"string"`
30652
30653	// The thing name.
30654	ThingName *string `locationName:"thingName" min:"1" type:"string"`
30655
30656	// The thing type name.
30657	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
30658}
30659
30660// String returns the string representation
30661func (s ThingDocument) String() string {
30662	return awsutil.Prettify(s)
30663}
30664
30665// GoString returns the string representation
30666func (s ThingDocument) GoString() string {
30667	return s.String()
30668}
30669
30670// SetAttributes sets the Attributes field's value.
30671func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
30672	s.Attributes = v
30673	return s
30674}
30675
30676// SetShadow sets the Shadow field's value.
30677func (s *ThingDocument) SetShadow(v string) *ThingDocument {
30678	s.Shadow = &v
30679	return s
30680}
30681
30682// SetThingGroupNames sets the ThingGroupNames field's value.
30683func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
30684	s.ThingGroupNames = v
30685	return s
30686}
30687
30688// SetThingId sets the ThingId field's value.
30689func (s *ThingDocument) SetThingId(v string) *ThingDocument {
30690	s.ThingId = &v
30691	return s
30692}
30693
30694// SetThingName sets the ThingName field's value.
30695func (s *ThingDocument) SetThingName(v string) *ThingDocument {
30696	s.ThingName = &v
30697	return s
30698}
30699
30700// SetThingTypeName sets the ThingTypeName field's value.
30701func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
30702	s.ThingTypeName = &v
30703	return s
30704}
30705
30706// Thing group metadata.
30707type ThingGroupMetadata struct {
30708	_ struct{} `type:"structure"`
30709
30710	// The UNIX timestamp of when the thing group was created.
30711	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
30712
30713	// The parent thing group name.
30714	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
30715
30716	// The root parent thing group.
30717	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
30718}
30719
30720// String returns the string representation
30721func (s ThingGroupMetadata) String() string {
30722	return awsutil.Prettify(s)
30723}
30724
30725// GoString returns the string representation
30726func (s ThingGroupMetadata) GoString() string {
30727	return s.String()
30728}
30729
30730// SetCreationDate sets the CreationDate field's value.
30731func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
30732	s.CreationDate = &v
30733	return s
30734}
30735
30736// SetParentGroupName sets the ParentGroupName field's value.
30737func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
30738	s.ParentGroupName = &v
30739	return s
30740}
30741
30742// SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
30743func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
30744	s.RootToParentThingGroups = v
30745	return s
30746}
30747
30748// Thing group properties.
30749type ThingGroupProperties struct {
30750	_ struct{} `type:"structure"`
30751
30752	// The thing group attributes in JSON format.
30753	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
30754
30755	// The thing group description.
30756	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
30757}
30758
30759// String returns the string representation
30760func (s ThingGroupProperties) String() string {
30761	return awsutil.Prettify(s)
30762}
30763
30764// GoString returns the string representation
30765func (s ThingGroupProperties) GoString() string {
30766	return s.String()
30767}
30768
30769// SetAttributePayload sets the AttributePayload field's value.
30770func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
30771	s.AttributePayload = v
30772	return s
30773}
30774
30775// SetThingGroupDescription sets the ThingGroupDescription field's value.
30776func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
30777	s.ThingGroupDescription = &v
30778	return s
30779}
30780
30781// Thing indexing configuration.
30782type ThingIndexingConfiguration struct {
30783	_ struct{} `type:"structure"`
30784
30785	// Thing indexing mode. Valid values are:
30786	//
30787	//    * REGISTRY – Your thing index will contain only registry data.
30788	//
30789	//    * REGISTRY_AND_SHADOW - Your thing index will contain registry and shadow
30790	//    data.
30791	//
30792	//    * OFF - Thing indexing is disabled.
30793	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" enum:"ThingIndexingMode"`
30794}
30795
30796// String returns the string representation
30797func (s ThingIndexingConfiguration) String() string {
30798	return awsutil.Prettify(s)
30799}
30800
30801// GoString returns the string representation
30802func (s ThingIndexingConfiguration) GoString() string {
30803	return s.String()
30804}
30805
30806// SetThingIndexingMode sets the ThingIndexingMode field's value.
30807func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
30808	s.ThingIndexingMode = &v
30809	return s
30810}
30811
30812// The definition of the thing type, including thing type name and description.
30813type ThingTypeDefinition struct {
30814	_ struct{} `type:"structure"`
30815
30816	// The thing type ARN.
30817	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
30818
30819	// The ThingTypeMetadata contains additional information about the thing type
30820	// including: creation date and time, a value indicating whether the thing type
30821	// is deprecated, and a date and time when it was deprecated.
30822	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
30823
30824	// The name of the thing type.
30825	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
30826
30827	// The ThingTypeProperties for the thing type.
30828	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
30829}
30830
30831// String returns the string representation
30832func (s ThingTypeDefinition) String() string {
30833	return awsutil.Prettify(s)
30834}
30835
30836// GoString returns the string representation
30837func (s ThingTypeDefinition) GoString() string {
30838	return s.String()
30839}
30840
30841// SetThingTypeArn sets the ThingTypeArn field's value.
30842func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
30843	s.ThingTypeArn = &v
30844	return s
30845}
30846
30847// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
30848func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
30849	s.ThingTypeMetadata = v
30850	return s
30851}
30852
30853// SetThingTypeName sets the ThingTypeName field's value.
30854func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
30855	s.ThingTypeName = &v
30856	return s
30857}
30858
30859// SetThingTypeProperties sets the ThingTypeProperties field's value.
30860func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
30861	s.ThingTypeProperties = v
30862	return s
30863}
30864
30865// The ThingTypeMetadata contains additional information about the thing type
30866// including: creation date and time, a value indicating whether the thing type
30867// is deprecated, and a date and time when time was deprecated.
30868type ThingTypeMetadata struct {
30869	_ struct{} `type:"structure"`
30870
30871	// The date and time when the thing type was created.
30872	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
30873
30874	// Whether the thing type is deprecated. If true, no new things could be associated
30875	// with this type.
30876	Deprecated *bool `locationName:"deprecated" type:"boolean"`
30877
30878	// The date and time when the thing type was deprecated.
30879	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
30880}
30881
30882// String returns the string representation
30883func (s ThingTypeMetadata) String() string {
30884	return awsutil.Prettify(s)
30885}
30886
30887// GoString returns the string representation
30888func (s ThingTypeMetadata) GoString() string {
30889	return s.String()
30890}
30891
30892// SetCreationDate sets the CreationDate field's value.
30893func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
30894	s.CreationDate = &v
30895	return s
30896}
30897
30898// SetDeprecated sets the Deprecated field's value.
30899func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
30900	s.Deprecated = &v
30901	return s
30902}
30903
30904// SetDeprecationDate sets the DeprecationDate field's value.
30905func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
30906	s.DeprecationDate = &v
30907	return s
30908}
30909
30910// The ThingTypeProperties contains information about the thing type including:
30911// a thing type description, and a list of searchable thing attribute names.
30912type ThingTypeProperties struct {
30913	_ struct{} `type:"structure"`
30914
30915	// A list of searchable thing attribute names.
30916	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
30917
30918	// The description of the thing type.
30919	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
30920}
30921
30922// String returns the string representation
30923func (s ThingTypeProperties) String() string {
30924	return awsutil.Prettify(s)
30925}
30926
30927// GoString returns the string representation
30928func (s ThingTypeProperties) GoString() string {
30929	return s.String()
30930}
30931
30932// SetSearchableAttributes sets the SearchableAttributes field's value.
30933func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
30934	s.SearchableAttributes = v
30935	return s
30936}
30937
30938// SetThingTypeDescription sets the ThingTypeDescription field's value.
30939func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
30940	s.ThingTypeDescription = &v
30941	return s
30942}
30943
30944// Describes a rule.
30945type TopicRule struct {
30946	_ struct{} `type:"structure"`
30947
30948	// The actions associated with the rule.
30949	Actions []*Action `locationName:"actions" type:"list"`
30950
30951	// The version of the SQL rules engine to use when evaluating the rule.
30952	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
30953
30954	// The date and time the rule was created.
30955	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
30956
30957	// The description of the rule.
30958	Description *string `locationName:"description" type:"string"`
30959
30960	// The action to perform when an error occurs.
30961	ErrorAction *Action `locationName:"errorAction" type:"structure"`
30962
30963	// Specifies whether the rule is disabled.
30964	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
30965
30966	// The name of the rule.
30967	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
30968
30969	// The SQL statement used to query the topic. When using a SQL query with multiple
30970	// lines, be sure to escape the newline characters.
30971	Sql *string `locationName:"sql" type:"string"`
30972}
30973
30974// String returns the string representation
30975func (s TopicRule) String() string {
30976	return awsutil.Prettify(s)
30977}
30978
30979// GoString returns the string representation
30980func (s TopicRule) GoString() string {
30981	return s.String()
30982}
30983
30984// SetActions sets the Actions field's value.
30985func (s *TopicRule) SetActions(v []*Action) *TopicRule {
30986	s.Actions = v
30987	return s
30988}
30989
30990// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
30991func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
30992	s.AwsIotSqlVersion = &v
30993	return s
30994}
30995
30996// SetCreatedAt sets the CreatedAt field's value.
30997func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
30998	s.CreatedAt = &v
30999	return s
31000}
31001
31002// SetDescription sets the Description field's value.
31003func (s *TopicRule) SetDescription(v string) *TopicRule {
31004	s.Description = &v
31005	return s
31006}
31007
31008// SetErrorAction sets the ErrorAction field's value.
31009func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
31010	s.ErrorAction = v
31011	return s
31012}
31013
31014// SetRuleDisabled sets the RuleDisabled field's value.
31015func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
31016	s.RuleDisabled = &v
31017	return s
31018}
31019
31020// SetRuleName sets the RuleName field's value.
31021func (s *TopicRule) SetRuleName(v string) *TopicRule {
31022	s.RuleName = &v
31023	return s
31024}
31025
31026// SetSql sets the Sql field's value.
31027func (s *TopicRule) SetSql(v string) *TopicRule {
31028	s.Sql = &v
31029	return s
31030}
31031
31032// Describes a rule.
31033type TopicRuleListItem struct {
31034	_ struct{} `type:"structure"`
31035
31036	// The date and time the rule was created.
31037	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
31038
31039	// The rule ARN.
31040	RuleArn *string `locationName:"ruleArn" type:"string"`
31041
31042	// Specifies whether the rule is disabled.
31043	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
31044
31045	// The name of the rule.
31046	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
31047
31048	// The pattern for the topic names that apply.
31049	TopicPattern *string `locationName:"topicPattern" type:"string"`
31050}
31051
31052// String returns the string representation
31053func (s TopicRuleListItem) String() string {
31054	return awsutil.Prettify(s)
31055}
31056
31057// GoString returns the string representation
31058func (s TopicRuleListItem) GoString() string {
31059	return s.String()
31060}
31061
31062// SetCreatedAt sets the CreatedAt field's value.
31063func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
31064	s.CreatedAt = &v
31065	return s
31066}
31067
31068// SetRuleArn sets the RuleArn field's value.
31069func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
31070	s.RuleArn = &v
31071	return s
31072}
31073
31074// SetRuleDisabled sets the RuleDisabled field's value.
31075func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
31076	s.RuleDisabled = &v
31077	return s
31078}
31079
31080// SetRuleName sets the RuleName field's value.
31081func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
31082	s.RuleName = &v
31083	return s
31084}
31085
31086// SetTopicPattern sets the TopicPattern field's value.
31087func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
31088	s.TopicPattern = &v
31089	return s
31090}
31091
31092// Describes a rule.
31093type TopicRulePayload struct {
31094	_ struct{} `type:"structure"`
31095
31096	// The actions associated with the rule.
31097	//
31098	// Actions is a required field
31099	Actions []*Action `locationName:"actions" type:"list" required:"true"`
31100
31101	// The version of the SQL rules engine to use when evaluating the rule.
31102	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
31103
31104	// The description of the rule.
31105	Description *string `locationName:"description" type:"string"`
31106
31107	// The action to take when an error occurs.
31108	ErrorAction *Action `locationName:"errorAction" type:"structure"`
31109
31110	// Specifies whether the rule is disabled.
31111	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
31112
31113	// The SQL statement used to query the topic. For more information, see AWS
31114	// IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference)
31115	// in the AWS IoT Developer Guide.
31116	//
31117	// Sql is a required field
31118	Sql *string `locationName:"sql" type:"string" required:"true"`
31119}
31120
31121// String returns the string representation
31122func (s TopicRulePayload) String() string {
31123	return awsutil.Prettify(s)
31124}
31125
31126// GoString returns the string representation
31127func (s TopicRulePayload) GoString() string {
31128	return s.String()
31129}
31130
31131// Validate inspects the fields of the type to determine if they are valid.
31132func (s *TopicRulePayload) Validate() error {
31133	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
31134	if s.Actions == nil {
31135		invalidParams.Add(request.NewErrParamRequired("Actions"))
31136	}
31137	if s.Sql == nil {
31138		invalidParams.Add(request.NewErrParamRequired("Sql"))
31139	}
31140	if s.Actions != nil {
31141		for i, v := range s.Actions {
31142			if v == nil {
31143				continue
31144			}
31145			if err := v.Validate(); err != nil {
31146				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
31147			}
31148		}
31149	}
31150	if s.ErrorAction != nil {
31151		if err := s.ErrorAction.Validate(); err != nil {
31152			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
31153		}
31154	}
31155
31156	if invalidParams.Len() > 0 {
31157		return invalidParams
31158	}
31159	return nil
31160}
31161
31162// SetActions sets the Actions field's value.
31163func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
31164	s.Actions = v
31165	return s
31166}
31167
31168// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
31169func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
31170	s.AwsIotSqlVersion = &v
31171	return s
31172}
31173
31174// SetDescription sets the Description field's value.
31175func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
31176	s.Description = &v
31177	return s
31178}
31179
31180// SetErrorAction sets the ErrorAction field's value.
31181func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
31182	s.ErrorAction = v
31183	return s
31184}
31185
31186// SetRuleDisabled sets the RuleDisabled field's value.
31187func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
31188	s.RuleDisabled = &v
31189	return s
31190}
31191
31192// SetSql sets the Sql field's value.
31193func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
31194	s.Sql = &v
31195	return s
31196}
31197
31198// The input for the TransferCertificate operation.
31199type TransferCertificateInput struct {
31200	_ struct{} `type:"structure"`
31201
31202	// The ID of the certificate. (The last part of the certificate ARN contains
31203	// the certificate ID.)
31204	//
31205	// CertificateId is a required field
31206	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
31207
31208	// The AWS account.
31209	//
31210	// TargetAwsAccount is a required field
31211	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
31212
31213	// The transfer message.
31214	TransferMessage *string `locationName:"transferMessage" type:"string"`
31215}
31216
31217// String returns the string representation
31218func (s TransferCertificateInput) String() string {
31219	return awsutil.Prettify(s)
31220}
31221
31222// GoString returns the string representation
31223func (s TransferCertificateInput) GoString() string {
31224	return s.String()
31225}
31226
31227// Validate inspects the fields of the type to determine if they are valid.
31228func (s *TransferCertificateInput) Validate() error {
31229	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
31230	if s.CertificateId == nil {
31231		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
31232	}
31233	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
31234		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
31235	}
31236	if s.TargetAwsAccount == nil {
31237		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
31238	}
31239	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
31240		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
31241	}
31242
31243	if invalidParams.Len() > 0 {
31244		return invalidParams
31245	}
31246	return nil
31247}
31248
31249// SetCertificateId sets the CertificateId field's value.
31250func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
31251	s.CertificateId = &v
31252	return s
31253}
31254
31255// SetTargetAwsAccount sets the TargetAwsAccount field's value.
31256func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
31257	s.TargetAwsAccount = &v
31258	return s
31259}
31260
31261// SetTransferMessage sets the TransferMessage field's value.
31262func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
31263	s.TransferMessage = &v
31264	return s
31265}
31266
31267// The output from the TransferCertificate operation.
31268type TransferCertificateOutput struct {
31269	_ struct{} `type:"structure"`
31270
31271	// The ARN of the certificate.
31272	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
31273}
31274
31275// String returns the string representation
31276func (s TransferCertificateOutput) String() string {
31277	return awsutil.Prettify(s)
31278}
31279
31280// GoString returns the string representation
31281func (s TransferCertificateOutput) GoString() string {
31282	return s.String()
31283}
31284
31285// SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
31286func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
31287	s.TransferredCertificateArn = &v
31288	return s
31289}
31290
31291// Data used to transfer a certificate to an AWS account.
31292type TransferData struct {
31293	_ struct{} `type:"structure"`
31294
31295	// The date the transfer was accepted.
31296	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
31297
31298	// The date the transfer was rejected.
31299	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
31300
31301	// The reason why the transfer was rejected.
31302	RejectReason *string `locationName:"rejectReason" type:"string"`
31303
31304	// The date the transfer took place.
31305	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
31306
31307	// The transfer message.
31308	TransferMessage *string `locationName:"transferMessage" type:"string"`
31309}
31310
31311// String returns the string representation
31312func (s TransferData) String() string {
31313	return awsutil.Prettify(s)
31314}
31315
31316// GoString returns the string representation
31317func (s TransferData) GoString() string {
31318	return s.String()
31319}
31320
31321// SetAcceptDate sets the AcceptDate field's value.
31322func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
31323	s.AcceptDate = &v
31324	return s
31325}
31326
31327// SetRejectDate sets the RejectDate field's value.
31328func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
31329	s.RejectDate = &v
31330	return s
31331}
31332
31333// SetRejectReason sets the RejectReason field's value.
31334func (s *TransferData) SetRejectReason(v string) *TransferData {
31335	s.RejectReason = &v
31336	return s
31337}
31338
31339// SetTransferDate sets the TransferDate field's value.
31340func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
31341	s.TransferDate = &v
31342	return s
31343}
31344
31345// SetTransferMessage sets the TransferMessage field's value.
31346func (s *TransferData) SetTransferMessage(v string) *TransferData {
31347	s.TransferMessage = &v
31348	return s
31349}
31350
31351type UpdateAccountAuditConfigurationInput struct {
31352	_ struct{} `type:"structure"`
31353
31354	// Specifies which audit checks are enabled and disabled for this account. Use
31355	// DescribeAccountAuditConfiguration to see the list of all checks including
31356	// those that are currently enabled.
31357	//
31358	// Note that some data collection may begin immediately when certain checks
31359	// are enabled. When a check is disabled, any data collected so far in relation
31360	// to the check is deleted.
31361	//
31362	// You cannot disable a check if it is used by any scheduled audit. You must
31363	// first delete the check from the scheduled audit or delete the scheduled audit
31364	// itself.
31365	//
31366	// On the first call to UpdateAccountAuditConfiguration this parameter is required
31367	// and must specify at least one enabled check.
31368	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
31369
31370	// Information about the targets to which audit notifications are sent.
31371	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
31372
31373	// The ARN of the role that grants permission to AWS IoT to access information
31374	// about your devices, policies, certificates and other items as necessary when
31375	// performing an audit.
31376	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
31377}
31378
31379// String returns the string representation
31380func (s UpdateAccountAuditConfigurationInput) String() string {
31381	return awsutil.Prettify(s)
31382}
31383
31384// GoString returns the string representation
31385func (s UpdateAccountAuditConfigurationInput) GoString() string {
31386	return s.String()
31387}
31388
31389// Validate inspects the fields of the type to determine if they are valid.
31390func (s *UpdateAccountAuditConfigurationInput) Validate() error {
31391	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
31392	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
31393		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
31394	}
31395	if s.AuditNotificationTargetConfigurations != nil {
31396		for i, v := range s.AuditNotificationTargetConfigurations {
31397			if v == nil {
31398				continue
31399			}
31400			if err := v.Validate(); err != nil {
31401				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
31402			}
31403		}
31404	}
31405
31406	if invalidParams.Len() > 0 {
31407		return invalidParams
31408	}
31409	return nil
31410}
31411
31412// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
31413func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
31414	s.AuditCheckConfigurations = v
31415	return s
31416}
31417
31418// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
31419func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
31420	s.AuditNotificationTargetConfigurations = v
31421	return s
31422}
31423
31424// SetRoleArn sets the RoleArn field's value.
31425func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
31426	s.RoleArn = &v
31427	return s
31428}
31429
31430type UpdateAccountAuditConfigurationOutput struct {
31431	_ struct{} `type:"structure"`
31432}
31433
31434// String returns the string representation
31435func (s UpdateAccountAuditConfigurationOutput) String() string {
31436	return awsutil.Prettify(s)
31437}
31438
31439// GoString returns the string representation
31440func (s UpdateAccountAuditConfigurationOutput) GoString() string {
31441	return s.String()
31442}
31443
31444type UpdateAuthorizerInput struct {
31445	_ struct{} `type:"structure"`
31446
31447	// The ARN of the authorizer's Lambda function.
31448	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
31449
31450	// The authorizer name.
31451	//
31452	// AuthorizerName is a required field
31453	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
31454
31455	// The status of the update authorizer request.
31456	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
31457
31458	// The key used to extract the token from the HTTP headers.
31459	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
31460
31461	// The public keys used to verify the token signature.
31462	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
31463}
31464
31465// String returns the string representation
31466func (s UpdateAuthorizerInput) String() string {
31467	return awsutil.Prettify(s)
31468}
31469
31470// GoString returns the string representation
31471func (s UpdateAuthorizerInput) GoString() string {
31472	return s.String()
31473}
31474
31475// Validate inspects the fields of the type to determine if they are valid.
31476func (s *UpdateAuthorizerInput) Validate() error {
31477	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
31478	if s.AuthorizerName == nil {
31479		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
31480	}
31481	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
31482		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
31483	}
31484	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
31485		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
31486	}
31487
31488	if invalidParams.Len() > 0 {
31489		return invalidParams
31490	}
31491	return nil
31492}
31493
31494// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
31495func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
31496	s.AuthorizerFunctionArn = &v
31497	return s
31498}
31499
31500// SetAuthorizerName sets the AuthorizerName field's value.
31501func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
31502	s.AuthorizerName = &v
31503	return s
31504}
31505
31506// SetStatus sets the Status field's value.
31507func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
31508	s.Status = &v
31509	return s
31510}
31511
31512// SetTokenKeyName sets the TokenKeyName field's value.
31513func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
31514	s.TokenKeyName = &v
31515	return s
31516}
31517
31518// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
31519func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
31520	s.TokenSigningPublicKeys = v
31521	return s
31522}
31523
31524type UpdateAuthorizerOutput struct {
31525	_ struct{} `type:"structure"`
31526
31527	// The authorizer ARN.
31528	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
31529
31530	// The authorizer name.
31531	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
31532}
31533
31534// String returns the string representation
31535func (s UpdateAuthorizerOutput) String() string {
31536	return awsutil.Prettify(s)
31537}
31538
31539// GoString returns the string representation
31540func (s UpdateAuthorizerOutput) GoString() string {
31541	return s.String()
31542}
31543
31544// SetAuthorizerArn sets the AuthorizerArn field's value.
31545func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
31546	s.AuthorizerArn = &v
31547	return s
31548}
31549
31550// SetAuthorizerName sets the AuthorizerName field's value.
31551func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
31552	s.AuthorizerName = &v
31553	return s
31554}
31555
31556// The input to the UpdateCACertificate operation.
31557type UpdateCACertificateInput struct {
31558	_ struct{} `type:"structure"`
31559
31560	// The CA certificate identifier.
31561	//
31562	// CertificateId is a required field
31563	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
31564
31565	// The new value for the auto registration status. Valid values are: "ENABLE"
31566	// or "DISABLE".
31567	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
31568
31569	// The updated status of the CA certificate.
31570	//
31571	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
31572	// used.
31573	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
31574
31575	// Information about the registration configuration.
31576	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
31577
31578	// If true, remove auto registration.
31579	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
31580}
31581
31582// String returns the string representation
31583func (s UpdateCACertificateInput) String() string {
31584	return awsutil.Prettify(s)
31585}
31586
31587// GoString returns the string representation
31588func (s UpdateCACertificateInput) GoString() string {
31589	return s.String()
31590}
31591
31592// Validate inspects the fields of the type to determine if they are valid.
31593func (s *UpdateCACertificateInput) Validate() error {
31594	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
31595	if s.CertificateId == nil {
31596		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
31597	}
31598	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
31599		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
31600	}
31601	if s.RegistrationConfig != nil {
31602		if err := s.RegistrationConfig.Validate(); err != nil {
31603			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
31604		}
31605	}
31606
31607	if invalidParams.Len() > 0 {
31608		return invalidParams
31609	}
31610	return nil
31611}
31612
31613// SetCertificateId sets the CertificateId field's value.
31614func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
31615	s.CertificateId = &v
31616	return s
31617}
31618
31619// SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
31620func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
31621	s.NewAutoRegistrationStatus = &v
31622	return s
31623}
31624
31625// SetNewStatus sets the NewStatus field's value.
31626func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
31627	s.NewStatus = &v
31628	return s
31629}
31630
31631// SetRegistrationConfig sets the RegistrationConfig field's value.
31632func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
31633	s.RegistrationConfig = v
31634	return s
31635}
31636
31637// SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
31638func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
31639	s.RemoveAutoRegistration = &v
31640	return s
31641}
31642
31643type UpdateCACertificateOutput struct {
31644	_ struct{} `type:"structure"`
31645}
31646
31647// String returns the string representation
31648func (s UpdateCACertificateOutput) String() string {
31649	return awsutil.Prettify(s)
31650}
31651
31652// GoString returns the string representation
31653func (s UpdateCACertificateOutput) GoString() string {
31654	return s.String()
31655}
31656
31657// The input for the UpdateCertificate operation.
31658type UpdateCertificateInput struct {
31659	_ struct{} `type:"structure"`
31660
31661	// The ID of the certificate. (The last part of the certificate ARN contains
31662	// the certificate ID.)
31663	//
31664	// CertificateId is a required field
31665	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
31666
31667	// The new status.
31668	//
31669	// Note: Setting the status to PENDING_TRANSFER will result in an exception
31670	// being thrown. PENDING_TRANSFER is a status used internally by AWS IoT. It
31671	// is not intended for developer use.
31672	//
31673	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
31674	// used.
31675	//
31676	// NewStatus is a required field
31677	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
31678}
31679
31680// String returns the string representation
31681func (s UpdateCertificateInput) String() string {
31682	return awsutil.Prettify(s)
31683}
31684
31685// GoString returns the string representation
31686func (s UpdateCertificateInput) GoString() string {
31687	return s.String()
31688}
31689
31690// Validate inspects the fields of the type to determine if they are valid.
31691func (s *UpdateCertificateInput) Validate() error {
31692	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
31693	if s.CertificateId == nil {
31694		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
31695	}
31696	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
31697		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
31698	}
31699	if s.NewStatus == nil {
31700		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
31701	}
31702
31703	if invalidParams.Len() > 0 {
31704		return invalidParams
31705	}
31706	return nil
31707}
31708
31709// SetCertificateId sets the CertificateId field's value.
31710func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
31711	s.CertificateId = &v
31712	return s
31713}
31714
31715// SetNewStatus sets the NewStatus field's value.
31716func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
31717	s.NewStatus = &v
31718	return s
31719}
31720
31721type UpdateCertificateOutput struct {
31722	_ struct{} `type:"structure"`
31723}
31724
31725// String returns the string representation
31726func (s UpdateCertificateOutput) String() string {
31727	return awsutil.Prettify(s)
31728}
31729
31730// GoString returns the string representation
31731func (s UpdateCertificateOutput) GoString() string {
31732	return s.String()
31733}
31734
31735type UpdateEventConfigurationsInput struct {
31736	_ struct{} `type:"structure"`
31737
31738	// The new event configuration values.
31739	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
31740}
31741
31742// String returns the string representation
31743func (s UpdateEventConfigurationsInput) String() string {
31744	return awsutil.Prettify(s)
31745}
31746
31747// GoString returns the string representation
31748func (s UpdateEventConfigurationsInput) GoString() string {
31749	return s.String()
31750}
31751
31752// SetEventConfigurations sets the EventConfigurations field's value.
31753func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
31754	s.EventConfigurations = v
31755	return s
31756}
31757
31758type UpdateEventConfigurationsOutput struct {
31759	_ struct{} `type:"structure"`
31760}
31761
31762// String returns the string representation
31763func (s UpdateEventConfigurationsOutput) String() string {
31764	return awsutil.Prettify(s)
31765}
31766
31767// GoString returns the string representation
31768func (s UpdateEventConfigurationsOutput) GoString() string {
31769	return s.String()
31770}
31771
31772type UpdateIndexingConfigurationInput struct {
31773	_ struct{} `type:"structure"`
31774
31775	// Thing indexing configuration.
31776	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
31777}
31778
31779// String returns the string representation
31780func (s UpdateIndexingConfigurationInput) String() string {
31781	return awsutil.Prettify(s)
31782}
31783
31784// GoString returns the string representation
31785func (s UpdateIndexingConfigurationInput) GoString() string {
31786	return s.String()
31787}
31788
31789// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
31790func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
31791	s.ThingIndexingConfiguration = v
31792	return s
31793}
31794
31795type UpdateIndexingConfigurationOutput struct {
31796	_ struct{} `type:"structure"`
31797}
31798
31799// String returns the string representation
31800func (s UpdateIndexingConfigurationOutput) String() string {
31801	return awsutil.Prettify(s)
31802}
31803
31804// GoString returns the string representation
31805func (s UpdateIndexingConfigurationOutput) GoString() string {
31806	return s.String()
31807}
31808
31809type UpdateRoleAliasInput struct {
31810	_ struct{} `type:"structure"`
31811
31812	// The number of seconds the credential will be valid.
31813	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
31814
31815	// The role alias to update.
31816	//
31817	// RoleAlias is a required field
31818	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
31819
31820	// The role ARN.
31821	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
31822}
31823
31824// String returns the string representation
31825func (s UpdateRoleAliasInput) String() string {
31826	return awsutil.Prettify(s)
31827}
31828
31829// GoString returns the string representation
31830func (s UpdateRoleAliasInput) GoString() string {
31831	return s.String()
31832}
31833
31834// Validate inspects the fields of the type to determine if they are valid.
31835func (s *UpdateRoleAliasInput) Validate() error {
31836	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
31837	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
31838		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
31839	}
31840	if s.RoleAlias == nil {
31841		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
31842	}
31843	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
31844		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
31845	}
31846	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
31847		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
31848	}
31849
31850	if invalidParams.Len() > 0 {
31851		return invalidParams
31852	}
31853	return nil
31854}
31855
31856// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
31857func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
31858	s.CredentialDurationSeconds = &v
31859	return s
31860}
31861
31862// SetRoleAlias sets the RoleAlias field's value.
31863func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
31864	s.RoleAlias = &v
31865	return s
31866}
31867
31868// SetRoleArn sets the RoleArn field's value.
31869func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
31870	s.RoleArn = &v
31871	return s
31872}
31873
31874type UpdateRoleAliasOutput struct {
31875	_ struct{} `type:"structure"`
31876
31877	// The role alias.
31878	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
31879
31880	// The role alias ARN.
31881	RoleAliasArn *string `locationName:"roleAliasArn" type:"string"`
31882}
31883
31884// String returns the string representation
31885func (s UpdateRoleAliasOutput) String() string {
31886	return awsutil.Prettify(s)
31887}
31888
31889// GoString returns the string representation
31890func (s UpdateRoleAliasOutput) GoString() string {
31891	return s.String()
31892}
31893
31894// SetRoleAlias sets the RoleAlias field's value.
31895func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
31896	s.RoleAlias = &v
31897	return s
31898}
31899
31900// SetRoleAliasArn sets the RoleAliasArn field's value.
31901func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
31902	s.RoleAliasArn = &v
31903	return s
31904}
31905
31906type UpdateScheduledAuditInput struct {
31907	_ struct{} `type:"structure"`
31908
31909	// The day of the month on which the scheduled audit takes place. Can be "1"
31910	// through "31" or "LAST". This field is required if the "frequency" parameter
31911	// is set to "MONTHLY". If days 29-31 are specified, and the month does not
31912	// have that many days, the audit takes place on the "LAST" day of the month.
31913	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
31914
31915	// The day of the week on which the scheduled audit takes place. Can be one
31916	// of "SUN", "MON", "TUE", "WED", "THU", "FRI" or "SAT". This field is required
31917	// if the "frequency" parameter is set to "WEEKLY" or "BIWEEKLY".
31918	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
31919
31920	// How often the scheduled audit takes place. Can be one of "DAILY", "WEEKLY",
31921	// "BIWEEKLY" or "MONTHLY". The actual start time of each audit is determined
31922	// by the system.
31923	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
31924
31925	// The name of the scheduled audit. (Max. 128 chars)
31926	//
31927	// ScheduledAuditName is a required field
31928	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
31929
31930	// Which checks are performed during the scheduled audit. Checks must be enabled
31931	// for your account. (Use DescribeAccountAuditConfiguration to see the list
31932	// of all checks including those that are enabled or UpdateAccountAuditConfiguration
31933	// to select which checks are enabled.)
31934	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
31935}
31936
31937// String returns the string representation
31938func (s UpdateScheduledAuditInput) String() string {
31939	return awsutil.Prettify(s)
31940}
31941
31942// GoString returns the string representation
31943func (s UpdateScheduledAuditInput) GoString() string {
31944	return s.String()
31945}
31946
31947// Validate inspects the fields of the type to determine if they are valid.
31948func (s *UpdateScheduledAuditInput) Validate() error {
31949	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
31950	if s.ScheduledAuditName == nil {
31951		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
31952	}
31953	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
31954		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
31955	}
31956
31957	if invalidParams.Len() > 0 {
31958		return invalidParams
31959	}
31960	return nil
31961}
31962
31963// SetDayOfMonth sets the DayOfMonth field's value.
31964func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
31965	s.DayOfMonth = &v
31966	return s
31967}
31968
31969// SetDayOfWeek sets the DayOfWeek field's value.
31970func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
31971	s.DayOfWeek = &v
31972	return s
31973}
31974
31975// SetFrequency sets the Frequency field's value.
31976func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
31977	s.Frequency = &v
31978	return s
31979}
31980
31981// SetScheduledAuditName sets the ScheduledAuditName field's value.
31982func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
31983	s.ScheduledAuditName = &v
31984	return s
31985}
31986
31987// SetTargetCheckNames sets the TargetCheckNames field's value.
31988func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
31989	s.TargetCheckNames = v
31990	return s
31991}
31992
31993type UpdateScheduledAuditOutput struct {
31994	_ struct{} `type:"structure"`
31995
31996	// The ARN of the scheduled audit.
31997	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
31998}
31999
32000// String returns the string representation
32001func (s UpdateScheduledAuditOutput) String() string {
32002	return awsutil.Prettify(s)
32003}
32004
32005// GoString returns the string representation
32006func (s UpdateScheduledAuditOutput) GoString() string {
32007	return s.String()
32008}
32009
32010// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
32011func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
32012	s.ScheduledAuditArn = &v
32013	return s
32014}
32015
32016type UpdateSecurityProfileInput struct {
32017	_ struct{} `type:"structure"`
32018
32019	// Where the alerts are sent. (Alerts are always sent to the console.)
32020	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
32021
32022	// Specifies the behaviors that, when violated by a device (thing), cause an
32023	// alert.
32024	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
32025
32026	// The expected version of the security profile. A new version is generated
32027	// whenever the security profile is updated. If you specify a value that is
32028	// different than the actual version, a VersionConflictException is thrown.
32029	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
32030
32031	// A description of the security profile.
32032	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
32033
32034	// The name of the security profile you want to update.
32035	//
32036	// SecurityProfileName is a required field
32037	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
32038}
32039
32040// String returns the string representation
32041func (s UpdateSecurityProfileInput) String() string {
32042	return awsutil.Prettify(s)
32043}
32044
32045// GoString returns the string representation
32046func (s UpdateSecurityProfileInput) GoString() string {
32047	return s.String()
32048}
32049
32050// Validate inspects the fields of the type to determine if they are valid.
32051func (s *UpdateSecurityProfileInput) Validate() error {
32052	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
32053	if s.SecurityProfileName == nil {
32054		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
32055	}
32056	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
32057		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
32058	}
32059	if s.AlertTargets != nil {
32060		for i, v := range s.AlertTargets {
32061			if v == nil {
32062				continue
32063			}
32064			if err := v.Validate(); err != nil {
32065				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
32066			}
32067		}
32068	}
32069	if s.Behaviors != nil {
32070		for i, v := range s.Behaviors {
32071			if v == nil {
32072				continue
32073			}
32074			if err := v.Validate(); err != nil {
32075				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
32076			}
32077		}
32078	}
32079
32080	if invalidParams.Len() > 0 {
32081		return invalidParams
32082	}
32083	return nil
32084}
32085
32086// SetAlertTargets sets the AlertTargets field's value.
32087func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
32088	s.AlertTargets = v
32089	return s
32090}
32091
32092// SetBehaviors sets the Behaviors field's value.
32093func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
32094	s.Behaviors = v
32095	return s
32096}
32097
32098// SetExpectedVersion sets the ExpectedVersion field's value.
32099func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
32100	s.ExpectedVersion = &v
32101	return s
32102}
32103
32104// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
32105func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
32106	s.SecurityProfileDescription = &v
32107	return s
32108}
32109
32110// SetSecurityProfileName sets the SecurityProfileName field's value.
32111func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
32112	s.SecurityProfileName = &v
32113	return s
32114}
32115
32116type UpdateSecurityProfileOutput struct {
32117	_ struct{} `type:"structure"`
32118
32119	// Where the alerts are sent. (Alerts are always sent to the console.)
32120	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
32121
32122	// Specifies the behaviors that, when violated by a device (thing), cause an
32123	// alert.
32124	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
32125
32126	// The time the security profile was created.
32127	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
32128
32129	// The time the security profile was last modified.
32130	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
32131
32132	// The ARN of the security profile that was updated.
32133	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
32134
32135	// The description of the security profile.
32136	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
32137
32138	// The name of the security profile that was updated.
32139	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
32140
32141	// The updated version of the security profile.
32142	Version *int64 `locationName:"version" type:"long"`
32143}
32144
32145// String returns the string representation
32146func (s UpdateSecurityProfileOutput) String() string {
32147	return awsutil.Prettify(s)
32148}
32149
32150// GoString returns the string representation
32151func (s UpdateSecurityProfileOutput) GoString() string {
32152	return s.String()
32153}
32154
32155// SetAlertTargets sets the AlertTargets field's value.
32156func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
32157	s.AlertTargets = v
32158	return s
32159}
32160
32161// SetBehaviors sets the Behaviors field's value.
32162func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
32163	s.Behaviors = v
32164	return s
32165}
32166
32167// SetCreationDate sets the CreationDate field's value.
32168func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
32169	s.CreationDate = &v
32170	return s
32171}
32172
32173// SetLastModifiedDate sets the LastModifiedDate field's value.
32174func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
32175	s.LastModifiedDate = &v
32176	return s
32177}
32178
32179// SetSecurityProfileArn sets the SecurityProfileArn field's value.
32180func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
32181	s.SecurityProfileArn = &v
32182	return s
32183}
32184
32185// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
32186func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
32187	s.SecurityProfileDescription = &v
32188	return s
32189}
32190
32191// SetSecurityProfileName sets the SecurityProfileName field's value.
32192func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
32193	s.SecurityProfileName = &v
32194	return s
32195}
32196
32197// SetVersion sets the Version field's value.
32198func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
32199	s.Version = &v
32200	return s
32201}
32202
32203type UpdateStreamInput struct {
32204	_ struct{} `type:"structure"`
32205
32206	// The description of the stream.
32207	Description *string `locationName:"description" type:"string"`
32208
32209	// The files associated with the stream.
32210	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
32211
32212	// An IAM role that allows the IoT service principal assumes to access your
32213	// S3 files.
32214	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
32215
32216	// The stream ID.
32217	//
32218	// StreamId is a required field
32219	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
32220}
32221
32222// String returns the string representation
32223func (s UpdateStreamInput) String() string {
32224	return awsutil.Prettify(s)
32225}
32226
32227// GoString returns the string representation
32228func (s UpdateStreamInput) GoString() string {
32229	return s.String()
32230}
32231
32232// Validate inspects the fields of the type to determine if they are valid.
32233func (s *UpdateStreamInput) Validate() error {
32234	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
32235	if s.Files != nil && len(s.Files) < 1 {
32236		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
32237	}
32238	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
32239		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
32240	}
32241	if s.StreamId == nil {
32242		invalidParams.Add(request.NewErrParamRequired("StreamId"))
32243	}
32244	if s.StreamId != nil && len(*s.StreamId) < 1 {
32245		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
32246	}
32247	if s.Files != nil {
32248		for i, v := range s.Files {
32249			if v == nil {
32250				continue
32251			}
32252			if err := v.Validate(); err != nil {
32253				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
32254			}
32255		}
32256	}
32257
32258	if invalidParams.Len() > 0 {
32259		return invalidParams
32260	}
32261	return nil
32262}
32263
32264// SetDescription sets the Description field's value.
32265func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
32266	s.Description = &v
32267	return s
32268}
32269
32270// SetFiles sets the Files field's value.
32271func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
32272	s.Files = v
32273	return s
32274}
32275
32276// SetRoleArn sets the RoleArn field's value.
32277func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
32278	s.RoleArn = &v
32279	return s
32280}
32281
32282// SetStreamId sets the StreamId field's value.
32283func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
32284	s.StreamId = &v
32285	return s
32286}
32287
32288type UpdateStreamOutput struct {
32289	_ struct{} `type:"structure"`
32290
32291	// A description of the stream.
32292	Description *string `locationName:"description" type:"string"`
32293
32294	// The stream ARN.
32295	StreamArn *string `locationName:"streamArn" type:"string"`
32296
32297	// The stream ID.
32298	StreamId *string `locationName:"streamId" min:"1" type:"string"`
32299
32300	// The stream version.
32301	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
32302}
32303
32304// String returns the string representation
32305func (s UpdateStreamOutput) String() string {
32306	return awsutil.Prettify(s)
32307}
32308
32309// GoString returns the string representation
32310func (s UpdateStreamOutput) GoString() string {
32311	return s.String()
32312}
32313
32314// SetDescription sets the Description field's value.
32315func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
32316	s.Description = &v
32317	return s
32318}
32319
32320// SetStreamArn sets the StreamArn field's value.
32321func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
32322	s.StreamArn = &v
32323	return s
32324}
32325
32326// SetStreamId sets the StreamId field's value.
32327func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
32328	s.StreamId = &v
32329	return s
32330}
32331
32332// SetStreamVersion sets the StreamVersion field's value.
32333func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
32334	s.StreamVersion = &v
32335	return s
32336}
32337
32338type UpdateThingGroupInput struct {
32339	_ struct{} `type:"structure"`
32340
32341	// The expected version of the thing group. If this does not match the version
32342	// of the thing group being updated, the update will fail.
32343	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
32344
32345	// The thing group to update.
32346	//
32347	// ThingGroupName is a required field
32348	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
32349
32350	// The thing group properties.
32351	//
32352	// ThingGroupProperties is a required field
32353	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
32354}
32355
32356// String returns the string representation
32357func (s UpdateThingGroupInput) String() string {
32358	return awsutil.Prettify(s)
32359}
32360
32361// GoString returns the string representation
32362func (s UpdateThingGroupInput) GoString() string {
32363	return s.String()
32364}
32365
32366// Validate inspects the fields of the type to determine if they are valid.
32367func (s *UpdateThingGroupInput) Validate() error {
32368	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
32369	if s.ThingGroupName == nil {
32370		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
32371	}
32372	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
32373		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
32374	}
32375	if s.ThingGroupProperties == nil {
32376		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
32377	}
32378
32379	if invalidParams.Len() > 0 {
32380		return invalidParams
32381	}
32382	return nil
32383}
32384
32385// SetExpectedVersion sets the ExpectedVersion field's value.
32386func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
32387	s.ExpectedVersion = &v
32388	return s
32389}
32390
32391// SetThingGroupName sets the ThingGroupName field's value.
32392func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
32393	s.ThingGroupName = &v
32394	return s
32395}
32396
32397// SetThingGroupProperties sets the ThingGroupProperties field's value.
32398func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
32399	s.ThingGroupProperties = v
32400	return s
32401}
32402
32403type UpdateThingGroupOutput struct {
32404	_ struct{} `type:"structure"`
32405
32406	// The version of the updated thing group.
32407	Version *int64 `locationName:"version" type:"long"`
32408}
32409
32410// String returns the string representation
32411func (s UpdateThingGroupOutput) String() string {
32412	return awsutil.Prettify(s)
32413}
32414
32415// GoString returns the string representation
32416func (s UpdateThingGroupOutput) GoString() string {
32417	return s.String()
32418}
32419
32420// SetVersion sets the Version field's value.
32421func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
32422	s.Version = &v
32423	return s
32424}
32425
32426type UpdateThingGroupsForThingInput struct {
32427	_ struct{} `type:"structure"`
32428
32429	// The groups to which the thing will be added.
32430	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
32431
32432	// The groups from which the thing will be removed.
32433	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
32434
32435	// The thing whose group memberships will be updated.
32436	ThingName *string `locationName:"thingName" min:"1" type:"string"`
32437}
32438
32439// String returns the string representation
32440func (s UpdateThingGroupsForThingInput) String() string {
32441	return awsutil.Prettify(s)
32442}
32443
32444// GoString returns the string representation
32445func (s UpdateThingGroupsForThingInput) GoString() string {
32446	return s.String()
32447}
32448
32449// Validate inspects the fields of the type to determine if they are valid.
32450func (s *UpdateThingGroupsForThingInput) Validate() error {
32451	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
32452	if s.ThingName != nil && len(*s.ThingName) < 1 {
32453		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
32454	}
32455
32456	if invalidParams.Len() > 0 {
32457		return invalidParams
32458	}
32459	return nil
32460}
32461
32462// SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
32463func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
32464	s.ThingGroupsToAdd = v
32465	return s
32466}
32467
32468// SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
32469func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
32470	s.ThingGroupsToRemove = v
32471	return s
32472}
32473
32474// SetThingName sets the ThingName field's value.
32475func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
32476	s.ThingName = &v
32477	return s
32478}
32479
32480type UpdateThingGroupsForThingOutput struct {
32481	_ struct{} `type:"structure"`
32482}
32483
32484// String returns the string representation
32485func (s UpdateThingGroupsForThingOutput) String() string {
32486	return awsutil.Prettify(s)
32487}
32488
32489// GoString returns the string representation
32490func (s UpdateThingGroupsForThingOutput) GoString() string {
32491	return s.String()
32492}
32493
32494// The input for the UpdateThing operation.
32495type UpdateThingInput struct {
32496	_ struct{} `type:"structure"`
32497
32498	// A list of thing attributes, a JSON string containing name-value pairs. For
32499	// example:
32500	//
32501	// {\"attributes\":{\"name1\":\"value2\"}}
32502	//
32503	// This data is used to add new attributes or update existing attributes.
32504	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
32505
32506	// The expected version of the thing record in the registry. If the version
32507	// of the record in the registry does not match the expected version specified
32508	// in the request, the UpdateThing request is rejected with a VersionConflictException.
32509	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
32510
32511	// Remove a thing type association. If true, the association is removed.
32512	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
32513
32514	// The name of the thing to update.
32515	//
32516	// ThingName is a required field
32517	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
32518
32519	// The name of the thing type.
32520	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
32521}
32522
32523// String returns the string representation
32524func (s UpdateThingInput) String() string {
32525	return awsutil.Prettify(s)
32526}
32527
32528// GoString returns the string representation
32529func (s UpdateThingInput) GoString() string {
32530	return s.String()
32531}
32532
32533// Validate inspects the fields of the type to determine if they are valid.
32534func (s *UpdateThingInput) Validate() error {
32535	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
32536	if s.ThingName == nil {
32537		invalidParams.Add(request.NewErrParamRequired("ThingName"))
32538	}
32539	if s.ThingName != nil && len(*s.ThingName) < 1 {
32540		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
32541	}
32542	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
32543		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
32544	}
32545
32546	if invalidParams.Len() > 0 {
32547		return invalidParams
32548	}
32549	return nil
32550}
32551
32552// SetAttributePayload sets the AttributePayload field's value.
32553func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
32554	s.AttributePayload = v
32555	return s
32556}
32557
32558// SetExpectedVersion sets the ExpectedVersion field's value.
32559func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
32560	s.ExpectedVersion = &v
32561	return s
32562}
32563
32564// SetRemoveThingType sets the RemoveThingType field's value.
32565func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
32566	s.RemoveThingType = &v
32567	return s
32568}
32569
32570// SetThingName sets the ThingName field's value.
32571func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
32572	s.ThingName = &v
32573	return s
32574}
32575
32576// SetThingTypeName sets the ThingTypeName field's value.
32577func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
32578	s.ThingTypeName = &v
32579	return s
32580}
32581
32582// The output from the UpdateThing operation.
32583type UpdateThingOutput struct {
32584	_ struct{} `type:"structure"`
32585}
32586
32587// String returns the string representation
32588func (s UpdateThingOutput) String() string {
32589	return awsutil.Prettify(s)
32590}
32591
32592// GoString returns the string representation
32593func (s UpdateThingOutput) GoString() string {
32594	return s.String()
32595}
32596
32597type ValidateSecurityProfileBehaviorsInput struct {
32598	_ struct{} `type:"structure"`
32599
32600	// Specifies the behaviors that, when violated by a device (thing), cause an
32601	// alert.
32602	//
32603	// Behaviors is a required field
32604	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
32605}
32606
32607// String returns the string representation
32608func (s ValidateSecurityProfileBehaviorsInput) String() string {
32609	return awsutil.Prettify(s)
32610}
32611
32612// GoString returns the string representation
32613func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
32614	return s.String()
32615}
32616
32617// Validate inspects the fields of the type to determine if they are valid.
32618func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
32619	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
32620	if s.Behaviors == nil {
32621		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
32622	}
32623	if s.Behaviors != nil {
32624		for i, v := range s.Behaviors {
32625			if v == nil {
32626				continue
32627			}
32628			if err := v.Validate(); err != nil {
32629				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
32630			}
32631		}
32632	}
32633
32634	if invalidParams.Len() > 0 {
32635		return invalidParams
32636	}
32637	return nil
32638}
32639
32640// SetBehaviors sets the Behaviors field's value.
32641func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
32642	s.Behaviors = v
32643	return s
32644}
32645
32646type ValidateSecurityProfileBehaviorsOutput struct {
32647	_ struct{} `type:"structure"`
32648
32649	// True if the behaviors were valid.
32650	Valid *bool `locationName:"valid" type:"boolean"`
32651
32652	// The list of any errors found in the behaviors.
32653	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
32654}
32655
32656// String returns the string representation
32657func (s ValidateSecurityProfileBehaviorsOutput) String() string {
32658	return awsutil.Prettify(s)
32659}
32660
32661// GoString returns the string representation
32662func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
32663	return s.String()
32664}
32665
32666// SetValid sets the Valid field's value.
32667func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
32668	s.Valid = &v
32669	return s
32670}
32671
32672// SetValidationErrors sets the ValidationErrors field's value.
32673func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
32674	s.ValidationErrors = v
32675	return s
32676}
32677
32678// Information about an error found in a behavior specification.
32679type ValidationError struct {
32680	_ struct{} `type:"structure"`
32681
32682	// The description of an error found in the behaviors.
32683	ErrorMessage *string `locationName:"errorMessage" type:"string"`
32684}
32685
32686// String returns the string representation
32687func (s ValidationError) String() string {
32688	return awsutil.Prettify(s)
32689}
32690
32691// GoString returns the string representation
32692func (s ValidationError) GoString() string {
32693	return s.String()
32694}
32695
32696// SetErrorMessage sets the ErrorMessage field's value.
32697func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
32698	s.ErrorMessage = &v
32699	return s
32700}
32701
32702// Information about a Device Defender security profile behavior violation.
32703type ViolationEvent struct {
32704	_ struct{} `type:"structure"`
32705
32706	// The behavior which was violated.
32707	Behavior *Behavior `locationName:"behavior" type:"structure"`
32708
32709	// The value of the metric (the measurement).
32710	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
32711
32712	// The name of the security profile whose behavior was violated.
32713	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
32714
32715	// The name of the thing responsible for the violation event.
32716	ThingName *string `locationName:"thingName" min:"1" type:"string"`
32717
32718	// The time the violation event occurred.
32719	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
32720
32721	// The type of violation event.
32722	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
32723
32724	// The ID of the violation event.
32725	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
32726}
32727
32728// String returns the string representation
32729func (s ViolationEvent) String() string {
32730	return awsutil.Prettify(s)
32731}
32732
32733// GoString returns the string representation
32734func (s ViolationEvent) GoString() string {
32735	return s.String()
32736}
32737
32738// SetBehavior sets the Behavior field's value.
32739func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
32740	s.Behavior = v
32741	return s
32742}
32743
32744// SetMetricValue sets the MetricValue field's value.
32745func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
32746	s.MetricValue = v
32747	return s
32748}
32749
32750// SetSecurityProfileName sets the SecurityProfileName field's value.
32751func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
32752	s.SecurityProfileName = &v
32753	return s
32754}
32755
32756// SetThingName sets the ThingName field's value.
32757func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
32758	s.ThingName = &v
32759	return s
32760}
32761
32762// SetViolationEventTime sets the ViolationEventTime field's value.
32763func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
32764	s.ViolationEventTime = &v
32765	return s
32766}
32767
32768// SetViolationEventType sets the ViolationEventType field's value.
32769func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
32770	s.ViolationEventType = &v
32771	return s
32772}
32773
32774// SetViolationId sets the ViolationId field's value.
32775func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
32776	s.ViolationId = &v
32777	return s
32778}
32779
32780const (
32781	// ActionTypePublish is a ActionType enum value
32782	ActionTypePublish = "PUBLISH"
32783
32784	// ActionTypeSubscribe is a ActionType enum value
32785	ActionTypeSubscribe = "SUBSCRIBE"
32786
32787	// ActionTypeReceive is a ActionType enum value
32788	ActionTypeReceive = "RECEIVE"
32789
32790	// ActionTypeConnect is a ActionType enum value
32791	ActionTypeConnect = "CONNECT"
32792)
32793
32794// The type of alert target: one of "SNS".
32795const (
32796	// AlertTargetTypeSns is a AlertTargetType enum value
32797	AlertTargetTypeSns = "SNS"
32798)
32799
32800const (
32801	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
32802	AuditCheckRunStatusInProgress = "IN_PROGRESS"
32803
32804	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
32805	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
32806
32807	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
32808	AuditCheckRunStatusCanceled = "CANCELED"
32809
32810	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
32811	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
32812
32813	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
32814	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
32815
32816	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
32817	AuditCheckRunStatusFailed = "FAILED"
32818)
32819
32820const (
32821	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
32822	AuditFindingSeverityCritical = "CRITICAL"
32823
32824	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
32825	AuditFindingSeverityHigh = "HIGH"
32826
32827	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
32828	AuditFindingSeverityMedium = "MEDIUM"
32829
32830	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
32831	AuditFindingSeverityLow = "LOW"
32832)
32833
32834const (
32835	// AuditFrequencyDaily is a AuditFrequency enum value
32836	AuditFrequencyDaily = "DAILY"
32837
32838	// AuditFrequencyWeekly is a AuditFrequency enum value
32839	AuditFrequencyWeekly = "WEEKLY"
32840
32841	// AuditFrequencyBiweekly is a AuditFrequency enum value
32842	AuditFrequencyBiweekly = "BIWEEKLY"
32843
32844	// AuditFrequencyMonthly is a AuditFrequency enum value
32845	AuditFrequencyMonthly = "MONTHLY"
32846)
32847
32848const (
32849	// AuditNotificationTypeSns is a AuditNotificationType enum value
32850	AuditNotificationTypeSns = "SNS"
32851)
32852
32853const (
32854	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
32855	AuditTaskStatusInProgress = "IN_PROGRESS"
32856
32857	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
32858	AuditTaskStatusCompleted = "COMPLETED"
32859
32860	// AuditTaskStatusFailed is a AuditTaskStatus enum value
32861	AuditTaskStatusFailed = "FAILED"
32862
32863	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
32864	AuditTaskStatusCanceled = "CANCELED"
32865)
32866
32867const (
32868	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
32869	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
32870
32871	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
32872	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
32873)
32874
32875const (
32876	// AuthDecisionAllowed is a AuthDecision enum value
32877	AuthDecisionAllowed = "ALLOWED"
32878
32879	// AuthDecisionExplicitDeny is a AuthDecision enum value
32880	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
32881
32882	// AuthDecisionImplicitDeny is a AuthDecision enum value
32883	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
32884)
32885
32886const (
32887	// AuthorizerStatusActive is a AuthorizerStatus enum value
32888	AuthorizerStatusActive = "ACTIVE"
32889
32890	// AuthorizerStatusInactive is a AuthorizerStatus enum value
32891	AuthorizerStatusInactive = "INACTIVE"
32892)
32893
32894const (
32895	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
32896	AutoRegistrationStatusEnable = "ENABLE"
32897
32898	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
32899	AutoRegistrationStatusDisable = "DISABLE"
32900)
32901
32902const (
32903	// CACertificateStatusActive is a CACertificateStatus enum value
32904	CACertificateStatusActive = "ACTIVE"
32905
32906	// CACertificateStatusInactive is a CACertificateStatus enum value
32907	CACertificateStatusInactive = "INACTIVE"
32908)
32909
32910const (
32911	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
32912	CannedAccessControlListPrivate = "private"
32913
32914	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
32915	CannedAccessControlListPublicRead = "public-read"
32916
32917	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
32918	CannedAccessControlListPublicReadWrite = "public-read-write"
32919
32920	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
32921	CannedAccessControlListAwsExecRead = "aws-exec-read"
32922
32923	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
32924	CannedAccessControlListAuthenticatedRead = "authenticated-read"
32925
32926	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
32927	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
32928
32929	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
32930	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
32931
32932	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
32933	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
32934)
32935
32936const (
32937	// CertificateStatusActive is a CertificateStatus enum value
32938	CertificateStatusActive = "ACTIVE"
32939
32940	// CertificateStatusInactive is a CertificateStatus enum value
32941	CertificateStatusInactive = "INACTIVE"
32942
32943	// CertificateStatusRevoked is a CertificateStatus enum value
32944	CertificateStatusRevoked = "REVOKED"
32945
32946	// CertificateStatusPendingTransfer is a CertificateStatus enum value
32947	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
32948
32949	// CertificateStatusRegisterInactive is a CertificateStatus enum value
32950	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
32951
32952	// CertificateStatusPendingActivation is a CertificateStatus enum value
32953	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
32954)
32955
32956const (
32957	// ComparisonOperatorLessThan is a ComparisonOperator enum value
32958	ComparisonOperatorLessThan = "less-than"
32959
32960	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
32961	ComparisonOperatorLessThanEquals = "less-than-equals"
32962
32963	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
32964	ComparisonOperatorGreaterThan = "greater-than"
32965
32966	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
32967	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
32968
32969	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
32970	ComparisonOperatorInCidrSet = "in-cidr-set"
32971
32972	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
32973	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
32974
32975	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
32976	ComparisonOperatorInPortSet = "in-port-set"
32977
32978	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
32979	ComparisonOperatorNotInPortSet = "not-in-port-set"
32980)
32981
32982const (
32983	// DayOfWeekSun is a DayOfWeek enum value
32984	DayOfWeekSun = "SUN"
32985
32986	// DayOfWeekMon is a DayOfWeek enum value
32987	DayOfWeekMon = "MON"
32988
32989	// DayOfWeekTue is a DayOfWeek enum value
32990	DayOfWeekTue = "TUE"
32991
32992	// DayOfWeekWed is a DayOfWeek enum value
32993	DayOfWeekWed = "WED"
32994
32995	// DayOfWeekThu is a DayOfWeek enum value
32996	DayOfWeekThu = "THU"
32997
32998	// DayOfWeekFri is a DayOfWeek enum value
32999	DayOfWeekFri = "FRI"
33000
33001	// DayOfWeekSat is a DayOfWeek enum value
33002	DayOfWeekSat = "SAT"
33003)
33004
33005const (
33006	// DynamoKeyTypeString is a DynamoKeyType enum value
33007	DynamoKeyTypeString = "STRING"
33008
33009	// DynamoKeyTypeNumber is a DynamoKeyType enum value
33010	DynamoKeyTypeNumber = "NUMBER"
33011)
33012
33013const (
33014	// EventTypeThing is a EventType enum value
33015	EventTypeThing = "THING"
33016
33017	// EventTypeThingGroup is a EventType enum value
33018	EventTypeThingGroup = "THING_GROUP"
33019
33020	// EventTypeThingType is a EventType enum value
33021	EventTypeThingType = "THING_TYPE"
33022
33023	// EventTypeThingGroupMembership is a EventType enum value
33024	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
33025
33026	// EventTypeThingGroupHierarchy is a EventType enum value
33027	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
33028
33029	// EventTypeThingTypeAssociation is a EventType enum value
33030	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
33031
33032	// EventTypeJob is a EventType enum value
33033	EventTypeJob = "JOB"
33034
33035	// EventTypeJobExecution is a EventType enum value
33036	EventTypeJobExecution = "JOB_EXECUTION"
33037
33038	// EventTypePolicy is a EventType enum value
33039	EventTypePolicy = "POLICY"
33040
33041	// EventTypeCertificate is a EventType enum value
33042	EventTypeCertificate = "CERTIFICATE"
33043
33044	// EventTypeCaCertificate is a EventType enum value
33045	EventTypeCaCertificate = "CA_CERTIFICATE"
33046)
33047
33048const (
33049	// IndexStatusActive is a IndexStatus enum value
33050	IndexStatusActive = "ACTIVE"
33051
33052	// IndexStatusBuilding is a IndexStatus enum value
33053	IndexStatusBuilding = "BUILDING"
33054
33055	// IndexStatusRebuilding is a IndexStatus enum value
33056	IndexStatusRebuilding = "REBUILDING"
33057)
33058
33059const (
33060	// JobExecutionStatusQueued is a JobExecutionStatus enum value
33061	JobExecutionStatusQueued = "QUEUED"
33062
33063	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
33064	JobExecutionStatusInProgress = "IN_PROGRESS"
33065
33066	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
33067	JobExecutionStatusSucceeded = "SUCCEEDED"
33068
33069	// JobExecutionStatusFailed is a JobExecutionStatus enum value
33070	JobExecutionStatusFailed = "FAILED"
33071
33072	// JobExecutionStatusRejected is a JobExecutionStatus enum value
33073	JobExecutionStatusRejected = "REJECTED"
33074
33075	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
33076	JobExecutionStatusRemoved = "REMOVED"
33077
33078	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
33079	JobExecutionStatusCanceled = "CANCELED"
33080)
33081
33082const (
33083	// JobStatusInProgress is a JobStatus enum value
33084	JobStatusInProgress = "IN_PROGRESS"
33085
33086	// JobStatusCanceled is a JobStatus enum value
33087	JobStatusCanceled = "CANCELED"
33088
33089	// JobStatusCompleted is a JobStatus enum value
33090	JobStatusCompleted = "COMPLETED"
33091
33092	// JobStatusDeletionInProgress is a JobStatus enum value
33093	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
33094)
33095
33096const (
33097	// LogLevelDebug is a LogLevel enum value
33098	LogLevelDebug = "DEBUG"
33099
33100	// LogLevelInfo is a LogLevel enum value
33101	LogLevelInfo = "INFO"
33102
33103	// LogLevelError is a LogLevel enum value
33104	LogLevelError = "ERROR"
33105
33106	// LogLevelWarn is a LogLevel enum value
33107	LogLevelWarn = "WARN"
33108
33109	// LogLevelDisabled is a LogLevel enum value
33110	LogLevelDisabled = "DISABLED"
33111)
33112
33113const (
33114	// LogTargetTypeDefault is a LogTargetType enum value
33115	LogTargetTypeDefault = "DEFAULT"
33116
33117	// LogTargetTypeThingGroup is a LogTargetType enum value
33118	LogTargetTypeThingGroup = "THING_GROUP"
33119)
33120
33121const (
33122	// MessageFormatRaw is a MessageFormat enum value
33123	MessageFormatRaw = "RAW"
33124
33125	// MessageFormatJson is a MessageFormat enum value
33126	MessageFormatJson = "JSON"
33127)
33128
33129const (
33130	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
33131	OTAUpdateStatusCreatePending = "CREATE_PENDING"
33132
33133	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
33134	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
33135
33136	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
33137	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
33138
33139	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
33140	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
33141)
33142
33143const (
33144	// ReportTypeErrors is a ReportType enum value
33145	ReportTypeErrors = "ERRORS"
33146
33147	// ReportTypeResults is a ReportType enum value
33148	ReportTypeResults = "RESULTS"
33149)
33150
33151const (
33152	// ResourceTypeDeviceCertificate is a ResourceType enum value
33153	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
33154
33155	// ResourceTypeCaCertificate is a ResourceType enum value
33156	ResourceTypeCaCertificate = "CA_CERTIFICATE"
33157
33158	// ResourceTypeIotPolicy is a ResourceType enum value
33159	ResourceTypeIotPolicy = "IOT_POLICY"
33160
33161	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
33162	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
33163
33164	// ResourceTypeClientId is a ResourceType enum value
33165	ResourceTypeClientId = "CLIENT_ID"
33166
33167	// ResourceTypeAccountSettings is a ResourceType enum value
33168	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
33169)
33170
33171const (
33172	// StatusInProgress is a Status enum value
33173	StatusInProgress = "InProgress"
33174
33175	// StatusCompleted is a Status enum value
33176	StatusCompleted = "Completed"
33177
33178	// StatusFailed is a Status enum value
33179	StatusFailed = "Failed"
33180
33181	// StatusCancelled is a Status enum value
33182	StatusCancelled = "Cancelled"
33183
33184	// StatusCancelling is a Status enum value
33185	StatusCancelling = "Cancelling"
33186)
33187
33188const (
33189	// TargetSelectionContinuous is a TargetSelection enum value
33190	TargetSelectionContinuous = "CONTINUOUS"
33191
33192	// TargetSelectionSnapshot is a TargetSelection enum value
33193	TargetSelectionSnapshot = "SNAPSHOT"
33194)
33195
33196const (
33197	// ThingIndexingModeOff is a ThingIndexingMode enum value
33198	ThingIndexingModeOff = "OFF"
33199
33200	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
33201	ThingIndexingModeRegistry = "REGISTRY"
33202
33203	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
33204	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
33205)
33206
33207const (
33208	// ViolationEventTypeInAlarm is a ViolationEventType enum value
33209	ViolationEventTypeInAlarm = "in-alarm"
33210
33211	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
33212	ViolationEventTypeAlarmCleared = "alarm-cleared"
33213
33214	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
33215	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
33216)
33217