1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package iotevents
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 opCreateAlarmModel = "CreateAlarmModel"
17
18// CreateAlarmModelRequest generates a "aws/request.Request" representing the
19// client's request for the CreateAlarmModel operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateAlarmModel for more information on using the CreateAlarmModel
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 CreateAlarmModelRequest method.
34//    req, resp := client.CreateAlarmModelRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateAlarmModel
42func (c *IoTEvents) CreateAlarmModelRequest(input *CreateAlarmModelInput) (req *request.Request, output *CreateAlarmModelOutput) {
43	op := &request.Operation{
44		Name:       opCreateAlarmModel,
45		HTTPMethod: "POST",
46		HTTPPath:   "/alarm-models",
47	}
48
49	if input == nil {
50		input = &CreateAlarmModelInput{}
51	}
52
53	output = &CreateAlarmModelOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateAlarmModel API operation for AWS IoT Events.
59//
60// Creates an alarm model to monitor an AWS IoT Events input attribute. You
61// can use the alarm to get notified when the value is outside a specified range.
62// For more information, see Create an alarm model (https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html)
63// in the AWS IoT Events Developer Guide.
64//
65// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
66// with awserr.Error's Code and Message methods to get detailed information about
67// the error.
68//
69// See the AWS API reference guide for AWS IoT Events's
70// API operation CreateAlarmModel for usage and error information.
71//
72// Returned Error Types:
73//   * InvalidRequestException
74//   The request was invalid.
75//
76//   * ResourceInUseException
77//   The resource is in use.
78//
79//   * ResourceAlreadyExistsException
80//   The resource already exists.
81//
82//   * LimitExceededException
83//   A limit was exceeded.
84//
85//   * ThrottlingException
86//   The request could not be completed due to throttling.
87//
88//   * InternalFailureException
89//   An internal failure occurred.
90//
91//   * ServiceUnavailableException
92//   The service is currently unavailable.
93//
94// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateAlarmModel
95func (c *IoTEvents) CreateAlarmModel(input *CreateAlarmModelInput) (*CreateAlarmModelOutput, error) {
96	req, out := c.CreateAlarmModelRequest(input)
97	return out, req.Send()
98}
99
100// CreateAlarmModelWithContext is the same as CreateAlarmModel with the addition of
101// the ability to pass a context and additional request options.
102//
103// See CreateAlarmModel for details on how to use this API operation.
104//
105// The context must be non-nil and will be used for request cancellation. If
106// the context is nil a panic will occur. In the future the SDK may create
107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
108// for more information on using Contexts.
109func (c *IoTEvents) CreateAlarmModelWithContext(ctx aws.Context, input *CreateAlarmModelInput, opts ...request.Option) (*CreateAlarmModelOutput, error) {
110	req, out := c.CreateAlarmModelRequest(input)
111	req.SetContext(ctx)
112	req.ApplyOptions(opts...)
113	return out, req.Send()
114}
115
116const opCreateDetectorModel = "CreateDetectorModel"
117
118// CreateDetectorModelRequest generates a "aws/request.Request" representing the
119// client's request for the CreateDetectorModel operation. The "output" return
120// value will be populated with the request's response once the request completes
121// successfully.
122//
123// Use "Send" method on the returned Request to send the API call to the service.
124// the "output" return value is not valid until after Send returns without error.
125//
126// See CreateDetectorModel for more information on using the CreateDetectorModel
127// API call, and error handling.
128//
129// This method is useful when you want to inject custom logic or configuration
130// into the SDK's request lifecycle. Such as custom headers, or retry logic.
131//
132//
133//    // Example sending a request using the CreateDetectorModelRequest method.
134//    req, resp := client.CreateDetectorModelRequest(params)
135//
136//    err := req.Send()
137//    if err == nil { // resp is now filled
138//        fmt.Println(resp)
139//    }
140//
141// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateDetectorModel
142func (c *IoTEvents) CreateDetectorModelRequest(input *CreateDetectorModelInput) (req *request.Request, output *CreateDetectorModelOutput) {
143	op := &request.Operation{
144		Name:       opCreateDetectorModel,
145		HTTPMethod: "POST",
146		HTTPPath:   "/detector-models",
147	}
148
149	if input == nil {
150		input = &CreateDetectorModelInput{}
151	}
152
153	output = &CreateDetectorModelOutput{}
154	req = c.newRequest(op, input, output)
155	return
156}
157
158// CreateDetectorModel API operation for AWS IoT Events.
159//
160// Creates a detector model.
161//
162// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
163// with awserr.Error's Code and Message methods to get detailed information about
164// the error.
165//
166// See the AWS API reference guide for AWS IoT Events's
167// API operation CreateDetectorModel for usage and error information.
168//
169// Returned Error Types:
170//   * InvalidRequestException
171//   The request was invalid.
172//
173//   * ResourceInUseException
174//   The resource is in use.
175//
176//   * ResourceAlreadyExistsException
177//   The resource already exists.
178//
179//   * LimitExceededException
180//   A limit was exceeded.
181//
182//   * ThrottlingException
183//   The request could not be completed due to throttling.
184//
185//   * InternalFailureException
186//   An internal failure occurred.
187//
188//   * ServiceUnavailableException
189//   The service is currently unavailable.
190//
191// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateDetectorModel
192func (c *IoTEvents) CreateDetectorModel(input *CreateDetectorModelInput) (*CreateDetectorModelOutput, error) {
193	req, out := c.CreateDetectorModelRequest(input)
194	return out, req.Send()
195}
196
197// CreateDetectorModelWithContext is the same as CreateDetectorModel with the addition of
198// the ability to pass a context and additional request options.
199//
200// See CreateDetectorModel for details on how to use this API operation.
201//
202// The context must be non-nil and will be used for request cancellation. If
203// the context is nil a panic will occur. In the future the SDK may create
204// sub-contexts for http.Requests. See https://golang.org/pkg/context/
205// for more information on using Contexts.
206func (c *IoTEvents) CreateDetectorModelWithContext(ctx aws.Context, input *CreateDetectorModelInput, opts ...request.Option) (*CreateDetectorModelOutput, error) {
207	req, out := c.CreateDetectorModelRequest(input)
208	req.SetContext(ctx)
209	req.ApplyOptions(opts...)
210	return out, req.Send()
211}
212
213const opCreateInput = "CreateInput"
214
215// CreateInputRequest generates a "aws/request.Request" representing the
216// client's request for the CreateInput operation. The "output" return
217// value will be populated with the request's response once the request completes
218// successfully.
219//
220// Use "Send" method on the returned Request to send the API call to the service.
221// the "output" return value is not valid until after Send returns without error.
222//
223// See CreateInput for more information on using the CreateInput
224// API call, and error handling.
225//
226// This method is useful when you want to inject custom logic or configuration
227// into the SDK's request lifecycle. Such as custom headers, or retry logic.
228//
229//
230//    // Example sending a request using the CreateInputRequest method.
231//    req, resp := client.CreateInputRequest(params)
232//
233//    err := req.Send()
234//    if err == nil { // resp is now filled
235//        fmt.Println(resp)
236//    }
237//
238// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateInput
239func (c *IoTEvents) CreateInputRequest(input *CreateInputInput) (req *request.Request, output *CreateInputOutput) {
240	op := &request.Operation{
241		Name:       opCreateInput,
242		HTTPMethod: "POST",
243		HTTPPath:   "/inputs",
244	}
245
246	if input == nil {
247		input = &CreateInputInput{}
248	}
249
250	output = &CreateInputOutput{}
251	req = c.newRequest(op, input, output)
252	return
253}
254
255// CreateInput API operation for AWS IoT Events.
256//
257// Creates an input.
258//
259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
260// with awserr.Error's Code and Message methods to get detailed information about
261// the error.
262//
263// See the AWS API reference guide for AWS IoT Events's
264// API operation CreateInput for usage and error information.
265//
266// Returned Error Types:
267//   * InvalidRequestException
268//   The request was invalid.
269//
270//   * ThrottlingException
271//   The request could not be completed due to throttling.
272//
273//   * InternalFailureException
274//   An internal failure occurred.
275//
276//   * ServiceUnavailableException
277//   The service is currently unavailable.
278//
279//   * ResourceAlreadyExistsException
280//   The resource already exists.
281//
282// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateInput
283func (c *IoTEvents) CreateInput(input *CreateInputInput) (*CreateInputOutput, error) {
284	req, out := c.CreateInputRequest(input)
285	return out, req.Send()
286}
287
288// CreateInputWithContext is the same as CreateInput with the addition of
289// the ability to pass a context and additional request options.
290//
291// See CreateInput for details on how to use this API operation.
292//
293// The context must be non-nil and will be used for request cancellation. If
294// the context is nil a panic will occur. In the future the SDK may create
295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
296// for more information on using Contexts.
297func (c *IoTEvents) CreateInputWithContext(ctx aws.Context, input *CreateInputInput, opts ...request.Option) (*CreateInputOutput, error) {
298	req, out := c.CreateInputRequest(input)
299	req.SetContext(ctx)
300	req.ApplyOptions(opts...)
301	return out, req.Send()
302}
303
304const opDeleteAlarmModel = "DeleteAlarmModel"
305
306// DeleteAlarmModelRequest generates a "aws/request.Request" representing the
307// client's request for the DeleteAlarmModel operation. The "output" return
308// value will be populated with the request's response once the request completes
309// successfully.
310//
311// Use "Send" method on the returned Request to send the API call to the service.
312// the "output" return value is not valid until after Send returns without error.
313//
314// See DeleteAlarmModel for more information on using the DeleteAlarmModel
315// API call, and error handling.
316//
317// This method is useful when you want to inject custom logic or configuration
318// into the SDK's request lifecycle. Such as custom headers, or retry logic.
319//
320//
321//    // Example sending a request using the DeleteAlarmModelRequest method.
322//    req, resp := client.DeleteAlarmModelRequest(params)
323//
324//    err := req.Send()
325//    if err == nil { // resp is now filled
326//        fmt.Println(resp)
327//    }
328//
329// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteAlarmModel
330func (c *IoTEvents) DeleteAlarmModelRequest(input *DeleteAlarmModelInput) (req *request.Request, output *DeleteAlarmModelOutput) {
331	op := &request.Operation{
332		Name:       opDeleteAlarmModel,
333		HTTPMethod: "DELETE",
334		HTTPPath:   "/alarm-models/{alarmModelName}",
335	}
336
337	if input == nil {
338		input = &DeleteAlarmModelInput{}
339	}
340
341	output = &DeleteAlarmModelOutput{}
342	req = c.newRequest(op, input, output)
343	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
344	return
345}
346
347// DeleteAlarmModel API operation for AWS IoT Events.
348//
349// Deletes an alarm model. Any alarm instances that were created based on this
350// alarm model are also deleted. This action can't be undone.
351//
352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
353// with awserr.Error's Code and Message methods to get detailed information about
354// the error.
355//
356// See the AWS API reference guide for AWS IoT Events's
357// API operation DeleteAlarmModel for usage and error information.
358//
359// Returned Error Types:
360//   * InvalidRequestException
361//   The request was invalid.
362//
363//   * ResourceInUseException
364//   The resource is in use.
365//
366//   * ResourceNotFoundException
367//   The resource was not found.
368//
369//   * ThrottlingException
370//   The request could not be completed due to throttling.
371//
372//   * InternalFailureException
373//   An internal failure occurred.
374//
375//   * ServiceUnavailableException
376//   The service is currently unavailable.
377//
378// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteAlarmModel
379func (c *IoTEvents) DeleteAlarmModel(input *DeleteAlarmModelInput) (*DeleteAlarmModelOutput, error) {
380	req, out := c.DeleteAlarmModelRequest(input)
381	return out, req.Send()
382}
383
384// DeleteAlarmModelWithContext is the same as DeleteAlarmModel with the addition of
385// the ability to pass a context and additional request options.
386//
387// See DeleteAlarmModel for details on how to use this API operation.
388//
389// The context must be non-nil and will be used for request cancellation. If
390// the context is nil a panic will occur. In the future the SDK may create
391// sub-contexts for http.Requests. See https://golang.org/pkg/context/
392// for more information on using Contexts.
393func (c *IoTEvents) DeleteAlarmModelWithContext(ctx aws.Context, input *DeleteAlarmModelInput, opts ...request.Option) (*DeleteAlarmModelOutput, error) {
394	req, out := c.DeleteAlarmModelRequest(input)
395	req.SetContext(ctx)
396	req.ApplyOptions(opts...)
397	return out, req.Send()
398}
399
400const opDeleteDetectorModel = "DeleteDetectorModel"
401
402// DeleteDetectorModelRequest generates a "aws/request.Request" representing the
403// client's request for the DeleteDetectorModel operation. The "output" return
404// value will be populated with the request's response once the request completes
405// successfully.
406//
407// Use "Send" method on the returned Request to send the API call to the service.
408// the "output" return value is not valid until after Send returns without error.
409//
410// See DeleteDetectorModel for more information on using the DeleteDetectorModel
411// API call, and error handling.
412//
413// This method is useful when you want to inject custom logic or configuration
414// into the SDK's request lifecycle. Such as custom headers, or retry logic.
415//
416//
417//    // Example sending a request using the DeleteDetectorModelRequest method.
418//    req, resp := client.DeleteDetectorModelRequest(params)
419//
420//    err := req.Send()
421//    if err == nil { // resp is now filled
422//        fmt.Println(resp)
423//    }
424//
425// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteDetectorModel
426func (c *IoTEvents) DeleteDetectorModelRequest(input *DeleteDetectorModelInput) (req *request.Request, output *DeleteDetectorModelOutput) {
427	op := &request.Operation{
428		Name:       opDeleteDetectorModel,
429		HTTPMethod: "DELETE",
430		HTTPPath:   "/detector-models/{detectorModelName}",
431	}
432
433	if input == nil {
434		input = &DeleteDetectorModelInput{}
435	}
436
437	output = &DeleteDetectorModelOutput{}
438	req = c.newRequest(op, input, output)
439	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
440	return
441}
442
443// DeleteDetectorModel API operation for AWS IoT Events.
444//
445// Deletes a detector model. Any active instances of the detector model are
446// also deleted.
447//
448// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
449// with awserr.Error's Code and Message methods to get detailed information about
450// the error.
451//
452// See the AWS API reference guide for AWS IoT Events's
453// API operation DeleteDetectorModel for usage and error information.
454//
455// Returned Error Types:
456//   * InvalidRequestException
457//   The request was invalid.
458//
459//   * ResourceInUseException
460//   The resource is in use.
461//
462//   * ResourceNotFoundException
463//   The resource was not found.
464//
465//   * ThrottlingException
466//   The request could not be completed due to throttling.
467//
468//   * InternalFailureException
469//   An internal failure occurred.
470//
471//   * ServiceUnavailableException
472//   The service is currently unavailable.
473//
474// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteDetectorModel
475func (c *IoTEvents) DeleteDetectorModel(input *DeleteDetectorModelInput) (*DeleteDetectorModelOutput, error) {
476	req, out := c.DeleteDetectorModelRequest(input)
477	return out, req.Send()
478}
479
480// DeleteDetectorModelWithContext is the same as DeleteDetectorModel with the addition of
481// the ability to pass a context and additional request options.
482//
483// See DeleteDetectorModel 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 *IoTEvents) DeleteDetectorModelWithContext(ctx aws.Context, input *DeleteDetectorModelInput, opts ...request.Option) (*DeleteDetectorModelOutput, error) {
490	req, out := c.DeleteDetectorModelRequest(input)
491	req.SetContext(ctx)
492	req.ApplyOptions(opts...)
493	return out, req.Send()
494}
495
496const opDeleteInput = "DeleteInput"
497
498// DeleteInputRequest generates a "aws/request.Request" representing the
499// client's request for the DeleteInput operation. The "output" return
500// value will be populated with the request's response once the request completes
501// successfully.
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 DeleteInput for more information on using the DeleteInput
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 DeleteInputRequest method.
514//    req, resp := client.DeleteInputRequest(params)
515//
516//    err := req.Send()
517//    if err == nil { // resp is now filled
518//        fmt.Println(resp)
519//    }
520//
521// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteInput
522func (c *IoTEvents) DeleteInputRequest(input *DeleteInputInput) (req *request.Request, output *DeleteInputOutput) {
523	op := &request.Operation{
524		Name:       opDeleteInput,
525		HTTPMethod: "DELETE",
526		HTTPPath:   "/inputs/{inputName}",
527	}
528
529	if input == nil {
530		input = &DeleteInputInput{}
531	}
532
533	output = &DeleteInputOutput{}
534	req = c.newRequest(op, input, output)
535	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
536	return
537}
538
539// DeleteInput API operation for AWS IoT Events.
540//
541// Deletes an input.
542//
543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
544// with awserr.Error's Code and Message methods to get detailed information about
545// the error.
546//
547// See the AWS API reference guide for AWS IoT Events's
548// API operation DeleteInput for usage and error information.
549//
550// Returned Error Types:
551//   * InvalidRequestException
552//   The request was invalid.
553//
554//   * ResourceNotFoundException
555//   The resource was not found.
556//
557//   * ThrottlingException
558//   The request could not be completed due to throttling.
559//
560//   * InternalFailureException
561//   An internal failure occurred.
562//
563//   * ServiceUnavailableException
564//   The service is currently unavailable.
565//
566//   * ResourceInUseException
567//   The resource is in use.
568//
569// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteInput
570func (c *IoTEvents) DeleteInput(input *DeleteInputInput) (*DeleteInputOutput, error) {
571	req, out := c.DeleteInputRequest(input)
572	return out, req.Send()
573}
574
575// DeleteInputWithContext is the same as DeleteInput with the addition of
576// the ability to pass a context and additional request options.
577//
578// See DeleteInput for details on how to use this API operation.
579//
580// The context must be non-nil and will be used for request cancellation. If
581// the context is nil a panic will occur. In the future the SDK may create
582// sub-contexts for http.Requests. See https://golang.org/pkg/context/
583// for more information on using Contexts.
584func (c *IoTEvents) DeleteInputWithContext(ctx aws.Context, input *DeleteInputInput, opts ...request.Option) (*DeleteInputOutput, error) {
585	req, out := c.DeleteInputRequest(input)
586	req.SetContext(ctx)
587	req.ApplyOptions(opts...)
588	return out, req.Send()
589}
590
591const opDescribeAlarmModel = "DescribeAlarmModel"
592
593// DescribeAlarmModelRequest generates a "aws/request.Request" representing the
594// client's request for the DescribeAlarmModel operation. The "output" return
595// value will be populated with the request's response once the request completes
596// successfully.
597//
598// Use "Send" method on the returned Request to send the API call to the service.
599// the "output" return value is not valid until after Send returns without error.
600//
601// See DescribeAlarmModel for more information on using the DescribeAlarmModel
602// API call, and error handling.
603//
604// This method is useful when you want to inject custom logic or configuration
605// into the SDK's request lifecycle. Such as custom headers, or retry logic.
606//
607//
608//    // Example sending a request using the DescribeAlarmModelRequest method.
609//    req, resp := client.DescribeAlarmModelRequest(params)
610//
611//    err := req.Send()
612//    if err == nil { // resp is now filled
613//        fmt.Println(resp)
614//    }
615//
616// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeAlarmModel
617func (c *IoTEvents) DescribeAlarmModelRequest(input *DescribeAlarmModelInput) (req *request.Request, output *DescribeAlarmModelOutput) {
618	op := &request.Operation{
619		Name:       opDescribeAlarmModel,
620		HTTPMethod: "GET",
621		HTTPPath:   "/alarm-models/{alarmModelName}",
622	}
623
624	if input == nil {
625		input = &DescribeAlarmModelInput{}
626	}
627
628	output = &DescribeAlarmModelOutput{}
629	req = c.newRequest(op, input, output)
630	return
631}
632
633// DescribeAlarmModel API operation for AWS IoT Events.
634//
635// Retrieves information about an alarm model. If you don't specify a value
636// for the alarmModelVersion parameter, the latest version is returned.
637//
638// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
639// with awserr.Error's Code and Message methods to get detailed information about
640// the error.
641//
642// See the AWS API reference guide for AWS IoT Events's
643// API operation DescribeAlarmModel for usage and error information.
644//
645// Returned Error Types:
646//   * InvalidRequestException
647//   The request was invalid.
648//
649//   * ResourceNotFoundException
650//   The resource was not found.
651//
652//   * ThrottlingException
653//   The request could not be completed due to throttling.
654//
655//   * InternalFailureException
656//   An internal failure occurred.
657//
658//   * ServiceUnavailableException
659//   The service is currently unavailable.
660//
661// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeAlarmModel
662func (c *IoTEvents) DescribeAlarmModel(input *DescribeAlarmModelInput) (*DescribeAlarmModelOutput, error) {
663	req, out := c.DescribeAlarmModelRequest(input)
664	return out, req.Send()
665}
666
667// DescribeAlarmModelWithContext is the same as DescribeAlarmModel with the addition of
668// the ability to pass a context and additional request options.
669//
670// See DescribeAlarmModel for details on how to use this API operation.
671//
672// The context must be non-nil and will be used for request cancellation. If
673// the context is nil a panic will occur. In the future the SDK may create
674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
675// for more information on using Contexts.
676func (c *IoTEvents) DescribeAlarmModelWithContext(ctx aws.Context, input *DescribeAlarmModelInput, opts ...request.Option) (*DescribeAlarmModelOutput, error) {
677	req, out := c.DescribeAlarmModelRequest(input)
678	req.SetContext(ctx)
679	req.ApplyOptions(opts...)
680	return out, req.Send()
681}
682
683const opDescribeDetectorModel = "DescribeDetectorModel"
684
685// DescribeDetectorModelRequest generates a "aws/request.Request" representing the
686// client's request for the DescribeDetectorModel operation. The "output" return
687// value will be populated with the request's response once the request completes
688// successfully.
689//
690// Use "Send" method on the returned Request to send the API call to the service.
691// the "output" return value is not valid until after Send returns without error.
692//
693// See DescribeDetectorModel for more information on using the DescribeDetectorModel
694// API call, and error handling.
695//
696// This method is useful when you want to inject custom logic or configuration
697// into the SDK's request lifecycle. Such as custom headers, or retry logic.
698//
699//
700//    // Example sending a request using the DescribeDetectorModelRequest method.
701//    req, resp := client.DescribeDetectorModelRequest(params)
702//
703//    err := req.Send()
704//    if err == nil { // resp is now filled
705//        fmt.Println(resp)
706//    }
707//
708// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeDetectorModel
709func (c *IoTEvents) DescribeDetectorModelRequest(input *DescribeDetectorModelInput) (req *request.Request, output *DescribeDetectorModelOutput) {
710	op := &request.Operation{
711		Name:       opDescribeDetectorModel,
712		HTTPMethod: "GET",
713		HTTPPath:   "/detector-models/{detectorModelName}",
714	}
715
716	if input == nil {
717		input = &DescribeDetectorModelInput{}
718	}
719
720	output = &DescribeDetectorModelOutput{}
721	req = c.newRequest(op, input, output)
722	return
723}
724
725// DescribeDetectorModel API operation for AWS IoT Events.
726//
727// Describes a detector model. If the version parameter is not specified, information
728// about the latest version is returned.
729//
730// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
731// with awserr.Error's Code and Message methods to get detailed information about
732// the error.
733//
734// See the AWS API reference guide for AWS IoT Events's
735// API operation DescribeDetectorModel for usage and error information.
736//
737// Returned Error Types:
738//   * InvalidRequestException
739//   The request was invalid.
740//
741//   * ResourceNotFoundException
742//   The resource was not found.
743//
744//   * ThrottlingException
745//   The request could not be completed due to throttling.
746//
747//   * InternalFailureException
748//   An internal failure occurred.
749//
750//   * ServiceUnavailableException
751//   The service is currently unavailable.
752//
753// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeDetectorModel
754func (c *IoTEvents) DescribeDetectorModel(input *DescribeDetectorModelInput) (*DescribeDetectorModelOutput, error) {
755	req, out := c.DescribeDetectorModelRequest(input)
756	return out, req.Send()
757}
758
759// DescribeDetectorModelWithContext is the same as DescribeDetectorModel with the addition of
760// the ability to pass a context and additional request options.
761//
762// See DescribeDetectorModel for details on how to use this API operation.
763//
764// The context must be non-nil and will be used for request cancellation. If
765// the context is nil a panic will occur. In the future the SDK may create
766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
767// for more information on using Contexts.
768func (c *IoTEvents) DescribeDetectorModelWithContext(ctx aws.Context, input *DescribeDetectorModelInput, opts ...request.Option) (*DescribeDetectorModelOutput, error) {
769	req, out := c.DescribeDetectorModelRequest(input)
770	req.SetContext(ctx)
771	req.ApplyOptions(opts...)
772	return out, req.Send()
773}
774
775const opDescribeDetectorModelAnalysis = "DescribeDetectorModelAnalysis"
776
777// DescribeDetectorModelAnalysisRequest generates a "aws/request.Request" representing the
778// client's request for the DescribeDetectorModelAnalysis operation. The "output" return
779// value will be populated with the request's response once the request completes
780// successfully.
781//
782// Use "Send" method on the returned Request to send the API call to the service.
783// the "output" return value is not valid until after Send returns without error.
784//
785// See DescribeDetectorModelAnalysis for more information on using the DescribeDetectorModelAnalysis
786// API call, and error handling.
787//
788// This method is useful when you want to inject custom logic or configuration
789// into the SDK's request lifecycle. Such as custom headers, or retry logic.
790//
791//
792//    // Example sending a request using the DescribeDetectorModelAnalysisRequest method.
793//    req, resp := client.DescribeDetectorModelAnalysisRequest(params)
794//
795//    err := req.Send()
796//    if err == nil { // resp is now filled
797//        fmt.Println(resp)
798//    }
799//
800// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeDetectorModelAnalysis
801func (c *IoTEvents) DescribeDetectorModelAnalysisRequest(input *DescribeDetectorModelAnalysisInput) (req *request.Request, output *DescribeDetectorModelAnalysisOutput) {
802	op := &request.Operation{
803		Name:       opDescribeDetectorModelAnalysis,
804		HTTPMethod: "GET",
805		HTTPPath:   "/analysis/detector-models/{analysisId}",
806	}
807
808	if input == nil {
809		input = &DescribeDetectorModelAnalysisInput{}
810	}
811
812	output = &DescribeDetectorModelAnalysisOutput{}
813	req = c.newRequest(op, input, output)
814	return
815}
816
817// DescribeDetectorModelAnalysis API operation for AWS IoT Events.
818//
819// Retrieves runtime information about a detector model analysis.
820//
821// After AWS IoT Events starts analyzing your detector model, you have up to
822// 24 hours to retrieve the analysis results.
823//
824// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
825// with awserr.Error's Code and Message methods to get detailed information about
826// the error.
827//
828// See the AWS API reference guide for AWS IoT Events's
829// API operation DescribeDetectorModelAnalysis for usage and error information.
830//
831// Returned Error Types:
832//   * InvalidRequestException
833//   The request was invalid.
834//
835//   * ResourceNotFoundException
836//   The resource was not found.
837//
838//   * ThrottlingException
839//   The request could not be completed due to throttling.
840//
841//   * InternalFailureException
842//   An internal failure occurred.
843//
844//   * ServiceUnavailableException
845//   The service is currently unavailable.
846//
847// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeDetectorModelAnalysis
848func (c *IoTEvents) DescribeDetectorModelAnalysis(input *DescribeDetectorModelAnalysisInput) (*DescribeDetectorModelAnalysisOutput, error) {
849	req, out := c.DescribeDetectorModelAnalysisRequest(input)
850	return out, req.Send()
851}
852
853// DescribeDetectorModelAnalysisWithContext is the same as DescribeDetectorModelAnalysis with the addition of
854// the ability to pass a context and additional request options.
855//
856// See DescribeDetectorModelAnalysis for details on how to use this API operation.
857//
858// The context must be non-nil and will be used for request cancellation. If
859// the context is nil a panic will occur. In the future the SDK may create
860// sub-contexts for http.Requests. See https://golang.org/pkg/context/
861// for more information on using Contexts.
862func (c *IoTEvents) DescribeDetectorModelAnalysisWithContext(ctx aws.Context, input *DescribeDetectorModelAnalysisInput, opts ...request.Option) (*DescribeDetectorModelAnalysisOutput, error) {
863	req, out := c.DescribeDetectorModelAnalysisRequest(input)
864	req.SetContext(ctx)
865	req.ApplyOptions(opts...)
866	return out, req.Send()
867}
868
869const opDescribeInput = "DescribeInput"
870
871// DescribeInputRequest generates a "aws/request.Request" representing the
872// client's request for the DescribeInput operation. The "output" return
873// value will be populated with the request's response once the request completes
874// successfully.
875//
876// Use "Send" method on the returned Request to send the API call to the service.
877// the "output" return value is not valid until after Send returns without error.
878//
879// See DescribeInput for more information on using the DescribeInput
880// API call, and error handling.
881//
882// This method is useful when you want to inject custom logic or configuration
883// into the SDK's request lifecycle. Such as custom headers, or retry logic.
884//
885//
886//    // Example sending a request using the DescribeInputRequest method.
887//    req, resp := client.DescribeInputRequest(params)
888//
889//    err := req.Send()
890//    if err == nil { // resp is now filled
891//        fmt.Println(resp)
892//    }
893//
894// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeInput
895func (c *IoTEvents) DescribeInputRequest(input *DescribeInputInput) (req *request.Request, output *DescribeInputOutput) {
896	op := &request.Operation{
897		Name:       opDescribeInput,
898		HTTPMethod: "GET",
899		HTTPPath:   "/inputs/{inputName}",
900	}
901
902	if input == nil {
903		input = &DescribeInputInput{}
904	}
905
906	output = &DescribeInputOutput{}
907	req = c.newRequest(op, input, output)
908	return
909}
910
911// DescribeInput API operation for AWS IoT Events.
912//
913// Describes an input.
914//
915// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
916// with awserr.Error's Code and Message methods to get detailed information about
917// the error.
918//
919// See the AWS API reference guide for AWS IoT Events's
920// API operation DescribeInput for usage and error information.
921//
922// Returned Error Types:
923//   * InvalidRequestException
924//   The request was invalid.
925//
926//   * ResourceNotFoundException
927//   The resource was not found.
928//
929//   * ThrottlingException
930//   The request could not be completed due to throttling.
931//
932//   * InternalFailureException
933//   An internal failure occurred.
934//
935//   * ServiceUnavailableException
936//   The service is currently unavailable.
937//
938// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeInput
939func (c *IoTEvents) DescribeInput(input *DescribeInputInput) (*DescribeInputOutput, error) {
940	req, out := c.DescribeInputRequest(input)
941	return out, req.Send()
942}
943
944// DescribeInputWithContext is the same as DescribeInput with the addition of
945// the ability to pass a context and additional request options.
946//
947// See DescribeInput for details on how to use this API operation.
948//
949// The context must be non-nil and will be used for request cancellation. If
950// the context is nil a panic will occur. In the future the SDK may create
951// sub-contexts for http.Requests. See https://golang.org/pkg/context/
952// for more information on using Contexts.
953func (c *IoTEvents) DescribeInputWithContext(ctx aws.Context, input *DescribeInputInput, opts ...request.Option) (*DescribeInputOutput, error) {
954	req, out := c.DescribeInputRequest(input)
955	req.SetContext(ctx)
956	req.ApplyOptions(opts...)
957	return out, req.Send()
958}
959
960const opDescribeLoggingOptions = "DescribeLoggingOptions"
961
962// DescribeLoggingOptionsRequest generates a "aws/request.Request" representing the
963// client's request for the DescribeLoggingOptions operation. The "output" return
964// value will be populated with the request's response once the request completes
965// successfully.
966//
967// Use "Send" method on the returned Request to send the API call to the service.
968// the "output" return value is not valid until after Send returns without error.
969//
970// See DescribeLoggingOptions for more information on using the DescribeLoggingOptions
971// API call, and error handling.
972//
973// This method is useful when you want to inject custom logic or configuration
974// into the SDK's request lifecycle. Such as custom headers, or retry logic.
975//
976//
977//    // Example sending a request using the DescribeLoggingOptionsRequest method.
978//    req, resp := client.DescribeLoggingOptionsRequest(params)
979//
980//    err := req.Send()
981//    if err == nil { // resp is now filled
982//        fmt.Println(resp)
983//    }
984//
985// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeLoggingOptions
986func (c *IoTEvents) DescribeLoggingOptionsRequest(input *DescribeLoggingOptionsInput) (req *request.Request, output *DescribeLoggingOptionsOutput) {
987	op := &request.Operation{
988		Name:       opDescribeLoggingOptions,
989		HTTPMethod: "GET",
990		HTTPPath:   "/logging",
991	}
992
993	if input == nil {
994		input = &DescribeLoggingOptionsInput{}
995	}
996
997	output = &DescribeLoggingOptionsOutput{}
998	req = c.newRequest(op, input, output)
999	return
1000}
1001
1002// DescribeLoggingOptions API operation for AWS IoT Events.
1003//
1004// Retrieves the current settings of the AWS IoT Events logging options.
1005//
1006// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1007// with awserr.Error's Code and Message methods to get detailed information about
1008// the error.
1009//
1010// See the AWS API reference guide for AWS IoT Events's
1011// API operation DescribeLoggingOptions for usage and error information.
1012//
1013// Returned Error Types:
1014//   * InvalidRequestException
1015//   The request was invalid.
1016//
1017//   * ThrottlingException
1018//   The request could not be completed due to throttling.
1019//
1020//   * InternalFailureException
1021//   An internal failure occurred.
1022//
1023//   * ResourceNotFoundException
1024//   The resource was not found.
1025//
1026//   * ServiceUnavailableException
1027//   The service is currently unavailable.
1028//
1029//   * UnsupportedOperationException
1030//   The requested operation is not supported.
1031//
1032// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeLoggingOptions
1033func (c *IoTEvents) DescribeLoggingOptions(input *DescribeLoggingOptionsInput) (*DescribeLoggingOptionsOutput, error) {
1034	req, out := c.DescribeLoggingOptionsRequest(input)
1035	return out, req.Send()
1036}
1037
1038// DescribeLoggingOptionsWithContext is the same as DescribeLoggingOptions with the addition of
1039// the ability to pass a context and additional request options.
1040//
1041// See DescribeLoggingOptions for details on how to use this API operation.
1042//
1043// The context must be non-nil and will be used for request cancellation. If
1044// the context is nil a panic will occur. In the future the SDK may create
1045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1046// for more information on using Contexts.
1047func (c *IoTEvents) DescribeLoggingOptionsWithContext(ctx aws.Context, input *DescribeLoggingOptionsInput, opts ...request.Option) (*DescribeLoggingOptionsOutput, error) {
1048	req, out := c.DescribeLoggingOptionsRequest(input)
1049	req.SetContext(ctx)
1050	req.ApplyOptions(opts...)
1051	return out, req.Send()
1052}
1053
1054const opGetDetectorModelAnalysisResults = "GetDetectorModelAnalysisResults"
1055
1056// GetDetectorModelAnalysisResultsRequest generates a "aws/request.Request" representing the
1057// client's request for the GetDetectorModelAnalysisResults operation. The "output" return
1058// value will be populated with the request's response once the request completes
1059// successfully.
1060//
1061// Use "Send" method on the returned Request to send the API call to the service.
1062// the "output" return value is not valid until after Send returns without error.
1063//
1064// See GetDetectorModelAnalysisResults for more information on using the GetDetectorModelAnalysisResults
1065// API call, and error handling.
1066//
1067// This method is useful when you want to inject custom logic or configuration
1068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1069//
1070//
1071//    // Example sending a request using the GetDetectorModelAnalysisResultsRequest method.
1072//    req, resp := client.GetDetectorModelAnalysisResultsRequest(params)
1073//
1074//    err := req.Send()
1075//    if err == nil { // resp is now filled
1076//        fmt.Println(resp)
1077//    }
1078//
1079// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/GetDetectorModelAnalysisResults
1080func (c *IoTEvents) GetDetectorModelAnalysisResultsRequest(input *GetDetectorModelAnalysisResultsInput) (req *request.Request, output *GetDetectorModelAnalysisResultsOutput) {
1081	op := &request.Operation{
1082		Name:       opGetDetectorModelAnalysisResults,
1083		HTTPMethod: "GET",
1084		HTTPPath:   "/analysis/detector-models/{analysisId}/results",
1085	}
1086
1087	if input == nil {
1088		input = &GetDetectorModelAnalysisResultsInput{}
1089	}
1090
1091	output = &GetDetectorModelAnalysisResultsOutput{}
1092	req = c.newRequest(op, input, output)
1093	return
1094}
1095
1096// GetDetectorModelAnalysisResults API operation for AWS IoT Events.
1097//
1098// Retrieves one or more analysis results of the detector model.
1099//
1100// After AWS IoT Events starts analyzing your detector model, you have up to
1101// 24 hours to retrieve the analysis results.
1102//
1103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1104// with awserr.Error's Code and Message methods to get detailed information about
1105// the error.
1106//
1107// See the AWS API reference guide for AWS IoT Events's
1108// API operation GetDetectorModelAnalysisResults for usage and error information.
1109//
1110// Returned Error Types:
1111//   * InvalidRequestException
1112//   The request was invalid.
1113//
1114//   * ResourceNotFoundException
1115//   The resource was not found.
1116//
1117//   * ThrottlingException
1118//   The request could not be completed due to throttling.
1119//
1120//   * InternalFailureException
1121//   An internal failure occurred.
1122//
1123//   * ServiceUnavailableException
1124//   The service is currently unavailable.
1125//
1126// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/GetDetectorModelAnalysisResults
1127func (c *IoTEvents) GetDetectorModelAnalysisResults(input *GetDetectorModelAnalysisResultsInput) (*GetDetectorModelAnalysisResultsOutput, error) {
1128	req, out := c.GetDetectorModelAnalysisResultsRequest(input)
1129	return out, req.Send()
1130}
1131
1132// GetDetectorModelAnalysisResultsWithContext is the same as GetDetectorModelAnalysisResults with the addition of
1133// the ability to pass a context and additional request options.
1134//
1135// See GetDetectorModelAnalysisResults for details on how to use this API operation.
1136//
1137// The context must be non-nil and will be used for request cancellation. If
1138// the context is nil a panic will occur. In the future the SDK may create
1139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1140// for more information on using Contexts.
1141func (c *IoTEvents) GetDetectorModelAnalysisResultsWithContext(ctx aws.Context, input *GetDetectorModelAnalysisResultsInput, opts ...request.Option) (*GetDetectorModelAnalysisResultsOutput, error) {
1142	req, out := c.GetDetectorModelAnalysisResultsRequest(input)
1143	req.SetContext(ctx)
1144	req.ApplyOptions(opts...)
1145	return out, req.Send()
1146}
1147
1148const opListAlarmModelVersions = "ListAlarmModelVersions"
1149
1150// ListAlarmModelVersionsRequest generates a "aws/request.Request" representing the
1151// client's request for the ListAlarmModelVersions operation. The "output" return
1152// value will be populated with the request's response once the request completes
1153// successfully.
1154//
1155// Use "Send" method on the returned Request to send the API call to the service.
1156// the "output" return value is not valid until after Send returns without error.
1157//
1158// See ListAlarmModelVersions for more information on using the ListAlarmModelVersions
1159// API call, and error handling.
1160//
1161// This method is useful when you want to inject custom logic or configuration
1162// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1163//
1164//
1165//    // Example sending a request using the ListAlarmModelVersionsRequest method.
1166//    req, resp := client.ListAlarmModelVersionsRequest(params)
1167//
1168//    err := req.Send()
1169//    if err == nil { // resp is now filled
1170//        fmt.Println(resp)
1171//    }
1172//
1173// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListAlarmModelVersions
1174func (c *IoTEvents) ListAlarmModelVersionsRequest(input *ListAlarmModelVersionsInput) (req *request.Request, output *ListAlarmModelVersionsOutput) {
1175	op := &request.Operation{
1176		Name:       opListAlarmModelVersions,
1177		HTTPMethod: "GET",
1178		HTTPPath:   "/alarm-models/{alarmModelName}/versions",
1179	}
1180
1181	if input == nil {
1182		input = &ListAlarmModelVersionsInput{}
1183	}
1184
1185	output = &ListAlarmModelVersionsOutput{}
1186	req = c.newRequest(op, input, output)
1187	return
1188}
1189
1190// ListAlarmModelVersions API operation for AWS IoT Events.
1191//
1192// Lists all the versions of an alarm model. The operation returns only the
1193// metadata associated with each alarm model version.
1194//
1195// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1196// with awserr.Error's Code and Message methods to get detailed information about
1197// the error.
1198//
1199// See the AWS API reference guide for AWS IoT Events's
1200// API operation ListAlarmModelVersions for usage and error information.
1201//
1202// Returned Error Types:
1203//   * InvalidRequestException
1204//   The request was invalid.
1205//
1206//   * ResourceNotFoundException
1207//   The resource was not found.
1208//
1209//   * ThrottlingException
1210//   The request could not be completed due to throttling.
1211//
1212//   * InternalFailureException
1213//   An internal failure occurred.
1214//
1215//   * ServiceUnavailableException
1216//   The service is currently unavailable.
1217//
1218// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListAlarmModelVersions
1219func (c *IoTEvents) ListAlarmModelVersions(input *ListAlarmModelVersionsInput) (*ListAlarmModelVersionsOutput, error) {
1220	req, out := c.ListAlarmModelVersionsRequest(input)
1221	return out, req.Send()
1222}
1223
1224// ListAlarmModelVersionsWithContext is the same as ListAlarmModelVersions with the addition of
1225// the ability to pass a context and additional request options.
1226//
1227// See ListAlarmModelVersions 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 *IoTEvents) ListAlarmModelVersionsWithContext(ctx aws.Context, input *ListAlarmModelVersionsInput, opts ...request.Option) (*ListAlarmModelVersionsOutput, error) {
1234	req, out := c.ListAlarmModelVersionsRequest(input)
1235	req.SetContext(ctx)
1236	req.ApplyOptions(opts...)
1237	return out, req.Send()
1238}
1239
1240const opListAlarmModels = "ListAlarmModels"
1241
1242// ListAlarmModelsRequest generates a "aws/request.Request" representing the
1243// client's request for the ListAlarmModels operation. The "output" return
1244// value will be populated with the request's response once the request completes
1245// successfully.
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 ListAlarmModels for more information on using the ListAlarmModels
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 ListAlarmModelsRequest method.
1258//    req, resp := client.ListAlarmModelsRequest(params)
1259//
1260//    err := req.Send()
1261//    if err == nil { // resp is now filled
1262//        fmt.Println(resp)
1263//    }
1264//
1265// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListAlarmModels
1266func (c *IoTEvents) ListAlarmModelsRequest(input *ListAlarmModelsInput) (req *request.Request, output *ListAlarmModelsOutput) {
1267	op := &request.Operation{
1268		Name:       opListAlarmModels,
1269		HTTPMethod: "GET",
1270		HTTPPath:   "/alarm-models",
1271	}
1272
1273	if input == nil {
1274		input = &ListAlarmModelsInput{}
1275	}
1276
1277	output = &ListAlarmModelsOutput{}
1278	req = c.newRequest(op, input, output)
1279	return
1280}
1281
1282// ListAlarmModels API operation for AWS IoT Events.
1283//
1284// Lists the alarm models that you created. The operation returns only the metadata
1285// associated with each alarm model.
1286//
1287// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1288// with awserr.Error's Code and Message methods to get detailed information about
1289// the error.
1290//
1291// See the AWS API reference guide for AWS IoT Events's
1292// API operation ListAlarmModels for usage and error information.
1293//
1294// Returned Error Types:
1295//   * InvalidRequestException
1296//   The request was invalid.
1297//
1298//   * ThrottlingException
1299//   The request could not be completed due to throttling.
1300//
1301//   * InternalFailureException
1302//   An internal failure occurred.
1303//
1304//   * ServiceUnavailableException
1305//   The service is currently unavailable.
1306//
1307// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListAlarmModels
1308func (c *IoTEvents) ListAlarmModels(input *ListAlarmModelsInput) (*ListAlarmModelsOutput, error) {
1309	req, out := c.ListAlarmModelsRequest(input)
1310	return out, req.Send()
1311}
1312
1313// ListAlarmModelsWithContext is the same as ListAlarmModels with the addition of
1314// the ability to pass a context and additional request options.
1315//
1316// See ListAlarmModels for details on how to use this API operation.
1317//
1318// The context must be non-nil and will be used for request cancellation. If
1319// the context is nil a panic will occur. In the future the SDK may create
1320// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1321// for more information on using Contexts.
1322func (c *IoTEvents) ListAlarmModelsWithContext(ctx aws.Context, input *ListAlarmModelsInput, opts ...request.Option) (*ListAlarmModelsOutput, error) {
1323	req, out := c.ListAlarmModelsRequest(input)
1324	req.SetContext(ctx)
1325	req.ApplyOptions(opts...)
1326	return out, req.Send()
1327}
1328
1329const opListDetectorModelVersions = "ListDetectorModelVersions"
1330
1331// ListDetectorModelVersionsRequest generates a "aws/request.Request" representing the
1332// client's request for the ListDetectorModelVersions operation. The "output" return
1333// value will be populated with the request's response once the request completes
1334// successfully.
1335//
1336// Use "Send" method on the returned Request to send the API call to the service.
1337// the "output" return value is not valid until after Send returns without error.
1338//
1339// See ListDetectorModelVersions for more information on using the ListDetectorModelVersions
1340// API call, and error handling.
1341//
1342// This method is useful when you want to inject custom logic or configuration
1343// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1344//
1345//
1346//    // Example sending a request using the ListDetectorModelVersionsRequest method.
1347//    req, resp := client.ListDetectorModelVersionsRequest(params)
1348//
1349//    err := req.Send()
1350//    if err == nil { // resp is now filled
1351//        fmt.Println(resp)
1352//    }
1353//
1354// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModelVersions
1355func (c *IoTEvents) ListDetectorModelVersionsRequest(input *ListDetectorModelVersionsInput) (req *request.Request, output *ListDetectorModelVersionsOutput) {
1356	op := &request.Operation{
1357		Name:       opListDetectorModelVersions,
1358		HTTPMethod: "GET",
1359		HTTPPath:   "/detector-models/{detectorModelName}/versions",
1360	}
1361
1362	if input == nil {
1363		input = &ListDetectorModelVersionsInput{}
1364	}
1365
1366	output = &ListDetectorModelVersionsOutput{}
1367	req = c.newRequest(op, input, output)
1368	return
1369}
1370
1371// ListDetectorModelVersions API operation for AWS IoT Events.
1372//
1373// Lists all the versions of a detector model. Only the metadata associated
1374// with each detector model version is returned.
1375//
1376// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1377// with awserr.Error's Code and Message methods to get detailed information about
1378// the error.
1379//
1380// See the AWS API reference guide for AWS IoT Events's
1381// API operation ListDetectorModelVersions for usage and error information.
1382//
1383// Returned Error Types:
1384//   * InvalidRequestException
1385//   The request was invalid.
1386//
1387//   * ResourceNotFoundException
1388//   The resource was not found.
1389//
1390//   * ThrottlingException
1391//   The request could not be completed due to throttling.
1392//
1393//   * InternalFailureException
1394//   An internal failure occurred.
1395//
1396//   * ServiceUnavailableException
1397//   The service is currently unavailable.
1398//
1399// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModelVersions
1400func (c *IoTEvents) ListDetectorModelVersions(input *ListDetectorModelVersionsInput) (*ListDetectorModelVersionsOutput, error) {
1401	req, out := c.ListDetectorModelVersionsRequest(input)
1402	return out, req.Send()
1403}
1404
1405// ListDetectorModelVersionsWithContext is the same as ListDetectorModelVersions with the addition of
1406// the ability to pass a context and additional request options.
1407//
1408// See ListDetectorModelVersions for details on how to use this API operation.
1409//
1410// The context must be non-nil and will be used for request cancellation. If
1411// the context is nil a panic will occur. In the future the SDK may create
1412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1413// for more information on using Contexts.
1414func (c *IoTEvents) ListDetectorModelVersionsWithContext(ctx aws.Context, input *ListDetectorModelVersionsInput, opts ...request.Option) (*ListDetectorModelVersionsOutput, error) {
1415	req, out := c.ListDetectorModelVersionsRequest(input)
1416	req.SetContext(ctx)
1417	req.ApplyOptions(opts...)
1418	return out, req.Send()
1419}
1420
1421const opListDetectorModels = "ListDetectorModels"
1422
1423// ListDetectorModelsRequest generates a "aws/request.Request" representing the
1424// client's request for the ListDetectorModels operation. The "output" return
1425// value will be populated with the request's response once the request completes
1426// successfully.
1427//
1428// Use "Send" method on the returned Request to send the API call to the service.
1429// the "output" return value is not valid until after Send returns without error.
1430//
1431// See ListDetectorModels for more information on using the ListDetectorModels
1432// API call, and error handling.
1433//
1434// This method is useful when you want to inject custom logic or configuration
1435// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1436//
1437//
1438//    // Example sending a request using the ListDetectorModelsRequest method.
1439//    req, resp := client.ListDetectorModelsRequest(params)
1440//
1441//    err := req.Send()
1442//    if err == nil { // resp is now filled
1443//        fmt.Println(resp)
1444//    }
1445//
1446// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModels
1447func (c *IoTEvents) ListDetectorModelsRequest(input *ListDetectorModelsInput) (req *request.Request, output *ListDetectorModelsOutput) {
1448	op := &request.Operation{
1449		Name:       opListDetectorModels,
1450		HTTPMethod: "GET",
1451		HTTPPath:   "/detector-models",
1452	}
1453
1454	if input == nil {
1455		input = &ListDetectorModelsInput{}
1456	}
1457
1458	output = &ListDetectorModelsOutput{}
1459	req = c.newRequest(op, input, output)
1460	return
1461}
1462
1463// ListDetectorModels API operation for AWS IoT Events.
1464//
1465// Lists the detector models you have created. Only the metadata associated
1466// with each detector model is returned.
1467//
1468// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1469// with awserr.Error's Code and Message methods to get detailed information about
1470// the error.
1471//
1472// See the AWS API reference guide for AWS IoT Events's
1473// API operation ListDetectorModels for usage and error information.
1474//
1475// Returned Error Types:
1476//   * InvalidRequestException
1477//   The request was invalid.
1478//
1479//   * ThrottlingException
1480//   The request could not be completed due to throttling.
1481//
1482//   * InternalFailureException
1483//   An internal failure occurred.
1484//
1485//   * ServiceUnavailableException
1486//   The service is currently unavailable.
1487//
1488// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModels
1489func (c *IoTEvents) ListDetectorModels(input *ListDetectorModelsInput) (*ListDetectorModelsOutput, error) {
1490	req, out := c.ListDetectorModelsRequest(input)
1491	return out, req.Send()
1492}
1493
1494// ListDetectorModelsWithContext is the same as ListDetectorModels with the addition of
1495// the ability to pass a context and additional request options.
1496//
1497// See ListDetectorModels for details on how to use this API operation.
1498//
1499// The context must be non-nil and will be used for request cancellation. If
1500// the context is nil a panic will occur. In the future the SDK may create
1501// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1502// for more information on using Contexts.
1503func (c *IoTEvents) ListDetectorModelsWithContext(ctx aws.Context, input *ListDetectorModelsInput, opts ...request.Option) (*ListDetectorModelsOutput, error) {
1504	req, out := c.ListDetectorModelsRequest(input)
1505	req.SetContext(ctx)
1506	req.ApplyOptions(opts...)
1507	return out, req.Send()
1508}
1509
1510const opListInputRoutings = "ListInputRoutings"
1511
1512// ListInputRoutingsRequest generates a "aws/request.Request" representing the
1513// client's request for the ListInputRoutings operation. The "output" return
1514// value will be populated with the request's response once the request completes
1515// successfully.
1516//
1517// Use "Send" method on the returned Request to send the API call to the service.
1518// the "output" return value is not valid until after Send returns without error.
1519//
1520// See ListInputRoutings for more information on using the ListInputRoutings
1521// API call, and error handling.
1522//
1523// This method is useful when you want to inject custom logic or configuration
1524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1525//
1526//
1527//    // Example sending a request using the ListInputRoutingsRequest method.
1528//    req, resp := client.ListInputRoutingsRequest(params)
1529//
1530//    err := req.Send()
1531//    if err == nil { // resp is now filled
1532//        fmt.Println(resp)
1533//    }
1534//
1535// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListInputRoutings
1536func (c *IoTEvents) ListInputRoutingsRequest(input *ListInputRoutingsInput) (req *request.Request, output *ListInputRoutingsOutput) {
1537	op := &request.Operation{
1538		Name:       opListInputRoutings,
1539		HTTPMethod: "POST",
1540		HTTPPath:   "/input-routings",
1541	}
1542
1543	if input == nil {
1544		input = &ListInputRoutingsInput{}
1545	}
1546
1547	output = &ListInputRoutingsOutput{}
1548	req = c.newRequest(op, input, output)
1549	return
1550}
1551
1552// ListInputRoutings API operation for AWS IoT Events.
1553//
1554// Lists one or more input routings.
1555//
1556// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1557// with awserr.Error's Code and Message methods to get detailed information about
1558// the error.
1559//
1560// See the AWS API reference guide for AWS IoT Events's
1561// API operation ListInputRoutings for usage and error information.
1562//
1563// Returned Error Types:
1564//   * InvalidRequestException
1565//   The request was invalid.
1566//
1567//   * ThrottlingException
1568//   The request could not be completed due to throttling.
1569//
1570//   * InternalFailureException
1571//   An internal failure occurred.
1572//
1573//   * ServiceUnavailableException
1574//   The service is currently unavailable.
1575//
1576//   * ResourceNotFoundException
1577//   The resource was not found.
1578//
1579// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListInputRoutings
1580func (c *IoTEvents) ListInputRoutings(input *ListInputRoutingsInput) (*ListInputRoutingsOutput, error) {
1581	req, out := c.ListInputRoutingsRequest(input)
1582	return out, req.Send()
1583}
1584
1585// ListInputRoutingsWithContext is the same as ListInputRoutings with the addition of
1586// the ability to pass a context and additional request options.
1587//
1588// See ListInputRoutings for details on how to use this API operation.
1589//
1590// The context must be non-nil and will be used for request cancellation. If
1591// the context is nil a panic will occur. In the future the SDK may create
1592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1593// for more information on using Contexts.
1594func (c *IoTEvents) ListInputRoutingsWithContext(ctx aws.Context, input *ListInputRoutingsInput, opts ...request.Option) (*ListInputRoutingsOutput, error) {
1595	req, out := c.ListInputRoutingsRequest(input)
1596	req.SetContext(ctx)
1597	req.ApplyOptions(opts...)
1598	return out, req.Send()
1599}
1600
1601const opListInputs = "ListInputs"
1602
1603// ListInputsRequest generates a "aws/request.Request" representing the
1604// client's request for the ListInputs operation. The "output" return
1605// value will be populated with the request's response once the request completes
1606// successfully.
1607//
1608// Use "Send" method on the returned Request to send the API call to the service.
1609// the "output" return value is not valid until after Send returns without error.
1610//
1611// See ListInputs for more information on using the ListInputs
1612// API call, and error handling.
1613//
1614// This method is useful when you want to inject custom logic or configuration
1615// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1616//
1617//
1618//    // Example sending a request using the ListInputsRequest method.
1619//    req, resp := client.ListInputsRequest(params)
1620//
1621//    err := req.Send()
1622//    if err == nil { // resp is now filled
1623//        fmt.Println(resp)
1624//    }
1625//
1626// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListInputs
1627func (c *IoTEvents) ListInputsRequest(input *ListInputsInput) (req *request.Request, output *ListInputsOutput) {
1628	op := &request.Operation{
1629		Name:       opListInputs,
1630		HTTPMethod: "GET",
1631		HTTPPath:   "/inputs",
1632	}
1633
1634	if input == nil {
1635		input = &ListInputsInput{}
1636	}
1637
1638	output = &ListInputsOutput{}
1639	req = c.newRequest(op, input, output)
1640	return
1641}
1642
1643// ListInputs API operation for AWS IoT Events.
1644//
1645// Lists the inputs you have created.
1646//
1647// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1648// with awserr.Error's Code and Message methods to get detailed information about
1649// the error.
1650//
1651// See the AWS API reference guide for AWS IoT Events's
1652// API operation ListInputs for usage and error information.
1653//
1654// Returned Error Types:
1655//   * InvalidRequestException
1656//   The request was invalid.
1657//
1658//   * ThrottlingException
1659//   The request could not be completed due to throttling.
1660//
1661//   * InternalFailureException
1662//   An internal failure occurred.
1663//
1664//   * ServiceUnavailableException
1665//   The service is currently unavailable.
1666//
1667// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListInputs
1668func (c *IoTEvents) ListInputs(input *ListInputsInput) (*ListInputsOutput, error) {
1669	req, out := c.ListInputsRequest(input)
1670	return out, req.Send()
1671}
1672
1673// ListInputsWithContext is the same as ListInputs with the addition of
1674// the ability to pass a context and additional request options.
1675//
1676// See ListInputs for details on how to use this API operation.
1677//
1678// The context must be non-nil and will be used for request cancellation. If
1679// the context is nil a panic will occur. In the future the SDK may create
1680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1681// for more information on using Contexts.
1682func (c *IoTEvents) ListInputsWithContext(ctx aws.Context, input *ListInputsInput, opts ...request.Option) (*ListInputsOutput, error) {
1683	req, out := c.ListInputsRequest(input)
1684	req.SetContext(ctx)
1685	req.ApplyOptions(opts...)
1686	return out, req.Send()
1687}
1688
1689const opListTagsForResource = "ListTagsForResource"
1690
1691// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1692// client's request for the ListTagsForResource operation. The "output" return
1693// value will be populated with the request's response once the request completes
1694// successfully.
1695//
1696// Use "Send" method on the returned Request to send the API call to the service.
1697// the "output" return value is not valid until after Send returns without error.
1698//
1699// See ListTagsForResource for more information on using the ListTagsForResource
1700// API call, and error handling.
1701//
1702// This method is useful when you want to inject custom logic or configuration
1703// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1704//
1705//
1706//    // Example sending a request using the ListTagsForResourceRequest method.
1707//    req, resp := client.ListTagsForResourceRequest(params)
1708//
1709//    err := req.Send()
1710//    if err == nil { // resp is now filled
1711//        fmt.Println(resp)
1712//    }
1713//
1714// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListTagsForResource
1715func (c *IoTEvents) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1716	op := &request.Operation{
1717		Name:       opListTagsForResource,
1718		HTTPMethod: "GET",
1719		HTTPPath:   "/tags",
1720	}
1721
1722	if input == nil {
1723		input = &ListTagsForResourceInput{}
1724	}
1725
1726	output = &ListTagsForResourceOutput{}
1727	req = c.newRequest(op, input, output)
1728	return
1729}
1730
1731// ListTagsForResource API operation for AWS IoT Events.
1732//
1733// Lists the tags (metadata) you have assigned to the resource.
1734//
1735// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1736// with awserr.Error's Code and Message methods to get detailed information about
1737// the error.
1738//
1739// See the AWS API reference guide for AWS IoT Events's
1740// API operation ListTagsForResource for usage and error information.
1741//
1742// Returned Error Types:
1743//   * InvalidRequestException
1744//   The request was invalid.
1745//
1746//   * ResourceNotFoundException
1747//   The resource was not found.
1748//
1749//   * ResourceInUseException
1750//   The resource is in use.
1751//
1752//   * ThrottlingException
1753//   The request could not be completed due to throttling.
1754//
1755//   * InternalFailureException
1756//   An internal failure occurred.
1757//
1758// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListTagsForResource
1759func (c *IoTEvents) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1760	req, out := c.ListTagsForResourceRequest(input)
1761	return out, req.Send()
1762}
1763
1764// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1765// the ability to pass a context and additional request options.
1766//
1767// See ListTagsForResource for details on how to use this API operation.
1768//
1769// The context must be non-nil and will be used for request cancellation. If
1770// the context is nil a panic will occur. In the future the SDK may create
1771// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1772// for more information on using Contexts.
1773func (c *IoTEvents) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1774	req, out := c.ListTagsForResourceRequest(input)
1775	req.SetContext(ctx)
1776	req.ApplyOptions(opts...)
1777	return out, req.Send()
1778}
1779
1780const opPutLoggingOptions = "PutLoggingOptions"
1781
1782// PutLoggingOptionsRequest generates a "aws/request.Request" representing the
1783// client's request for the PutLoggingOptions operation. The "output" return
1784// value will be populated with the request's response once the request completes
1785// successfully.
1786//
1787// Use "Send" method on the returned Request to send the API call to the service.
1788// the "output" return value is not valid until after Send returns without error.
1789//
1790// See PutLoggingOptions for more information on using the PutLoggingOptions
1791// API call, and error handling.
1792//
1793// This method is useful when you want to inject custom logic or configuration
1794// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1795//
1796//
1797//    // Example sending a request using the PutLoggingOptionsRequest method.
1798//    req, resp := client.PutLoggingOptionsRequest(params)
1799//
1800//    err := req.Send()
1801//    if err == nil { // resp is now filled
1802//        fmt.Println(resp)
1803//    }
1804//
1805// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/PutLoggingOptions
1806func (c *IoTEvents) PutLoggingOptionsRequest(input *PutLoggingOptionsInput) (req *request.Request, output *PutLoggingOptionsOutput) {
1807	op := &request.Operation{
1808		Name:       opPutLoggingOptions,
1809		HTTPMethod: "PUT",
1810		HTTPPath:   "/logging",
1811	}
1812
1813	if input == nil {
1814		input = &PutLoggingOptionsInput{}
1815	}
1816
1817	output = &PutLoggingOptionsOutput{}
1818	req = c.newRequest(op, input, output)
1819	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1820	return
1821}
1822
1823// PutLoggingOptions API operation for AWS IoT Events.
1824//
1825// Sets or updates the AWS IoT Events logging options.
1826//
1827// If you update the value of any loggingOptions field, it takes up to one minute
1828// for the change to take effect. If you change the policy attached to the role
1829// you specified in the roleArn field (for example, to correct an invalid policy),
1830// it takes up to five minutes for that change to take effect.
1831//
1832// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1833// with awserr.Error's Code and Message methods to get detailed information about
1834// the error.
1835//
1836// See the AWS API reference guide for AWS IoT Events's
1837// API operation PutLoggingOptions for usage and error information.
1838//
1839// Returned Error Types:
1840//   * InvalidRequestException
1841//   The request was invalid.
1842//
1843//   * ThrottlingException
1844//   The request could not be completed due to throttling.
1845//
1846//   * InternalFailureException
1847//   An internal failure occurred.
1848//
1849//   * ServiceUnavailableException
1850//   The service is currently unavailable.
1851//
1852//   * UnsupportedOperationException
1853//   The requested operation is not supported.
1854//
1855//   * ResourceInUseException
1856//   The resource is in use.
1857//
1858// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/PutLoggingOptions
1859func (c *IoTEvents) PutLoggingOptions(input *PutLoggingOptionsInput) (*PutLoggingOptionsOutput, error) {
1860	req, out := c.PutLoggingOptionsRequest(input)
1861	return out, req.Send()
1862}
1863
1864// PutLoggingOptionsWithContext is the same as PutLoggingOptions with the addition of
1865// the ability to pass a context and additional request options.
1866//
1867// See PutLoggingOptions for details on how to use this API operation.
1868//
1869// The context must be non-nil and will be used for request cancellation. If
1870// the context is nil a panic will occur. In the future the SDK may create
1871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1872// for more information on using Contexts.
1873func (c *IoTEvents) PutLoggingOptionsWithContext(ctx aws.Context, input *PutLoggingOptionsInput, opts ...request.Option) (*PutLoggingOptionsOutput, error) {
1874	req, out := c.PutLoggingOptionsRequest(input)
1875	req.SetContext(ctx)
1876	req.ApplyOptions(opts...)
1877	return out, req.Send()
1878}
1879
1880const opStartDetectorModelAnalysis = "StartDetectorModelAnalysis"
1881
1882// StartDetectorModelAnalysisRequest generates a "aws/request.Request" representing the
1883// client's request for the StartDetectorModelAnalysis operation. The "output" return
1884// value will be populated with the request's response once the request completes
1885// successfully.
1886//
1887// Use "Send" method on the returned Request to send the API call to the service.
1888// the "output" return value is not valid until after Send returns without error.
1889//
1890// See StartDetectorModelAnalysis for more information on using the StartDetectorModelAnalysis
1891// API call, and error handling.
1892//
1893// This method is useful when you want to inject custom logic or configuration
1894// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1895//
1896//
1897//    // Example sending a request using the StartDetectorModelAnalysisRequest method.
1898//    req, resp := client.StartDetectorModelAnalysisRequest(params)
1899//
1900//    err := req.Send()
1901//    if err == nil { // resp is now filled
1902//        fmt.Println(resp)
1903//    }
1904//
1905// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/StartDetectorModelAnalysis
1906func (c *IoTEvents) StartDetectorModelAnalysisRequest(input *StartDetectorModelAnalysisInput) (req *request.Request, output *StartDetectorModelAnalysisOutput) {
1907	op := &request.Operation{
1908		Name:       opStartDetectorModelAnalysis,
1909		HTTPMethod: "POST",
1910		HTTPPath:   "/analysis/detector-models/",
1911	}
1912
1913	if input == nil {
1914		input = &StartDetectorModelAnalysisInput{}
1915	}
1916
1917	output = &StartDetectorModelAnalysisOutput{}
1918	req = c.newRequest(op, input, output)
1919	return
1920}
1921
1922// StartDetectorModelAnalysis API operation for AWS IoT Events.
1923//
1924// Performs an analysis of your detector model. For more information, see Troubleshooting
1925// a detector model (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html)
1926// in the AWS IoT Events Developer Guide.
1927//
1928// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1929// with awserr.Error's Code and Message methods to get detailed information about
1930// the error.
1931//
1932// See the AWS API reference guide for AWS IoT Events's
1933// API operation StartDetectorModelAnalysis for usage and error information.
1934//
1935// Returned Error Types:
1936//   * InvalidRequestException
1937//   The request was invalid.
1938//
1939//   * LimitExceededException
1940//   A limit was exceeded.
1941//
1942//   * ThrottlingException
1943//   The request could not be completed due to throttling.
1944//
1945//   * InternalFailureException
1946//   An internal failure occurred.
1947//
1948//   * ServiceUnavailableException
1949//   The service is currently unavailable.
1950//
1951// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/StartDetectorModelAnalysis
1952func (c *IoTEvents) StartDetectorModelAnalysis(input *StartDetectorModelAnalysisInput) (*StartDetectorModelAnalysisOutput, error) {
1953	req, out := c.StartDetectorModelAnalysisRequest(input)
1954	return out, req.Send()
1955}
1956
1957// StartDetectorModelAnalysisWithContext is the same as StartDetectorModelAnalysis with the addition of
1958// the ability to pass a context and additional request options.
1959//
1960// See StartDetectorModelAnalysis for details on how to use this API operation.
1961//
1962// The context must be non-nil and will be used for request cancellation. If
1963// the context is nil a panic will occur. In the future the SDK may create
1964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1965// for more information on using Contexts.
1966func (c *IoTEvents) StartDetectorModelAnalysisWithContext(ctx aws.Context, input *StartDetectorModelAnalysisInput, opts ...request.Option) (*StartDetectorModelAnalysisOutput, error) {
1967	req, out := c.StartDetectorModelAnalysisRequest(input)
1968	req.SetContext(ctx)
1969	req.ApplyOptions(opts...)
1970	return out, req.Send()
1971}
1972
1973const opTagResource = "TagResource"
1974
1975// TagResourceRequest generates a "aws/request.Request" representing the
1976// client's request for the TagResource operation. The "output" return
1977// value will be populated with the request's response once the request completes
1978// successfully.
1979//
1980// Use "Send" method on the returned Request to send the API call to the service.
1981// the "output" return value is not valid until after Send returns without error.
1982//
1983// See TagResource for more information on using the TagResource
1984// API call, and error handling.
1985//
1986// This method is useful when you want to inject custom logic or configuration
1987// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1988//
1989//
1990//    // Example sending a request using the TagResourceRequest method.
1991//    req, resp := client.TagResourceRequest(params)
1992//
1993//    err := req.Send()
1994//    if err == nil { // resp is now filled
1995//        fmt.Println(resp)
1996//    }
1997//
1998// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/TagResource
1999func (c *IoTEvents) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2000	op := &request.Operation{
2001		Name:       opTagResource,
2002		HTTPMethod: "POST",
2003		HTTPPath:   "/tags",
2004	}
2005
2006	if input == nil {
2007		input = &TagResourceInput{}
2008	}
2009
2010	output = &TagResourceOutput{}
2011	req = c.newRequest(op, input, output)
2012	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2013	return
2014}
2015
2016// TagResource API operation for AWS IoT Events.
2017//
2018// Adds to or modifies the tags of the given resource. Tags are metadata that
2019// can be used to manage a resource.
2020//
2021// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2022// with awserr.Error's Code and Message methods to get detailed information about
2023// the error.
2024//
2025// See the AWS API reference guide for AWS IoT Events's
2026// API operation TagResource for usage and error information.
2027//
2028// Returned Error Types:
2029//   * InvalidRequestException
2030//   The request was invalid.
2031//
2032//   * ResourceNotFoundException
2033//   The resource was not found.
2034//
2035//   * ResourceInUseException
2036//   The resource is in use.
2037//
2038//   * ThrottlingException
2039//   The request could not be completed due to throttling.
2040//
2041//   * LimitExceededException
2042//   A limit was exceeded.
2043//
2044//   * InternalFailureException
2045//   An internal failure occurred.
2046//
2047// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/TagResource
2048func (c *IoTEvents) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2049	req, out := c.TagResourceRequest(input)
2050	return out, req.Send()
2051}
2052
2053// TagResourceWithContext is the same as TagResource with the addition of
2054// the ability to pass a context and additional request options.
2055//
2056// See TagResource for details on how to use this API operation.
2057//
2058// The context must be non-nil and will be used for request cancellation. If
2059// the context is nil a panic will occur. In the future the SDK may create
2060// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2061// for more information on using Contexts.
2062func (c *IoTEvents) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2063	req, out := c.TagResourceRequest(input)
2064	req.SetContext(ctx)
2065	req.ApplyOptions(opts...)
2066	return out, req.Send()
2067}
2068
2069const opUntagResource = "UntagResource"
2070
2071// UntagResourceRequest generates a "aws/request.Request" representing the
2072// client's request for the UntagResource operation. The "output" return
2073// value will be populated with the request's response once the request completes
2074// successfully.
2075//
2076// Use "Send" method on the returned Request to send the API call to the service.
2077// the "output" return value is not valid until after Send returns without error.
2078//
2079// See UntagResource for more information on using the UntagResource
2080// API call, and error handling.
2081//
2082// This method is useful when you want to inject custom logic or configuration
2083// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2084//
2085//
2086//    // Example sending a request using the UntagResourceRequest method.
2087//    req, resp := client.UntagResourceRequest(params)
2088//
2089//    err := req.Send()
2090//    if err == nil { // resp is now filled
2091//        fmt.Println(resp)
2092//    }
2093//
2094// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UntagResource
2095func (c *IoTEvents) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2096	op := &request.Operation{
2097		Name:       opUntagResource,
2098		HTTPMethod: "DELETE",
2099		HTTPPath:   "/tags",
2100	}
2101
2102	if input == nil {
2103		input = &UntagResourceInput{}
2104	}
2105
2106	output = &UntagResourceOutput{}
2107	req = c.newRequest(op, input, output)
2108	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2109	return
2110}
2111
2112// UntagResource API operation for AWS IoT Events.
2113//
2114// Removes the given tags (metadata) from the resource.
2115//
2116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2117// with awserr.Error's Code and Message methods to get detailed information about
2118// the error.
2119//
2120// See the AWS API reference guide for AWS IoT Events's
2121// API operation UntagResource for usage and error information.
2122//
2123// Returned Error Types:
2124//   * InvalidRequestException
2125//   The request was invalid.
2126//
2127//   * ResourceNotFoundException
2128//   The resource was not found.
2129//
2130//   * ResourceInUseException
2131//   The resource is in use.
2132//
2133//   * ThrottlingException
2134//   The request could not be completed due to throttling.
2135//
2136//   * InternalFailureException
2137//   An internal failure occurred.
2138//
2139// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UntagResource
2140func (c *IoTEvents) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2141	req, out := c.UntagResourceRequest(input)
2142	return out, req.Send()
2143}
2144
2145// UntagResourceWithContext is the same as UntagResource with the addition of
2146// the ability to pass a context and additional request options.
2147//
2148// See UntagResource for details on how to use this API operation.
2149//
2150// The context must be non-nil and will be used for request cancellation. If
2151// the context is nil a panic will occur. In the future the SDK may create
2152// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2153// for more information on using Contexts.
2154func (c *IoTEvents) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2155	req, out := c.UntagResourceRequest(input)
2156	req.SetContext(ctx)
2157	req.ApplyOptions(opts...)
2158	return out, req.Send()
2159}
2160
2161const opUpdateAlarmModel = "UpdateAlarmModel"
2162
2163// UpdateAlarmModelRequest generates a "aws/request.Request" representing the
2164// client's request for the UpdateAlarmModel operation. The "output" return
2165// value will be populated with the request's response once the request completes
2166// successfully.
2167//
2168// Use "Send" method on the returned Request to send the API call to the service.
2169// the "output" return value is not valid until after Send returns without error.
2170//
2171// See UpdateAlarmModel for more information on using the UpdateAlarmModel
2172// API call, and error handling.
2173//
2174// This method is useful when you want to inject custom logic or configuration
2175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2176//
2177//
2178//    // Example sending a request using the UpdateAlarmModelRequest method.
2179//    req, resp := client.UpdateAlarmModelRequest(params)
2180//
2181//    err := req.Send()
2182//    if err == nil { // resp is now filled
2183//        fmt.Println(resp)
2184//    }
2185//
2186// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateAlarmModel
2187func (c *IoTEvents) UpdateAlarmModelRequest(input *UpdateAlarmModelInput) (req *request.Request, output *UpdateAlarmModelOutput) {
2188	op := &request.Operation{
2189		Name:       opUpdateAlarmModel,
2190		HTTPMethod: "POST",
2191		HTTPPath:   "/alarm-models/{alarmModelName}",
2192	}
2193
2194	if input == nil {
2195		input = &UpdateAlarmModelInput{}
2196	}
2197
2198	output = &UpdateAlarmModelOutput{}
2199	req = c.newRequest(op, input, output)
2200	return
2201}
2202
2203// UpdateAlarmModel API operation for AWS IoT Events.
2204//
2205// Updates an alarm model. Any alarms that were created based on the previous
2206// version are deleted and then created again as new data arrives.
2207//
2208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2209// with awserr.Error's Code and Message methods to get detailed information about
2210// the error.
2211//
2212// See the AWS API reference guide for AWS IoT Events's
2213// API operation UpdateAlarmModel for usage and error information.
2214//
2215// Returned Error Types:
2216//   * InvalidRequestException
2217//   The request was invalid.
2218//
2219//   * ResourceInUseException
2220//   The resource is in use.
2221//
2222//   * ResourceNotFoundException
2223//   The resource was not found.
2224//
2225//   * ThrottlingException
2226//   The request could not be completed due to throttling.
2227//
2228//   * InternalFailureException
2229//   An internal failure occurred.
2230//
2231//   * ServiceUnavailableException
2232//   The service is currently unavailable.
2233//
2234// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateAlarmModel
2235func (c *IoTEvents) UpdateAlarmModel(input *UpdateAlarmModelInput) (*UpdateAlarmModelOutput, error) {
2236	req, out := c.UpdateAlarmModelRequest(input)
2237	return out, req.Send()
2238}
2239
2240// UpdateAlarmModelWithContext is the same as UpdateAlarmModel with the addition of
2241// the ability to pass a context and additional request options.
2242//
2243// See UpdateAlarmModel for details on how to use this API operation.
2244//
2245// The context must be non-nil and will be used for request cancellation. If
2246// the context is nil a panic will occur. In the future the SDK may create
2247// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2248// for more information on using Contexts.
2249func (c *IoTEvents) UpdateAlarmModelWithContext(ctx aws.Context, input *UpdateAlarmModelInput, opts ...request.Option) (*UpdateAlarmModelOutput, error) {
2250	req, out := c.UpdateAlarmModelRequest(input)
2251	req.SetContext(ctx)
2252	req.ApplyOptions(opts...)
2253	return out, req.Send()
2254}
2255
2256const opUpdateDetectorModel = "UpdateDetectorModel"
2257
2258// UpdateDetectorModelRequest generates a "aws/request.Request" representing the
2259// client's request for the UpdateDetectorModel operation. The "output" return
2260// value will be populated with the request's response once the request completes
2261// successfully.
2262//
2263// Use "Send" method on the returned Request to send the API call to the service.
2264// the "output" return value is not valid until after Send returns without error.
2265//
2266// See UpdateDetectorModel for more information on using the UpdateDetectorModel
2267// API call, and error handling.
2268//
2269// This method is useful when you want to inject custom logic or configuration
2270// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2271//
2272//
2273//    // Example sending a request using the UpdateDetectorModelRequest method.
2274//    req, resp := client.UpdateDetectorModelRequest(params)
2275//
2276//    err := req.Send()
2277//    if err == nil { // resp is now filled
2278//        fmt.Println(resp)
2279//    }
2280//
2281// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateDetectorModel
2282func (c *IoTEvents) UpdateDetectorModelRequest(input *UpdateDetectorModelInput) (req *request.Request, output *UpdateDetectorModelOutput) {
2283	op := &request.Operation{
2284		Name:       opUpdateDetectorModel,
2285		HTTPMethod: "POST",
2286		HTTPPath:   "/detector-models/{detectorModelName}",
2287	}
2288
2289	if input == nil {
2290		input = &UpdateDetectorModelInput{}
2291	}
2292
2293	output = &UpdateDetectorModelOutput{}
2294	req = c.newRequest(op, input, output)
2295	return
2296}
2297
2298// UpdateDetectorModel API operation for AWS IoT Events.
2299//
2300// Updates a detector model. Detectors (instances) spawned by the previous version
2301// are deleted and then re-created as new inputs arrive.
2302//
2303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2304// with awserr.Error's Code and Message methods to get detailed information about
2305// the error.
2306//
2307// See the AWS API reference guide for AWS IoT Events's
2308// API operation UpdateDetectorModel for usage and error information.
2309//
2310// Returned Error Types:
2311//   * InvalidRequestException
2312//   The request was invalid.
2313//
2314//   * ResourceInUseException
2315//   The resource is in use.
2316//
2317//   * ResourceNotFoundException
2318//   The resource was not found.
2319//
2320//   * ThrottlingException
2321//   The request could not be completed due to throttling.
2322//
2323//   * InternalFailureException
2324//   An internal failure occurred.
2325//
2326//   * ServiceUnavailableException
2327//   The service is currently unavailable.
2328//
2329// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateDetectorModel
2330func (c *IoTEvents) UpdateDetectorModel(input *UpdateDetectorModelInput) (*UpdateDetectorModelOutput, error) {
2331	req, out := c.UpdateDetectorModelRequest(input)
2332	return out, req.Send()
2333}
2334
2335// UpdateDetectorModelWithContext is the same as UpdateDetectorModel with the addition of
2336// the ability to pass a context and additional request options.
2337//
2338// See UpdateDetectorModel for details on how to use this API operation.
2339//
2340// The context must be non-nil and will be used for request cancellation. If
2341// the context is nil a panic will occur. In the future the SDK may create
2342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2343// for more information on using Contexts.
2344func (c *IoTEvents) UpdateDetectorModelWithContext(ctx aws.Context, input *UpdateDetectorModelInput, opts ...request.Option) (*UpdateDetectorModelOutput, error) {
2345	req, out := c.UpdateDetectorModelRequest(input)
2346	req.SetContext(ctx)
2347	req.ApplyOptions(opts...)
2348	return out, req.Send()
2349}
2350
2351const opUpdateInput = "UpdateInput"
2352
2353// UpdateInputRequest generates a "aws/request.Request" representing the
2354// client's request for the UpdateInput operation. The "output" return
2355// value will be populated with the request's response once the request completes
2356// successfully.
2357//
2358// Use "Send" method on the returned Request to send the API call to the service.
2359// the "output" return value is not valid until after Send returns without error.
2360//
2361// See UpdateInput for more information on using the UpdateInput
2362// API call, and error handling.
2363//
2364// This method is useful when you want to inject custom logic or configuration
2365// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2366//
2367//
2368//    // Example sending a request using the UpdateInputRequest method.
2369//    req, resp := client.UpdateInputRequest(params)
2370//
2371//    err := req.Send()
2372//    if err == nil { // resp is now filled
2373//        fmt.Println(resp)
2374//    }
2375//
2376// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateInput
2377func (c *IoTEvents) UpdateInputRequest(input *UpdateInputInput) (req *request.Request, output *UpdateInputOutput) {
2378	op := &request.Operation{
2379		Name:       opUpdateInput,
2380		HTTPMethod: "PUT",
2381		HTTPPath:   "/inputs/{inputName}",
2382	}
2383
2384	if input == nil {
2385		input = &UpdateInputInput{}
2386	}
2387
2388	output = &UpdateInputOutput{}
2389	req = c.newRequest(op, input, output)
2390	return
2391}
2392
2393// UpdateInput API operation for AWS IoT Events.
2394//
2395// Updates an input.
2396//
2397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2398// with awserr.Error's Code and Message methods to get detailed information about
2399// the error.
2400//
2401// See the AWS API reference guide for AWS IoT Events's
2402// API operation UpdateInput for usage and error information.
2403//
2404// Returned Error Types:
2405//   * InvalidRequestException
2406//   The request was invalid.
2407//
2408//   * ThrottlingException
2409//   The request could not be completed due to throttling.
2410//
2411//   * ResourceNotFoundException
2412//   The resource was not found.
2413//
2414//   * InternalFailureException
2415//   An internal failure occurred.
2416//
2417//   * ServiceUnavailableException
2418//   The service is currently unavailable.
2419//
2420//   * ResourceInUseException
2421//   The resource is in use.
2422//
2423// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateInput
2424func (c *IoTEvents) UpdateInput(input *UpdateInputInput) (*UpdateInputOutput, error) {
2425	req, out := c.UpdateInputRequest(input)
2426	return out, req.Send()
2427}
2428
2429// UpdateInputWithContext is the same as UpdateInput with the addition of
2430// the ability to pass a context and additional request options.
2431//
2432// See UpdateInput for details on how to use this API operation.
2433//
2434// The context must be non-nil and will be used for request cancellation. If
2435// the context is nil a panic will occur. In the future the SDK may create
2436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2437// for more information on using Contexts.
2438func (c *IoTEvents) UpdateInputWithContext(ctx aws.Context, input *UpdateInputInput, opts ...request.Option) (*UpdateInputOutput, error) {
2439	req, out := c.UpdateInputRequest(input)
2440	req.SetContext(ctx)
2441	req.ApplyOptions(opts...)
2442	return out, req.Send()
2443}
2444
2445// Specifies whether to get notified for alarm state changes.
2446type AcknowledgeFlow struct {
2447	_ struct{} `type:"structure"`
2448
2449	// The value must be TRUE or FALSE. If TRUE, you receive a notification when
2450	// the alarm state changes. You must choose to acknowledge the notification
2451	// before the alarm state can return to NORMAL. If FALSE, you won't receive
2452	// notifications. The alarm automatically changes to the NORMAL state when the
2453	// input property value returns to the specified range.
2454	//
2455	// Enabled is a required field
2456	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
2457}
2458
2459// String returns the string representation.
2460//
2461// API parameter values that are decorated as "sensitive" in the API will not
2462// be included in the string output. The member name will be present, but the
2463// value will be replaced with "sensitive".
2464func (s AcknowledgeFlow) String() string {
2465	return awsutil.Prettify(s)
2466}
2467
2468// GoString returns the string representation.
2469//
2470// API parameter values that are decorated as "sensitive" in the API will not
2471// be included in the string output. The member name will be present, but the
2472// value will be replaced with "sensitive".
2473func (s AcknowledgeFlow) GoString() string {
2474	return s.String()
2475}
2476
2477// Validate inspects the fields of the type to determine if they are valid.
2478func (s *AcknowledgeFlow) Validate() error {
2479	invalidParams := request.ErrInvalidParams{Context: "AcknowledgeFlow"}
2480	if s.Enabled == nil {
2481		invalidParams.Add(request.NewErrParamRequired("Enabled"))
2482	}
2483
2484	if invalidParams.Len() > 0 {
2485		return invalidParams
2486	}
2487	return nil
2488}
2489
2490// SetEnabled sets the Enabled field's value.
2491func (s *AcknowledgeFlow) SetEnabled(v bool) *AcknowledgeFlow {
2492	s.Enabled = &v
2493	return s
2494}
2495
2496// Sends an AWS IoT Events input, passing in information about the detector
2497// model instance and the event that triggered the action.
2498type Action struct {
2499	_ struct{} `type:"structure"`
2500
2501	// The name of the AWS IoT Events input where the data is sent.
2502	//
2503	// InputName is a required field
2504	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
2505
2506	// You can configure the action payload when you send a message to an AWS IoT
2507	// Events input.
2508	Payload *Payload `locationName:"payload" type:"structure"`
2509}
2510
2511// String returns the string representation.
2512//
2513// API parameter values that are decorated as "sensitive" in the API will not
2514// be included in the string output. The member name will be present, but the
2515// value will be replaced with "sensitive".
2516func (s Action) String() string {
2517	return awsutil.Prettify(s)
2518}
2519
2520// GoString returns the string representation.
2521//
2522// API parameter values that are decorated as "sensitive" in the API will not
2523// be included in the string output. The member name will be present, but the
2524// value will be replaced with "sensitive".
2525func (s Action) GoString() string {
2526	return s.String()
2527}
2528
2529// Validate inspects the fields of the type to determine if they are valid.
2530func (s *Action) Validate() error {
2531	invalidParams := request.ErrInvalidParams{Context: "Action"}
2532	if s.InputName == nil {
2533		invalidParams.Add(request.NewErrParamRequired("InputName"))
2534	}
2535	if s.InputName != nil && len(*s.InputName) < 1 {
2536		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
2537	}
2538	if s.Payload != nil {
2539		if err := s.Payload.Validate(); err != nil {
2540			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
2541		}
2542	}
2543
2544	if invalidParams.Len() > 0 {
2545		return invalidParams
2546	}
2547	return nil
2548}
2549
2550// SetInputName sets the InputName field's value.
2551func (s *Action) SetInputName(v string) *Action {
2552	s.InputName = &v
2553	return s
2554}
2555
2556// SetPayload sets the Payload field's value.
2557func (s *Action) SetPayload(v *Payload) *Action {
2558	s.Payload = v
2559	return s
2560}
2561
2562// An action to be performed when the condition is TRUE.
2563type ActionData struct {
2564	_ struct{} `type:"structure"`
2565
2566	// Information needed to clear the timer.
2567	ClearTimer *ClearTimerAction `locationName:"clearTimer" type:"structure"`
2568
2569	// Writes to the DynamoDB table that you created. The default action payload
2570	// contains all attribute-value pairs that have the information about the detector
2571	// model instance and the event that triggered the action. You can customize
2572	// the payload (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html).
2573	// One column of the DynamoDB table receives all attribute-value pairs in the
2574	// payload that you specify. For more information, see Actions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html)
2575	// in AWS IoT Events Developer Guide.
2576	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
2577
2578	// Writes to the DynamoDB table that you created. The default action payload
2579	// contains all attribute-value pairs that have the information about the detector
2580	// model instance and the event that triggered the action. You can customize
2581	// the payload (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html).
2582	// A separate column of the DynamoDB table receives one attribute-value pair
2583	// in the payload that you specify. For more information, see Actions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html)
2584	// in AWS IoT Events Developer Guide.
2585	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
2586
2587	// Sends information about the detector model instance and the event that triggered
2588	// the action to an Amazon Kinesis Data Firehose delivery stream.
2589	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
2590
2591	// Sends AWS IoT Events input, which passes information about the detector model
2592	// instance and the event that triggered the action.
2593	IotEvents *Action `locationName:"iotEvents" type:"structure"`
2594
2595	// Sends information about the detector model instance and the event that triggered
2596	// the action to an asset property in AWS IoT SiteWise .
2597	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
2598
2599	// Publishes an MQTT message with the given topic to the AWS IoT message broker.
2600	IotTopicPublish *IotTopicPublishAction `locationName:"iotTopicPublish" type:"structure"`
2601
2602	// Calls a Lambda function, passing in information about the detector model
2603	// instance and the event that triggered the action.
2604	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
2605
2606	// Information needed to reset the timer.
2607	ResetTimer *ResetTimerAction `locationName:"resetTimer" type:"structure"`
2608
2609	// Information needed to set the timer.
2610	SetTimer *SetTimerAction `locationName:"setTimer" type:"structure"`
2611
2612	// Sets a variable to a specified value.
2613	SetVariable *SetVariableAction `locationName:"setVariable" type:"structure"`
2614
2615	// Sends an Amazon SNS message.
2616	Sns *SNSTopicPublishAction `locationName:"sns" type:"structure"`
2617
2618	// Sends information about the detector model instance and the event that triggered
2619	// the action to an Amazon SQS queue.
2620	Sqs *SqsAction `locationName:"sqs" type:"structure"`
2621}
2622
2623// String returns the string representation.
2624//
2625// API parameter values that are decorated as "sensitive" in the API will not
2626// be included in the string output. The member name will be present, but the
2627// value will be replaced with "sensitive".
2628func (s ActionData) String() string {
2629	return awsutil.Prettify(s)
2630}
2631
2632// GoString returns the string representation.
2633//
2634// API parameter values that are decorated as "sensitive" in the API will not
2635// be included in the string output. The member name will be present, but the
2636// value will be replaced with "sensitive".
2637func (s ActionData) GoString() string {
2638	return s.String()
2639}
2640
2641// Validate inspects the fields of the type to determine if they are valid.
2642func (s *ActionData) Validate() error {
2643	invalidParams := request.ErrInvalidParams{Context: "ActionData"}
2644	if s.ClearTimer != nil {
2645		if err := s.ClearTimer.Validate(); err != nil {
2646			invalidParams.AddNested("ClearTimer", err.(request.ErrInvalidParams))
2647		}
2648	}
2649	if s.DynamoDB != nil {
2650		if err := s.DynamoDB.Validate(); err != nil {
2651			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
2652		}
2653	}
2654	if s.DynamoDBv2 != nil {
2655		if err := s.DynamoDBv2.Validate(); err != nil {
2656			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
2657		}
2658	}
2659	if s.Firehose != nil {
2660		if err := s.Firehose.Validate(); err != nil {
2661			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
2662		}
2663	}
2664	if s.IotEvents != nil {
2665		if err := s.IotEvents.Validate(); err != nil {
2666			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
2667		}
2668	}
2669	if s.IotSiteWise != nil {
2670		if err := s.IotSiteWise.Validate(); err != nil {
2671			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
2672		}
2673	}
2674	if s.IotTopicPublish != nil {
2675		if err := s.IotTopicPublish.Validate(); err != nil {
2676			invalidParams.AddNested("IotTopicPublish", err.(request.ErrInvalidParams))
2677		}
2678	}
2679	if s.Lambda != nil {
2680		if err := s.Lambda.Validate(); err != nil {
2681			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
2682		}
2683	}
2684	if s.ResetTimer != nil {
2685		if err := s.ResetTimer.Validate(); err != nil {
2686			invalidParams.AddNested("ResetTimer", err.(request.ErrInvalidParams))
2687		}
2688	}
2689	if s.SetTimer != nil {
2690		if err := s.SetTimer.Validate(); err != nil {
2691			invalidParams.AddNested("SetTimer", err.(request.ErrInvalidParams))
2692		}
2693	}
2694	if s.SetVariable != nil {
2695		if err := s.SetVariable.Validate(); err != nil {
2696			invalidParams.AddNested("SetVariable", err.(request.ErrInvalidParams))
2697		}
2698	}
2699	if s.Sns != nil {
2700		if err := s.Sns.Validate(); err != nil {
2701			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
2702		}
2703	}
2704	if s.Sqs != nil {
2705		if err := s.Sqs.Validate(); err != nil {
2706			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
2707		}
2708	}
2709
2710	if invalidParams.Len() > 0 {
2711		return invalidParams
2712	}
2713	return nil
2714}
2715
2716// SetClearTimer sets the ClearTimer field's value.
2717func (s *ActionData) SetClearTimer(v *ClearTimerAction) *ActionData {
2718	s.ClearTimer = v
2719	return s
2720}
2721
2722// SetDynamoDB sets the DynamoDB field's value.
2723func (s *ActionData) SetDynamoDB(v *DynamoDBAction) *ActionData {
2724	s.DynamoDB = v
2725	return s
2726}
2727
2728// SetDynamoDBv2 sets the DynamoDBv2 field's value.
2729func (s *ActionData) SetDynamoDBv2(v *DynamoDBv2Action) *ActionData {
2730	s.DynamoDBv2 = v
2731	return s
2732}
2733
2734// SetFirehose sets the Firehose field's value.
2735func (s *ActionData) SetFirehose(v *FirehoseAction) *ActionData {
2736	s.Firehose = v
2737	return s
2738}
2739
2740// SetIotEvents sets the IotEvents field's value.
2741func (s *ActionData) SetIotEvents(v *Action) *ActionData {
2742	s.IotEvents = v
2743	return s
2744}
2745
2746// SetIotSiteWise sets the IotSiteWise field's value.
2747func (s *ActionData) SetIotSiteWise(v *IotSiteWiseAction) *ActionData {
2748	s.IotSiteWise = v
2749	return s
2750}
2751
2752// SetIotTopicPublish sets the IotTopicPublish field's value.
2753func (s *ActionData) SetIotTopicPublish(v *IotTopicPublishAction) *ActionData {
2754	s.IotTopicPublish = v
2755	return s
2756}
2757
2758// SetLambda sets the Lambda field's value.
2759func (s *ActionData) SetLambda(v *LambdaAction) *ActionData {
2760	s.Lambda = v
2761	return s
2762}
2763
2764// SetResetTimer sets the ResetTimer field's value.
2765func (s *ActionData) SetResetTimer(v *ResetTimerAction) *ActionData {
2766	s.ResetTimer = v
2767	return s
2768}
2769
2770// SetSetTimer sets the SetTimer field's value.
2771func (s *ActionData) SetSetTimer(v *SetTimerAction) *ActionData {
2772	s.SetTimer = v
2773	return s
2774}
2775
2776// SetSetVariable sets the SetVariable field's value.
2777func (s *ActionData) SetSetVariable(v *SetVariableAction) *ActionData {
2778	s.SetVariable = v
2779	return s
2780}
2781
2782// SetSns sets the Sns field's value.
2783func (s *ActionData) SetSns(v *SNSTopicPublishAction) *ActionData {
2784	s.Sns = v
2785	return s
2786}
2787
2788// SetSqs sets the Sqs field's value.
2789func (s *ActionData) SetSqs(v *SqsAction) *ActionData {
2790	s.Sqs = v
2791	return s
2792}
2793
2794// Specifies one of the following actions to receive notifications when the
2795// alarm state changes.
2796type AlarmAction struct {
2797	_ struct{} `type:"structure"`
2798
2799	// Defines an action to write to the Amazon DynamoDB table that you created.
2800	// The standard action payload contains all the information about the detector
2801	// model instance and the event that triggered the action. You can customize
2802	// the payload (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html).
2803	// One column of the DynamoDB table receives all attribute-value pairs in the
2804	// payload that you specify.
2805	//
2806	// You must use expressions for all parameters in DynamoDBAction. The expressions
2807	// accept literals, operators, functions, references, and substitution templates.
2808	//
2809	// Examples
2810	//
2811	//    * For literal values, the expressions must contain single quotes. For
2812	//    example, the value for the hashKeyType parameter can be 'STRING'.
2813	//
2814	//    * For references, you must specify either variables or input values. For
2815	//    example, the value for the hashKeyField parameter can be $input.GreenhouseInput.name.
2816	//
2817	//    * For a substitution template, you must use ${}, and the template must
2818	//    be in single quotes. A substitution template can also contain a combination
2819	//    of literals, operators, functions, references, and substitution templates.
2820	//    In the following example, the value for the hashKeyValue parameter uses
2821	//    a substitution template. '${$input.GreenhouseInput.temperature * 6 / 5
2822	//    + 32} in Fahrenheit'
2823	//
2824	//    * For a string concatenation, you must use +. A string concatenation can
2825	//    also contain a combination of literals, operators, functions, references,
2826	//    and substitution templates. In the following example, the value for the
2827	//    tableName parameter uses a string concatenation. 'GreenhouseTemperatureTable
2828	//    ' + $input.GreenhouseInput.date
2829	//
2830	// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
2831	// in the AWS IoT Events Developer Guide.
2832	//
2833	// If the defined payload type is a string, DynamoDBAction writes non-JSON data
2834	// to the DynamoDB table as binary data. The DynamoDB console displays the data
2835	// as Base64-encoded text. The value for the payloadField parameter is <payload-field>_raw.
2836	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
2837
2838	// Defines an action to write to the Amazon DynamoDB table that you created.
2839	// The default action payload contains all the information about the detector
2840	// model instance and the event that triggered the action. You can customize
2841	// the payload (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html).
2842	// A separate column of the DynamoDB table receives one attribute-value pair
2843	// in the payload that you specify.
2844	//
2845	// You must use expressions for all parameters in DynamoDBv2Action. The expressions
2846	// accept literals, operators, functions, references, and substitution templates.
2847	//
2848	// Examples
2849	//
2850	//    * For literal values, the expressions must contain single quotes. For
2851	//    example, the value for the tableName parameter can be 'GreenhouseTemperatureTable'.
2852	//
2853	//    * For references, you must specify either variables or input values. For
2854	//    example, the value for the tableName parameter can be $variable.ddbtableName.
2855	//
2856	//    * For a substitution template, you must use ${}, and the template must
2857	//    be in single quotes. A substitution template can also contain a combination
2858	//    of literals, operators, functions, references, and substitution templates.
2859	//    In the following example, the value for the contentExpression parameter
2860	//    in Payload uses a substitution template. '{\"sensorID\": \"${$input.GreenhouseInput.sensor_id}\",
2861	//    \"temperature\": \"${$input.GreenhouseInput.temperature * 9 / 5 + 32}\"}'
2862	//
2863	//    * For a string concatenation, you must use +. A string concatenation can
2864	//    also contain a combination of literals, operators, functions, references,
2865	//    and substitution templates. In the following example, the value for the
2866	//    tableName parameter uses a string concatenation. 'GreenhouseTemperatureTable
2867	//    ' + $input.GreenhouseInput.date
2868	//
2869	// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
2870	// in the AWS IoT Events Developer Guide.
2871	//
2872	// The value for the type parameter in Payload must be JSON.
2873	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
2874
2875	// Sends information about the detector model instance and the event that triggered
2876	// the action to an Amazon Kinesis Data Firehose delivery stream.
2877	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
2878
2879	// Sends an AWS IoT Events input, passing in information about the detector
2880	// model instance and the event that triggered the action.
2881	IotEvents *Action `locationName:"iotEvents" type:"structure"`
2882
2883	// Sends information about the detector model instance and the event that triggered
2884	// the action to a specified asset property in AWS IoT SiteWise.
2885	//
2886	// You must use expressions for all parameters in IotSiteWiseAction. The expressions
2887	// accept literals, operators, functions, references, and substitutions templates.
2888	//
2889	// Examples
2890	//
2891	//    * For literal values, the expressions must contain single quotes. For
2892	//    example, the value for the propertyAlias parameter can be '/company/windfarm/3/turbine/7/temperature'.
2893	//
2894	//    * For references, you must specify either variables or input values. For
2895	//    example, the value for the assetId parameter can be $input.TurbineInput.assetId1.
2896	//
2897	//    * For a substitution template, you must use ${}, and the template must
2898	//    be in single quotes. A substitution template can also contain a combination
2899	//    of literals, operators, functions, references, and substitution templates.
2900	//    In the following example, the value for the propertyAlias parameter uses
2901	//    a substitution template. 'company/windfarm/${$input.TemperatureInput.sensorData.windfarmID}/turbine/
2902	//    ${$input.TemperatureInput.sensorData.turbineID}/temperature'
2903	//
2904	// You must specify either propertyAlias or both assetId and propertyId to identify
2905	// the target asset property in AWS IoT SiteWise.
2906	//
2907	// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
2908	// in the AWS IoT Events Developer Guide.
2909	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
2910
2911	// Information required to publish the MQTT message through the AWS IoT message
2912	// broker.
2913	IotTopicPublish *IotTopicPublishAction `locationName:"iotTopicPublish" type:"structure"`
2914
2915	// Calls a Lambda function, passing in information about the detector model
2916	// instance and the event that triggered the action.
2917	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
2918
2919	// Information required to publish the Amazon SNS message.
2920	Sns *SNSTopicPublishAction `locationName:"sns" type:"structure"`
2921
2922	// Sends information about the detector model instance and the event that triggered
2923	// the action to an Amazon SQS queue.
2924	Sqs *SqsAction `locationName:"sqs" type:"structure"`
2925}
2926
2927// String returns the string representation.
2928//
2929// API parameter values that are decorated as "sensitive" in the API will not
2930// be included in the string output. The member name will be present, but the
2931// value will be replaced with "sensitive".
2932func (s AlarmAction) String() string {
2933	return awsutil.Prettify(s)
2934}
2935
2936// GoString returns the string representation.
2937//
2938// API parameter values that are decorated as "sensitive" in the API will not
2939// be included in the string output. The member name will be present, but the
2940// value will be replaced with "sensitive".
2941func (s AlarmAction) GoString() string {
2942	return s.String()
2943}
2944
2945// Validate inspects the fields of the type to determine if they are valid.
2946func (s *AlarmAction) Validate() error {
2947	invalidParams := request.ErrInvalidParams{Context: "AlarmAction"}
2948	if s.DynamoDB != nil {
2949		if err := s.DynamoDB.Validate(); err != nil {
2950			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
2951		}
2952	}
2953	if s.DynamoDBv2 != nil {
2954		if err := s.DynamoDBv2.Validate(); err != nil {
2955			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
2956		}
2957	}
2958	if s.Firehose != nil {
2959		if err := s.Firehose.Validate(); err != nil {
2960			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
2961		}
2962	}
2963	if s.IotEvents != nil {
2964		if err := s.IotEvents.Validate(); err != nil {
2965			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
2966		}
2967	}
2968	if s.IotSiteWise != nil {
2969		if err := s.IotSiteWise.Validate(); err != nil {
2970			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
2971		}
2972	}
2973	if s.IotTopicPublish != nil {
2974		if err := s.IotTopicPublish.Validate(); err != nil {
2975			invalidParams.AddNested("IotTopicPublish", err.(request.ErrInvalidParams))
2976		}
2977	}
2978	if s.Lambda != nil {
2979		if err := s.Lambda.Validate(); err != nil {
2980			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
2981		}
2982	}
2983	if s.Sns != nil {
2984		if err := s.Sns.Validate(); err != nil {
2985			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
2986		}
2987	}
2988	if s.Sqs != nil {
2989		if err := s.Sqs.Validate(); err != nil {
2990			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
2991		}
2992	}
2993
2994	if invalidParams.Len() > 0 {
2995		return invalidParams
2996	}
2997	return nil
2998}
2999
3000// SetDynamoDB sets the DynamoDB field's value.
3001func (s *AlarmAction) SetDynamoDB(v *DynamoDBAction) *AlarmAction {
3002	s.DynamoDB = v
3003	return s
3004}
3005
3006// SetDynamoDBv2 sets the DynamoDBv2 field's value.
3007func (s *AlarmAction) SetDynamoDBv2(v *DynamoDBv2Action) *AlarmAction {
3008	s.DynamoDBv2 = v
3009	return s
3010}
3011
3012// SetFirehose sets the Firehose field's value.
3013func (s *AlarmAction) SetFirehose(v *FirehoseAction) *AlarmAction {
3014	s.Firehose = v
3015	return s
3016}
3017
3018// SetIotEvents sets the IotEvents field's value.
3019func (s *AlarmAction) SetIotEvents(v *Action) *AlarmAction {
3020	s.IotEvents = v
3021	return s
3022}
3023
3024// SetIotSiteWise sets the IotSiteWise field's value.
3025func (s *AlarmAction) SetIotSiteWise(v *IotSiteWiseAction) *AlarmAction {
3026	s.IotSiteWise = v
3027	return s
3028}
3029
3030// SetIotTopicPublish sets the IotTopicPublish field's value.
3031func (s *AlarmAction) SetIotTopicPublish(v *IotTopicPublishAction) *AlarmAction {
3032	s.IotTopicPublish = v
3033	return s
3034}
3035
3036// SetLambda sets the Lambda field's value.
3037func (s *AlarmAction) SetLambda(v *LambdaAction) *AlarmAction {
3038	s.Lambda = v
3039	return s
3040}
3041
3042// SetSns sets the Sns field's value.
3043func (s *AlarmAction) SetSns(v *SNSTopicPublishAction) *AlarmAction {
3044	s.Sns = v
3045	return s
3046}
3047
3048// SetSqs sets the Sqs field's value.
3049func (s *AlarmAction) SetSqs(v *SqsAction) *AlarmAction {
3050	s.Sqs = v
3051	return s
3052}
3053
3054// Contains the configuration information of alarm state changes.
3055type AlarmCapabilities struct {
3056	_ struct{} `type:"structure"`
3057
3058	// Specifies whether to get notified for alarm state changes.
3059	AcknowledgeFlow *AcknowledgeFlow `locationName:"acknowledgeFlow" type:"structure"`
3060
3061	// Specifies the default alarm state. The configuration applies to all alarms
3062	// that were created based on this alarm model.
3063	InitializationConfiguration *InitializationConfiguration `locationName:"initializationConfiguration" type:"structure"`
3064}
3065
3066// String returns the string representation.
3067//
3068// API parameter values that are decorated as "sensitive" in the API will not
3069// be included in the string output. The member name will be present, but the
3070// value will be replaced with "sensitive".
3071func (s AlarmCapabilities) String() string {
3072	return awsutil.Prettify(s)
3073}
3074
3075// GoString returns the string representation.
3076//
3077// API parameter values that are decorated as "sensitive" in the API will not
3078// be included in the string output. The member name will be present, but the
3079// value will be replaced with "sensitive".
3080func (s AlarmCapabilities) GoString() string {
3081	return s.String()
3082}
3083
3084// Validate inspects the fields of the type to determine if they are valid.
3085func (s *AlarmCapabilities) Validate() error {
3086	invalidParams := request.ErrInvalidParams{Context: "AlarmCapabilities"}
3087	if s.AcknowledgeFlow != nil {
3088		if err := s.AcknowledgeFlow.Validate(); err != nil {
3089			invalidParams.AddNested("AcknowledgeFlow", err.(request.ErrInvalidParams))
3090		}
3091	}
3092	if s.InitializationConfiguration != nil {
3093		if err := s.InitializationConfiguration.Validate(); err != nil {
3094			invalidParams.AddNested("InitializationConfiguration", err.(request.ErrInvalidParams))
3095		}
3096	}
3097
3098	if invalidParams.Len() > 0 {
3099		return invalidParams
3100	}
3101	return nil
3102}
3103
3104// SetAcknowledgeFlow sets the AcknowledgeFlow field's value.
3105func (s *AlarmCapabilities) SetAcknowledgeFlow(v *AcknowledgeFlow) *AlarmCapabilities {
3106	s.AcknowledgeFlow = v
3107	return s
3108}
3109
3110// SetInitializationConfiguration sets the InitializationConfiguration field's value.
3111func (s *AlarmCapabilities) SetInitializationConfiguration(v *InitializationConfiguration) *AlarmCapabilities {
3112	s.InitializationConfiguration = v
3113	return s
3114}
3115
3116// Contains information about one or more alarm actions.
3117type AlarmEventActions struct {
3118	_ struct{} `type:"structure"`
3119
3120	// Specifies one or more supported actions to receive notifications when the
3121	// alarm state changes.
3122	AlarmActions []*AlarmAction `locationName:"alarmActions" type:"list"`
3123}
3124
3125// String returns the string representation.
3126//
3127// API parameter values that are decorated as "sensitive" in the API will not
3128// be included in the string output. The member name will be present, but the
3129// value will be replaced with "sensitive".
3130func (s AlarmEventActions) String() string {
3131	return awsutil.Prettify(s)
3132}
3133
3134// GoString returns the string representation.
3135//
3136// API parameter values that are decorated as "sensitive" in the API will not
3137// be included in the string output. The member name will be present, but the
3138// value will be replaced with "sensitive".
3139func (s AlarmEventActions) GoString() string {
3140	return s.String()
3141}
3142
3143// Validate inspects the fields of the type to determine if they are valid.
3144func (s *AlarmEventActions) Validate() error {
3145	invalidParams := request.ErrInvalidParams{Context: "AlarmEventActions"}
3146	if s.AlarmActions != nil {
3147		for i, v := range s.AlarmActions {
3148			if v == nil {
3149				continue
3150			}
3151			if err := v.Validate(); err != nil {
3152				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlarmActions", i), err.(request.ErrInvalidParams))
3153			}
3154		}
3155	}
3156
3157	if invalidParams.Len() > 0 {
3158		return invalidParams
3159	}
3160	return nil
3161}
3162
3163// SetAlarmActions sets the AlarmActions field's value.
3164func (s *AlarmEventActions) SetAlarmActions(v []*AlarmAction) *AlarmEventActions {
3165	s.AlarmActions = v
3166	return s
3167}
3168
3169// Contains a summary of an alarm model.
3170type AlarmModelSummary struct {
3171	_ struct{} `type:"structure"`
3172
3173	// The description of the alarm model.
3174	AlarmModelDescription *string `locationName:"alarmModelDescription" type:"string"`
3175
3176	// The name of the alarm model.
3177	AlarmModelName *string `locationName:"alarmModelName" min:"1" type:"string"`
3178
3179	// The time the alarm model was created, in the Unix epoch format.
3180	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
3181}
3182
3183// String returns the string representation.
3184//
3185// API parameter values that are decorated as "sensitive" in the API will not
3186// be included in the string output. The member name will be present, but the
3187// value will be replaced with "sensitive".
3188func (s AlarmModelSummary) String() string {
3189	return awsutil.Prettify(s)
3190}
3191
3192// GoString returns the string representation.
3193//
3194// API parameter values that are decorated as "sensitive" in the API will not
3195// be included in the string output. The member name will be present, but the
3196// value will be replaced with "sensitive".
3197func (s AlarmModelSummary) GoString() string {
3198	return s.String()
3199}
3200
3201// SetAlarmModelDescription sets the AlarmModelDescription field's value.
3202func (s *AlarmModelSummary) SetAlarmModelDescription(v string) *AlarmModelSummary {
3203	s.AlarmModelDescription = &v
3204	return s
3205}
3206
3207// SetAlarmModelName sets the AlarmModelName field's value.
3208func (s *AlarmModelSummary) SetAlarmModelName(v string) *AlarmModelSummary {
3209	s.AlarmModelName = &v
3210	return s
3211}
3212
3213// SetCreationTime sets the CreationTime field's value.
3214func (s *AlarmModelSummary) SetCreationTime(v time.Time) *AlarmModelSummary {
3215	s.CreationTime = &v
3216	return s
3217}
3218
3219// Contains a summary of an alarm model version.
3220type AlarmModelVersionSummary struct {
3221	_ struct{} `type:"structure"`
3222
3223	// The ARN of the alarm model. For more information, see Amazon Resource Names
3224	// (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
3225	// in the AWS General Reference.
3226	AlarmModelArn *string `locationName:"alarmModelArn" type:"string"`
3227
3228	// The name of the alarm model.
3229	AlarmModelName *string `locationName:"alarmModelName" min:"1" type:"string"`
3230
3231	// The version of the alarm model.
3232	AlarmModelVersion *string `locationName:"alarmModelVersion" min:"1" type:"string"`
3233
3234	// The time the alarm model was created, in the Unix epoch format.
3235	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
3236
3237	// The time the alarm model was last updated, in the Unix epoch format.
3238	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
3239
3240	// The ARN of the IAM role that allows the alarm to perform actions and access
3241	// AWS resources. For more information, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
3242	// in the AWS General Reference.
3243	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
3244
3245	// The status of the alarm model. The status can be one of the following values:
3246	//
3247	//    * ACTIVE - The alarm model is active and it's ready to evaluate data.
3248	//
3249	//    * ACTIVATING - AWS IoT Events is activating your alarm model. Activating
3250	//    an alarm model can take up to a few minutes.
3251	//
3252	//    * INACTIVE - The alarm model is inactive, so it isn't ready to evaluate
3253	//    data. Check your alarm model information and update the alarm model.
3254	//
3255	//    * FAILED - You couldn't create or update the alarm model. Check your alarm
3256	//    model information and try again.
3257	Status *string `locationName:"status" type:"string" enum:"AlarmModelVersionStatus"`
3258
3259	// Contains information about the status of the alarm model version.
3260	StatusMessage *string `locationName:"statusMessage" type:"string"`
3261}
3262
3263// String returns the string representation.
3264//
3265// API parameter values that are decorated as "sensitive" in the API will not
3266// be included in the string output. The member name will be present, but the
3267// value will be replaced with "sensitive".
3268func (s AlarmModelVersionSummary) String() string {
3269	return awsutil.Prettify(s)
3270}
3271
3272// GoString returns the string representation.
3273//
3274// API parameter values that are decorated as "sensitive" in the API will not
3275// be included in the string output. The member name will be present, but the
3276// value will be replaced with "sensitive".
3277func (s AlarmModelVersionSummary) GoString() string {
3278	return s.String()
3279}
3280
3281// SetAlarmModelArn sets the AlarmModelArn field's value.
3282func (s *AlarmModelVersionSummary) SetAlarmModelArn(v string) *AlarmModelVersionSummary {
3283	s.AlarmModelArn = &v
3284	return s
3285}
3286
3287// SetAlarmModelName sets the AlarmModelName field's value.
3288func (s *AlarmModelVersionSummary) SetAlarmModelName(v string) *AlarmModelVersionSummary {
3289	s.AlarmModelName = &v
3290	return s
3291}
3292
3293// SetAlarmModelVersion sets the AlarmModelVersion field's value.
3294func (s *AlarmModelVersionSummary) SetAlarmModelVersion(v string) *AlarmModelVersionSummary {
3295	s.AlarmModelVersion = &v
3296	return s
3297}
3298
3299// SetCreationTime sets the CreationTime field's value.
3300func (s *AlarmModelVersionSummary) SetCreationTime(v time.Time) *AlarmModelVersionSummary {
3301	s.CreationTime = &v
3302	return s
3303}
3304
3305// SetLastUpdateTime sets the LastUpdateTime field's value.
3306func (s *AlarmModelVersionSummary) SetLastUpdateTime(v time.Time) *AlarmModelVersionSummary {
3307	s.LastUpdateTime = &v
3308	return s
3309}
3310
3311// SetRoleArn sets the RoleArn field's value.
3312func (s *AlarmModelVersionSummary) SetRoleArn(v string) *AlarmModelVersionSummary {
3313	s.RoleArn = &v
3314	return s
3315}
3316
3317// SetStatus sets the Status field's value.
3318func (s *AlarmModelVersionSummary) SetStatus(v string) *AlarmModelVersionSummary {
3319	s.Status = &v
3320	return s
3321}
3322
3323// SetStatusMessage sets the StatusMessage field's value.
3324func (s *AlarmModelVersionSummary) SetStatusMessage(v string) *AlarmModelVersionSummary {
3325	s.StatusMessage = &v
3326	return s
3327}
3328
3329// Contains information about one or more notification actions.
3330type AlarmNotification struct {
3331	_ struct{} `type:"structure"`
3332
3333	// Contains the notification settings of an alarm model. The settings apply
3334	// to all alarms that were created based on this alarm model.
3335	NotificationActions []*NotificationAction `locationName:"notificationActions" min:"1" type:"list"`
3336}
3337
3338// String returns the string representation.
3339//
3340// API parameter values that are decorated as "sensitive" in the API will not
3341// be included in the string output. The member name will be present, but the
3342// value will be replaced with "sensitive".
3343func (s AlarmNotification) String() string {
3344	return awsutil.Prettify(s)
3345}
3346
3347// GoString returns the string representation.
3348//
3349// API parameter values that are decorated as "sensitive" in the API will not
3350// be included in the string output. The member name will be present, but the
3351// value will be replaced with "sensitive".
3352func (s AlarmNotification) GoString() string {
3353	return s.String()
3354}
3355
3356// Validate inspects the fields of the type to determine if they are valid.
3357func (s *AlarmNotification) Validate() error {
3358	invalidParams := request.ErrInvalidParams{Context: "AlarmNotification"}
3359	if s.NotificationActions != nil && len(s.NotificationActions) < 1 {
3360		invalidParams.Add(request.NewErrParamMinLen("NotificationActions", 1))
3361	}
3362	if s.NotificationActions != nil {
3363		for i, v := range s.NotificationActions {
3364			if v == nil {
3365				continue
3366			}
3367			if err := v.Validate(); err != nil {
3368				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NotificationActions", i), err.(request.ErrInvalidParams))
3369			}
3370		}
3371	}
3372
3373	if invalidParams.Len() > 0 {
3374		return invalidParams
3375	}
3376	return nil
3377}
3378
3379// SetNotificationActions sets the NotificationActions field's value.
3380func (s *AlarmNotification) SetNotificationActions(v []*NotificationAction) *AlarmNotification {
3381	s.NotificationActions = v
3382	return s
3383}
3384
3385// Defines when your alarm is invoked.
3386type AlarmRule struct {
3387	_ struct{} `type:"structure"`
3388
3389	// A rule that compares an input property value to a threshold value with a
3390	// comparison operator.
3391	SimpleRule *SimpleRule `locationName:"simpleRule" type:"structure"`
3392}
3393
3394// String returns the string representation.
3395//
3396// API parameter values that are decorated as "sensitive" in the API will not
3397// be included in the string output. The member name will be present, but the
3398// value will be replaced with "sensitive".
3399func (s AlarmRule) String() string {
3400	return awsutil.Prettify(s)
3401}
3402
3403// GoString returns the string representation.
3404//
3405// API parameter values that are decorated as "sensitive" in the API will not
3406// be included in the string output. The member name will be present, but the
3407// value will be replaced with "sensitive".
3408func (s AlarmRule) GoString() string {
3409	return s.String()
3410}
3411
3412// Validate inspects the fields of the type to determine if they are valid.
3413func (s *AlarmRule) Validate() error {
3414	invalidParams := request.ErrInvalidParams{Context: "AlarmRule"}
3415	if s.SimpleRule != nil {
3416		if err := s.SimpleRule.Validate(); err != nil {
3417			invalidParams.AddNested("SimpleRule", err.(request.ErrInvalidParams))
3418		}
3419	}
3420
3421	if invalidParams.Len() > 0 {
3422		return invalidParams
3423	}
3424	return nil
3425}
3426
3427// SetSimpleRule sets the SimpleRule field's value.
3428func (s *AlarmRule) SetSimpleRule(v *SimpleRule) *AlarmRule {
3429	s.SimpleRule = v
3430	return s
3431}
3432
3433// Contains the result of the analysis.
3434type AnalysisResult struct {
3435	_ struct{} `type:"structure"`
3436
3437	// The severity level of the analysis result. Based on the severity level, analysis
3438	// results fall into three general categories:
3439	//
3440	//    * INFO - An information result tells you about a significant field in
3441	//    your detector model. This type of result usually doesn't require immediate
3442	//    action.
3443	//
3444	//    * WARNING - A warning result draws special attention to fields that might
3445	//    cause issues for your detector model. We recommend that you review warnings
3446	//    and take necessary actions before you use your detector model in production
3447	//    environments. Otherwise, the detector model might not work as expected.
3448	//
3449	//    * ERROR - An error result notifies you about a problem found in your detector
3450	//    model. You must fix all errors before you can publish your detector model.
3451	Level *string `locationName:"level" type:"string" enum:"AnalysisResultLevel"`
3452
3453	// Contains one or more locations that you can use to locate the fields in your
3454	// detector model that the analysis result references.
3455	Locations []*AnalysisResultLocation `locationName:"locations" type:"list"`
3456
3457	// Contains additional information about the analysis result.
3458	Message *string `locationName:"message" type:"string"`
3459
3460	// The type of the analysis result. Analyses fall into the following types based
3461	// on the validators used to generate the analysis result:
3462	//
3463	//    * supported-actions - You must specify AWS IoT Events supported actions
3464	//    that work with other AWS services in a supported AWS Region.
3465	//
3466	//    * service-limits - Resources or API operations can't exceed service quotas
3467	//    (also known as limits). Update your detector model or request a quota
3468	//    increase.
3469	//
3470	//    * structure - The detector model must follow a structure that AWS IoT
3471	//    Events supports.
3472	//
3473	//    * expression-syntax - Your expression must follow the required syntax.
3474	//
3475	//    * data-type - Data types referenced in the detector model must be compatible.
3476	//
3477	//    * referenced-data - You must define the data referenced in your detector
3478	//    model before you can use the data.
3479	//
3480	//    * referenced-resource - Resources that the detector model uses must be
3481	//    available.
3482	//
3483	// For more information, see Running detector model analyses (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html)
3484	// in the AWS IoT Events Developer Guide.
3485	Type *string `locationName:"type" type:"string"`
3486}
3487
3488// String returns the string representation.
3489//
3490// API parameter values that are decorated as "sensitive" in the API will not
3491// be included in the string output. The member name will be present, but the
3492// value will be replaced with "sensitive".
3493func (s AnalysisResult) String() string {
3494	return awsutil.Prettify(s)
3495}
3496
3497// GoString returns the string representation.
3498//
3499// API parameter values that are decorated as "sensitive" in the API will not
3500// be included in the string output. The member name will be present, but the
3501// value will be replaced with "sensitive".
3502func (s AnalysisResult) GoString() string {
3503	return s.String()
3504}
3505
3506// SetLevel sets the Level field's value.
3507func (s *AnalysisResult) SetLevel(v string) *AnalysisResult {
3508	s.Level = &v
3509	return s
3510}
3511
3512// SetLocations sets the Locations field's value.
3513func (s *AnalysisResult) SetLocations(v []*AnalysisResultLocation) *AnalysisResult {
3514	s.Locations = v
3515	return s
3516}
3517
3518// SetMessage sets the Message field's value.
3519func (s *AnalysisResult) SetMessage(v string) *AnalysisResult {
3520	s.Message = &v
3521	return s
3522}
3523
3524// SetType sets the Type field's value.
3525func (s *AnalysisResult) SetType(v string) *AnalysisResult {
3526	s.Type = &v
3527	return s
3528}
3529
3530// Contains information that you can use to locate the field in your detector
3531// model that the analysis result references.
3532type AnalysisResultLocation struct {
3533	_ struct{} `type:"structure"`
3534
3535	// A JsonPath (https://github.com/json-path/JsonPath) expression that identifies
3536	// the error field in your detector model.
3537	Path *string `locationName:"path" type:"string"`
3538}
3539
3540// String returns the string representation.
3541//
3542// API parameter values that are decorated as "sensitive" in the API will not
3543// be included in the string output. The member name will be present, but the
3544// value will be replaced with "sensitive".
3545func (s AnalysisResultLocation) String() string {
3546	return awsutil.Prettify(s)
3547}
3548
3549// GoString returns the string representation.
3550//
3551// API parameter values that are decorated as "sensitive" in the API will not
3552// be included in the string output. The member name will be present, but the
3553// value will be replaced with "sensitive".
3554func (s AnalysisResultLocation) GoString() string {
3555	return s.String()
3556}
3557
3558// SetPath sets the Path field's value.
3559func (s *AnalysisResultLocation) SetPath(v string) *AnalysisResultLocation {
3560	s.Path = &v
3561	return s
3562}
3563
3564// A structure that contains timestamp information. For more information, see
3565// TimeInNanos (https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_TimeInNanos.html)
3566// in the AWS IoT SiteWise API Reference.
3567//
3568// You must use expressions for all parameters in AssetPropertyTimestamp. The
3569// expressions accept literals, operators, functions, references, and substitution
3570// templates.
3571//
3572// Examples
3573//
3574//    * For literal values, the expressions must contain single quotes. For
3575//    example, the value for the timeInSeconds parameter can be '1586400675'.
3576//
3577//    * For references, you must specify either variables or input values. For
3578//    example, the value for the offsetInNanos parameter can be $variable.time.
3579//
3580//    * For a substitution template, you must use ${}, and the template must
3581//    be in single quotes. A substitution template can also contain a combination
3582//    of literals, operators, functions, references, and substitution templates.
3583//    In the following example, the value for the timeInSeconds parameter uses
3584//    a substitution template. '${$input.TemperatureInput.sensorData.timestamp
3585//    / 1000}'
3586//
3587// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
3588// in the AWS IoT Events Developer Guide.
3589type AssetPropertyTimestamp struct {
3590	_ struct{} `type:"structure"`
3591
3592	// The nanosecond offset converted from timeInSeconds. The valid range is between
3593	// 0-999999999.
3594	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
3595
3596	// The timestamp, in seconds, in the Unix epoch format. The valid range is between
3597	// 1-31556889864403199.
3598	//
3599	// TimeInSeconds is a required field
3600	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
3601}
3602
3603// String returns the string representation.
3604//
3605// API parameter values that are decorated as "sensitive" in the API will not
3606// be included in the string output. The member name will be present, but the
3607// value will be replaced with "sensitive".
3608func (s AssetPropertyTimestamp) String() string {
3609	return awsutil.Prettify(s)
3610}
3611
3612// GoString returns the string representation.
3613//
3614// API parameter values that are decorated as "sensitive" in the API will not
3615// be included in the string output. The member name will be present, but the
3616// value will be replaced with "sensitive".
3617func (s AssetPropertyTimestamp) GoString() string {
3618	return s.String()
3619}
3620
3621// Validate inspects the fields of the type to determine if they are valid.
3622func (s *AssetPropertyTimestamp) Validate() error {
3623	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
3624	if s.TimeInSeconds == nil {
3625		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
3626	}
3627
3628	if invalidParams.Len() > 0 {
3629		return invalidParams
3630	}
3631	return nil
3632}
3633
3634// SetOffsetInNanos sets the OffsetInNanos field's value.
3635func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
3636	s.OffsetInNanos = &v
3637	return s
3638}
3639
3640// SetTimeInSeconds sets the TimeInSeconds field's value.
3641func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
3642	s.TimeInSeconds = &v
3643	return s
3644}
3645
3646// A structure that contains value information. For more information, see AssetPropertyValue
3647// (https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetPropertyValue.html)
3648// in the AWS IoT SiteWise API Reference.
3649//
3650// You must use expressions for all parameters in AssetPropertyValue. The expressions
3651// accept literals, operators, functions, references, and substitution templates.
3652//
3653// Examples
3654//
3655//    * For literal values, the expressions must contain single quotes. For
3656//    example, the value for the quality parameter can be 'GOOD'.
3657//
3658//    * For references, you must specify either variables or input values. For
3659//    example, the value for the quality parameter can be $input.TemperatureInput.sensorData.quality.
3660//
3661// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
3662// in the AWS IoT Events Developer Guide.
3663type AssetPropertyValue struct {
3664	_ struct{} `type:"structure"`
3665
3666	// The quality of the asset property value. The value must be 'GOOD', 'BAD',
3667	// or 'UNCERTAIN'.
3668	Quality *string `locationName:"quality" type:"string"`
3669
3670	// The timestamp associated with the asset property value. The default is the
3671	// current event time.
3672	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure"`
3673
3674	// The value to send to an asset property.
3675	Value *AssetPropertyVariant `locationName:"value" type:"structure"`
3676}
3677
3678// String returns the string representation.
3679//
3680// API parameter values that are decorated as "sensitive" in the API will not
3681// be included in the string output. The member name will be present, but the
3682// value will be replaced with "sensitive".
3683func (s AssetPropertyValue) String() string {
3684	return awsutil.Prettify(s)
3685}
3686
3687// GoString returns the string representation.
3688//
3689// API parameter values that are decorated as "sensitive" in the API will not
3690// be included in the string output. The member name will be present, but the
3691// value will be replaced with "sensitive".
3692func (s AssetPropertyValue) GoString() string {
3693	return s.String()
3694}
3695
3696// Validate inspects the fields of the type to determine if they are valid.
3697func (s *AssetPropertyValue) Validate() error {
3698	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
3699	if s.Timestamp != nil {
3700		if err := s.Timestamp.Validate(); err != nil {
3701			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
3702		}
3703	}
3704
3705	if invalidParams.Len() > 0 {
3706		return invalidParams
3707	}
3708	return nil
3709}
3710
3711// SetQuality sets the Quality field's value.
3712func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
3713	s.Quality = &v
3714	return s
3715}
3716
3717// SetTimestamp sets the Timestamp field's value.
3718func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
3719	s.Timestamp = v
3720	return s
3721}
3722
3723// SetValue sets the Value field's value.
3724func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
3725	s.Value = v
3726	return s
3727}
3728
3729// A structure that contains an asset property value. For more information,
3730// see Variant (https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Variant.html)
3731// in the AWS IoT SiteWise API Reference.
3732//
3733// You must use expressions for all parameters in AssetPropertyVariant. The
3734// expressions accept literals, operators, functions, references, and substitution
3735// templates.
3736//
3737// Examples
3738//
3739//    * For literal values, the expressions must contain single quotes. For
3740//    example, the value for the integerValue parameter can be '100'.
3741//
3742//    * For references, you must specify either variables or parameters. For
3743//    example, the value for the booleanValue parameter can be $variable.offline.
3744//
3745//    * For a substitution template, you must use ${}, and the template must
3746//    be in single quotes. A substitution template can also contain a combination
3747//    of literals, operators, functions, references, and substitution templates.
3748//    In the following example, the value for the doubleValue parameter uses
3749//    a substitution template. '${$input.TemperatureInput.sensorData.temperature
3750//    * 6 / 5 + 32}'
3751//
3752// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
3753// in the AWS IoT Events Developer Guide.
3754//
3755// You must specify one of the following value types, depending on the dataType
3756// of the specified asset property. For more information, see AssetProperty
3757// (https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetProperty.html)
3758// in the AWS IoT SiteWise API Reference.
3759type AssetPropertyVariant struct {
3760	_ struct{} `type:"structure"`
3761
3762	// The asset property value is a Boolean value that must be 'TRUE' or 'FALSE'.
3763	// You must use an expression, and the evaluated result should be a Boolean
3764	// value.
3765	BooleanValue *string `locationName:"booleanValue" type:"string"`
3766
3767	// The asset property value is a double. You must use an expression, and the
3768	// evaluated result should be a double.
3769	DoubleValue *string `locationName:"doubleValue" type:"string"`
3770
3771	// The asset property value is an integer. You must use an expression, and the
3772	// evaluated result should be an integer.
3773	IntegerValue *string `locationName:"integerValue" type:"string"`
3774
3775	// The asset property value is a string. You must use an expression, and the
3776	// evaluated result should be a string.
3777	StringValue *string `locationName:"stringValue" type:"string"`
3778}
3779
3780// String returns the string representation.
3781//
3782// API parameter values that are decorated as "sensitive" in the API will not
3783// be included in the string output. The member name will be present, but the
3784// value will be replaced with "sensitive".
3785func (s AssetPropertyVariant) String() string {
3786	return awsutil.Prettify(s)
3787}
3788
3789// GoString returns the string representation.
3790//
3791// API parameter values that are decorated as "sensitive" in the API will not
3792// be included in the string output. The member name will be present, but the
3793// value will be replaced with "sensitive".
3794func (s AssetPropertyVariant) GoString() string {
3795	return s.String()
3796}
3797
3798// SetBooleanValue sets the BooleanValue field's value.
3799func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
3800	s.BooleanValue = &v
3801	return s
3802}
3803
3804// SetDoubleValue sets the DoubleValue field's value.
3805func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
3806	s.DoubleValue = &v
3807	return s
3808}
3809
3810// SetIntegerValue sets the IntegerValue field's value.
3811func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
3812	s.IntegerValue = &v
3813	return s
3814}
3815
3816// SetStringValue sets the StringValue field's value.
3817func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
3818	s.StringValue = &v
3819	return s
3820}
3821
3822// The attributes from the JSON payload that are made available by the input.
3823// Inputs are derived from messages sent to the AWS IoT Events system using
3824// BatchPutMessage. Each such message contains a JSON payload. Those attributes
3825// (and their paired values) specified here are available for use in the condition
3826// expressions used by detectors.
3827type Attribute struct {
3828	_ struct{} `type:"structure"`
3829
3830	// An expression that specifies an attribute-value pair in a JSON structure.
3831	// Use this to specify an attribute from the JSON payload that is made available
3832	// by the input. Inputs are derived from messages sent to AWS IoT Events (BatchPutMessage).
3833	// Each such message contains a JSON payload. The attribute (and its paired
3834	// value) specified here are available for use in the condition expressions
3835	// used by detectors.
3836	//
3837	// Syntax: <field-name>.<field-name>...
3838	//
3839	// JsonPath is a required field
3840	JsonPath *string `locationName:"jsonPath" min:"1" type:"string" required:"true"`
3841}
3842
3843// String returns the string representation.
3844//
3845// API parameter values that are decorated as "sensitive" in the API will not
3846// be included in the string output. The member name will be present, but the
3847// value will be replaced with "sensitive".
3848func (s Attribute) String() string {
3849	return awsutil.Prettify(s)
3850}
3851
3852// GoString returns the string representation.
3853//
3854// API parameter values that are decorated as "sensitive" in the API will not
3855// be included in the string output. The member name will be present, but the
3856// value will be replaced with "sensitive".
3857func (s Attribute) GoString() string {
3858	return s.String()
3859}
3860
3861// Validate inspects the fields of the type to determine if they are valid.
3862func (s *Attribute) Validate() error {
3863	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
3864	if s.JsonPath == nil {
3865		invalidParams.Add(request.NewErrParamRequired("JsonPath"))
3866	}
3867	if s.JsonPath != nil && len(*s.JsonPath) < 1 {
3868		invalidParams.Add(request.NewErrParamMinLen("JsonPath", 1))
3869	}
3870
3871	if invalidParams.Len() > 0 {
3872		return invalidParams
3873	}
3874	return nil
3875}
3876
3877// SetJsonPath sets the JsonPath field's value.
3878func (s *Attribute) SetJsonPath(v string) *Attribute {
3879	s.JsonPath = &v
3880	return s
3881}
3882
3883// Information needed to clear the timer.
3884type ClearTimerAction struct {
3885	_ struct{} `type:"structure"`
3886
3887	// The name of the timer to clear.
3888	//
3889	// TimerName is a required field
3890	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
3891}
3892
3893// String returns the string representation.
3894//
3895// API parameter values that are decorated as "sensitive" in the API will not
3896// be included in the string output. The member name will be present, but the
3897// value will be replaced with "sensitive".
3898func (s ClearTimerAction) String() string {
3899	return awsutil.Prettify(s)
3900}
3901
3902// GoString returns the string representation.
3903//
3904// API parameter values that are decorated as "sensitive" in the API will not
3905// be included in the string output. The member name will be present, but the
3906// value will be replaced with "sensitive".
3907func (s ClearTimerAction) GoString() string {
3908	return s.String()
3909}
3910
3911// Validate inspects the fields of the type to determine if they are valid.
3912func (s *ClearTimerAction) Validate() error {
3913	invalidParams := request.ErrInvalidParams{Context: "ClearTimerAction"}
3914	if s.TimerName == nil {
3915		invalidParams.Add(request.NewErrParamRequired("TimerName"))
3916	}
3917	if s.TimerName != nil && len(*s.TimerName) < 1 {
3918		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
3919	}
3920
3921	if invalidParams.Len() > 0 {
3922		return invalidParams
3923	}
3924	return nil
3925}
3926
3927// SetTimerName sets the TimerName field's value.
3928func (s *ClearTimerAction) SetTimerName(v string) *ClearTimerAction {
3929	s.TimerName = &v
3930	return s
3931}
3932
3933type CreateAlarmModelInput struct {
3934	_ struct{} `type:"structure"`
3935
3936	// Contains the configuration information of alarm state changes.
3937	AlarmCapabilities *AlarmCapabilities `locationName:"alarmCapabilities" type:"structure"`
3938
3939	// Contains information about one or more alarm actions.
3940	AlarmEventActions *AlarmEventActions `locationName:"alarmEventActions" type:"structure"`
3941
3942	// A description that tells you what the alarm model detects.
3943	AlarmModelDescription *string `locationName:"alarmModelDescription" type:"string"`
3944
3945	// A unique name that helps you identify the alarm model. You can't change this
3946	// name after you create the alarm model.
3947	//
3948	// AlarmModelName is a required field
3949	AlarmModelName *string `locationName:"alarmModelName" min:"1" type:"string" required:"true"`
3950
3951	// Contains information about one or more notification actions.
3952	AlarmNotification *AlarmNotification `locationName:"alarmNotification" type:"structure"`
3953
3954	// Defines when your alarm is invoked.
3955	//
3956	// AlarmRule is a required field
3957	AlarmRule *AlarmRule `locationName:"alarmRule" type:"structure" required:"true"`
3958
3959	// An input attribute used as a key to create an alarm. AWS IoT Events routes
3960	// inputs (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html)
3961	// associated with this key to the alarm.
3962	Key *string `locationName:"key" min:"1" type:"string"`
3963
3964	// The ARN of the IAM role that allows the alarm to perform actions and access
3965	// AWS resources. For more information, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
3966	// in the AWS General Reference.
3967	//
3968	// RoleArn is a required field
3969	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
3970
3971	// A non-negative integer that reflects the severity level of the alarm.
3972	Severity *int64 `locationName:"severity" type:"integer"`
3973
3974	// A list of key-value pairs that contain metadata for the alarm model. The
3975	// tags help you manage the alarm model. For more information, see Tagging your
3976	// AWS IoT Events resources (https://docs.aws.amazon.com/iotevents/latest/developerguide/tagging-iotevents.html)
3977	// in the AWS IoT Events Developer Guide.
3978	//
3979	// You can create up to 50 tags for one alarm model.
3980	Tags []*Tag `locationName:"tags" type:"list"`
3981}
3982
3983// String returns the string representation.
3984//
3985// API parameter values that are decorated as "sensitive" in the API will not
3986// be included in the string output. The member name will be present, but the
3987// value will be replaced with "sensitive".
3988func (s CreateAlarmModelInput) String() string {
3989	return awsutil.Prettify(s)
3990}
3991
3992// GoString returns the string representation.
3993//
3994// API parameter values that are decorated as "sensitive" in the API will not
3995// be included in the string output. The member name will be present, but the
3996// value will be replaced with "sensitive".
3997func (s CreateAlarmModelInput) GoString() string {
3998	return s.String()
3999}
4000
4001// Validate inspects the fields of the type to determine if they are valid.
4002func (s *CreateAlarmModelInput) Validate() error {
4003	invalidParams := request.ErrInvalidParams{Context: "CreateAlarmModelInput"}
4004	if s.AlarmModelName == nil {
4005		invalidParams.Add(request.NewErrParamRequired("AlarmModelName"))
4006	}
4007	if s.AlarmModelName != nil && len(*s.AlarmModelName) < 1 {
4008		invalidParams.Add(request.NewErrParamMinLen("AlarmModelName", 1))
4009	}
4010	if s.AlarmRule == nil {
4011		invalidParams.Add(request.NewErrParamRequired("AlarmRule"))
4012	}
4013	if s.Key != nil && len(*s.Key) < 1 {
4014		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4015	}
4016	if s.RoleArn == nil {
4017		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
4018	}
4019	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
4020		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
4021	}
4022	if s.AlarmCapabilities != nil {
4023		if err := s.AlarmCapabilities.Validate(); err != nil {
4024			invalidParams.AddNested("AlarmCapabilities", err.(request.ErrInvalidParams))
4025		}
4026	}
4027	if s.AlarmEventActions != nil {
4028		if err := s.AlarmEventActions.Validate(); err != nil {
4029			invalidParams.AddNested("AlarmEventActions", err.(request.ErrInvalidParams))
4030		}
4031	}
4032	if s.AlarmNotification != nil {
4033		if err := s.AlarmNotification.Validate(); err != nil {
4034			invalidParams.AddNested("AlarmNotification", err.(request.ErrInvalidParams))
4035		}
4036	}
4037	if s.AlarmRule != nil {
4038		if err := s.AlarmRule.Validate(); err != nil {
4039			invalidParams.AddNested("AlarmRule", err.(request.ErrInvalidParams))
4040		}
4041	}
4042	if s.Tags != nil {
4043		for i, v := range s.Tags {
4044			if v == nil {
4045				continue
4046			}
4047			if err := v.Validate(); err != nil {
4048				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4049			}
4050		}
4051	}
4052
4053	if invalidParams.Len() > 0 {
4054		return invalidParams
4055	}
4056	return nil
4057}
4058
4059// SetAlarmCapabilities sets the AlarmCapabilities field's value.
4060func (s *CreateAlarmModelInput) SetAlarmCapabilities(v *AlarmCapabilities) *CreateAlarmModelInput {
4061	s.AlarmCapabilities = v
4062	return s
4063}
4064
4065// SetAlarmEventActions sets the AlarmEventActions field's value.
4066func (s *CreateAlarmModelInput) SetAlarmEventActions(v *AlarmEventActions) *CreateAlarmModelInput {
4067	s.AlarmEventActions = v
4068	return s
4069}
4070
4071// SetAlarmModelDescription sets the AlarmModelDescription field's value.
4072func (s *CreateAlarmModelInput) SetAlarmModelDescription(v string) *CreateAlarmModelInput {
4073	s.AlarmModelDescription = &v
4074	return s
4075}
4076
4077// SetAlarmModelName sets the AlarmModelName field's value.
4078func (s *CreateAlarmModelInput) SetAlarmModelName(v string) *CreateAlarmModelInput {
4079	s.AlarmModelName = &v
4080	return s
4081}
4082
4083// SetAlarmNotification sets the AlarmNotification field's value.
4084func (s *CreateAlarmModelInput) SetAlarmNotification(v *AlarmNotification) *CreateAlarmModelInput {
4085	s.AlarmNotification = v
4086	return s
4087}
4088
4089// SetAlarmRule sets the AlarmRule field's value.
4090func (s *CreateAlarmModelInput) SetAlarmRule(v *AlarmRule) *CreateAlarmModelInput {
4091	s.AlarmRule = v
4092	return s
4093}
4094
4095// SetKey sets the Key field's value.
4096func (s *CreateAlarmModelInput) SetKey(v string) *CreateAlarmModelInput {
4097	s.Key = &v
4098	return s
4099}
4100
4101// SetRoleArn sets the RoleArn field's value.
4102func (s *CreateAlarmModelInput) SetRoleArn(v string) *CreateAlarmModelInput {
4103	s.RoleArn = &v
4104	return s
4105}
4106
4107// SetSeverity sets the Severity field's value.
4108func (s *CreateAlarmModelInput) SetSeverity(v int64) *CreateAlarmModelInput {
4109	s.Severity = &v
4110	return s
4111}
4112
4113// SetTags sets the Tags field's value.
4114func (s *CreateAlarmModelInput) SetTags(v []*Tag) *CreateAlarmModelInput {
4115	s.Tags = v
4116	return s
4117}
4118
4119type CreateAlarmModelOutput struct {
4120	_ struct{} `type:"structure"`
4121
4122	// The ARN of the alarm model. For more information, see Amazon Resource Names
4123	// (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
4124	// in the AWS General Reference.
4125	AlarmModelArn *string `locationName:"alarmModelArn" type:"string"`
4126
4127	// The version of the alarm model.
4128	AlarmModelVersion *string `locationName:"alarmModelVersion" min:"1" type:"string"`
4129
4130	// The time the alarm model was created, in the Unix epoch format.
4131	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
4132
4133	// The time the alarm model was last updated, in the Unix epoch format.
4134	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
4135
4136	// The status of the alarm model. The status can be one of the following values:
4137	//
4138	//    * ACTIVE - The alarm model is active and it's ready to evaluate data.
4139	//
4140	//    * ACTIVATING - AWS IoT Events is activating your alarm model. Activating
4141	//    an alarm model can take up to a few minutes.
4142	//
4143	//    * INACTIVE - The alarm model is inactive, so it isn't ready to evaluate
4144	//    data. Check your alarm model information and update the alarm model.
4145	//
4146	//    * FAILED - You couldn't create or update the alarm model. Check your alarm
4147	//    model information and try again.
4148	Status *string `locationName:"status" type:"string" enum:"AlarmModelVersionStatus"`
4149}
4150
4151// String returns the string representation.
4152//
4153// API parameter values that are decorated as "sensitive" in the API will not
4154// be included in the string output. The member name will be present, but the
4155// value will be replaced with "sensitive".
4156func (s CreateAlarmModelOutput) String() string {
4157	return awsutil.Prettify(s)
4158}
4159
4160// GoString returns the string representation.
4161//
4162// API parameter values that are decorated as "sensitive" in the API will not
4163// be included in the string output. The member name will be present, but the
4164// value will be replaced with "sensitive".
4165func (s CreateAlarmModelOutput) GoString() string {
4166	return s.String()
4167}
4168
4169// SetAlarmModelArn sets the AlarmModelArn field's value.
4170func (s *CreateAlarmModelOutput) SetAlarmModelArn(v string) *CreateAlarmModelOutput {
4171	s.AlarmModelArn = &v
4172	return s
4173}
4174
4175// SetAlarmModelVersion sets the AlarmModelVersion field's value.
4176func (s *CreateAlarmModelOutput) SetAlarmModelVersion(v string) *CreateAlarmModelOutput {
4177	s.AlarmModelVersion = &v
4178	return s
4179}
4180
4181// SetCreationTime sets the CreationTime field's value.
4182func (s *CreateAlarmModelOutput) SetCreationTime(v time.Time) *CreateAlarmModelOutput {
4183	s.CreationTime = &v
4184	return s
4185}
4186
4187// SetLastUpdateTime sets the LastUpdateTime field's value.
4188func (s *CreateAlarmModelOutput) SetLastUpdateTime(v time.Time) *CreateAlarmModelOutput {
4189	s.LastUpdateTime = &v
4190	return s
4191}
4192
4193// SetStatus sets the Status field's value.
4194func (s *CreateAlarmModelOutput) SetStatus(v string) *CreateAlarmModelOutput {
4195	s.Status = &v
4196	return s
4197}
4198
4199type CreateDetectorModelInput struct {
4200	_ struct{} `type:"structure"`
4201
4202	// Information that defines how the detectors operate.
4203	//
4204	// DetectorModelDefinition is a required field
4205	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure" required:"true"`
4206
4207	// A brief description of the detector model.
4208	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
4209
4210	// The name of the detector model.
4211	//
4212	// DetectorModelName is a required field
4213	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string" required:"true"`
4214
4215	// Information about the order in which events are evaluated and how actions
4216	// are executed.
4217	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
4218
4219	// The input attribute key used to identify a device or system to create a detector
4220	// (an instance of the detector model) and then to route each input received
4221	// to the appropriate detector (instance). This parameter uses a JSON-path expression
4222	// in the message payload of each input to specify the attribute-value pair
4223	// that is used to identify the device associated with the input.
4224	Key *string `locationName:"key" min:"1" type:"string"`
4225
4226	// The ARN of the role that grants permission to AWS IoT Events to perform its
4227	// operations.
4228	//
4229	// RoleArn is a required field
4230	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
4231
4232	// Metadata that can be used to manage the detector model.
4233	Tags []*Tag `locationName:"tags" type:"list"`
4234}
4235
4236// String returns the string representation.
4237//
4238// API parameter values that are decorated as "sensitive" in the API will not
4239// be included in the string output. The member name will be present, but the
4240// value will be replaced with "sensitive".
4241func (s CreateDetectorModelInput) String() string {
4242	return awsutil.Prettify(s)
4243}
4244
4245// GoString returns the string representation.
4246//
4247// API parameter values that are decorated as "sensitive" in the API will not
4248// be included in the string output. The member name will be present, but the
4249// value will be replaced with "sensitive".
4250func (s CreateDetectorModelInput) GoString() string {
4251	return s.String()
4252}
4253
4254// Validate inspects the fields of the type to determine if they are valid.
4255func (s *CreateDetectorModelInput) Validate() error {
4256	invalidParams := request.ErrInvalidParams{Context: "CreateDetectorModelInput"}
4257	if s.DetectorModelDefinition == nil {
4258		invalidParams.Add(request.NewErrParamRequired("DetectorModelDefinition"))
4259	}
4260	if s.DetectorModelName == nil {
4261		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
4262	}
4263	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
4264		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
4265	}
4266	if s.Key != nil && len(*s.Key) < 1 {
4267		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4268	}
4269	if s.RoleArn == nil {
4270		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
4271	}
4272	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
4273		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
4274	}
4275	if s.DetectorModelDefinition != nil {
4276		if err := s.DetectorModelDefinition.Validate(); err != nil {
4277			invalidParams.AddNested("DetectorModelDefinition", err.(request.ErrInvalidParams))
4278		}
4279	}
4280	if s.Tags != nil {
4281		for i, v := range s.Tags {
4282			if v == nil {
4283				continue
4284			}
4285			if err := v.Validate(); err != nil {
4286				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4287			}
4288		}
4289	}
4290
4291	if invalidParams.Len() > 0 {
4292		return invalidParams
4293	}
4294	return nil
4295}
4296
4297// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
4298func (s *CreateDetectorModelInput) SetDetectorModelDefinition(v *DetectorModelDefinition) *CreateDetectorModelInput {
4299	s.DetectorModelDefinition = v
4300	return s
4301}
4302
4303// SetDetectorModelDescription sets the DetectorModelDescription field's value.
4304func (s *CreateDetectorModelInput) SetDetectorModelDescription(v string) *CreateDetectorModelInput {
4305	s.DetectorModelDescription = &v
4306	return s
4307}
4308
4309// SetDetectorModelName sets the DetectorModelName field's value.
4310func (s *CreateDetectorModelInput) SetDetectorModelName(v string) *CreateDetectorModelInput {
4311	s.DetectorModelName = &v
4312	return s
4313}
4314
4315// SetEvaluationMethod sets the EvaluationMethod field's value.
4316func (s *CreateDetectorModelInput) SetEvaluationMethod(v string) *CreateDetectorModelInput {
4317	s.EvaluationMethod = &v
4318	return s
4319}
4320
4321// SetKey sets the Key field's value.
4322func (s *CreateDetectorModelInput) SetKey(v string) *CreateDetectorModelInput {
4323	s.Key = &v
4324	return s
4325}
4326
4327// SetRoleArn sets the RoleArn field's value.
4328func (s *CreateDetectorModelInput) SetRoleArn(v string) *CreateDetectorModelInput {
4329	s.RoleArn = &v
4330	return s
4331}
4332
4333// SetTags sets the Tags field's value.
4334func (s *CreateDetectorModelInput) SetTags(v []*Tag) *CreateDetectorModelInput {
4335	s.Tags = v
4336	return s
4337}
4338
4339type CreateDetectorModelOutput struct {
4340	_ struct{} `type:"structure"`
4341
4342	// Information about how the detector model is configured.
4343	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
4344}
4345
4346// String returns the string representation.
4347//
4348// API parameter values that are decorated as "sensitive" in the API will not
4349// be included in the string output. The member name will be present, but the
4350// value will be replaced with "sensitive".
4351func (s CreateDetectorModelOutput) String() string {
4352	return awsutil.Prettify(s)
4353}
4354
4355// GoString returns the string representation.
4356//
4357// API parameter values that are decorated as "sensitive" in the API will not
4358// be included in the string output. The member name will be present, but the
4359// value will be replaced with "sensitive".
4360func (s CreateDetectorModelOutput) GoString() string {
4361	return s.String()
4362}
4363
4364// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
4365func (s *CreateDetectorModelOutput) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *CreateDetectorModelOutput {
4366	s.DetectorModelConfiguration = v
4367	return s
4368}
4369
4370type CreateInputInput struct {
4371	_ struct{} `type:"structure"`
4372
4373	// The definition of the input.
4374	//
4375	// InputDefinition is a required field
4376	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure" required:"true"`
4377
4378	// A brief description of the input.
4379	InputDescription *string `locationName:"inputDescription" type:"string"`
4380
4381	// The name you want to give to the input.
4382	//
4383	// InputName is a required field
4384	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
4385
4386	// Metadata that can be used to manage the input.
4387	Tags []*Tag `locationName:"tags" type:"list"`
4388}
4389
4390// String returns the string representation.
4391//
4392// API parameter values that are decorated as "sensitive" in the API will not
4393// be included in the string output. The member name will be present, but the
4394// value will be replaced with "sensitive".
4395func (s CreateInputInput) String() string {
4396	return awsutil.Prettify(s)
4397}
4398
4399// GoString returns the string representation.
4400//
4401// API parameter values that are decorated as "sensitive" in the API will not
4402// be included in the string output. The member name will be present, but the
4403// value will be replaced with "sensitive".
4404func (s CreateInputInput) GoString() string {
4405	return s.String()
4406}
4407
4408// Validate inspects the fields of the type to determine if they are valid.
4409func (s *CreateInputInput) Validate() error {
4410	invalidParams := request.ErrInvalidParams{Context: "CreateInputInput"}
4411	if s.InputDefinition == nil {
4412		invalidParams.Add(request.NewErrParamRequired("InputDefinition"))
4413	}
4414	if s.InputName == nil {
4415		invalidParams.Add(request.NewErrParamRequired("InputName"))
4416	}
4417	if s.InputName != nil && len(*s.InputName) < 1 {
4418		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
4419	}
4420	if s.InputDefinition != nil {
4421		if err := s.InputDefinition.Validate(); err != nil {
4422			invalidParams.AddNested("InputDefinition", err.(request.ErrInvalidParams))
4423		}
4424	}
4425	if s.Tags != nil {
4426		for i, v := range s.Tags {
4427			if v == nil {
4428				continue
4429			}
4430			if err := v.Validate(); err != nil {
4431				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4432			}
4433		}
4434	}
4435
4436	if invalidParams.Len() > 0 {
4437		return invalidParams
4438	}
4439	return nil
4440}
4441
4442// SetInputDefinition sets the InputDefinition field's value.
4443func (s *CreateInputInput) SetInputDefinition(v *InputDefinition) *CreateInputInput {
4444	s.InputDefinition = v
4445	return s
4446}
4447
4448// SetInputDescription sets the InputDescription field's value.
4449func (s *CreateInputInput) SetInputDescription(v string) *CreateInputInput {
4450	s.InputDescription = &v
4451	return s
4452}
4453
4454// SetInputName sets the InputName field's value.
4455func (s *CreateInputInput) SetInputName(v string) *CreateInputInput {
4456	s.InputName = &v
4457	return s
4458}
4459
4460// SetTags sets the Tags field's value.
4461func (s *CreateInputInput) SetTags(v []*Tag) *CreateInputInput {
4462	s.Tags = v
4463	return s
4464}
4465
4466type CreateInputOutput struct {
4467	_ struct{} `type:"structure"`
4468
4469	// Information about the configuration of the input.
4470	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
4471}
4472
4473// String returns the string representation.
4474//
4475// API parameter values that are decorated as "sensitive" in the API will not
4476// be included in the string output. The member name will be present, but the
4477// value will be replaced with "sensitive".
4478func (s CreateInputOutput) String() string {
4479	return awsutil.Prettify(s)
4480}
4481
4482// GoString returns the string representation.
4483//
4484// API parameter values that are decorated as "sensitive" in the API will not
4485// be included in the string output. The member name will be present, but the
4486// value will be replaced with "sensitive".
4487func (s CreateInputOutput) GoString() string {
4488	return s.String()
4489}
4490
4491// SetInputConfiguration sets the InputConfiguration field's value.
4492func (s *CreateInputOutput) SetInputConfiguration(v *InputConfiguration) *CreateInputOutput {
4493	s.InputConfiguration = v
4494	return s
4495}
4496
4497type DeleteAlarmModelInput struct {
4498	_ struct{} `type:"structure" nopayload:"true"`
4499
4500	// The name of the alarm model.
4501	//
4502	// AlarmModelName is a required field
4503	AlarmModelName *string `location:"uri" locationName:"alarmModelName" min:"1" type:"string" required:"true"`
4504}
4505
4506// String returns the string representation.
4507//
4508// API parameter values that are decorated as "sensitive" in the API will not
4509// be included in the string output. The member name will be present, but the
4510// value will be replaced with "sensitive".
4511func (s DeleteAlarmModelInput) String() string {
4512	return awsutil.Prettify(s)
4513}
4514
4515// GoString returns the string representation.
4516//
4517// API parameter values that are decorated as "sensitive" in the API will not
4518// be included in the string output. The member name will be present, but the
4519// value will be replaced with "sensitive".
4520func (s DeleteAlarmModelInput) GoString() string {
4521	return s.String()
4522}
4523
4524// Validate inspects the fields of the type to determine if they are valid.
4525func (s *DeleteAlarmModelInput) Validate() error {
4526	invalidParams := request.ErrInvalidParams{Context: "DeleteAlarmModelInput"}
4527	if s.AlarmModelName == nil {
4528		invalidParams.Add(request.NewErrParamRequired("AlarmModelName"))
4529	}
4530	if s.AlarmModelName != nil && len(*s.AlarmModelName) < 1 {
4531		invalidParams.Add(request.NewErrParamMinLen("AlarmModelName", 1))
4532	}
4533
4534	if invalidParams.Len() > 0 {
4535		return invalidParams
4536	}
4537	return nil
4538}
4539
4540// SetAlarmModelName sets the AlarmModelName field's value.
4541func (s *DeleteAlarmModelInput) SetAlarmModelName(v string) *DeleteAlarmModelInput {
4542	s.AlarmModelName = &v
4543	return s
4544}
4545
4546type DeleteAlarmModelOutput struct {
4547	_ struct{} `type:"structure"`
4548}
4549
4550// String returns the string representation.
4551//
4552// API parameter values that are decorated as "sensitive" in the API will not
4553// be included in the string output. The member name will be present, but the
4554// value will be replaced with "sensitive".
4555func (s DeleteAlarmModelOutput) String() string {
4556	return awsutil.Prettify(s)
4557}
4558
4559// GoString returns the string representation.
4560//
4561// API parameter values that are decorated as "sensitive" in the API will not
4562// be included in the string output. The member name will be present, but the
4563// value will be replaced with "sensitive".
4564func (s DeleteAlarmModelOutput) GoString() string {
4565	return s.String()
4566}
4567
4568type DeleteDetectorModelInput struct {
4569	_ struct{} `type:"structure" nopayload:"true"`
4570
4571	// The name of the detector model to be deleted.
4572	//
4573	// DetectorModelName is a required field
4574	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
4575}
4576
4577// String returns the string representation.
4578//
4579// API parameter values that are decorated as "sensitive" in the API will not
4580// be included in the string output. The member name will be present, but the
4581// value will be replaced with "sensitive".
4582func (s DeleteDetectorModelInput) String() string {
4583	return awsutil.Prettify(s)
4584}
4585
4586// GoString returns the string representation.
4587//
4588// API parameter values that are decorated as "sensitive" in the API will not
4589// be included in the string output. The member name will be present, but the
4590// value will be replaced with "sensitive".
4591func (s DeleteDetectorModelInput) GoString() string {
4592	return s.String()
4593}
4594
4595// Validate inspects the fields of the type to determine if they are valid.
4596func (s *DeleteDetectorModelInput) Validate() error {
4597	invalidParams := request.ErrInvalidParams{Context: "DeleteDetectorModelInput"}
4598	if s.DetectorModelName == nil {
4599		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
4600	}
4601	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
4602		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
4603	}
4604
4605	if invalidParams.Len() > 0 {
4606		return invalidParams
4607	}
4608	return nil
4609}
4610
4611// SetDetectorModelName sets the DetectorModelName field's value.
4612func (s *DeleteDetectorModelInput) SetDetectorModelName(v string) *DeleteDetectorModelInput {
4613	s.DetectorModelName = &v
4614	return s
4615}
4616
4617type DeleteDetectorModelOutput struct {
4618	_ struct{} `type:"structure"`
4619}
4620
4621// String returns the string representation.
4622//
4623// API parameter values that are decorated as "sensitive" in the API will not
4624// be included in the string output. The member name will be present, but the
4625// value will be replaced with "sensitive".
4626func (s DeleteDetectorModelOutput) String() string {
4627	return awsutil.Prettify(s)
4628}
4629
4630// GoString returns the string representation.
4631//
4632// API parameter values that are decorated as "sensitive" in the API will not
4633// be included in the string output. The member name will be present, but the
4634// value will be replaced with "sensitive".
4635func (s DeleteDetectorModelOutput) GoString() string {
4636	return s.String()
4637}
4638
4639type DeleteInputInput struct {
4640	_ struct{} `type:"structure" nopayload:"true"`
4641
4642	// The name of the input to delete.
4643	//
4644	// InputName is a required field
4645	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
4646}
4647
4648// String returns the string representation.
4649//
4650// API parameter values that are decorated as "sensitive" in the API will not
4651// be included in the string output. The member name will be present, but the
4652// value will be replaced with "sensitive".
4653func (s DeleteInputInput) String() string {
4654	return awsutil.Prettify(s)
4655}
4656
4657// GoString returns the string representation.
4658//
4659// API parameter values that are decorated as "sensitive" in the API will not
4660// be included in the string output. The member name will be present, but the
4661// value will be replaced with "sensitive".
4662func (s DeleteInputInput) GoString() string {
4663	return s.String()
4664}
4665
4666// Validate inspects the fields of the type to determine if they are valid.
4667func (s *DeleteInputInput) Validate() error {
4668	invalidParams := request.ErrInvalidParams{Context: "DeleteInputInput"}
4669	if s.InputName == nil {
4670		invalidParams.Add(request.NewErrParamRequired("InputName"))
4671	}
4672	if s.InputName != nil && len(*s.InputName) < 1 {
4673		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
4674	}
4675
4676	if invalidParams.Len() > 0 {
4677		return invalidParams
4678	}
4679	return nil
4680}
4681
4682// SetInputName sets the InputName field's value.
4683func (s *DeleteInputInput) SetInputName(v string) *DeleteInputInput {
4684	s.InputName = &v
4685	return s
4686}
4687
4688type DeleteInputOutput struct {
4689	_ struct{} `type:"structure"`
4690}
4691
4692// String returns the string representation.
4693//
4694// API parameter values that are decorated as "sensitive" in the API will not
4695// be included in the string output. The member name will be present, but the
4696// value will be replaced with "sensitive".
4697func (s DeleteInputOutput) String() string {
4698	return awsutil.Prettify(s)
4699}
4700
4701// GoString returns the string representation.
4702//
4703// API parameter values that are decorated as "sensitive" in the API will not
4704// be included in the string output. The member name will be present, but the
4705// value will be replaced with "sensitive".
4706func (s DeleteInputOutput) GoString() string {
4707	return s.String()
4708}
4709
4710type DescribeAlarmModelInput struct {
4711	_ struct{} `type:"structure" nopayload:"true"`
4712
4713	// The name of the alarm model.
4714	//
4715	// AlarmModelName is a required field
4716	AlarmModelName *string `location:"uri" locationName:"alarmModelName" min:"1" type:"string" required:"true"`
4717
4718	// The version of the alarm model.
4719	AlarmModelVersion *string `location:"querystring" locationName:"version" min:"1" type:"string"`
4720}
4721
4722// String returns the string representation.
4723//
4724// API parameter values that are decorated as "sensitive" in the API will not
4725// be included in the string output. The member name will be present, but the
4726// value will be replaced with "sensitive".
4727func (s DescribeAlarmModelInput) String() string {
4728	return awsutil.Prettify(s)
4729}
4730
4731// GoString returns the string representation.
4732//
4733// API parameter values that are decorated as "sensitive" in the API will not
4734// be included in the string output. The member name will be present, but the
4735// value will be replaced with "sensitive".
4736func (s DescribeAlarmModelInput) GoString() string {
4737	return s.String()
4738}
4739
4740// Validate inspects the fields of the type to determine if they are valid.
4741func (s *DescribeAlarmModelInput) Validate() error {
4742	invalidParams := request.ErrInvalidParams{Context: "DescribeAlarmModelInput"}
4743	if s.AlarmModelName == nil {
4744		invalidParams.Add(request.NewErrParamRequired("AlarmModelName"))
4745	}
4746	if s.AlarmModelName != nil && len(*s.AlarmModelName) < 1 {
4747		invalidParams.Add(request.NewErrParamMinLen("AlarmModelName", 1))
4748	}
4749	if s.AlarmModelVersion != nil && len(*s.AlarmModelVersion) < 1 {
4750		invalidParams.Add(request.NewErrParamMinLen("AlarmModelVersion", 1))
4751	}
4752
4753	if invalidParams.Len() > 0 {
4754		return invalidParams
4755	}
4756	return nil
4757}
4758
4759// SetAlarmModelName sets the AlarmModelName field's value.
4760func (s *DescribeAlarmModelInput) SetAlarmModelName(v string) *DescribeAlarmModelInput {
4761	s.AlarmModelName = &v
4762	return s
4763}
4764
4765// SetAlarmModelVersion sets the AlarmModelVersion field's value.
4766func (s *DescribeAlarmModelInput) SetAlarmModelVersion(v string) *DescribeAlarmModelInput {
4767	s.AlarmModelVersion = &v
4768	return s
4769}
4770
4771type DescribeAlarmModelOutput struct {
4772	_ struct{} `type:"structure"`
4773
4774	// Contains the configuration information of alarm state changes.
4775	AlarmCapabilities *AlarmCapabilities `locationName:"alarmCapabilities" type:"structure"`
4776
4777	// Contains information about one or more alarm actions.
4778	AlarmEventActions *AlarmEventActions `locationName:"alarmEventActions" type:"structure"`
4779
4780	// The ARN of the alarm model. For more information, see Amazon Resource Names
4781	// (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
4782	// in the AWS General Reference.
4783	AlarmModelArn *string `locationName:"alarmModelArn" type:"string"`
4784
4785	// The description of the alarm model.
4786	AlarmModelDescription *string `locationName:"alarmModelDescription" type:"string"`
4787
4788	// The name of the alarm model.
4789	AlarmModelName *string `locationName:"alarmModelName" min:"1" type:"string"`
4790
4791	// The version of the alarm model.
4792	AlarmModelVersion *string `locationName:"alarmModelVersion" min:"1" type:"string"`
4793
4794	// Contains information about one or more notification actions.
4795	AlarmNotification *AlarmNotification `locationName:"alarmNotification" type:"structure"`
4796
4797	// Defines when your alarm is invoked.
4798	AlarmRule *AlarmRule `locationName:"alarmRule" type:"structure"`
4799
4800	// The time the alarm model was created, in the Unix epoch format.
4801	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
4802
4803	// An input attribute used as a key to create an alarm. AWS IoT Events routes
4804	// inputs (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html)
4805	// associated with this key to the alarm.
4806	Key *string `locationName:"key" min:"1" type:"string"`
4807
4808	// The time the alarm model was last updated, in the Unix epoch format.
4809	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
4810
4811	// The ARN of the IAM role that allows the alarm to perform actions and access
4812	// AWS resources. For more information, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
4813	// in the AWS General Reference.
4814	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
4815
4816	// A non-negative integer that reflects the severity level of the alarm.
4817	Severity *int64 `locationName:"severity" type:"integer"`
4818
4819	// The status of the alarm model. The status can be one of the following values:
4820	//
4821	//    * ACTIVE - The alarm model is active and it's ready to evaluate data.
4822	//
4823	//    * ACTIVATING - AWS IoT Events is activating your alarm model. Activating
4824	//    an alarm model can take up to a few minutes.
4825	//
4826	//    * INACTIVE - The alarm model is inactive, so it isn't ready to evaluate
4827	//    data. Check your alarm model information and update the alarm model.
4828	//
4829	//    * FAILED - You couldn't create or update the alarm model. Check your alarm
4830	//    model information and try again.
4831	Status *string `locationName:"status" type:"string" enum:"AlarmModelVersionStatus"`
4832
4833	// Contains information about the status of the alarm model.
4834	StatusMessage *string `locationName:"statusMessage" type:"string"`
4835}
4836
4837// String returns the string representation.
4838//
4839// API parameter values that are decorated as "sensitive" in the API will not
4840// be included in the string output. The member name will be present, but the
4841// value will be replaced with "sensitive".
4842func (s DescribeAlarmModelOutput) String() string {
4843	return awsutil.Prettify(s)
4844}
4845
4846// GoString returns the string representation.
4847//
4848// API parameter values that are decorated as "sensitive" in the API will not
4849// be included in the string output. The member name will be present, but the
4850// value will be replaced with "sensitive".
4851func (s DescribeAlarmModelOutput) GoString() string {
4852	return s.String()
4853}
4854
4855// SetAlarmCapabilities sets the AlarmCapabilities field's value.
4856func (s *DescribeAlarmModelOutput) SetAlarmCapabilities(v *AlarmCapabilities) *DescribeAlarmModelOutput {
4857	s.AlarmCapabilities = v
4858	return s
4859}
4860
4861// SetAlarmEventActions sets the AlarmEventActions field's value.
4862func (s *DescribeAlarmModelOutput) SetAlarmEventActions(v *AlarmEventActions) *DescribeAlarmModelOutput {
4863	s.AlarmEventActions = v
4864	return s
4865}
4866
4867// SetAlarmModelArn sets the AlarmModelArn field's value.
4868func (s *DescribeAlarmModelOutput) SetAlarmModelArn(v string) *DescribeAlarmModelOutput {
4869	s.AlarmModelArn = &v
4870	return s
4871}
4872
4873// SetAlarmModelDescription sets the AlarmModelDescription field's value.
4874func (s *DescribeAlarmModelOutput) SetAlarmModelDescription(v string) *DescribeAlarmModelOutput {
4875	s.AlarmModelDescription = &v
4876	return s
4877}
4878
4879// SetAlarmModelName sets the AlarmModelName field's value.
4880func (s *DescribeAlarmModelOutput) SetAlarmModelName(v string) *DescribeAlarmModelOutput {
4881	s.AlarmModelName = &v
4882	return s
4883}
4884
4885// SetAlarmModelVersion sets the AlarmModelVersion field's value.
4886func (s *DescribeAlarmModelOutput) SetAlarmModelVersion(v string) *DescribeAlarmModelOutput {
4887	s.AlarmModelVersion = &v
4888	return s
4889}
4890
4891// SetAlarmNotification sets the AlarmNotification field's value.
4892func (s *DescribeAlarmModelOutput) SetAlarmNotification(v *AlarmNotification) *DescribeAlarmModelOutput {
4893	s.AlarmNotification = v
4894	return s
4895}
4896
4897// SetAlarmRule sets the AlarmRule field's value.
4898func (s *DescribeAlarmModelOutput) SetAlarmRule(v *AlarmRule) *DescribeAlarmModelOutput {
4899	s.AlarmRule = v
4900	return s
4901}
4902
4903// SetCreationTime sets the CreationTime field's value.
4904func (s *DescribeAlarmModelOutput) SetCreationTime(v time.Time) *DescribeAlarmModelOutput {
4905	s.CreationTime = &v
4906	return s
4907}
4908
4909// SetKey sets the Key field's value.
4910func (s *DescribeAlarmModelOutput) SetKey(v string) *DescribeAlarmModelOutput {
4911	s.Key = &v
4912	return s
4913}
4914
4915// SetLastUpdateTime sets the LastUpdateTime field's value.
4916func (s *DescribeAlarmModelOutput) SetLastUpdateTime(v time.Time) *DescribeAlarmModelOutput {
4917	s.LastUpdateTime = &v
4918	return s
4919}
4920
4921// SetRoleArn sets the RoleArn field's value.
4922func (s *DescribeAlarmModelOutput) SetRoleArn(v string) *DescribeAlarmModelOutput {
4923	s.RoleArn = &v
4924	return s
4925}
4926
4927// SetSeverity sets the Severity field's value.
4928func (s *DescribeAlarmModelOutput) SetSeverity(v int64) *DescribeAlarmModelOutput {
4929	s.Severity = &v
4930	return s
4931}
4932
4933// SetStatus sets the Status field's value.
4934func (s *DescribeAlarmModelOutput) SetStatus(v string) *DescribeAlarmModelOutput {
4935	s.Status = &v
4936	return s
4937}
4938
4939// SetStatusMessage sets the StatusMessage field's value.
4940func (s *DescribeAlarmModelOutput) SetStatusMessage(v string) *DescribeAlarmModelOutput {
4941	s.StatusMessage = &v
4942	return s
4943}
4944
4945type DescribeDetectorModelAnalysisInput struct {
4946	_ struct{} `type:"structure" nopayload:"true"`
4947
4948	// The ID of the analysis result that you want to retrieve.
4949	//
4950	// AnalysisId is a required field
4951	AnalysisId *string `location:"uri" locationName:"analysisId" type:"string" required:"true"`
4952}
4953
4954// String returns the string representation.
4955//
4956// API parameter values that are decorated as "sensitive" in the API will not
4957// be included in the string output. The member name will be present, but the
4958// value will be replaced with "sensitive".
4959func (s DescribeDetectorModelAnalysisInput) String() string {
4960	return awsutil.Prettify(s)
4961}
4962
4963// GoString returns the string representation.
4964//
4965// API parameter values that are decorated as "sensitive" in the API will not
4966// be included in the string output. The member name will be present, but the
4967// value will be replaced with "sensitive".
4968func (s DescribeDetectorModelAnalysisInput) GoString() string {
4969	return s.String()
4970}
4971
4972// Validate inspects the fields of the type to determine if they are valid.
4973func (s *DescribeDetectorModelAnalysisInput) Validate() error {
4974	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectorModelAnalysisInput"}
4975	if s.AnalysisId == nil {
4976		invalidParams.Add(request.NewErrParamRequired("AnalysisId"))
4977	}
4978	if s.AnalysisId != nil && len(*s.AnalysisId) < 1 {
4979		invalidParams.Add(request.NewErrParamMinLen("AnalysisId", 1))
4980	}
4981
4982	if invalidParams.Len() > 0 {
4983		return invalidParams
4984	}
4985	return nil
4986}
4987
4988// SetAnalysisId sets the AnalysisId field's value.
4989func (s *DescribeDetectorModelAnalysisInput) SetAnalysisId(v string) *DescribeDetectorModelAnalysisInput {
4990	s.AnalysisId = &v
4991	return s
4992}
4993
4994type DescribeDetectorModelAnalysisOutput struct {
4995	_ struct{} `type:"structure"`
4996
4997	// The status of the analysis activity. The status can be one of the following
4998	// values:
4999	//
5000	//    * RUNNING - AWS IoT Events is analyzing your detector model. This process
5001	//    can take several minutes to complete.
5002	//
5003	//    * COMPLETE - AWS IoT Events finished analyzing your detector model.
5004	//
5005	//    * FAILED - AWS IoT Events couldn't analyze your detector model. Try again
5006	//    later.
5007	Status *string `locationName:"status" type:"string" enum:"AnalysisStatus"`
5008}
5009
5010// String returns the string representation.
5011//
5012// API parameter values that are decorated as "sensitive" in the API will not
5013// be included in the string output. The member name will be present, but the
5014// value will be replaced with "sensitive".
5015func (s DescribeDetectorModelAnalysisOutput) String() string {
5016	return awsutil.Prettify(s)
5017}
5018
5019// GoString returns the string representation.
5020//
5021// API parameter values that are decorated as "sensitive" in the API will not
5022// be included in the string output. The member name will be present, but the
5023// value will be replaced with "sensitive".
5024func (s DescribeDetectorModelAnalysisOutput) GoString() string {
5025	return s.String()
5026}
5027
5028// SetStatus sets the Status field's value.
5029func (s *DescribeDetectorModelAnalysisOutput) SetStatus(v string) *DescribeDetectorModelAnalysisOutput {
5030	s.Status = &v
5031	return s
5032}
5033
5034type DescribeDetectorModelInput struct {
5035	_ struct{} `type:"structure" nopayload:"true"`
5036
5037	// The name of the detector model.
5038	//
5039	// DetectorModelName is a required field
5040	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
5041
5042	// The version of the detector model.
5043	DetectorModelVersion *string `location:"querystring" locationName:"version" min:"1" type:"string"`
5044}
5045
5046// String returns the string representation.
5047//
5048// API parameter values that are decorated as "sensitive" in the API will not
5049// be included in the string output. The member name will be present, but the
5050// value will be replaced with "sensitive".
5051func (s DescribeDetectorModelInput) String() string {
5052	return awsutil.Prettify(s)
5053}
5054
5055// GoString returns the string representation.
5056//
5057// API parameter values that are decorated as "sensitive" in the API will not
5058// be included in the string output. The member name will be present, but the
5059// value will be replaced with "sensitive".
5060func (s DescribeDetectorModelInput) GoString() string {
5061	return s.String()
5062}
5063
5064// Validate inspects the fields of the type to determine if they are valid.
5065func (s *DescribeDetectorModelInput) Validate() error {
5066	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectorModelInput"}
5067	if s.DetectorModelName == nil {
5068		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
5069	}
5070	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
5071		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
5072	}
5073	if s.DetectorModelVersion != nil && len(*s.DetectorModelVersion) < 1 {
5074		invalidParams.Add(request.NewErrParamMinLen("DetectorModelVersion", 1))
5075	}
5076
5077	if invalidParams.Len() > 0 {
5078		return invalidParams
5079	}
5080	return nil
5081}
5082
5083// SetDetectorModelName sets the DetectorModelName field's value.
5084func (s *DescribeDetectorModelInput) SetDetectorModelName(v string) *DescribeDetectorModelInput {
5085	s.DetectorModelName = &v
5086	return s
5087}
5088
5089// SetDetectorModelVersion sets the DetectorModelVersion field's value.
5090func (s *DescribeDetectorModelInput) SetDetectorModelVersion(v string) *DescribeDetectorModelInput {
5091	s.DetectorModelVersion = &v
5092	return s
5093}
5094
5095type DescribeDetectorModelOutput struct {
5096	_ struct{} `type:"structure"`
5097
5098	// Information about the detector model.
5099	DetectorModel *DetectorModel `locationName:"detectorModel" type:"structure"`
5100}
5101
5102// String returns the string representation.
5103//
5104// API parameter values that are decorated as "sensitive" in the API will not
5105// be included in the string output. The member name will be present, but the
5106// value will be replaced with "sensitive".
5107func (s DescribeDetectorModelOutput) String() string {
5108	return awsutil.Prettify(s)
5109}
5110
5111// GoString returns the string representation.
5112//
5113// API parameter values that are decorated as "sensitive" in the API will not
5114// be included in the string output. The member name will be present, but the
5115// value will be replaced with "sensitive".
5116func (s DescribeDetectorModelOutput) GoString() string {
5117	return s.String()
5118}
5119
5120// SetDetectorModel sets the DetectorModel field's value.
5121func (s *DescribeDetectorModelOutput) SetDetectorModel(v *DetectorModel) *DescribeDetectorModelOutput {
5122	s.DetectorModel = v
5123	return s
5124}
5125
5126type DescribeInputInput struct {
5127	_ struct{} `type:"structure" nopayload:"true"`
5128
5129	// The name of the input.
5130	//
5131	// InputName is a required field
5132	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
5133}
5134
5135// String returns the string representation.
5136//
5137// API parameter values that are decorated as "sensitive" in the API will not
5138// be included in the string output. The member name will be present, but the
5139// value will be replaced with "sensitive".
5140func (s DescribeInputInput) String() string {
5141	return awsutil.Prettify(s)
5142}
5143
5144// GoString returns the string representation.
5145//
5146// API parameter values that are decorated as "sensitive" in the API will not
5147// be included in the string output. The member name will be present, but the
5148// value will be replaced with "sensitive".
5149func (s DescribeInputInput) GoString() string {
5150	return s.String()
5151}
5152
5153// Validate inspects the fields of the type to determine if they are valid.
5154func (s *DescribeInputInput) Validate() error {
5155	invalidParams := request.ErrInvalidParams{Context: "DescribeInputInput"}
5156	if s.InputName == nil {
5157		invalidParams.Add(request.NewErrParamRequired("InputName"))
5158	}
5159	if s.InputName != nil && len(*s.InputName) < 1 {
5160		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
5161	}
5162
5163	if invalidParams.Len() > 0 {
5164		return invalidParams
5165	}
5166	return nil
5167}
5168
5169// SetInputName sets the InputName field's value.
5170func (s *DescribeInputInput) SetInputName(v string) *DescribeInputInput {
5171	s.InputName = &v
5172	return s
5173}
5174
5175type DescribeInputOutput struct {
5176	_ struct{} `type:"structure"`
5177
5178	// Information about the input.
5179	Input *Input `locationName:"input" type:"structure"`
5180}
5181
5182// String returns the string representation.
5183//
5184// API parameter values that are decorated as "sensitive" in the API will not
5185// be included in the string output. The member name will be present, but the
5186// value will be replaced with "sensitive".
5187func (s DescribeInputOutput) String() string {
5188	return awsutil.Prettify(s)
5189}
5190
5191// GoString returns the string representation.
5192//
5193// API parameter values that are decorated as "sensitive" in the API will not
5194// be included in the string output. The member name will be present, but the
5195// value will be replaced with "sensitive".
5196func (s DescribeInputOutput) GoString() string {
5197	return s.String()
5198}
5199
5200// SetInput sets the Input field's value.
5201func (s *DescribeInputOutput) SetInput(v *Input) *DescribeInputOutput {
5202	s.Input = v
5203	return s
5204}
5205
5206type DescribeLoggingOptionsInput struct {
5207	_ struct{} `type:"structure" nopayload:"true"`
5208}
5209
5210// String returns the string representation.
5211//
5212// API parameter values that are decorated as "sensitive" in the API will not
5213// be included in the string output. The member name will be present, but the
5214// value will be replaced with "sensitive".
5215func (s DescribeLoggingOptionsInput) String() string {
5216	return awsutil.Prettify(s)
5217}
5218
5219// GoString returns the string representation.
5220//
5221// API parameter values that are decorated as "sensitive" in the API will not
5222// be included in the string output. The member name will be present, but the
5223// value will be replaced with "sensitive".
5224func (s DescribeLoggingOptionsInput) GoString() string {
5225	return s.String()
5226}
5227
5228type DescribeLoggingOptionsOutput struct {
5229	_ struct{} `type:"structure"`
5230
5231	// The current settings of the AWS IoT Events logging options.
5232	LoggingOptions *LoggingOptions `locationName:"loggingOptions" type:"structure"`
5233}
5234
5235// String returns the string representation.
5236//
5237// API parameter values that are decorated as "sensitive" in the API will not
5238// be included in the string output. The member name will be present, but the
5239// value will be replaced with "sensitive".
5240func (s DescribeLoggingOptionsOutput) String() string {
5241	return awsutil.Prettify(s)
5242}
5243
5244// GoString returns the string representation.
5245//
5246// API parameter values that are decorated as "sensitive" in the API will not
5247// be included in the string output. The member name will be present, but the
5248// value will be replaced with "sensitive".
5249func (s DescribeLoggingOptionsOutput) GoString() string {
5250	return s.String()
5251}
5252
5253// SetLoggingOptions sets the LoggingOptions field's value.
5254func (s *DescribeLoggingOptionsOutput) SetLoggingOptions(v *LoggingOptions) *DescribeLoggingOptionsOutput {
5255	s.LoggingOptions = v
5256	return s
5257}
5258
5259// The detector model and the specific detectors (instances) for which the logging
5260// level is given.
5261type DetectorDebugOption struct {
5262	_ struct{} `type:"structure"`
5263
5264	// The name of the detector model.
5265	//
5266	// DetectorModelName is a required field
5267	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string" required:"true"`
5268
5269	// The value of the input attribute key used to create the detector (the instance
5270	// of the detector model).
5271	KeyValue *string `locationName:"keyValue" min:"1" type:"string"`
5272}
5273
5274// String returns the string representation.
5275//
5276// API parameter values that are decorated as "sensitive" in the API will not
5277// be included in the string output. The member name will be present, but the
5278// value will be replaced with "sensitive".
5279func (s DetectorDebugOption) String() string {
5280	return awsutil.Prettify(s)
5281}
5282
5283// GoString returns the string representation.
5284//
5285// API parameter values that are decorated as "sensitive" in the API will not
5286// be included in the string output. The member name will be present, but the
5287// value will be replaced with "sensitive".
5288func (s DetectorDebugOption) GoString() string {
5289	return s.String()
5290}
5291
5292// Validate inspects the fields of the type to determine if they are valid.
5293func (s *DetectorDebugOption) Validate() error {
5294	invalidParams := request.ErrInvalidParams{Context: "DetectorDebugOption"}
5295	if s.DetectorModelName == nil {
5296		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
5297	}
5298	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
5299		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
5300	}
5301	if s.KeyValue != nil && len(*s.KeyValue) < 1 {
5302		invalidParams.Add(request.NewErrParamMinLen("KeyValue", 1))
5303	}
5304
5305	if invalidParams.Len() > 0 {
5306		return invalidParams
5307	}
5308	return nil
5309}
5310
5311// SetDetectorModelName sets the DetectorModelName field's value.
5312func (s *DetectorDebugOption) SetDetectorModelName(v string) *DetectorDebugOption {
5313	s.DetectorModelName = &v
5314	return s
5315}
5316
5317// SetKeyValue sets the KeyValue field's value.
5318func (s *DetectorDebugOption) SetKeyValue(v string) *DetectorDebugOption {
5319	s.KeyValue = &v
5320	return s
5321}
5322
5323// Information about the detector model.
5324type DetectorModel struct {
5325	_ struct{} `type:"structure"`
5326
5327	// Information about how the detector is configured.
5328	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
5329
5330	// Information that defines how a detector operates.
5331	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure"`
5332}
5333
5334// String returns the string representation.
5335//
5336// API parameter values that are decorated as "sensitive" in the API will not
5337// be included in the string output. The member name will be present, but the
5338// value will be replaced with "sensitive".
5339func (s DetectorModel) String() string {
5340	return awsutil.Prettify(s)
5341}
5342
5343// GoString returns the string representation.
5344//
5345// API parameter values that are decorated as "sensitive" in the API will not
5346// be included in the string output. The member name will be present, but the
5347// value will be replaced with "sensitive".
5348func (s DetectorModel) GoString() string {
5349	return s.String()
5350}
5351
5352// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
5353func (s *DetectorModel) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *DetectorModel {
5354	s.DetectorModelConfiguration = v
5355	return s
5356}
5357
5358// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
5359func (s *DetectorModel) SetDetectorModelDefinition(v *DetectorModelDefinition) *DetectorModel {
5360	s.DetectorModelDefinition = v
5361	return s
5362}
5363
5364// Information about how the detector model is configured.
5365type DetectorModelConfiguration struct {
5366	_ struct{} `type:"structure"`
5367
5368	// The time the detector model was created.
5369	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
5370
5371	// The ARN of the detector model.
5372	DetectorModelArn *string `locationName:"detectorModelArn" type:"string"`
5373
5374	// A brief description of the detector model.
5375	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
5376
5377	// The name of the detector model.
5378	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
5379
5380	// The version of the detector model.
5381	DetectorModelVersion *string `locationName:"detectorModelVersion" min:"1" type:"string"`
5382
5383	// Information about the order in which events are evaluated and how actions
5384	// are executed.
5385	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
5386
5387	// The value used to identify a detector instance. When a device or system sends
5388	// input, a new detector instance with a unique key value is created. AWS IoT
5389	// Events can continue to route input to its corresponding detector instance
5390	// based on this identifying information.
5391	//
5392	// This parameter uses a JSON-path expression to select the attribute-value
5393	// pair in the message payload that is used for identification. To route the
5394	// message to the correct detector instance, the device must send a message
5395	// payload that contains the same attribute-value.
5396	Key *string `locationName:"key" min:"1" type:"string"`
5397
5398	// The time the detector model was last updated.
5399	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
5400
5401	// The ARN of the role that grants permission to AWS IoT Events to perform its
5402	// operations.
5403	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
5404
5405	// The status of the detector model.
5406	Status *string `locationName:"status" type:"string" enum:"DetectorModelVersionStatus"`
5407}
5408
5409// String returns the string representation.
5410//
5411// API parameter values that are decorated as "sensitive" in the API will not
5412// be included in the string output. The member name will be present, but the
5413// value will be replaced with "sensitive".
5414func (s DetectorModelConfiguration) String() string {
5415	return awsutil.Prettify(s)
5416}
5417
5418// GoString returns the string representation.
5419//
5420// API parameter values that are decorated as "sensitive" in the API will not
5421// be included in the string output. The member name will be present, but the
5422// value will be replaced with "sensitive".
5423func (s DetectorModelConfiguration) GoString() string {
5424	return s.String()
5425}
5426
5427// SetCreationTime sets the CreationTime field's value.
5428func (s *DetectorModelConfiguration) SetCreationTime(v time.Time) *DetectorModelConfiguration {
5429	s.CreationTime = &v
5430	return s
5431}
5432
5433// SetDetectorModelArn sets the DetectorModelArn field's value.
5434func (s *DetectorModelConfiguration) SetDetectorModelArn(v string) *DetectorModelConfiguration {
5435	s.DetectorModelArn = &v
5436	return s
5437}
5438
5439// SetDetectorModelDescription sets the DetectorModelDescription field's value.
5440func (s *DetectorModelConfiguration) SetDetectorModelDescription(v string) *DetectorModelConfiguration {
5441	s.DetectorModelDescription = &v
5442	return s
5443}
5444
5445// SetDetectorModelName sets the DetectorModelName field's value.
5446func (s *DetectorModelConfiguration) SetDetectorModelName(v string) *DetectorModelConfiguration {
5447	s.DetectorModelName = &v
5448	return s
5449}
5450
5451// SetDetectorModelVersion sets the DetectorModelVersion field's value.
5452func (s *DetectorModelConfiguration) SetDetectorModelVersion(v string) *DetectorModelConfiguration {
5453	s.DetectorModelVersion = &v
5454	return s
5455}
5456
5457// SetEvaluationMethod sets the EvaluationMethod field's value.
5458func (s *DetectorModelConfiguration) SetEvaluationMethod(v string) *DetectorModelConfiguration {
5459	s.EvaluationMethod = &v
5460	return s
5461}
5462
5463// SetKey sets the Key field's value.
5464func (s *DetectorModelConfiguration) SetKey(v string) *DetectorModelConfiguration {
5465	s.Key = &v
5466	return s
5467}
5468
5469// SetLastUpdateTime sets the LastUpdateTime field's value.
5470func (s *DetectorModelConfiguration) SetLastUpdateTime(v time.Time) *DetectorModelConfiguration {
5471	s.LastUpdateTime = &v
5472	return s
5473}
5474
5475// SetRoleArn sets the RoleArn field's value.
5476func (s *DetectorModelConfiguration) SetRoleArn(v string) *DetectorModelConfiguration {
5477	s.RoleArn = &v
5478	return s
5479}
5480
5481// SetStatus sets the Status field's value.
5482func (s *DetectorModelConfiguration) SetStatus(v string) *DetectorModelConfiguration {
5483	s.Status = &v
5484	return s
5485}
5486
5487// Information that defines how a detector operates.
5488type DetectorModelDefinition struct {
5489	_ struct{} `type:"structure"`
5490
5491	// The state that is entered at the creation of each detector (instance).
5492	//
5493	// InitialStateName is a required field
5494	InitialStateName *string `locationName:"initialStateName" min:"1" type:"string" required:"true"`
5495
5496	// Information about the states of the detector.
5497	//
5498	// States is a required field
5499	States []*State `locationName:"states" min:"1" type:"list" required:"true"`
5500}
5501
5502// String returns the string representation.
5503//
5504// API parameter values that are decorated as "sensitive" in the API will not
5505// be included in the string output. The member name will be present, but the
5506// value will be replaced with "sensitive".
5507func (s DetectorModelDefinition) String() string {
5508	return awsutil.Prettify(s)
5509}
5510
5511// GoString returns the string representation.
5512//
5513// API parameter values that are decorated as "sensitive" in the API will not
5514// be included in the string output. The member name will be present, but the
5515// value will be replaced with "sensitive".
5516func (s DetectorModelDefinition) GoString() string {
5517	return s.String()
5518}
5519
5520// Validate inspects the fields of the type to determine if they are valid.
5521func (s *DetectorModelDefinition) Validate() error {
5522	invalidParams := request.ErrInvalidParams{Context: "DetectorModelDefinition"}
5523	if s.InitialStateName == nil {
5524		invalidParams.Add(request.NewErrParamRequired("InitialStateName"))
5525	}
5526	if s.InitialStateName != nil && len(*s.InitialStateName) < 1 {
5527		invalidParams.Add(request.NewErrParamMinLen("InitialStateName", 1))
5528	}
5529	if s.States == nil {
5530		invalidParams.Add(request.NewErrParamRequired("States"))
5531	}
5532	if s.States != nil && len(s.States) < 1 {
5533		invalidParams.Add(request.NewErrParamMinLen("States", 1))
5534	}
5535	if s.States != nil {
5536		for i, v := range s.States {
5537			if v == nil {
5538				continue
5539			}
5540			if err := v.Validate(); err != nil {
5541				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "States", i), err.(request.ErrInvalidParams))
5542			}
5543		}
5544	}
5545
5546	if invalidParams.Len() > 0 {
5547		return invalidParams
5548	}
5549	return nil
5550}
5551
5552// SetInitialStateName sets the InitialStateName field's value.
5553func (s *DetectorModelDefinition) SetInitialStateName(v string) *DetectorModelDefinition {
5554	s.InitialStateName = &v
5555	return s
5556}
5557
5558// SetStates sets the States field's value.
5559func (s *DetectorModelDefinition) SetStates(v []*State) *DetectorModelDefinition {
5560	s.States = v
5561	return s
5562}
5563
5564// Information about the detector model.
5565type DetectorModelSummary struct {
5566	_ struct{} `type:"structure"`
5567
5568	// The time the detector model was created.
5569	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
5570
5571	// A brief description of the detector model.
5572	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
5573
5574	// The name of the detector model.
5575	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
5576}
5577
5578// String returns the string representation.
5579//
5580// API parameter values that are decorated as "sensitive" in the API will not
5581// be included in the string output. The member name will be present, but the
5582// value will be replaced with "sensitive".
5583func (s DetectorModelSummary) String() string {
5584	return awsutil.Prettify(s)
5585}
5586
5587// GoString returns the string representation.
5588//
5589// API parameter values that are decorated as "sensitive" in the API will not
5590// be included in the string output. The member name will be present, but the
5591// value will be replaced with "sensitive".
5592func (s DetectorModelSummary) GoString() string {
5593	return s.String()
5594}
5595
5596// SetCreationTime sets the CreationTime field's value.
5597func (s *DetectorModelSummary) SetCreationTime(v time.Time) *DetectorModelSummary {
5598	s.CreationTime = &v
5599	return s
5600}
5601
5602// SetDetectorModelDescription sets the DetectorModelDescription field's value.
5603func (s *DetectorModelSummary) SetDetectorModelDescription(v string) *DetectorModelSummary {
5604	s.DetectorModelDescription = &v
5605	return s
5606}
5607
5608// SetDetectorModelName sets the DetectorModelName field's value.
5609func (s *DetectorModelSummary) SetDetectorModelName(v string) *DetectorModelSummary {
5610	s.DetectorModelName = &v
5611	return s
5612}
5613
5614// Information about the detector model version.
5615type DetectorModelVersionSummary struct {
5616	_ struct{} `type:"structure"`
5617
5618	// The time the detector model version was created.
5619	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
5620
5621	// The ARN of the detector model version.
5622	DetectorModelArn *string `locationName:"detectorModelArn" type:"string"`
5623
5624	// The name of the detector model.
5625	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
5626
5627	// The ID of the detector model version.
5628	DetectorModelVersion *string `locationName:"detectorModelVersion" min:"1" type:"string"`
5629
5630	// Information about the order in which events are evaluated and how actions
5631	// are executed.
5632	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
5633
5634	// The last time the detector model version was updated.
5635	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
5636
5637	// The ARN of the role that grants the detector model permission to perform
5638	// its tasks.
5639	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
5640
5641	// The status of the detector model version.
5642	Status *string `locationName:"status" type:"string" enum:"DetectorModelVersionStatus"`
5643}
5644
5645// String returns the string representation.
5646//
5647// API parameter values that are decorated as "sensitive" in the API will not
5648// be included in the string output. The member name will be present, but the
5649// value will be replaced with "sensitive".
5650func (s DetectorModelVersionSummary) String() string {
5651	return awsutil.Prettify(s)
5652}
5653
5654// GoString returns the string representation.
5655//
5656// API parameter values that are decorated as "sensitive" in the API will not
5657// be included in the string output. The member name will be present, but the
5658// value will be replaced with "sensitive".
5659func (s DetectorModelVersionSummary) GoString() string {
5660	return s.String()
5661}
5662
5663// SetCreationTime sets the CreationTime field's value.
5664func (s *DetectorModelVersionSummary) SetCreationTime(v time.Time) *DetectorModelVersionSummary {
5665	s.CreationTime = &v
5666	return s
5667}
5668
5669// SetDetectorModelArn sets the DetectorModelArn field's value.
5670func (s *DetectorModelVersionSummary) SetDetectorModelArn(v string) *DetectorModelVersionSummary {
5671	s.DetectorModelArn = &v
5672	return s
5673}
5674
5675// SetDetectorModelName sets the DetectorModelName field's value.
5676func (s *DetectorModelVersionSummary) SetDetectorModelName(v string) *DetectorModelVersionSummary {
5677	s.DetectorModelName = &v
5678	return s
5679}
5680
5681// SetDetectorModelVersion sets the DetectorModelVersion field's value.
5682func (s *DetectorModelVersionSummary) SetDetectorModelVersion(v string) *DetectorModelVersionSummary {
5683	s.DetectorModelVersion = &v
5684	return s
5685}
5686
5687// SetEvaluationMethod sets the EvaluationMethod field's value.
5688func (s *DetectorModelVersionSummary) SetEvaluationMethod(v string) *DetectorModelVersionSummary {
5689	s.EvaluationMethod = &v
5690	return s
5691}
5692
5693// SetLastUpdateTime sets the LastUpdateTime field's value.
5694func (s *DetectorModelVersionSummary) SetLastUpdateTime(v time.Time) *DetectorModelVersionSummary {
5695	s.LastUpdateTime = &v
5696	return s
5697}
5698
5699// SetRoleArn sets the RoleArn field's value.
5700func (s *DetectorModelVersionSummary) SetRoleArn(v string) *DetectorModelVersionSummary {
5701	s.RoleArn = &v
5702	return s
5703}
5704
5705// SetStatus sets the Status field's value.
5706func (s *DetectorModelVersionSummary) SetStatus(v string) *DetectorModelVersionSummary {
5707	s.Status = &v
5708	return s
5709}
5710
5711// Defines an action to write to the Amazon DynamoDB table that you created.
5712// The standard action payload contains all the information about the detector
5713// model instance and the event that triggered the action. You can customize
5714// the payload (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html).
5715// One column of the DynamoDB table receives all attribute-value pairs in the
5716// payload that you specify.
5717//
5718// You must use expressions for all parameters in DynamoDBAction. The expressions
5719// accept literals, operators, functions, references, and substitution templates.
5720//
5721// Examples
5722//
5723//    * For literal values, the expressions must contain single quotes. For
5724//    example, the value for the hashKeyType parameter can be 'STRING'.
5725//
5726//    * For references, you must specify either variables or input values. For
5727//    example, the value for the hashKeyField parameter can be $input.GreenhouseInput.name.
5728//
5729//    * For a substitution template, you must use ${}, and the template must
5730//    be in single quotes. A substitution template can also contain a combination
5731//    of literals, operators, functions, references, and substitution templates.
5732//    In the following example, the value for the hashKeyValue parameter uses
5733//    a substitution template. '${$input.GreenhouseInput.temperature * 6 / 5
5734//    + 32} in Fahrenheit'
5735//
5736//    * For a string concatenation, you must use +. A string concatenation can
5737//    also contain a combination of literals, operators, functions, references,
5738//    and substitution templates. In the following example, the value for the
5739//    tableName parameter uses a string concatenation. 'GreenhouseTemperatureTable
5740//    ' + $input.GreenhouseInput.date
5741//
5742// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
5743// in the AWS IoT Events Developer Guide.
5744//
5745// If the defined payload type is a string, DynamoDBAction writes non-JSON data
5746// to the DynamoDB table as binary data. The DynamoDB console displays the data
5747// as Base64-encoded text. The value for the payloadField parameter is <payload-field>_raw.
5748type DynamoDBAction struct {
5749	_ struct{} `type:"structure"`
5750
5751	// The name of the hash key (also called the partition key). The hashKeyField
5752	// value must match the partition key of the target DynamoDB table.
5753	//
5754	// HashKeyField is a required field
5755	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
5756
5757	// The data type for the hash key (also called the partition key). You can specify
5758	// the following values:
5759	//
5760	//    * 'STRING' - The hash key is a string.
5761	//
5762	//    * 'NUMBER' - The hash key is a number.
5763	//
5764	// If you don't specify hashKeyType, the default value is 'STRING'.
5765	HashKeyType *string `locationName:"hashKeyType" type:"string"`
5766
5767	// The value of the hash key (also called the partition key).
5768	//
5769	// HashKeyValue is a required field
5770	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
5771
5772	// The type of operation to perform. You can specify the following values:
5773	//
5774	//    * 'INSERT' - Insert data as a new item into the DynamoDB table. This item
5775	//    uses the specified hash key as a partition key. If you specified a range
5776	//    key, the item uses the range key as a sort key.
5777	//
5778	//    * 'UPDATE' - Update an existing item of the DynamoDB table with new data.
5779	//    This item's partition key must match the specified hash key. If you specified
5780	//    a range key, the range key must match the item's sort key.
5781	//
5782	//    * 'DELETE' - Delete an existing item of the DynamoDB table. This item's
5783	//    partition key must match the specified hash key. If you specified a range
5784	//    key, the range key must match the item's sort key.
5785	//
5786	// If you don't specify this parameter, AWS IoT Events triggers the 'INSERT'
5787	// operation.
5788	Operation *string `locationName:"operation" type:"string"`
5789
5790	// Information needed to configure the payload.
5791	//
5792	// By default, AWS IoT Events generates a standard payload in JSON for any action.
5793	// This action payload contains all attribute-value pairs that have the information
5794	// about the detector model instance and the event triggered the action. To
5795	// configure the action payload, you can use contentExpression.
5796	Payload *Payload `locationName:"payload" type:"structure"`
5797
5798	// The name of the DynamoDB column that receives the action payload.
5799	//
5800	// If you don't specify this parameter, the name of the DynamoDB column is payload.
5801	PayloadField *string `locationName:"payloadField" type:"string"`
5802
5803	// The name of the range key (also called the sort key). The rangeKeyField value
5804	// must match the sort key of the target DynamoDB table.
5805	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
5806
5807	// The data type for the range key (also called the sort key), You can specify
5808	// the following values:
5809	//
5810	//    * 'STRING' - The range key is a string.
5811	//
5812	//    * 'NUMBER' - The range key is number.
5813	//
5814	// If you don't specify rangeKeyField, the default value is 'STRING'.
5815	RangeKeyType *string `locationName:"rangeKeyType" type:"string"`
5816
5817	// The value of the range key (also called the sort key).
5818	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
5819
5820	// The name of the DynamoDB table. The tableName value must match the table
5821	// name of the target DynamoDB table.
5822	//
5823	// TableName is a required field
5824	TableName *string `locationName:"tableName" type:"string" required:"true"`
5825}
5826
5827// String returns the string representation.
5828//
5829// API parameter values that are decorated as "sensitive" in the API will not
5830// be included in the string output. The member name will be present, but the
5831// value will be replaced with "sensitive".
5832func (s DynamoDBAction) String() string {
5833	return awsutil.Prettify(s)
5834}
5835
5836// GoString returns the string representation.
5837//
5838// API parameter values that are decorated as "sensitive" in the API will not
5839// be included in the string output. The member name will be present, but the
5840// value will be replaced with "sensitive".
5841func (s DynamoDBAction) GoString() string {
5842	return s.String()
5843}
5844
5845// Validate inspects the fields of the type to determine if they are valid.
5846func (s *DynamoDBAction) Validate() error {
5847	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
5848	if s.HashKeyField == nil {
5849		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
5850	}
5851	if s.HashKeyValue == nil {
5852		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
5853	}
5854	if s.TableName == nil {
5855		invalidParams.Add(request.NewErrParamRequired("TableName"))
5856	}
5857	if s.Payload != nil {
5858		if err := s.Payload.Validate(); err != nil {
5859			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
5860		}
5861	}
5862
5863	if invalidParams.Len() > 0 {
5864		return invalidParams
5865	}
5866	return nil
5867}
5868
5869// SetHashKeyField sets the HashKeyField field's value.
5870func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
5871	s.HashKeyField = &v
5872	return s
5873}
5874
5875// SetHashKeyType sets the HashKeyType field's value.
5876func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
5877	s.HashKeyType = &v
5878	return s
5879}
5880
5881// SetHashKeyValue sets the HashKeyValue field's value.
5882func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
5883	s.HashKeyValue = &v
5884	return s
5885}
5886
5887// SetOperation sets the Operation field's value.
5888func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
5889	s.Operation = &v
5890	return s
5891}
5892
5893// SetPayload sets the Payload field's value.
5894func (s *DynamoDBAction) SetPayload(v *Payload) *DynamoDBAction {
5895	s.Payload = v
5896	return s
5897}
5898
5899// SetPayloadField sets the PayloadField field's value.
5900func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
5901	s.PayloadField = &v
5902	return s
5903}
5904
5905// SetRangeKeyField sets the RangeKeyField field's value.
5906func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
5907	s.RangeKeyField = &v
5908	return s
5909}
5910
5911// SetRangeKeyType sets the RangeKeyType field's value.
5912func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
5913	s.RangeKeyType = &v
5914	return s
5915}
5916
5917// SetRangeKeyValue sets the RangeKeyValue field's value.
5918func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
5919	s.RangeKeyValue = &v
5920	return s
5921}
5922
5923// SetTableName sets the TableName field's value.
5924func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
5925	s.TableName = &v
5926	return s
5927}
5928
5929// Defines an action to write to the Amazon DynamoDB table that you created.
5930// The default action payload contains all the information about the detector
5931// model instance and the event that triggered the action. You can customize
5932// the payload (https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html).
5933// A separate column of the DynamoDB table receives one attribute-value pair
5934// in the payload that you specify.
5935//
5936// You must use expressions for all parameters in DynamoDBv2Action. The expressions
5937// accept literals, operators, functions, references, and substitution templates.
5938//
5939// Examples
5940//
5941//    * For literal values, the expressions must contain single quotes. For
5942//    example, the value for the tableName parameter can be 'GreenhouseTemperatureTable'.
5943//
5944//    * For references, you must specify either variables or input values. For
5945//    example, the value for the tableName parameter can be $variable.ddbtableName.
5946//
5947//    * For a substitution template, you must use ${}, and the template must
5948//    be in single quotes. A substitution template can also contain a combination
5949//    of literals, operators, functions, references, and substitution templates.
5950//    In the following example, the value for the contentExpression parameter
5951//    in Payload uses a substitution template. '{\"sensorID\": \"${$input.GreenhouseInput.sensor_id}\",
5952//    \"temperature\": \"${$input.GreenhouseInput.temperature * 9 / 5 + 32}\"}'
5953//
5954//    * For a string concatenation, you must use +. A string concatenation can
5955//    also contain a combination of literals, operators, functions, references,
5956//    and substitution templates. In the following example, the value for the
5957//    tableName parameter uses a string concatenation. 'GreenhouseTemperatureTable
5958//    ' + $input.GreenhouseInput.date
5959//
5960// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
5961// in the AWS IoT Events Developer Guide.
5962//
5963// The value for the type parameter in Payload must be JSON.
5964type DynamoDBv2Action struct {
5965	_ struct{} `type:"structure"`
5966
5967	// Information needed to configure the payload.
5968	//
5969	// By default, AWS IoT Events generates a standard payload in JSON for any action.
5970	// This action payload contains all attribute-value pairs that have the information
5971	// about the detector model instance and the event triggered the action. To
5972	// configure the action payload, you can use contentExpression.
5973	Payload *Payload `locationName:"payload" type:"structure"`
5974
5975	// The name of the DynamoDB table.
5976	//
5977	// TableName is a required field
5978	TableName *string `locationName:"tableName" type:"string" required:"true"`
5979}
5980
5981// String returns the string representation.
5982//
5983// API parameter values that are decorated as "sensitive" in the API will not
5984// be included in the string output. The member name will be present, but the
5985// value will be replaced with "sensitive".
5986func (s DynamoDBv2Action) String() string {
5987	return awsutil.Prettify(s)
5988}
5989
5990// GoString returns the string representation.
5991//
5992// API parameter values that are decorated as "sensitive" in the API will not
5993// be included in the string output. The member name will be present, but the
5994// value will be replaced with "sensitive".
5995func (s DynamoDBv2Action) GoString() string {
5996	return s.String()
5997}
5998
5999// Validate inspects the fields of the type to determine if they are valid.
6000func (s *DynamoDBv2Action) Validate() error {
6001	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
6002	if s.TableName == nil {
6003		invalidParams.Add(request.NewErrParamRequired("TableName"))
6004	}
6005	if s.Payload != nil {
6006		if err := s.Payload.Validate(); err != nil {
6007			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
6008		}
6009	}
6010
6011	if invalidParams.Len() > 0 {
6012		return invalidParams
6013	}
6014	return nil
6015}
6016
6017// SetPayload sets the Payload field's value.
6018func (s *DynamoDBv2Action) SetPayload(v *Payload) *DynamoDBv2Action {
6019	s.Payload = v
6020	return s
6021}
6022
6023// SetTableName sets the TableName field's value.
6024func (s *DynamoDBv2Action) SetTableName(v string) *DynamoDBv2Action {
6025	s.TableName = &v
6026	return s
6027}
6028
6029// Contains the configuration information of email notifications.
6030type EmailConfiguration struct {
6031	_ struct{} `type:"structure"`
6032
6033	// Contains the subject and message of an email.
6034	Content *EmailContent `locationName:"content" type:"structure"`
6035
6036	// The email address that sends emails.
6037	//
6038	// If you use the AWS IoT Events managed AWS Lambda function to manage your
6039	// emails, you must verify the email address that sends emails in Amazon SES
6040	// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html).
6041	//
6042	// From is a required field
6043	From *string `locationName:"from" type:"string" required:"true"`
6044
6045	// Contains the information of one or more recipients who receive the emails.
6046	//
6047	// You must add the users that receive emails to your AWS SSO store (https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html).
6048	//
6049	// Recipients is a required field
6050	Recipients *EmailRecipients `locationName:"recipients" type:"structure" required:"true"`
6051}
6052
6053// String returns the string representation.
6054//
6055// API parameter values that are decorated as "sensitive" in the API will not
6056// be included in the string output. The member name will be present, but the
6057// value will be replaced with "sensitive".
6058func (s EmailConfiguration) String() string {
6059	return awsutil.Prettify(s)
6060}
6061
6062// GoString returns the string representation.
6063//
6064// API parameter values that are decorated as "sensitive" in the API will not
6065// be included in the string output. The member name will be present, but the
6066// value will be replaced with "sensitive".
6067func (s EmailConfiguration) GoString() string {
6068	return s.String()
6069}
6070
6071// Validate inspects the fields of the type to determine if they are valid.
6072func (s *EmailConfiguration) Validate() error {
6073	invalidParams := request.ErrInvalidParams{Context: "EmailConfiguration"}
6074	if s.From == nil {
6075		invalidParams.Add(request.NewErrParamRequired("From"))
6076	}
6077	if s.Recipients == nil {
6078		invalidParams.Add(request.NewErrParamRequired("Recipients"))
6079	}
6080	if s.Recipients != nil {
6081		if err := s.Recipients.Validate(); err != nil {
6082			invalidParams.AddNested("Recipients", err.(request.ErrInvalidParams))
6083		}
6084	}
6085
6086	if invalidParams.Len() > 0 {
6087		return invalidParams
6088	}
6089	return nil
6090}
6091
6092// SetContent sets the Content field's value.
6093func (s *EmailConfiguration) SetContent(v *EmailContent) *EmailConfiguration {
6094	s.Content = v
6095	return s
6096}
6097
6098// SetFrom sets the From field's value.
6099func (s *EmailConfiguration) SetFrom(v string) *EmailConfiguration {
6100	s.From = &v
6101	return s
6102}
6103
6104// SetRecipients sets the Recipients field's value.
6105func (s *EmailConfiguration) SetRecipients(v *EmailRecipients) *EmailConfiguration {
6106	s.Recipients = v
6107	return s
6108}
6109
6110// Contains the subject and message of an email.
6111type EmailContent struct {
6112	_ struct{} `type:"structure"`
6113
6114	// The message that you want to send. The message can be up to 200 characters.
6115	AdditionalMessage *string `locationName:"additionalMessage" type:"string"`
6116
6117	// The subject of the email.
6118	Subject *string `locationName:"subject" type:"string"`
6119}
6120
6121// String returns the string representation.
6122//
6123// API parameter values that are decorated as "sensitive" in the API will not
6124// be included in the string output. The member name will be present, but the
6125// value will be replaced with "sensitive".
6126func (s EmailContent) String() string {
6127	return awsutil.Prettify(s)
6128}
6129
6130// GoString returns the string representation.
6131//
6132// API parameter values that are decorated as "sensitive" in the API will not
6133// be included in the string output. The member name will be present, but the
6134// value will be replaced with "sensitive".
6135func (s EmailContent) GoString() string {
6136	return s.String()
6137}
6138
6139// SetAdditionalMessage sets the AdditionalMessage field's value.
6140func (s *EmailContent) SetAdditionalMessage(v string) *EmailContent {
6141	s.AdditionalMessage = &v
6142	return s
6143}
6144
6145// SetSubject sets the Subject field's value.
6146func (s *EmailContent) SetSubject(v string) *EmailContent {
6147	s.Subject = &v
6148	return s
6149}
6150
6151// Contains the information of one or more recipients who receive the emails.
6152//
6153// You must add the users that receive emails to your AWS SSO store (https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html).
6154type EmailRecipients struct {
6155	_ struct{} `type:"structure"`
6156
6157	// Specifies one or more recipients who receive the email.
6158	To []*RecipientDetail `locationName:"to" min:"1" type:"list"`
6159}
6160
6161// String returns the string representation.
6162//
6163// API parameter values that are decorated as "sensitive" in the API will not
6164// be included in the string output. The member name will be present, but the
6165// value will be replaced with "sensitive".
6166func (s EmailRecipients) String() string {
6167	return awsutil.Prettify(s)
6168}
6169
6170// GoString returns the string representation.
6171//
6172// API parameter values that are decorated as "sensitive" in the API will not
6173// be included in the string output. The member name will be present, but the
6174// value will be replaced with "sensitive".
6175func (s EmailRecipients) GoString() string {
6176	return s.String()
6177}
6178
6179// Validate inspects the fields of the type to determine if they are valid.
6180func (s *EmailRecipients) Validate() error {
6181	invalidParams := request.ErrInvalidParams{Context: "EmailRecipients"}
6182	if s.To != nil && len(s.To) < 1 {
6183		invalidParams.Add(request.NewErrParamMinLen("To", 1))
6184	}
6185	if s.To != nil {
6186		for i, v := range s.To {
6187			if v == nil {
6188				continue
6189			}
6190			if err := v.Validate(); err != nil {
6191				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "To", i), err.(request.ErrInvalidParams))
6192			}
6193		}
6194	}
6195
6196	if invalidParams.Len() > 0 {
6197		return invalidParams
6198	}
6199	return nil
6200}
6201
6202// SetTo sets the To field's value.
6203func (s *EmailRecipients) SetTo(v []*RecipientDetail) *EmailRecipients {
6204	s.To = v
6205	return s
6206}
6207
6208// Specifies the actions to be performed when the condition evaluates to TRUE.
6209type Event struct {
6210	_ struct{} `type:"structure"`
6211
6212	// The actions to be performed.
6213	Actions []*ActionData `locationName:"actions" type:"list"`
6214
6215	// Optional. The Boolean expression that, when TRUE, causes the actions to be
6216	// performed. If not present, the actions are performed (=TRUE). If the expression
6217	// result is not a Boolean value, the actions are not performed (=FALSE).
6218	Condition *string `locationName:"condition" type:"string"`
6219
6220	// The name of the event.
6221	//
6222	// EventName is a required field
6223	EventName *string `locationName:"eventName" type:"string" required:"true"`
6224}
6225
6226// String returns the string representation.
6227//
6228// API parameter values that are decorated as "sensitive" in the API will not
6229// be included in the string output. The member name will be present, but the
6230// value will be replaced with "sensitive".
6231func (s Event) String() string {
6232	return awsutil.Prettify(s)
6233}
6234
6235// GoString returns the string representation.
6236//
6237// API parameter values that are decorated as "sensitive" in the API will not
6238// be included in the string output. The member name will be present, but the
6239// value will be replaced with "sensitive".
6240func (s Event) GoString() string {
6241	return s.String()
6242}
6243
6244// Validate inspects the fields of the type to determine if they are valid.
6245func (s *Event) Validate() error {
6246	invalidParams := request.ErrInvalidParams{Context: "Event"}
6247	if s.EventName == nil {
6248		invalidParams.Add(request.NewErrParamRequired("EventName"))
6249	}
6250	if s.Actions != nil {
6251		for i, v := range s.Actions {
6252			if v == nil {
6253				continue
6254			}
6255			if err := v.Validate(); err != nil {
6256				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
6257			}
6258		}
6259	}
6260
6261	if invalidParams.Len() > 0 {
6262		return invalidParams
6263	}
6264	return nil
6265}
6266
6267// SetActions sets the Actions field's value.
6268func (s *Event) SetActions(v []*ActionData) *Event {
6269	s.Actions = v
6270	return s
6271}
6272
6273// SetCondition sets the Condition field's value.
6274func (s *Event) SetCondition(v string) *Event {
6275	s.Condition = &v
6276	return s
6277}
6278
6279// SetEventName sets the EventName field's value.
6280func (s *Event) SetEventName(v string) *Event {
6281	s.EventName = &v
6282	return s
6283}
6284
6285// Sends information about the detector model instance and the event that triggered
6286// the action to an Amazon Kinesis Data Firehose delivery stream.
6287type FirehoseAction struct {
6288	_ struct{} `type:"structure"`
6289
6290	// The name of the Kinesis Data Firehose delivery stream where the data is written.
6291	//
6292	// DeliveryStreamName is a required field
6293	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
6294
6295	// You can configure the action payload when you send a message to an Amazon
6296	// Kinesis Data Firehose delivery stream.
6297	Payload *Payload `locationName:"payload" type:"structure"`
6298
6299	// A character separator that is used to separate records written to the Kinesis
6300	// Data Firehose delivery stream. Valid values are: '\n' (newline), '\t' (tab),
6301	// '\r\n' (Windows newline), ',' (comma).
6302	Separator *string `locationName:"separator" type:"string"`
6303}
6304
6305// String returns the string representation.
6306//
6307// API parameter values that are decorated as "sensitive" in the API will not
6308// be included in the string output. The member name will be present, but the
6309// value will be replaced with "sensitive".
6310func (s FirehoseAction) String() string {
6311	return awsutil.Prettify(s)
6312}
6313
6314// GoString returns the string representation.
6315//
6316// API parameter values that are decorated as "sensitive" in the API will not
6317// be included in the string output. The member name will be present, but the
6318// value will be replaced with "sensitive".
6319func (s FirehoseAction) GoString() string {
6320	return s.String()
6321}
6322
6323// Validate inspects the fields of the type to determine if they are valid.
6324func (s *FirehoseAction) Validate() error {
6325	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
6326	if s.DeliveryStreamName == nil {
6327		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
6328	}
6329	if s.Payload != nil {
6330		if err := s.Payload.Validate(); err != nil {
6331			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
6332		}
6333	}
6334
6335	if invalidParams.Len() > 0 {
6336		return invalidParams
6337	}
6338	return nil
6339}
6340
6341// SetDeliveryStreamName sets the DeliveryStreamName field's value.
6342func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
6343	s.DeliveryStreamName = &v
6344	return s
6345}
6346
6347// SetPayload sets the Payload field's value.
6348func (s *FirehoseAction) SetPayload(v *Payload) *FirehoseAction {
6349	s.Payload = v
6350	return s
6351}
6352
6353// SetSeparator sets the Separator field's value.
6354func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
6355	s.Separator = &v
6356	return s
6357}
6358
6359type GetDetectorModelAnalysisResultsInput struct {
6360	_ struct{} `type:"structure" nopayload:"true"`
6361
6362	// The ID of the analysis result that you want to retrieve.
6363	//
6364	// AnalysisId is a required field
6365	AnalysisId *string `location:"uri" locationName:"analysisId" type:"string" required:"true"`
6366
6367	// The maximum number of results to be returned per request.
6368	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
6369
6370	// The token that you can use to return the next set of results.
6371	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6372}
6373
6374// String returns the string representation.
6375//
6376// API parameter values that are decorated as "sensitive" in the API will not
6377// be included in the string output. The member name will be present, but the
6378// value will be replaced with "sensitive".
6379func (s GetDetectorModelAnalysisResultsInput) String() string {
6380	return awsutil.Prettify(s)
6381}
6382
6383// GoString returns the string representation.
6384//
6385// API parameter values that are decorated as "sensitive" in the API will not
6386// be included in the string output. The member name will be present, but the
6387// value will be replaced with "sensitive".
6388func (s GetDetectorModelAnalysisResultsInput) GoString() string {
6389	return s.String()
6390}
6391
6392// Validate inspects the fields of the type to determine if they are valid.
6393func (s *GetDetectorModelAnalysisResultsInput) Validate() error {
6394	invalidParams := request.ErrInvalidParams{Context: "GetDetectorModelAnalysisResultsInput"}
6395	if s.AnalysisId == nil {
6396		invalidParams.Add(request.NewErrParamRequired("AnalysisId"))
6397	}
6398	if s.AnalysisId != nil && len(*s.AnalysisId) < 1 {
6399		invalidParams.Add(request.NewErrParamMinLen("AnalysisId", 1))
6400	}
6401
6402	if invalidParams.Len() > 0 {
6403		return invalidParams
6404	}
6405	return nil
6406}
6407
6408// SetAnalysisId sets the AnalysisId field's value.
6409func (s *GetDetectorModelAnalysisResultsInput) SetAnalysisId(v string) *GetDetectorModelAnalysisResultsInput {
6410	s.AnalysisId = &v
6411	return s
6412}
6413
6414// SetMaxResults sets the MaxResults field's value.
6415func (s *GetDetectorModelAnalysisResultsInput) SetMaxResults(v int64) *GetDetectorModelAnalysisResultsInput {
6416	s.MaxResults = &v
6417	return s
6418}
6419
6420// SetNextToken sets the NextToken field's value.
6421func (s *GetDetectorModelAnalysisResultsInput) SetNextToken(v string) *GetDetectorModelAnalysisResultsInput {
6422	s.NextToken = &v
6423	return s
6424}
6425
6426type GetDetectorModelAnalysisResultsOutput struct {
6427	_ struct{} `type:"structure"`
6428
6429	// Contains information about one or more analysis results.
6430	AnalysisResults []*AnalysisResult `locationName:"analysisResults" type:"list"`
6431
6432	// The token that you can use to return the next set of results, or null if
6433	// there are no more results.
6434	NextToken *string `locationName:"nextToken" type:"string"`
6435}
6436
6437// String returns the string representation.
6438//
6439// API parameter values that are decorated as "sensitive" in the API will not
6440// be included in the string output. The member name will be present, but the
6441// value will be replaced with "sensitive".
6442func (s GetDetectorModelAnalysisResultsOutput) String() string {
6443	return awsutil.Prettify(s)
6444}
6445
6446// GoString returns the string representation.
6447//
6448// API parameter values that are decorated as "sensitive" in the API will not
6449// be included in the string output. The member name will be present, but the
6450// value will be replaced with "sensitive".
6451func (s GetDetectorModelAnalysisResultsOutput) GoString() string {
6452	return s.String()
6453}
6454
6455// SetAnalysisResults sets the AnalysisResults field's value.
6456func (s *GetDetectorModelAnalysisResultsOutput) SetAnalysisResults(v []*AnalysisResult) *GetDetectorModelAnalysisResultsOutput {
6457	s.AnalysisResults = v
6458	return s
6459}
6460
6461// SetNextToken sets the NextToken field's value.
6462func (s *GetDetectorModelAnalysisResultsOutput) SetNextToken(v string) *GetDetectorModelAnalysisResultsOutput {
6463	s.NextToken = &v
6464	return s
6465}
6466
6467// Specifies the default alarm state. The configuration applies to all alarms
6468// that were created based on this alarm model.
6469type InitializationConfiguration struct {
6470	_ struct{} `type:"structure"`
6471
6472	// The value must be TRUE or FALSE. If FALSE, all alarm instances created based
6473	// on the alarm model are activated. The default value is TRUE.
6474	//
6475	// DisabledOnInitialization is a required field
6476	DisabledOnInitialization *bool `locationName:"disabledOnInitialization" type:"boolean" required:"true"`
6477}
6478
6479// String returns the string representation.
6480//
6481// API parameter values that are decorated as "sensitive" in the API will not
6482// be included in the string output. The member name will be present, but the
6483// value will be replaced with "sensitive".
6484func (s InitializationConfiguration) String() string {
6485	return awsutil.Prettify(s)
6486}
6487
6488// GoString returns the string representation.
6489//
6490// API parameter values that are decorated as "sensitive" in the API will not
6491// be included in the string output. The member name will be present, but the
6492// value will be replaced with "sensitive".
6493func (s InitializationConfiguration) GoString() string {
6494	return s.String()
6495}
6496
6497// Validate inspects the fields of the type to determine if they are valid.
6498func (s *InitializationConfiguration) Validate() error {
6499	invalidParams := request.ErrInvalidParams{Context: "InitializationConfiguration"}
6500	if s.DisabledOnInitialization == nil {
6501		invalidParams.Add(request.NewErrParamRequired("DisabledOnInitialization"))
6502	}
6503
6504	if invalidParams.Len() > 0 {
6505		return invalidParams
6506	}
6507	return nil
6508}
6509
6510// SetDisabledOnInitialization sets the DisabledOnInitialization field's value.
6511func (s *InitializationConfiguration) SetDisabledOnInitialization(v bool) *InitializationConfiguration {
6512	s.DisabledOnInitialization = &v
6513	return s
6514}
6515
6516// Information about the input.
6517type Input struct {
6518	_ struct{} `type:"structure"`
6519
6520	// Information about the configuration of an input.
6521	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
6522
6523	// The definition of the input.
6524	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure"`
6525}
6526
6527// String returns the string representation.
6528//
6529// API parameter values that are decorated as "sensitive" in the API will not
6530// be included in the string output. The member name will be present, but the
6531// value will be replaced with "sensitive".
6532func (s Input) String() string {
6533	return awsutil.Prettify(s)
6534}
6535
6536// GoString returns the string representation.
6537//
6538// API parameter values that are decorated as "sensitive" in the API will not
6539// be included in the string output. The member name will be present, but the
6540// value will be replaced with "sensitive".
6541func (s Input) GoString() string {
6542	return s.String()
6543}
6544
6545// SetInputConfiguration sets the InputConfiguration field's value.
6546func (s *Input) SetInputConfiguration(v *InputConfiguration) *Input {
6547	s.InputConfiguration = v
6548	return s
6549}
6550
6551// SetInputDefinition sets the InputDefinition field's value.
6552func (s *Input) SetInputDefinition(v *InputDefinition) *Input {
6553	s.InputDefinition = v
6554	return s
6555}
6556
6557// Information about the configuration of an input.
6558type InputConfiguration struct {
6559	_ struct{} `type:"structure"`
6560
6561	// The time the input was created.
6562	//
6563	// CreationTime is a required field
6564	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" required:"true"`
6565
6566	// The ARN of the input.
6567	//
6568	// InputArn is a required field
6569	InputArn *string `locationName:"inputArn" type:"string" required:"true"`
6570
6571	// A brief description of the input.
6572	InputDescription *string `locationName:"inputDescription" type:"string"`
6573
6574	// The name of the input.
6575	//
6576	// InputName is a required field
6577	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
6578
6579	// The last time the input was updated.
6580	//
6581	// LastUpdateTime is a required field
6582	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" required:"true"`
6583
6584	// The status of the input.
6585	//
6586	// Status is a required field
6587	Status *string `locationName:"status" type:"string" required:"true" enum:"InputStatus"`
6588}
6589
6590// String returns the string representation.
6591//
6592// API parameter values that are decorated as "sensitive" in the API will not
6593// be included in the string output. The member name will be present, but the
6594// value will be replaced with "sensitive".
6595func (s InputConfiguration) String() string {
6596	return awsutil.Prettify(s)
6597}
6598
6599// GoString returns the string representation.
6600//
6601// API parameter values that are decorated as "sensitive" in the API will not
6602// be included in the string output. The member name will be present, but the
6603// value will be replaced with "sensitive".
6604func (s InputConfiguration) GoString() string {
6605	return s.String()
6606}
6607
6608// SetCreationTime sets the CreationTime field's value.
6609func (s *InputConfiguration) SetCreationTime(v time.Time) *InputConfiguration {
6610	s.CreationTime = &v
6611	return s
6612}
6613
6614// SetInputArn sets the InputArn field's value.
6615func (s *InputConfiguration) SetInputArn(v string) *InputConfiguration {
6616	s.InputArn = &v
6617	return s
6618}
6619
6620// SetInputDescription sets the InputDescription field's value.
6621func (s *InputConfiguration) SetInputDescription(v string) *InputConfiguration {
6622	s.InputDescription = &v
6623	return s
6624}
6625
6626// SetInputName sets the InputName field's value.
6627func (s *InputConfiguration) SetInputName(v string) *InputConfiguration {
6628	s.InputName = &v
6629	return s
6630}
6631
6632// SetLastUpdateTime sets the LastUpdateTime field's value.
6633func (s *InputConfiguration) SetLastUpdateTime(v time.Time) *InputConfiguration {
6634	s.LastUpdateTime = &v
6635	return s
6636}
6637
6638// SetStatus sets the Status field's value.
6639func (s *InputConfiguration) SetStatus(v string) *InputConfiguration {
6640	s.Status = &v
6641	return s
6642}
6643
6644// The definition of the input.
6645type InputDefinition struct {
6646	_ struct{} `type:"structure"`
6647
6648	// The attributes from the JSON payload that are made available by the input.
6649	// Inputs are derived from messages sent to the AWS IoT Events system using
6650	// BatchPutMessage. Each such message contains a JSON payload, and those attributes
6651	// (and their paired values) specified here are available for use in the condition
6652	// expressions used by detectors that monitor this input.
6653	//
6654	// Attributes is a required field
6655	Attributes []*Attribute `locationName:"attributes" min:"1" type:"list" required:"true"`
6656}
6657
6658// String returns the string representation.
6659//
6660// API parameter values that are decorated as "sensitive" in the API will not
6661// be included in the string output. The member name will be present, but the
6662// value will be replaced with "sensitive".
6663func (s InputDefinition) String() string {
6664	return awsutil.Prettify(s)
6665}
6666
6667// GoString returns the string representation.
6668//
6669// API parameter values that are decorated as "sensitive" in the API will not
6670// be included in the string output. The member name will be present, but the
6671// value will be replaced with "sensitive".
6672func (s InputDefinition) GoString() string {
6673	return s.String()
6674}
6675
6676// Validate inspects the fields of the type to determine if they are valid.
6677func (s *InputDefinition) Validate() error {
6678	invalidParams := request.ErrInvalidParams{Context: "InputDefinition"}
6679	if s.Attributes == nil {
6680		invalidParams.Add(request.NewErrParamRequired("Attributes"))
6681	}
6682	if s.Attributes != nil && len(s.Attributes) < 1 {
6683		invalidParams.Add(request.NewErrParamMinLen("Attributes", 1))
6684	}
6685	if s.Attributes != nil {
6686		for i, v := range s.Attributes {
6687			if v == nil {
6688				continue
6689			}
6690			if err := v.Validate(); err != nil {
6691				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
6692			}
6693		}
6694	}
6695
6696	if invalidParams.Len() > 0 {
6697		return invalidParams
6698	}
6699	return nil
6700}
6701
6702// SetAttributes sets the Attributes field's value.
6703func (s *InputDefinition) SetAttributes(v []*Attribute) *InputDefinition {
6704	s.Attributes = v
6705	return s
6706}
6707
6708// The identifer of the input.
6709type InputIdentifier struct {
6710	_ struct{} `type:"structure"`
6711
6712	// The identifier of the input routed to AWS IoT Events.
6713	IotEventsInputIdentifier *IotEventsInputIdentifier `locationName:"iotEventsInputIdentifier" type:"structure"`
6714
6715	// The identifer of the input routed from AWS IoT SiteWise.
6716	IotSiteWiseInputIdentifier *IotSiteWiseInputIdentifier `locationName:"iotSiteWiseInputIdentifier" type:"structure"`
6717}
6718
6719// String returns the string representation.
6720//
6721// API parameter values that are decorated as "sensitive" in the API will not
6722// be included in the string output. The member name will be present, but the
6723// value will be replaced with "sensitive".
6724func (s InputIdentifier) String() string {
6725	return awsutil.Prettify(s)
6726}
6727
6728// GoString returns the string representation.
6729//
6730// API parameter values that are decorated as "sensitive" in the API will not
6731// be included in the string output. The member name will be present, but the
6732// value will be replaced with "sensitive".
6733func (s InputIdentifier) GoString() string {
6734	return s.String()
6735}
6736
6737// Validate inspects the fields of the type to determine if they are valid.
6738func (s *InputIdentifier) Validate() error {
6739	invalidParams := request.ErrInvalidParams{Context: "InputIdentifier"}
6740	if s.IotEventsInputIdentifier != nil {
6741		if err := s.IotEventsInputIdentifier.Validate(); err != nil {
6742			invalidParams.AddNested("IotEventsInputIdentifier", err.(request.ErrInvalidParams))
6743		}
6744	}
6745	if s.IotSiteWiseInputIdentifier != nil {
6746		if err := s.IotSiteWiseInputIdentifier.Validate(); err != nil {
6747			invalidParams.AddNested("IotSiteWiseInputIdentifier", err.(request.ErrInvalidParams))
6748		}
6749	}
6750
6751	if invalidParams.Len() > 0 {
6752		return invalidParams
6753	}
6754	return nil
6755}
6756
6757// SetIotEventsInputIdentifier sets the IotEventsInputIdentifier field's value.
6758func (s *InputIdentifier) SetIotEventsInputIdentifier(v *IotEventsInputIdentifier) *InputIdentifier {
6759	s.IotEventsInputIdentifier = v
6760	return s
6761}
6762
6763// SetIotSiteWiseInputIdentifier sets the IotSiteWiseInputIdentifier field's value.
6764func (s *InputIdentifier) SetIotSiteWiseInputIdentifier(v *IotSiteWiseInputIdentifier) *InputIdentifier {
6765	s.IotSiteWiseInputIdentifier = v
6766	return s
6767}
6768
6769// Information about the input.
6770type InputSummary struct {
6771	_ struct{} `type:"structure"`
6772
6773	// The time the input was created.
6774	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
6775
6776	// The ARN of the input.
6777	InputArn *string `locationName:"inputArn" type:"string"`
6778
6779	// A brief description of the input.
6780	InputDescription *string `locationName:"inputDescription" type:"string"`
6781
6782	// The name of the input.
6783	InputName *string `locationName:"inputName" min:"1" type:"string"`
6784
6785	// The last time the input was updated.
6786	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
6787
6788	// The status of the input.
6789	Status *string `locationName:"status" type:"string" enum:"InputStatus"`
6790}
6791
6792// String returns the string representation.
6793//
6794// API parameter values that are decorated as "sensitive" in the API will not
6795// be included in the string output. The member name will be present, but the
6796// value will be replaced with "sensitive".
6797func (s InputSummary) String() string {
6798	return awsutil.Prettify(s)
6799}
6800
6801// GoString returns the string representation.
6802//
6803// API parameter values that are decorated as "sensitive" in the API will not
6804// be included in the string output. The member name will be present, but the
6805// value will be replaced with "sensitive".
6806func (s InputSummary) GoString() string {
6807	return s.String()
6808}
6809
6810// SetCreationTime sets the CreationTime field's value.
6811func (s *InputSummary) SetCreationTime(v time.Time) *InputSummary {
6812	s.CreationTime = &v
6813	return s
6814}
6815
6816// SetInputArn sets the InputArn field's value.
6817func (s *InputSummary) SetInputArn(v string) *InputSummary {
6818	s.InputArn = &v
6819	return s
6820}
6821
6822// SetInputDescription sets the InputDescription field's value.
6823func (s *InputSummary) SetInputDescription(v string) *InputSummary {
6824	s.InputDescription = &v
6825	return s
6826}
6827
6828// SetInputName sets the InputName field's value.
6829func (s *InputSummary) SetInputName(v string) *InputSummary {
6830	s.InputName = &v
6831	return s
6832}
6833
6834// SetLastUpdateTime sets the LastUpdateTime field's value.
6835func (s *InputSummary) SetLastUpdateTime(v time.Time) *InputSummary {
6836	s.LastUpdateTime = &v
6837	return s
6838}
6839
6840// SetStatus sets the Status field's value.
6841func (s *InputSummary) SetStatus(v string) *InputSummary {
6842	s.Status = &v
6843	return s
6844}
6845
6846// An internal failure occurred.
6847type InternalFailureException struct {
6848	_            struct{}                  `type:"structure"`
6849	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6850
6851	// The message for the exception.
6852	Message_ *string `locationName:"message" type:"string"`
6853}
6854
6855// String returns the string representation.
6856//
6857// API parameter values that are decorated as "sensitive" in the API will not
6858// be included in the string output. The member name will be present, but the
6859// value will be replaced with "sensitive".
6860func (s InternalFailureException) String() string {
6861	return awsutil.Prettify(s)
6862}
6863
6864// GoString returns the string representation.
6865//
6866// API parameter values that are decorated as "sensitive" in the API will not
6867// be included in the string output. The member name will be present, but the
6868// value will be replaced with "sensitive".
6869func (s InternalFailureException) GoString() string {
6870	return s.String()
6871}
6872
6873func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
6874	return &InternalFailureException{
6875		RespMetadata: v,
6876	}
6877}
6878
6879// Code returns the exception type name.
6880func (s *InternalFailureException) Code() string {
6881	return "InternalFailureException"
6882}
6883
6884// Message returns the exception's message.
6885func (s *InternalFailureException) Message() string {
6886	if s.Message_ != nil {
6887		return *s.Message_
6888	}
6889	return ""
6890}
6891
6892// OrigErr always returns nil, satisfies awserr.Error interface.
6893func (s *InternalFailureException) OrigErr() error {
6894	return nil
6895}
6896
6897func (s *InternalFailureException) Error() string {
6898	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6899}
6900
6901// Status code returns the HTTP status code for the request's response error.
6902func (s *InternalFailureException) StatusCode() int {
6903	return s.RespMetadata.StatusCode
6904}
6905
6906// RequestID returns the service's response RequestID for request.
6907func (s *InternalFailureException) RequestID() string {
6908	return s.RespMetadata.RequestID
6909}
6910
6911// The request was invalid.
6912type InvalidRequestException struct {
6913	_            struct{}                  `type:"structure"`
6914	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6915
6916	// The message for the exception.
6917	Message_ *string `locationName:"message" type:"string"`
6918}
6919
6920// String returns the string representation.
6921//
6922// API parameter values that are decorated as "sensitive" in the API will not
6923// be included in the string output. The member name will be present, but the
6924// value will be replaced with "sensitive".
6925func (s InvalidRequestException) String() string {
6926	return awsutil.Prettify(s)
6927}
6928
6929// GoString returns the string representation.
6930//
6931// API parameter values that are decorated as "sensitive" in the API will not
6932// be included in the string output. The member name will be present, but the
6933// value will be replaced with "sensitive".
6934func (s InvalidRequestException) GoString() string {
6935	return s.String()
6936}
6937
6938func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
6939	return &InvalidRequestException{
6940		RespMetadata: v,
6941	}
6942}
6943
6944// Code returns the exception type name.
6945func (s *InvalidRequestException) Code() string {
6946	return "InvalidRequestException"
6947}
6948
6949// Message returns the exception's message.
6950func (s *InvalidRequestException) Message() string {
6951	if s.Message_ != nil {
6952		return *s.Message_
6953	}
6954	return ""
6955}
6956
6957// OrigErr always returns nil, satisfies awserr.Error interface.
6958func (s *InvalidRequestException) OrigErr() error {
6959	return nil
6960}
6961
6962func (s *InvalidRequestException) Error() string {
6963	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6964}
6965
6966// Status code returns the HTTP status code for the request's response error.
6967func (s *InvalidRequestException) StatusCode() int {
6968	return s.RespMetadata.StatusCode
6969}
6970
6971// RequestID returns the service's response RequestID for request.
6972func (s *InvalidRequestException) RequestID() string {
6973	return s.RespMetadata.RequestID
6974}
6975
6976// The identifier of the input routed to AWS IoT Events.
6977type IotEventsInputIdentifier struct {
6978	_ struct{} `type:"structure"`
6979
6980	// The name of the input routed to AWS IoT Events.
6981	//
6982	// InputName is a required field
6983	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
6984}
6985
6986// String returns the string representation.
6987//
6988// API parameter values that are decorated as "sensitive" in the API will not
6989// be included in the string output. The member name will be present, but the
6990// value will be replaced with "sensitive".
6991func (s IotEventsInputIdentifier) String() string {
6992	return awsutil.Prettify(s)
6993}
6994
6995// GoString returns the string representation.
6996//
6997// API parameter values that are decorated as "sensitive" in the API will not
6998// be included in the string output. The member name will be present, but the
6999// value will be replaced with "sensitive".
7000func (s IotEventsInputIdentifier) GoString() string {
7001	return s.String()
7002}
7003
7004// Validate inspects the fields of the type to determine if they are valid.
7005func (s *IotEventsInputIdentifier) Validate() error {
7006	invalidParams := request.ErrInvalidParams{Context: "IotEventsInputIdentifier"}
7007	if s.InputName == nil {
7008		invalidParams.Add(request.NewErrParamRequired("InputName"))
7009	}
7010	if s.InputName != nil && len(*s.InputName) < 1 {
7011		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
7012	}
7013
7014	if invalidParams.Len() > 0 {
7015		return invalidParams
7016	}
7017	return nil
7018}
7019
7020// SetInputName sets the InputName field's value.
7021func (s *IotEventsInputIdentifier) SetInputName(v string) *IotEventsInputIdentifier {
7022	s.InputName = &v
7023	return s
7024}
7025
7026// Sends information about the detector model instance and the event that triggered
7027// the action to a specified asset property in AWS IoT SiteWise.
7028//
7029// You must use expressions for all parameters in IotSiteWiseAction. The expressions
7030// accept literals, operators, functions, references, and substitutions templates.
7031//
7032// Examples
7033//
7034//    * For literal values, the expressions must contain single quotes. For
7035//    example, the value for the propertyAlias parameter can be '/company/windfarm/3/turbine/7/temperature'.
7036//
7037//    * For references, you must specify either variables or input values. For
7038//    example, the value for the assetId parameter can be $input.TurbineInput.assetId1.
7039//
7040//    * For a substitution template, you must use ${}, and the template must
7041//    be in single quotes. A substitution template can also contain a combination
7042//    of literals, operators, functions, references, and substitution templates.
7043//    In the following example, the value for the propertyAlias parameter uses
7044//    a substitution template. 'company/windfarm/${$input.TemperatureInput.sensorData.windfarmID}/turbine/
7045//    ${$input.TemperatureInput.sensorData.turbineID}/temperature'
7046//
7047// You must specify either propertyAlias or both assetId and propertyId to identify
7048// the target asset property in AWS IoT SiteWise.
7049//
7050// For more information, see Expressions (https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html)
7051// in the AWS IoT Events Developer Guide.
7052type IotSiteWiseAction struct {
7053	_ struct{} `type:"structure"`
7054
7055	// The ID of the asset that has the specified property.
7056	AssetId *string `locationName:"assetId" type:"string"`
7057
7058	// A unique identifier for this entry. You can use the entry ID to track which
7059	// data entry causes an error in case of failure. The default is a new unique
7060	// identifier.
7061	EntryId *string `locationName:"entryId" type:"string"`
7062
7063	// The alias of the asset property.
7064	PropertyAlias *string `locationName:"propertyAlias" type:"string"`
7065
7066	// The ID of the asset property.
7067	PropertyId *string `locationName:"propertyId" type:"string"`
7068
7069	// The value to send to the asset property. This value contains timestamp, quality,
7070	// and value (TQV) information.
7071	PropertyValue *AssetPropertyValue `locationName:"propertyValue" type:"structure"`
7072}
7073
7074// String returns the string representation.
7075//
7076// API parameter values that are decorated as "sensitive" in the API will not
7077// be included in the string output. The member name will be present, but the
7078// value will be replaced with "sensitive".
7079func (s IotSiteWiseAction) String() string {
7080	return awsutil.Prettify(s)
7081}
7082
7083// GoString returns the string representation.
7084//
7085// API parameter values that are decorated as "sensitive" in the API will not
7086// be included in the string output. The member name will be present, but the
7087// value will be replaced with "sensitive".
7088func (s IotSiteWiseAction) GoString() string {
7089	return s.String()
7090}
7091
7092// Validate inspects the fields of the type to determine if they are valid.
7093func (s *IotSiteWiseAction) Validate() error {
7094	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
7095	if s.PropertyValue != nil {
7096		if err := s.PropertyValue.Validate(); err != nil {
7097			invalidParams.AddNested("PropertyValue", err.(request.ErrInvalidParams))
7098		}
7099	}
7100
7101	if invalidParams.Len() > 0 {
7102		return invalidParams
7103	}
7104	return nil
7105}
7106
7107// SetAssetId sets the AssetId field's value.
7108func (s *IotSiteWiseAction) SetAssetId(v string) *IotSiteWiseAction {
7109	s.AssetId = &v
7110	return s
7111}
7112
7113// SetEntryId sets the EntryId field's value.
7114func (s *IotSiteWiseAction) SetEntryId(v string) *IotSiteWiseAction {
7115	s.EntryId = &v
7116	return s
7117}
7118
7119// SetPropertyAlias sets the PropertyAlias field's value.
7120func (s *IotSiteWiseAction) SetPropertyAlias(v string) *IotSiteWiseAction {
7121	s.PropertyAlias = &v
7122	return s
7123}
7124
7125// SetPropertyId sets the PropertyId field's value.
7126func (s *IotSiteWiseAction) SetPropertyId(v string) *IotSiteWiseAction {
7127	s.PropertyId = &v
7128	return s
7129}
7130
7131// SetPropertyValue sets the PropertyValue field's value.
7132func (s *IotSiteWiseAction) SetPropertyValue(v *AssetPropertyValue) *IotSiteWiseAction {
7133	s.PropertyValue = v
7134	return s
7135}
7136
7137// The asset model property identifer of the input routed from AWS IoT SiteWise.
7138type IotSiteWiseAssetModelPropertyIdentifier struct {
7139	_ struct{} `type:"structure"`
7140
7141	// The ID of the AWS IoT SiteWise asset model.
7142	//
7143	// AssetModelId is a required field
7144	AssetModelId *string `locationName:"assetModelId" type:"string" required:"true"`
7145
7146	// The ID of the AWS IoT SiteWise asset property.
7147	//
7148	// PropertyId is a required field
7149	PropertyId *string `locationName:"propertyId" type:"string" required:"true"`
7150}
7151
7152// String returns the string representation.
7153//
7154// API parameter values that are decorated as "sensitive" in the API will not
7155// be included in the string output. The member name will be present, but the
7156// value will be replaced with "sensitive".
7157func (s IotSiteWiseAssetModelPropertyIdentifier) String() string {
7158	return awsutil.Prettify(s)
7159}
7160
7161// GoString returns the string representation.
7162//
7163// API parameter values that are decorated as "sensitive" in the API will not
7164// be included in the string output. The member name will be present, but the
7165// value will be replaced with "sensitive".
7166func (s IotSiteWiseAssetModelPropertyIdentifier) GoString() string {
7167	return s.String()
7168}
7169
7170// Validate inspects the fields of the type to determine if they are valid.
7171func (s *IotSiteWiseAssetModelPropertyIdentifier) Validate() error {
7172	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAssetModelPropertyIdentifier"}
7173	if s.AssetModelId == nil {
7174		invalidParams.Add(request.NewErrParamRequired("AssetModelId"))
7175	}
7176	if s.PropertyId == nil {
7177		invalidParams.Add(request.NewErrParamRequired("PropertyId"))
7178	}
7179
7180	if invalidParams.Len() > 0 {
7181		return invalidParams
7182	}
7183	return nil
7184}
7185
7186// SetAssetModelId sets the AssetModelId field's value.
7187func (s *IotSiteWiseAssetModelPropertyIdentifier) SetAssetModelId(v string) *IotSiteWiseAssetModelPropertyIdentifier {
7188	s.AssetModelId = &v
7189	return s
7190}
7191
7192// SetPropertyId sets the PropertyId field's value.
7193func (s *IotSiteWiseAssetModelPropertyIdentifier) SetPropertyId(v string) *IotSiteWiseAssetModelPropertyIdentifier {
7194	s.PropertyId = &v
7195	return s
7196}
7197
7198// The identifer of the input routed from AWS IoT SiteWise.
7199type IotSiteWiseInputIdentifier struct {
7200	_ struct{} `type:"structure"`
7201
7202	// The identifier of the AWS IoT SiteWise asset model property.
7203	IotSiteWiseAssetModelPropertyIdentifier *IotSiteWiseAssetModelPropertyIdentifier `locationName:"iotSiteWiseAssetModelPropertyIdentifier" type:"structure"`
7204}
7205
7206// String returns the string representation.
7207//
7208// API parameter values that are decorated as "sensitive" in the API will not
7209// be included in the string output. The member name will be present, but the
7210// value will be replaced with "sensitive".
7211func (s IotSiteWiseInputIdentifier) String() string {
7212	return awsutil.Prettify(s)
7213}
7214
7215// GoString returns the string representation.
7216//
7217// API parameter values that are decorated as "sensitive" in the API will not
7218// be included in the string output. The member name will be present, but the
7219// value will be replaced with "sensitive".
7220func (s IotSiteWiseInputIdentifier) GoString() string {
7221	return s.String()
7222}
7223
7224// Validate inspects the fields of the type to determine if they are valid.
7225func (s *IotSiteWiseInputIdentifier) Validate() error {
7226	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseInputIdentifier"}
7227	if s.IotSiteWiseAssetModelPropertyIdentifier != nil {
7228		if err := s.IotSiteWiseAssetModelPropertyIdentifier.Validate(); err != nil {
7229			invalidParams.AddNested("IotSiteWiseAssetModelPropertyIdentifier", err.(request.ErrInvalidParams))
7230		}
7231	}
7232
7233	if invalidParams.Len() > 0 {
7234		return invalidParams
7235	}
7236	return nil
7237}
7238
7239// SetIotSiteWiseAssetModelPropertyIdentifier sets the IotSiteWiseAssetModelPropertyIdentifier field's value.
7240func (s *IotSiteWiseInputIdentifier) SetIotSiteWiseAssetModelPropertyIdentifier(v *IotSiteWiseAssetModelPropertyIdentifier) *IotSiteWiseInputIdentifier {
7241	s.IotSiteWiseAssetModelPropertyIdentifier = v
7242	return s
7243}
7244
7245// Information required to publish the MQTT message through the AWS IoT message
7246// broker.
7247type IotTopicPublishAction struct {
7248	_ struct{} `type:"structure"`
7249
7250	// The MQTT topic of the message. You can use a string expression that includes
7251	// variables ($variable.<variable-name>) and input values ($input.<input-name>.<path-to-datum>)
7252	// as the topic string.
7253	//
7254	// MqttTopic is a required field
7255	MqttTopic *string `locationName:"mqttTopic" min:"1" type:"string" required:"true"`
7256
7257	// You can configure the action payload when you publish a message to an AWS
7258	// IoT Core topic.
7259	Payload *Payload `locationName:"payload" type:"structure"`
7260}
7261
7262// String returns the string representation.
7263//
7264// API parameter values that are decorated as "sensitive" in the API will not
7265// be included in the string output. The member name will be present, but the
7266// value will be replaced with "sensitive".
7267func (s IotTopicPublishAction) String() string {
7268	return awsutil.Prettify(s)
7269}
7270
7271// GoString returns the string representation.
7272//
7273// API parameter values that are decorated as "sensitive" in the API will not
7274// be included in the string output. The member name will be present, but the
7275// value will be replaced with "sensitive".
7276func (s IotTopicPublishAction) GoString() string {
7277	return s.String()
7278}
7279
7280// Validate inspects the fields of the type to determine if they are valid.
7281func (s *IotTopicPublishAction) Validate() error {
7282	invalidParams := request.ErrInvalidParams{Context: "IotTopicPublishAction"}
7283	if s.MqttTopic == nil {
7284		invalidParams.Add(request.NewErrParamRequired("MqttTopic"))
7285	}
7286	if s.MqttTopic != nil && len(*s.MqttTopic) < 1 {
7287		invalidParams.Add(request.NewErrParamMinLen("MqttTopic", 1))
7288	}
7289	if s.Payload != nil {
7290		if err := s.Payload.Validate(); err != nil {
7291			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
7292		}
7293	}
7294
7295	if invalidParams.Len() > 0 {
7296		return invalidParams
7297	}
7298	return nil
7299}
7300
7301// SetMqttTopic sets the MqttTopic field's value.
7302func (s *IotTopicPublishAction) SetMqttTopic(v string) *IotTopicPublishAction {
7303	s.MqttTopic = &v
7304	return s
7305}
7306
7307// SetPayload sets the Payload field's value.
7308func (s *IotTopicPublishAction) SetPayload(v *Payload) *IotTopicPublishAction {
7309	s.Payload = v
7310	return s
7311}
7312
7313// Calls a Lambda function, passing in information about the detector model
7314// instance and the event that triggered the action.
7315type LambdaAction struct {
7316	_ struct{} `type:"structure"`
7317
7318	// The ARN of the Lambda function that is executed.
7319	//
7320	// FunctionArn is a required field
7321	FunctionArn *string `locationName:"functionArn" min:"1" type:"string" required:"true"`
7322
7323	// You can configure the action payload when you send a message to a Lambda
7324	// function.
7325	Payload *Payload `locationName:"payload" type:"structure"`
7326}
7327
7328// String returns the string representation.
7329//
7330// API parameter values that are decorated as "sensitive" in the API will not
7331// be included in the string output. The member name will be present, but the
7332// value will be replaced with "sensitive".
7333func (s LambdaAction) String() string {
7334	return awsutil.Prettify(s)
7335}
7336
7337// GoString returns the string representation.
7338//
7339// API parameter values that are decorated as "sensitive" in the API will not
7340// be included in the string output. The member name will be present, but the
7341// value will be replaced with "sensitive".
7342func (s LambdaAction) GoString() string {
7343	return s.String()
7344}
7345
7346// Validate inspects the fields of the type to determine if they are valid.
7347func (s *LambdaAction) Validate() error {
7348	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
7349	if s.FunctionArn == nil {
7350		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
7351	}
7352	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
7353		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
7354	}
7355	if s.Payload != nil {
7356		if err := s.Payload.Validate(); err != nil {
7357			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
7358		}
7359	}
7360
7361	if invalidParams.Len() > 0 {
7362		return invalidParams
7363	}
7364	return nil
7365}
7366
7367// SetFunctionArn sets the FunctionArn field's value.
7368func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
7369	s.FunctionArn = &v
7370	return s
7371}
7372
7373// SetPayload sets the Payload field's value.
7374func (s *LambdaAction) SetPayload(v *Payload) *LambdaAction {
7375	s.Payload = v
7376	return s
7377}
7378
7379// A limit was exceeded.
7380type LimitExceededException struct {
7381	_            struct{}                  `type:"structure"`
7382	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7383
7384	// The message for the exception.
7385	Message_ *string `locationName:"message" type:"string"`
7386}
7387
7388// String returns the string representation.
7389//
7390// API parameter values that are decorated as "sensitive" in the API will not
7391// be included in the string output. The member name will be present, but the
7392// value will be replaced with "sensitive".
7393func (s LimitExceededException) String() string {
7394	return awsutil.Prettify(s)
7395}
7396
7397// GoString returns the string representation.
7398//
7399// API parameter values that are decorated as "sensitive" in the API will not
7400// be included in the string output. The member name will be present, but the
7401// value will be replaced with "sensitive".
7402func (s LimitExceededException) GoString() string {
7403	return s.String()
7404}
7405
7406func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
7407	return &LimitExceededException{
7408		RespMetadata: v,
7409	}
7410}
7411
7412// Code returns the exception type name.
7413func (s *LimitExceededException) Code() string {
7414	return "LimitExceededException"
7415}
7416
7417// Message returns the exception's message.
7418func (s *LimitExceededException) Message() string {
7419	if s.Message_ != nil {
7420		return *s.Message_
7421	}
7422	return ""
7423}
7424
7425// OrigErr always returns nil, satisfies awserr.Error interface.
7426func (s *LimitExceededException) OrigErr() error {
7427	return nil
7428}
7429
7430func (s *LimitExceededException) Error() string {
7431	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7432}
7433
7434// Status code returns the HTTP status code for the request's response error.
7435func (s *LimitExceededException) StatusCode() int {
7436	return s.RespMetadata.StatusCode
7437}
7438
7439// RequestID returns the service's response RequestID for request.
7440func (s *LimitExceededException) RequestID() string {
7441	return s.RespMetadata.RequestID
7442}
7443
7444type ListAlarmModelVersionsInput struct {
7445	_ struct{} `type:"structure" nopayload:"true"`
7446
7447	// The name of the alarm model.
7448	//
7449	// AlarmModelName is a required field
7450	AlarmModelName *string `location:"uri" locationName:"alarmModelName" min:"1" type:"string" required:"true"`
7451
7452	// The maximum number of results to be returned per request.
7453	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7454
7455	// The token that you can use to return the next set of results.
7456	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7457}
7458
7459// String returns the string representation.
7460//
7461// API parameter values that are decorated as "sensitive" in the API will not
7462// be included in the string output. The member name will be present, but the
7463// value will be replaced with "sensitive".
7464func (s ListAlarmModelVersionsInput) String() string {
7465	return awsutil.Prettify(s)
7466}
7467
7468// GoString returns the string representation.
7469//
7470// API parameter values that are decorated as "sensitive" in the API will not
7471// be included in the string output. The member name will be present, but the
7472// value will be replaced with "sensitive".
7473func (s ListAlarmModelVersionsInput) GoString() string {
7474	return s.String()
7475}
7476
7477// Validate inspects the fields of the type to determine if they are valid.
7478func (s *ListAlarmModelVersionsInput) Validate() error {
7479	invalidParams := request.ErrInvalidParams{Context: "ListAlarmModelVersionsInput"}
7480	if s.AlarmModelName == nil {
7481		invalidParams.Add(request.NewErrParamRequired("AlarmModelName"))
7482	}
7483	if s.AlarmModelName != nil && len(*s.AlarmModelName) < 1 {
7484		invalidParams.Add(request.NewErrParamMinLen("AlarmModelName", 1))
7485	}
7486	if s.MaxResults != nil && *s.MaxResults < 1 {
7487		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7488	}
7489
7490	if invalidParams.Len() > 0 {
7491		return invalidParams
7492	}
7493	return nil
7494}
7495
7496// SetAlarmModelName sets the AlarmModelName field's value.
7497func (s *ListAlarmModelVersionsInput) SetAlarmModelName(v string) *ListAlarmModelVersionsInput {
7498	s.AlarmModelName = &v
7499	return s
7500}
7501
7502// SetMaxResults sets the MaxResults field's value.
7503func (s *ListAlarmModelVersionsInput) SetMaxResults(v int64) *ListAlarmModelVersionsInput {
7504	s.MaxResults = &v
7505	return s
7506}
7507
7508// SetNextToken sets the NextToken field's value.
7509func (s *ListAlarmModelVersionsInput) SetNextToken(v string) *ListAlarmModelVersionsInput {
7510	s.NextToken = &v
7511	return s
7512}
7513
7514type ListAlarmModelVersionsOutput struct {
7515	_ struct{} `type:"structure"`
7516
7517	// A list that summarizes each alarm model version.
7518	AlarmModelVersionSummaries []*AlarmModelVersionSummary `locationName:"alarmModelVersionSummaries" type:"list"`
7519
7520	// The token that you can use to return the next set of results, or null if
7521	// there are no more results.
7522	NextToken *string `locationName:"nextToken" type:"string"`
7523}
7524
7525// String returns the string representation.
7526//
7527// API parameter values that are decorated as "sensitive" in the API will not
7528// be included in the string output. The member name will be present, but the
7529// value will be replaced with "sensitive".
7530func (s ListAlarmModelVersionsOutput) String() string {
7531	return awsutil.Prettify(s)
7532}
7533
7534// GoString returns the string representation.
7535//
7536// API parameter values that are decorated as "sensitive" in the API will not
7537// be included in the string output. The member name will be present, but the
7538// value will be replaced with "sensitive".
7539func (s ListAlarmModelVersionsOutput) GoString() string {
7540	return s.String()
7541}
7542
7543// SetAlarmModelVersionSummaries sets the AlarmModelVersionSummaries field's value.
7544func (s *ListAlarmModelVersionsOutput) SetAlarmModelVersionSummaries(v []*AlarmModelVersionSummary) *ListAlarmModelVersionsOutput {
7545	s.AlarmModelVersionSummaries = v
7546	return s
7547}
7548
7549// SetNextToken sets the NextToken field's value.
7550func (s *ListAlarmModelVersionsOutput) SetNextToken(v string) *ListAlarmModelVersionsOutput {
7551	s.NextToken = &v
7552	return s
7553}
7554
7555type ListAlarmModelsInput struct {
7556	_ struct{} `type:"structure" nopayload:"true"`
7557
7558	// The maximum number of results to be returned per request.
7559	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7560
7561	// The token that you can use to return the next set of results.
7562	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7563}
7564
7565// String returns the string representation.
7566//
7567// API parameter values that are decorated as "sensitive" in the API will not
7568// be included in the string output. The member name will be present, but the
7569// value will be replaced with "sensitive".
7570func (s ListAlarmModelsInput) String() string {
7571	return awsutil.Prettify(s)
7572}
7573
7574// GoString returns the string representation.
7575//
7576// API parameter values that are decorated as "sensitive" in the API will not
7577// be included in the string output. The member name will be present, but the
7578// value will be replaced with "sensitive".
7579func (s ListAlarmModelsInput) GoString() string {
7580	return s.String()
7581}
7582
7583// Validate inspects the fields of the type to determine if they are valid.
7584func (s *ListAlarmModelsInput) Validate() error {
7585	invalidParams := request.ErrInvalidParams{Context: "ListAlarmModelsInput"}
7586	if s.MaxResults != nil && *s.MaxResults < 1 {
7587		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7588	}
7589
7590	if invalidParams.Len() > 0 {
7591		return invalidParams
7592	}
7593	return nil
7594}
7595
7596// SetMaxResults sets the MaxResults field's value.
7597func (s *ListAlarmModelsInput) SetMaxResults(v int64) *ListAlarmModelsInput {
7598	s.MaxResults = &v
7599	return s
7600}
7601
7602// SetNextToken sets the NextToken field's value.
7603func (s *ListAlarmModelsInput) SetNextToken(v string) *ListAlarmModelsInput {
7604	s.NextToken = &v
7605	return s
7606}
7607
7608type ListAlarmModelsOutput struct {
7609	_ struct{} `type:"structure"`
7610
7611	// A list that summarizes each alarm model.
7612	AlarmModelSummaries []*AlarmModelSummary `locationName:"alarmModelSummaries" type:"list"`
7613
7614	// The token that you can use to return the next set of results, or null if
7615	// there are no more results.
7616	NextToken *string `locationName:"nextToken" type:"string"`
7617}
7618
7619// String returns the string representation.
7620//
7621// API parameter values that are decorated as "sensitive" in the API will not
7622// be included in the string output. The member name will be present, but the
7623// value will be replaced with "sensitive".
7624func (s ListAlarmModelsOutput) String() string {
7625	return awsutil.Prettify(s)
7626}
7627
7628// GoString returns the string representation.
7629//
7630// API parameter values that are decorated as "sensitive" in the API will not
7631// be included in the string output. The member name will be present, but the
7632// value will be replaced with "sensitive".
7633func (s ListAlarmModelsOutput) GoString() string {
7634	return s.String()
7635}
7636
7637// SetAlarmModelSummaries sets the AlarmModelSummaries field's value.
7638func (s *ListAlarmModelsOutput) SetAlarmModelSummaries(v []*AlarmModelSummary) *ListAlarmModelsOutput {
7639	s.AlarmModelSummaries = v
7640	return s
7641}
7642
7643// SetNextToken sets the NextToken field's value.
7644func (s *ListAlarmModelsOutput) SetNextToken(v string) *ListAlarmModelsOutput {
7645	s.NextToken = &v
7646	return s
7647}
7648
7649type ListDetectorModelVersionsInput struct {
7650	_ struct{} `type:"structure" nopayload:"true"`
7651
7652	// The name of the detector model whose versions are returned.
7653	//
7654	// DetectorModelName is a required field
7655	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
7656
7657	// The maximum number of results to be returned per request.
7658	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7659
7660	// The token that you can use to return the next set of results.
7661	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7662}
7663
7664// String returns the string representation.
7665//
7666// API parameter values that are decorated as "sensitive" in the API will not
7667// be included in the string output. The member name will be present, but the
7668// value will be replaced with "sensitive".
7669func (s ListDetectorModelVersionsInput) String() string {
7670	return awsutil.Prettify(s)
7671}
7672
7673// GoString returns the string representation.
7674//
7675// API parameter values that are decorated as "sensitive" in the API will not
7676// be included in the string output. The member name will be present, but the
7677// value will be replaced with "sensitive".
7678func (s ListDetectorModelVersionsInput) GoString() string {
7679	return s.String()
7680}
7681
7682// Validate inspects the fields of the type to determine if they are valid.
7683func (s *ListDetectorModelVersionsInput) Validate() error {
7684	invalidParams := request.ErrInvalidParams{Context: "ListDetectorModelVersionsInput"}
7685	if s.DetectorModelName == nil {
7686		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
7687	}
7688	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
7689		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
7690	}
7691	if s.MaxResults != nil && *s.MaxResults < 1 {
7692		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7693	}
7694
7695	if invalidParams.Len() > 0 {
7696		return invalidParams
7697	}
7698	return nil
7699}
7700
7701// SetDetectorModelName sets the DetectorModelName field's value.
7702func (s *ListDetectorModelVersionsInput) SetDetectorModelName(v string) *ListDetectorModelVersionsInput {
7703	s.DetectorModelName = &v
7704	return s
7705}
7706
7707// SetMaxResults sets the MaxResults field's value.
7708func (s *ListDetectorModelVersionsInput) SetMaxResults(v int64) *ListDetectorModelVersionsInput {
7709	s.MaxResults = &v
7710	return s
7711}
7712
7713// SetNextToken sets the NextToken field's value.
7714func (s *ListDetectorModelVersionsInput) SetNextToken(v string) *ListDetectorModelVersionsInput {
7715	s.NextToken = &v
7716	return s
7717}
7718
7719type ListDetectorModelVersionsOutput struct {
7720	_ struct{} `type:"structure"`
7721
7722	// Summary information about the detector model versions.
7723	DetectorModelVersionSummaries []*DetectorModelVersionSummary `locationName:"detectorModelVersionSummaries" type:"list"`
7724
7725	// The token that you can use to return the next set of results, or null if
7726	// there are no more results.
7727	NextToken *string `locationName:"nextToken" type:"string"`
7728}
7729
7730// String returns the string representation.
7731//
7732// API parameter values that are decorated as "sensitive" in the API will not
7733// be included in the string output. The member name will be present, but the
7734// value will be replaced with "sensitive".
7735func (s ListDetectorModelVersionsOutput) String() string {
7736	return awsutil.Prettify(s)
7737}
7738
7739// GoString returns the string representation.
7740//
7741// API parameter values that are decorated as "sensitive" in the API will not
7742// be included in the string output. The member name will be present, but the
7743// value will be replaced with "sensitive".
7744func (s ListDetectorModelVersionsOutput) GoString() string {
7745	return s.String()
7746}
7747
7748// SetDetectorModelVersionSummaries sets the DetectorModelVersionSummaries field's value.
7749func (s *ListDetectorModelVersionsOutput) SetDetectorModelVersionSummaries(v []*DetectorModelVersionSummary) *ListDetectorModelVersionsOutput {
7750	s.DetectorModelVersionSummaries = v
7751	return s
7752}
7753
7754// SetNextToken sets the NextToken field's value.
7755func (s *ListDetectorModelVersionsOutput) SetNextToken(v string) *ListDetectorModelVersionsOutput {
7756	s.NextToken = &v
7757	return s
7758}
7759
7760type ListDetectorModelsInput struct {
7761	_ struct{} `type:"structure" nopayload:"true"`
7762
7763	// The maximum number of results to be returned per request.
7764	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7765
7766	// The token that you can use to return the next set of results.
7767	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7768}
7769
7770// String returns the string representation.
7771//
7772// API parameter values that are decorated as "sensitive" in the API will not
7773// be included in the string output. The member name will be present, but the
7774// value will be replaced with "sensitive".
7775func (s ListDetectorModelsInput) String() string {
7776	return awsutil.Prettify(s)
7777}
7778
7779// GoString returns the string representation.
7780//
7781// API parameter values that are decorated as "sensitive" in the API will not
7782// be included in the string output. The member name will be present, but the
7783// value will be replaced with "sensitive".
7784func (s ListDetectorModelsInput) GoString() string {
7785	return s.String()
7786}
7787
7788// Validate inspects the fields of the type to determine if they are valid.
7789func (s *ListDetectorModelsInput) Validate() error {
7790	invalidParams := request.ErrInvalidParams{Context: "ListDetectorModelsInput"}
7791	if s.MaxResults != nil && *s.MaxResults < 1 {
7792		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7793	}
7794
7795	if invalidParams.Len() > 0 {
7796		return invalidParams
7797	}
7798	return nil
7799}
7800
7801// SetMaxResults sets the MaxResults field's value.
7802func (s *ListDetectorModelsInput) SetMaxResults(v int64) *ListDetectorModelsInput {
7803	s.MaxResults = &v
7804	return s
7805}
7806
7807// SetNextToken sets the NextToken field's value.
7808func (s *ListDetectorModelsInput) SetNextToken(v string) *ListDetectorModelsInput {
7809	s.NextToken = &v
7810	return s
7811}
7812
7813type ListDetectorModelsOutput struct {
7814	_ struct{} `type:"structure"`
7815
7816	// Summary information about the detector models.
7817	DetectorModelSummaries []*DetectorModelSummary `locationName:"detectorModelSummaries" type:"list"`
7818
7819	// The token that you can use to return the next set of results, or null if
7820	// there are no more results.
7821	NextToken *string `locationName:"nextToken" type:"string"`
7822}
7823
7824// String returns the string representation.
7825//
7826// API parameter values that are decorated as "sensitive" in the API will not
7827// be included in the string output. The member name will be present, but the
7828// value will be replaced with "sensitive".
7829func (s ListDetectorModelsOutput) String() string {
7830	return awsutil.Prettify(s)
7831}
7832
7833// GoString returns the string representation.
7834//
7835// API parameter values that are decorated as "sensitive" in the API will not
7836// be included in the string output. The member name will be present, but the
7837// value will be replaced with "sensitive".
7838func (s ListDetectorModelsOutput) GoString() string {
7839	return s.String()
7840}
7841
7842// SetDetectorModelSummaries sets the DetectorModelSummaries field's value.
7843func (s *ListDetectorModelsOutput) SetDetectorModelSummaries(v []*DetectorModelSummary) *ListDetectorModelsOutput {
7844	s.DetectorModelSummaries = v
7845	return s
7846}
7847
7848// SetNextToken sets the NextToken field's value.
7849func (s *ListDetectorModelsOutput) SetNextToken(v string) *ListDetectorModelsOutput {
7850	s.NextToken = &v
7851	return s
7852}
7853
7854type ListInputRoutingsInput struct {
7855	_ struct{} `type:"structure"`
7856
7857	// The identifer of the routed input.
7858	//
7859	// InputIdentifier is a required field
7860	InputIdentifier *InputIdentifier `locationName:"inputIdentifier" type:"structure" required:"true"`
7861
7862	// The maximum number of results to be returned per request.
7863	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
7864
7865	// The token that you can use to return the next set of results.
7866	NextToken *string `locationName:"nextToken" type:"string"`
7867}
7868
7869// String returns the string representation.
7870//
7871// API parameter values that are decorated as "sensitive" in the API will not
7872// be included in the string output. The member name will be present, but the
7873// value will be replaced with "sensitive".
7874func (s ListInputRoutingsInput) String() string {
7875	return awsutil.Prettify(s)
7876}
7877
7878// GoString returns the string representation.
7879//
7880// API parameter values that are decorated as "sensitive" in the API will not
7881// be included in the string output. The member name will be present, but the
7882// value will be replaced with "sensitive".
7883func (s ListInputRoutingsInput) GoString() string {
7884	return s.String()
7885}
7886
7887// Validate inspects the fields of the type to determine if they are valid.
7888func (s *ListInputRoutingsInput) Validate() error {
7889	invalidParams := request.ErrInvalidParams{Context: "ListInputRoutingsInput"}
7890	if s.InputIdentifier == nil {
7891		invalidParams.Add(request.NewErrParamRequired("InputIdentifier"))
7892	}
7893	if s.MaxResults != nil && *s.MaxResults < 1 {
7894		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7895	}
7896	if s.InputIdentifier != nil {
7897		if err := s.InputIdentifier.Validate(); err != nil {
7898			invalidParams.AddNested("InputIdentifier", err.(request.ErrInvalidParams))
7899		}
7900	}
7901
7902	if invalidParams.Len() > 0 {
7903		return invalidParams
7904	}
7905	return nil
7906}
7907
7908// SetInputIdentifier sets the InputIdentifier field's value.
7909func (s *ListInputRoutingsInput) SetInputIdentifier(v *InputIdentifier) *ListInputRoutingsInput {
7910	s.InputIdentifier = v
7911	return s
7912}
7913
7914// SetMaxResults sets the MaxResults field's value.
7915func (s *ListInputRoutingsInput) SetMaxResults(v int64) *ListInputRoutingsInput {
7916	s.MaxResults = &v
7917	return s
7918}
7919
7920// SetNextToken sets the NextToken field's value.
7921func (s *ListInputRoutingsInput) SetNextToken(v string) *ListInputRoutingsInput {
7922	s.NextToken = &v
7923	return s
7924}
7925
7926type ListInputRoutingsOutput struct {
7927	_ struct{} `type:"structure"`
7928
7929	// The token that you can use to return the next set of results, or null if
7930	// there are no more results.
7931	NextToken *string `locationName:"nextToken" type:"string"`
7932
7933	// Summary information about the routed resources.
7934	RoutedResources []*RoutedResource `locationName:"routedResources" type:"list"`
7935}
7936
7937// String returns the string representation.
7938//
7939// API parameter values that are decorated as "sensitive" in the API will not
7940// be included in the string output. The member name will be present, but the
7941// value will be replaced with "sensitive".
7942func (s ListInputRoutingsOutput) String() string {
7943	return awsutil.Prettify(s)
7944}
7945
7946// GoString returns the string representation.
7947//
7948// API parameter values that are decorated as "sensitive" in the API will not
7949// be included in the string output. The member name will be present, but the
7950// value will be replaced with "sensitive".
7951func (s ListInputRoutingsOutput) GoString() string {
7952	return s.String()
7953}
7954
7955// SetNextToken sets the NextToken field's value.
7956func (s *ListInputRoutingsOutput) SetNextToken(v string) *ListInputRoutingsOutput {
7957	s.NextToken = &v
7958	return s
7959}
7960
7961// SetRoutedResources sets the RoutedResources field's value.
7962func (s *ListInputRoutingsOutput) SetRoutedResources(v []*RoutedResource) *ListInputRoutingsOutput {
7963	s.RoutedResources = v
7964	return s
7965}
7966
7967type ListInputsInput struct {
7968	_ struct{} `type:"structure" nopayload:"true"`
7969
7970	// The maximum number of results to be returned per request.
7971	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7972
7973	// The token that you can use to return the next set of results.
7974	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7975}
7976
7977// String returns the string representation.
7978//
7979// API parameter values that are decorated as "sensitive" in the API will not
7980// be included in the string output. The member name will be present, but the
7981// value will be replaced with "sensitive".
7982func (s ListInputsInput) String() string {
7983	return awsutil.Prettify(s)
7984}
7985
7986// GoString returns the string representation.
7987//
7988// API parameter values that are decorated as "sensitive" in the API will not
7989// be included in the string output. The member name will be present, but the
7990// value will be replaced with "sensitive".
7991func (s ListInputsInput) GoString() string {
7992	return s.String()
7993}
7994
7995// Validate inspects the fields of the type to determine if they are valid.
7996func (s *ListInputsInput) Validate() error {
7997	invalidParams := request.ErrInvalidParams{Context: "ListInputsInput"}
7998	if s.MaxResults != nil && *s.MaxResults < 1 {
7999		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8000	}
8001
8002	if invalidParams.Len() > 0 {
8003		return invalidParams
8004	}
8005	return nil
8006}
8007
8008// SetMaxResults sets the MaxResults field's value.
8009func (s *ListInputsInput) SetMaxResults(v int64) *ListInputsInput {
8010	s.MaxResults = &v
8011	return s
8012}
8013
8014// SetNextToken sets the NextToken field's value.
8015func (s *ListInputsInput) SetNextToken(v string) *ListInputsInput {
8016	s.NextToken = &v
8017	return s
8018}
8019
8020type ListInputsOutput struct {
8021	_ struct{} `type:"structure"`
8022
8023	// Summary information about the inputs.
8024	InputSummaries []*InputSummary `locationName:"inputSummaries" type:"list"`
8025
8026	// The token that you can use to return the next set of results, or null if
8027	// there are no more results.
8028	NextToken *string `locationName:"nextToken" type:"string"`
8029}
8030
8031// String returns the string representation.
8032//
8033// API parameter values that are decorated as "sensitive" in the API will not
8034// be included in the string output. The member name will be present, but the
8035// value will be replaced with "sensitive".
8036func (s ListInputsOutput) String() string {
8037	return awsutil.Prettify(s)
8038}
8039
8040// GoString returns the string representation.
8041//
8042// API parameter values that are decorated as "sensitive" in the API will not
8043// be included in the string output. The member name will be present, but the
8044// value will be replaced with "sensitive".
8045func (s ListInputsOutput) GoString() string {
8046	return s.String()
8047}
8048
8049// SetInputSummaries sets the InputSummaries field's value.
8050func (s *ListInputsOutput) SetInputSummaries(v []*InputSummary) *ListInputsOutput {
8051	s.InputSummaries = v
8052	return s
8053}
8054
8055// SetNextToken sets the NextToken field's value.
8056func (s *ListInputsOutput) SetNextToken(v string) *ListInputsOutput {
8057	s.NextToken = &v
8058	return s
8059}
8060
8061type ListTagsForResourceInput struct {
8062	_ struct{} `type:"structure" nopayload:"true"`
8063
8064	// The ARN of the resource.
8065	//
8066	// ResourceArn is a required field
8067	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
8068}
8069
8070// String returns the string representation.
8071//
8072// API parameter values that are decorated as "sensitive" in the API will not
8073// be included in the string output. The member name will be present, but the
8074// value will be replaced with "sensitive".
8075func (s ListTagsForResourceInput) String() string {
8076	return awsutil.Prettify(s)
8077}
8078
8079// GoString returns the string representation.
8080//
8081// API parameter values that are decorated as "sensitive" in the API will not
8082// be included in the string output. The member name will be present, but the
8083// value will be replaced with "sensitive".
8084func (s ListTagsForResourceInput) GoString() string {
8085	return s.String()
8086}
8087
8088// Validate inspects the fields of the type to determine if they are valid.
8089func (s *ListTagsForResourceInput) Validate() error {
8090	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
8091	if s.ResourceArn == nil {
8092		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
8093	}
8094	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
8095		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
8096	}
8097
8098	if invalidParams.Len() > 0 {
8099		return invalidParams
8100	}
8101	return nil
8102}
8103
8104// SetResourceArn sets the ResourceArn field's value.
8105func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
8106	s.ResourceArn = &v
8107	return s
8108}
8109
8110type ListTagsForResourceOutput struct {
8111	_ struct{} `type:"structure"`
8112
8113	// The list of tags assigned to the resource.
8114	Tags []*Tag `locationName:"tags" type:"list"`
8115}
8116
8117// String returns the string representation.
8118//
8119// API parameter values that are decorated as "sensitive" in the API will not
8120// be included in the string output. The member name will be present, but the
8121// value will be replaced with "sensitive".
8122func (s ListTagsForResourceOutput) String() string {
8123	return awsutil.Prettify(s)
8124}
8125
8126// GoString returns the string representation.
8127//
8128// API parameter values that are decorated as "sensitive" in the API will not
8129// be included in the string output. The member name will be present, but the
8130// value will be replaced with "sensitive".
8131func (s ListTagsForResourceOutput) GoString() string {
8132	return s.String()
8133}
8134
8135// SetTags sets the Tags field's value.
8136func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
8137	s.Tags = v
8138	return s
8139}
8140
8141// The values of the AWS IoT Events logging options.
8142type LoggingOptions struct {
8143	_ struct{} `type:"structure"`
8144
8145	// Information that identifies those detector models and their detectors (instances)
8146	// for which the logging level is given.
8147	DetectorDebugOptions []*DetectorDebugOption `locationName:"detectorDebugOptions" min:"1" type:"list"`
8148
8149	// If TRUE, logging is enabled for AWS IoT Events.
8150	//
8151	// Enabled is a required field
8152	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
8153
8154	// The logging level.
8155	//
8156	// Level is a required field
8157	Level *string `locationName:"level" type:"string" required:"true" enum:"LoggingLevel"`
8158
8159	// The ARN of the role that grants permission to AWS IoT Events to perform logging.
8160	//
8161	// RoleArn is a required field
8162	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
8163}
8164
8165// String returns the string representation.
8166//
8167// API parameter values that are decorated as "sensitive" in the API will not
8168// be included in the string output. The member name will be present, but the
8169// value will be replaced with "sensitive".
8170func (s LoggingOptions) String() string {
8171	return awsutil.Prettify(s)
8172}
8173
8174// GoString returns the string representation.
8175//
8176// API parameter values that are decorated as "sensitive" in the API will not
8177// be included in the string output. The member name will be present, but the
8178// value will be replaced with "sensitive".
8179func (s LoggingOptions) GoString() string {
8180	return s.String()
8181}
8182
8183// Validate inspects the fields of the type to determine if they are valid.
8184func (s *LoggingOptions) Validate() error {
8185	invalidParams := request.ErrInvalidParams{Context: "LoggingOptions"}
8186	if s.DetectorDebugOptions != nil && len(s.DetectorDebugOptions) < 1 {
8187		invalidParams.Add(request.NewErrParamMinLen("DetectorDebugOptions", 1))
8188	}
8189	if s.Enabled == nil {
8190		invalidParams.Add(request.NewErrParamRequired("Enabled"))
8191	}
8192	if s.Level == nil {
8193		invalidParams.Add(request.NewErrParamRequired("Level"))
8194	}
8195	if s.RoleArn == nil {
8196		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
8197	}
8198	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
8199		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
8200	}
8201	if s.DetectorDebugOptions != nil {
8202		for i, v := range s.DetectorDebugOptions {
8203			if v == nil {
8204				continue
8205			}
8206			if err := v.Validate(); err != nil {
8207				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DetectorDebugOptions", i), err.(request.ErrInvalidParams))
8208			}
8209		}
8210	}
8211
8212	if invalidParams.Len() > 0 {
8213		return invalidParams
8214	}
8215	return nil
8216}
8217
8218// SetDetectorDebugOptions sets the DetectorDebugOptions field's value.
8219func (s *LoggingOptions) SetDetectorDebugOptions(v []*DetectorDebugOption) *LoggingOptions {
8220	s.DetectorDebugOptions = v
8221	return s
8222}
8223
8224// SetEnabled sets the Enabled field's value.
8225func (s *LoggingOptions) SetEnabled(v bool) *LoggingOptions {
8226	s.Enabled = &v
8227	return s
8228}
8229
8230// SetLevel sets the Level field's value.
8231func (s *LoggingOptions) SetLevel(v string) *LoggingOptions {
8232	s.Level = &v
8233	return s
8234}
8235
8236// SetRoleArn sets the RoleArn field's value.
8237func (s *LoggingOptions) SetRoleArn(v string) *LoggingOptions {
8238	s.RoleArn = &v
8239	return s
8240}
8241
8242// Contains the notification settings of an alarm model. The settings apply
8243// to all alarms that were created based on this alarm model.
8244type NotificationAction struct {
8245	_ struct{} `type:"structure"`
8246
8247	// Specifies an AWS Lambda function to manage alarm notifications. You can create
8248	// one or use the AWS Lambda function provided by AWS IoT Events (https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html).
8249	//
8250	// Action is a required field
8251	Action *NotificationTargetActions `locationName:"action" type:"structure" required:"true"`
8252
8253	// Contains the configuration information of email notifications.
8254	EmailConfigurations []*EmailConfiguration `locationName:"emailConfigurations" min:"1" type:"list"`
8255
8256	// Contains the configuration information of SMS notifications.
8257	SmsConfigurations []*SMSConfiguration `locationName:"smsConfigurations" min:"1" type:"list"`
8258}
8259
8260// String returns the string representation.
8261//
8262// API parameter values that are decorated as "sensitive" in the API will not
8263// be included in the string output. The member name will be present, but the
8264// value will be replaced with "sensitive".
8265func (s NotificationAction) String() string {
8266	return awsutil.Prettify(s)
8267}
8268
8269// GoString returns the string representation.
8270//
8271// API parameter values that are decorated as "sensitive" in the API will not
8272// be included in the string output. The member name will be present, but the
8273// value will be replaced with "sensitive".
8274func (s NotificationAction) GoString() string {
8275	return s.String()
8276}
8277
8278// Validate inspects the fields of the type to determine if they are valid.
8279func (s *NotificationAction) Validate() error {
8280	invalidParams := request.ErrInvalidParams{Context: "NotificationAction"}
8281	if s.Action == nil {
8282		invalidParams.Add(request.NewErrParamRequired("Action"))
8283	}
8284	if s.EmailConfigurations != nil && len(s.EmailConfigurations) < 1 {
8285		invalidParams.Add(request.NewErrParamMinLen("EmailConfigurations", 1))
8286	}
8287	if s.SmsConfigurations != nil && len(s.SmsConfigurations) < 1 {
8288		invalidParams.Add(request.NewErrParamMinLen("SmsConfigurations", 1))
8289	}
8290	if s.Action != nil {
8291		if err := s.Action.Validate(); err != nil {
8292			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
8293		}
8294	}
8295	if s.EmailConfigurations != nil {
8296		for i, v := range s.EmailConfigurations {
8297			if v == nil {
8298				continue
8299			}
8300			if err := v.Validate(); err != nil {
8301				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmailConfigurations", i), err.(request.ErrInvalidParams))
8302			}
8303		}
8304	}
8305	if s.SmsConfigurations != nil {
8306		for i, v := range s.SmsConfigurations {
8307			if v == nil {
8308				continue
8309			}
8310			if err := v.Validate(); err != nil {
8311				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SmsConfigurations", i), err.(request.ErrInvalidParams))
8312			}
8313		}
8314	}
8315
8316	if invalidParams.Len() > 0 {
8317		return invalidParams
8318	}
8319	return nil
8320}
8321
8322// SetAction sets the Action field's value.
8323func (s *NotificationAction) SetAction(v *NotificationTargetActions) *NotificationAction {
8324	s.Action = v
8325	return s
8326}
8327
8328// SetEmailConfigurations sets the EmailConfigurations field's value.
8329func (s *NotificationAction) SetEmailConfigurations(v []*EmailConfiguration) *NotificationAction {
8330	s.EmailConfigurations = v
8331	return s
8332}
8333
8334// SetSmsConfigurations sets the SmsConfigurations field's value.
8335func (s *NotificationAction) SetSmsConfigurations(v []*SMSConfiguration) *NotificationAction {
8336	s.SmsConfigurations = v
8337	return s
8338}
8339
8340// Specifies an AWS Lambda function to manage alarm notifications. You can create
8341// one or use the AWS Lambda function provided by AWS IoT Events (https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html).
8342type NotificationTargetActions struct {
8343	_ struct{} `type:"structure"`
8344
8345	// Calls a Lambda function, passing in information about the detector model
8346	// instance and the event that triggered the action.
8347	LambdaAction *LambdaAction `locationName:"lambdaAction" type:"structure"`
8348}
8349
8350// String returns the string representation.
8351//
8352// API parameter values that are decorated as "sensitive" in the API will not
8353// be included in the string output. The member name will be present, but the
8354// value will be replaced with "sensitive".
8355func (s NotificationTargetActions) String() string {
8356	return awsutil.Prettify(s)
8357}
8358
8359// GoString returns the string representation.
8360//
8361// API parameter values that are decorated as "sensitive" in the API will not
8362// be included in the string output. The member name will be present, but the
8363// value will be replaced with "sensitive".
8364func (s NotificationTargetActions) GoString() string {
8365	return s.String()
8366}
8367
8368// Validate inspects the fields of the type to determine if they are valid.
8369func (s *NotificationTargetActions) Validate() error {
8370	invalidParams := request.ErrInvalidParams{Context: "NotificationTargetActions"}
8371	if s.LambdaAction != nil {
8372		if err := s.LambdaAction.Validate(); err != nil {
8373			invalidParams.AddNested("LambdaAction", err.(request.ErrInvalidParams))
8374		}
8375	}
8376
8377	if invalidParams.Len() > 0 {
8378		return invalidParams
8379	}
8380	return nil
8381}
8382
8383// SetLambdaAction sets the LambdaAction field's value.
8384func (s *NotificationTargetActions) SetLambdaAction(v *LambdaAction) *NotificationTargetActions {
8385	s.LambdaAction = v
8386	return s
8387}
8388
8389// When entering this state, perform these actions if the condition is TRUE.
8390type OnEnterLifecycle struct {
8391	_ struct{} `type:"structure"`
8392
8393	// Specifies the actions that are performed when the state is entered and the
8394	// condition is TRUE.
8395	Events []*Event `locationName:"events" type:"list"`
8396}
8397
8398// String returns the string representation.
8399//
8400// API parameter values that are decorated as "sensitive" in the API will not
8401// be included in the string output. The member name will be present, but the
8402// value will be replaced with "sensitive".
8403func (s OnEnterLifecycle) String() string {
8404	return awsutil.Prettify(s)
8405}
8406
8407// GoString returns the string representation.
8408//
8409// API parameter values that are decorated as "sensitive" in the API will not
8410// be included in the string output. The member name will be present, but the
8411// value will be replaced with "sensitive".
8412func (s OnEnterLifecycle) GoString() string {
8413	return s.String()
8414}
8415
8416// Validate inspects the fields of the type to determine if they are valid.
8417func (s *OnEnterLifecycle) Validate() error {
8418	invalidParams := request.ErrInvalidParams{Context: "OnEnterLifecycle"}
8419	if s.Events != nil {
8420		for i, v := range s.Events {
8421			if v == nil {
8422				continue
8423			}
8424			if err := v.Validate(); err != nil {
8425				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
8426			}
8427		}
8428	}
8429
8430	if invalidParams.Len() > 0 {
8431		return invalidParams
8432	}
8433	return nil
8434}
8435
8436// SetEvents sets the Events field's value.
8437func (s *OnEnterLifecycle) SetEvents(v []*Event) *OnEnterLifecycle {
8438	s.Events = v
8439	return s
8440}
8441
8442// When exiting this state, perform these actions if the specified condition
8443// is TRUE.
8444type OnExitLifecycle struct {
8445	_ struct{} `type:"structure"`
8446
8447	// Specifies the actions that are performed when the state is exited and the
8448	// condition is TRUE.
8449	Events []*Event `locationName:"events" type:"list"`
8450}
8451
8452// String returns the string representation.
8453//
8454// API parameter values that are decorated as "sensitive" in the API will not
8455// be included in the string output. The member name will be present, but the
8456// value will be replaced with "sensitive".
8457func (s OnExitLifecycle) String() string {
8458	return awsutil.Prettify(s)
8459}
8460
8461// GoString returns the string representation.
8462//
8463// API parameter values that are decorated as "sensitive" in the API will not
8464// be included in the string output. The member name will be present, but the
8465// value will be replaced with "sensitive".
8466func (s OnExitLifecycle) GoString() string {
8467	return s.String()
8468}
8469
8470// Validate inspects the fields of the type to determine if they are valid.
8471func (s *OnExitLifecycle) Validate() error {
8472	invalidParams := request.ErrInvalidParams{Context: "OnExitLifecycle"}
8473	if s.Events != nil {
8474		for i, v := range s.Events {
8475			if v == nil {
8476				continue
8477			}
8478			if err := v.Validate(); err != nil {
8479				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
8480			}
8481		}
8482	}
8483
8484	if invalidParams.Len() > 0 {
8485		return invalidParams
8486	}
8487	return nil
8488}
8489
8490// SetEvents sets the Events field's value.
8491func (s *OnExitLifecycle) SetEvents(v []*Event) *OnExitLifecycle {
8492	s.Events = v
8493	return s
8494}
8495
8496// Specifies the actions performed when the condition evaluates to TRUE.
8497type OnInputLifecycle struct {
8498	_ struct{} `type:"structure"`
8499
8500	// Specifies the actions performed when the condition evaluates to TRUE.
8501	Events []*Event `locationName:"events" type:"list"`
8502
8503	// Specifies the actions performed, and the next state entered, when a condition
8504	// evaluates to TRUE.
8505	TransitionEvents []*TransitionEvent `locationName:"transitionEvents" type:"list"`
8506}
8507
8508// String returns the string representation.
8509//
8510// API parameter values that are decorated as "sensitive" in the API will not
8511// be included in the string output. The member name will be present, but the
8512// value will be replaced with "sensitive".
8513func (s OnInputLifecycle) String() string {
8514	return awsutil.Prettify(s)
8515}
8516
8517// GoString returns the string representation.
8518//
8519// API parameter values that are decorated as "sensitive" in the API will not
8520// be included in the string output. The member name will be present, but the
8521// value will be replaced with "sensitive".
8522func (s OnInputLifecycle) GoString() string {
8523	return s.String()
8524}
8525
8526// Validate inspects the fields of the type to determine if they are valid.
8527func (s *OnInputLifecycle) Validate() error {
8528	invalidParams := request.ErrInvalidParams{Context: "OnInputLifecycle"}
8529	if s.Events != nil {
8530		for i, v := range s.Events {
8531			if v == nil {
8532				continue
8533			}
8534			if err := v.Validate(); err != nil {
8535				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
8536			}
8537		}
8538	}
8539	if s.TransitionEvents != nil {
8540		for i, v := range s.TransitionEvents {
8541			if v == nil {
8542				continue
8543			}
8544			if err := v.Validate(); err != nil {
8545				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransitionEvents", i), err.(request.ErrInvalidParams))
8546			}
8547		}
8548	}
8549
8550	if invalidParams.Len() > 0 {
8551		return invalidParams
8552	}
8553	return nil
8554}
8555
8556// SetEvents sets the Events field's value.
8557func (s *OnInputLifecycle) SetEvents(v []*Event) *OnInputLifecycle {
8558	s.Events = v
8559	return s
8560}
8561
8562// SetTransitionEvents sets the TransitionEvents field's value.
8563func (s *OnInputLifecycle) SetTransitionEvents(v []*TransitionEvent) *OnInputLifecycle {
8564	s.TransitionEvents = v
8565	return s
8566}
8567
8568// Information needed to configure the payload.
8569//
8570// By default, AWS IoT Events generates a standard payload in JSON for any action.
8571// This action payload contains all attribute-value pairs that have the information
8572// about the detector model instance and the event triggered the action. To
8573// configure the action payload, you can use contentExpression.
8574type Payload struct {
8575	_ struct{} `type:"structure"`
8576
8577	// The content of the payload. You can use a string expression that includes
8578	// quoted strings ('<string>'), variables ($variable.<variable-name>), input
8579	// values ($input.<input-name>.<path-to-datum>), string concatenations, and
8580	// quoted strings that contain ${} as the content. The recommended maximum size
8581	// of a content expression is 1 KB.
8582	//
8583	// ContentExpression is a required field
8584	ContentExpression *string `locationName:"contentExpression" min:"1" type:"string" required:"true"`
8585
8586	// The value of the payload type can be either STRING or JSON.
8587	//
8588	// Type is a required field
8589	Type *string `locationName:"type" type:"string" required:"true" enum:"PayloadType"`
8590}
8591
8592// String returns the string representation.
8593//
8594// API parameter values that are decorated as "sensitive" in the API will not
8595// be included in the string output. The member name will be present, but the
8596// value will be replaced with "sensitive".
8597func (s Payload) String() string {
8598	return awsutil.Prettify(s)
8599}
8600
8601// GoString returns the string representation.
8602//
8603// API parameter values that are decorated as "sensitive" in the API will not
8604// be included in the string output. The member name will be present, but the
8605// value will be replaced with "sensitive".
8606func (s Payload) GoString() string {
8607	return s.String()
8608}
8609
8610// Validate inspects the fields of the type to determine if they are valid.
8611func (s *Payload) Validate() error {
8612	invalidParams := request.ErrInvalidParams{Context: "Payload"}
8613	if s.ContentExpression == nil {
8614		invalidParams.Add(request.NewErrParamRequired("ContentExpression"))
8615	}
8616	if s.ContentExpression != nil && len(*s.ContentExpression) < 1 {
8617		invalidParams.Add(request.NewErrParamMinLen("ContentExpression", 1))
8618	}
8619	if s.Type == nil {
8620		invalidParams.Add(request.NewErrParamRequired("Type"))
8621	}
8622
8623	if invalidParams.Len() > 0 {
8624		return invalidParams
8625	}
8626	return nil
8627}
8628
8629// SetContentExpression sets the ContentExpression field's value.
8630func (s *Payload) SetContentExpression(v string) *Payload {
8631	s.ContentExpression = &v
8632	return s
8633}
8634
8635// SetType sets the Type field's value.
8636func (s *Payload) SetType(v string) *Payload {
8637	s.Type = &v
8638	return s
8639}
8640
8641type PutLoggingOptionsInput struct {
8642	_ struct{} `type:"structure"`
8643
8644	// The new values of the AWS IoT Events logging options.
8645	//
8646	// LoggingOptions is a required field
8647	LoggingOptions *LoggingOptions `locationName:"loggingOptions" type:"structure" required:"true"`
8648}
8649
8650// String returns the string representation.
8651//
8652// API parameter values that are decorated as "sensitive" in the API will not
8653// be included in the string output. The member name will be present, but the
8654// value will be replaced with "sensitive".
8655func (s PutLoggingOptionsInput) String() string {
8656	return awsutil.Prettify(s)
8657}
8658
8659// GoString returns the string representation.
8660//
8661// API parameter values that are decorated as "sensitive" in the API will not
8662// be included in the string output. The member name will be present, but the
8663// value will be replaced with "sensitive".
8664func (s PutLoggingOptionsInput) GoString() string {
8665	return s.String()
8666}
8667
8668// Validate inspects the fields of the type to determine if they are valid.
8669func (s *PutLoggingOptionsInput) Validate() error {
8670	invalidParams := request.ErrInvalidParams{Context: "PutLoggingOptionsInput"}
8671	if s.LoggingOptions == nil {
8672		invalidParams.Add(request.NewErrParamRequired("LoggingOptions"))
8673	}
8674	if s.LoggingOptions != nil {
8675		if err := s.LoggingOptions.Validate(); err != nil {
8676			invalidParams.AddNested("LoggingOptions", err.(request.ErrInvalidParams))
8677		}
8678	}
8679
8680	if invalidParams.Len() > 0 {
8681		return invalidParams
8682	}
8683	return nil
8684}
8685
8686// SetLoggingOptions sets the LoggingOptions field's value.
8687func (s *PutLoggingOptionsInput) SetLoggingOptions(v *LoggingOptions) *PutLoggingOptionsInput {
8688	s.LoggingOptions = v
8689	return s
8690}
8691
8692type PutLoggingOptionsOutput struct {
8693	_ struct{} `type:"structure"`
8694}
8695
8696// String returns the string representation.
8697//
8698// API parameter values that are decorated as "sensitive" in the API will not
8699// be included in the string output. The member name will be present, but the
8700// value will be replaced with "sensitive".
8701func (s PutLoggingOptionsOutput) String() string {
8702	return awsutil.Prettify(s)
8703}
8704
8705// GoString returns the string representation.
8706//
8707// API parameter values that are decorated as "sensitive" in the API will not
8708// be included in the string output. The member name will be present, but the
8709// value will be replaced with "sensitive".
8710func (s PutLoggingOptionsOutput) GoString() string {
8711	return s.String()
8712}
8713
8714// The information that identifies the recipient.
8715type RecipientDetail struct {
8716	_ struct{} `type:"structure"`
8717
8718	// The AWS Single Sign-On (AWS SSO) authentication information.
8719	SsoIdentity *SSOIdentity `locationName:"ssoIdentity" type:"structure"`
8720}
8721
8722// String returns the string representation.
8723//
8724// API parameter values that are decorated as "sensitive" in the API will not
8725// be included in the string output. The member name will be present, but the
8726// value will be replaced with "sensitive".
8727func (s RecipientDetail) String() string {
8728	return awsutil.Prettify(s)
8729}
8730
8731// GoString returns the string representation.
8732//
8733// API parameter values that are decorated as "sensitive" in the API will not
8734// be included in the string output. The member name will be present, but the
8735// value will be replaced with "sensitive".
8736func (s RecipientDetail) GoString() string {
8737	return s.String()
8738}
8739
8740// Validate inspects the fields of the type to determine if they are valid.
8741func (s *RecipientDetail) Validate() error {
8742	invalidParams := request.ErrInvalidParams{Context: "RecipientDetail"}
8743	if s.SsoIdentity != nil {
8744		if err := s.SsoIdentity.Validate(); err != nil {
8745			invalidParams.AddNested("SsoIdentity", err.(request.ErrInvalidParams))
8746		}
8747	}
8748
8749	if invalidParams.Len() > 0 {
8750		return invalidParams
8751	}
8752	return nil
8753}
8754
8755// SetSsoIdentity sets the SsoIdentity field's value.
8756func (s *RecipientDetail) SetSsoIdentity(v *SSOIdentity) *RecipientDetail {
8757	s.SsoIdentity = v
8758	return s
8759}
8760
8761// Information required to reset the timer. The timer is reset to the previously
8762// evaluated result of the duration. The duration expression isn't reevaluated
8763// when you reset the timer.
8764type ResetTimerAction struct {
8765	_ struct{} `type:"structure"`
8766
8767	// The name of the timer to reset.
8768	//
8769	// TimerName is a required field
8770	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
8771}
8772
8773// String returns the string representation.
8774//
8775// API parameter values that are decorated as "sensitive" in the API will not
8776// be included in the string output. The member name will be present, but the
8777// value will be replaced with "sensitive".
8778func (s ResetTimerAction) String() string {
8779	return awsutil.Prettify(s)
8780}
8781
8782// GoString returns the string representation.
8783//
8784// API parameter values that are decorated as "sensitive" in the API will not
8785// be included in the string output. The member name will be present, but the
8786// value will be replaced with "sensitive".
8787func (s ResetTimerAction) GoString() string {
8788	return s.String()
8789}
8790
8791// Validate inspects the fields of the type to determine if they are valid.
8792func (s *ResetTimerAction) Validate() error {
8793	invalidParams := request.ErrInvalidParams{Context: "ResetTimerAction"}
8794	if s.TimerName == nil {
8795		invalidParams.Add(request.NewErrParamRequired("TimerName"))
8796	}
8797	if s.TimerName != nil && len(*s.TimerName) < 1 {
8798		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
8799	}
8800
8801	if invalidParams.Len() > 0 {
8802		return invalidParams
8803	}
8804	return nil
8805}
8806
8807// SetTimerName sets the TimerName field's value.
8808func (s *ResetTimerAction) SetTimerName(v string) *ResetTimerAction {
8809	s.TimerName = &v
8810	return s
8811}
8812
8813// The resource already exists.
8814type ResourceAlreadyExistsException struct {
8815	_            struct{}                  `type:"structure"`
8816	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8817
8818	// The message for the exception.
8819	Message_ *string `locationName:"message" type:"string"`
8820
8821	// The ARN of the resource.
8822	ResourceArn *string `locationName:"resourceArn" type:"string"`
8823
8824	// The ID of the resource.
8825	ResourceId *string `locationName:"resourceId" type:"string"`
8826}
8827
8828// String returns the string representation.
8829//
8830// API parameter values that are decorated as "sensitive" in the API will not
8831// be included in the string output. The member name will be present, but the
8832// value will be replaced with "sensitive".
8833func (s ResourceAlreadyExistsException) String() string {
8834	return awsutil.Prettify(s)
8835}
8836
8837// GoString returns the string representation.
8838//
8839// API parameter values that are decorated as "sensitive" in the API will not
8840// be included in the string output. The member name will be present, but the
8841// value will be replaced with "sensitive".
8842func (s ResourceAlreadyExistsException) GoString() string {
8843	return s.String()
8844}
8845
8846func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
8847	return &ResourceAlreadyExistsException{
8848		RespMetadata: v,
8849	}
8850}
8851
8852// Code returns the exception type name.
8853func (s *ResourceAlreadyExistsException) Code() string {
8854	return "ResourceAlreadyExistsException"
8855}
8856
8857// Message returns the exception's message.
8858func (s *ResourceAlreadyExistsException) Message() string {
8859	if s.Message_ != nil {
8860		return *s.Message_
8861	}
8862	return ""
8863}
8864
8865// OrigErr always returns nil, satisfies awserr.Error interface.
8866func (s *ResourceAlreadyExistsException) OrigErr() error {
8867	return nil
8868}
8869
8870func (s *ResourceAlreadyExistsException) Error() string {
8871	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8872}
8873
8874// Status code returns the HTTP status code for the request's response error.
8875func (s *ResourceAlreadyExistsException) StatusCode() int {
8876	return s.RespMetadata.StatusCode
8877}
8878
8879// RequestID returns the service's response RequestID for request.
8880func (s *ResourceAlreadyExistsException) RequestID() string {
8881	return s.RespMetadata.RequestID
8882}
8883
8884// The resource is in use.
8885type ResourceInUseException struct {
8886	_            struct{}                  `type:"structure"`
8887	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8888
8889	// The message for the exception.
8890	Message_ *string `locationName:"message" type:"string"`
8891}
8892
8893// String returns the string representation.
8894//
8895// API parameter values that are decorated as "sensitive" in the API will not
8896// be included in the string output. The member name will be present, but the
8897// value will be replaced with "sensitive".
8898func (s ResourceInUseException) String() string {
8899	return awsutil.Prettify(s)
8900}
8901
8902// GoString returns the string representation.
8903//
8904// API parameter values that are decorated as "sensitive" in the API will not
8905// be included in the string output. The member name will be present, but the
8906// value will be replaced with "sensitive".
8907func (s ResourceInUseException) GoString() string {
8908	return s.String()
8909}
8910
8911func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
8912	return &ResourceInUseException{
8913		RespMetadata: v,
8914	}
8915}
8916
8917// Code returns the exception type name.
8918func (s *ResourceInUseException) Code() string {
8919	return "ResourceInUseException"
8920}
8921
8922// Message returns the exception's message.
8923func (s *ResourceInUseException) Message() string {
8924	if s.Message_ != nil {
8925		return *s.Message_
8926	}
8927	return ""
8928}
8929
8930// OrigErr always returns nil, satisfies awserr.Error interface.
8931func (s *ResourceInUseException) OrigErr() error {
8932	return nil
8933}
8934
8935func (s *ResourceInUseException) Error() string {
8936	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8937}
8938
8939// Status code returns the HTTP status code for the request's response error.
8940func (s *ResourceInUseException) StatusCode() int {
8941	return s.RespMetadata.StatusCode
8942}
8943
8944// RequestID returns the service's response RequestID for request.
8945func (s *ResourceInUseException) RequestID() string {
8946	return s.RespMetadata.RequestID
8947}
8948
8949// The resource was not found.
8950type ResourceNotFoundException struct {
8951	_            struct{}                  `type:"structure"`
8952	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8953
8954	// The message for the exception.
8955	Message_ *string `locationName:"message" type:"string"`
8956}
8957
8958// String returns the string representation.
8959//
8960// API parameter values that are decorated as "sensitive" in the API will not
8961// be included in the string output. The member name will be present, but the
8962// value will be replaced with "sensitive".
8963func (s ResourceNotFoundException) String() string {
8964	return awsutil.Prettify(s)
8965}
8966
8967// GoString returns the string representation.
8968//
8969// API parameter values that are decorated as "sensitive" in the API will not
8970// be included in the string output. The member name will be present, but the
8971// value will be replaced with "sensitive".
8972func (s ResourceNotFoundException) GoString() string {
8973	return s.String()
8974}
8975
8976func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
8977	return &ResourceNotFoundException{
8978		RespMetadata: v,
8979	}
8980}
8981
8982// Code returns the exception type name.
8983func (s *ResourceNotFoundException) Code() string {
8984	return "ResourceNotFoundException"
8985}
8986
8987// Message returns the exception's message.
8988func (s *ResourceNotFoundException) Message() string {
8989	if s.Message_ != nil {
8990		return *s.Message_
8991	}
8992	return ""
8993}
8994
8995// OrigErr always returns nil, satisfies awserr.Error interface.
8996func (s *ResourceNotFoundException) OrigErr() error {
8997	return nil
8998}
8999
9000func (s *ResourceNotFoundException) Error() string {
9001	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9002}
9003
9004// Status code returns the HTTP status code for the request's response error.
9005func (s *ResourceNotFoundException) StatusCode() int {
9006	return s.RespMetadata.StatusCode
9007}
9008
9009// RequestID returns the service's response RequestID for request.
9010func (s *ResourceNotFoundException) RequestID() string {
9011	return s.RespMetadata.RequestID
9012}
9013
9014// Contains information about the routed resource.
9015type RoutedResource struct {
9016	_ struct{} `type:"structure"`
9017
9018	// The ARN of the routed resource. For more information, see Amazon Resource
9019	// Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
9020	// in the AWS General Reference.
9021	Arn *string `locationName:"arn" min:"1" type:"string"`
9022
9023	// The name of the routed resource.
9024	Name *string `locationName:"name" type:"string"`
9025}
9026
9027// String returns the string representation.
9028//
9029// API parameter values that are decorated as "sensitive" in the API will not
9030// be included in the string output. The member name will be present, but the
9031// value will be replaced with "sensitive".
9032func (s RoutedResource) String() string {
9033	return awsutil.Prettify(s)
9034}
9035
9036// GoString returns the string representation.
9037//
9038// API parameter values that are decorated as "sensitive" in the API will not
9039// be included in the string output. The member name will be present, but the
9040// value will be replaced with "sensitive".
9041func (s RoutedResource) GoString() string {
9042	return s.String()
9043}
9044
9045// SetArn sets the Arn field's value.
9046func (s *RoutedResource) SetArn(v string) *RoutedResource {
9047	s.Arn = &v
9048	return s
9049}
9050
9051// SetName sets the Name field's value.
9052func (s *RoutedResource) SetName(v string) *RoutedResource {
9053	s.Name = &v
9054	return s
9055}
9056
9057// Contains the configuration information of SMS notifications.
9058type SMSConfiguration struct {
9059	_ struct{} `type:"structure"`
9060
9061	// The message that you want to send. The message can be up to 200 characters.
9062	AdditionalMessage *string `locationName:"additionalMessage" type:"string"`
9063
9064	// Specifies one or more recipients who receive the message.
9065	//
9066	// You must add the users that receive SMS messages to your AWS SSO store (https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html).
9067	//
9068	// Recipients is a required field
9069	Recipients []*RecipientDetail `locationName:"recipients" min:"1" type:"list" required:"true"`
9070
9071	// The sender ID.
9072	SenderId *string `locationName:"senderId" type:"string"`
9073}
9074
9075// String returns the string representation.
9076//
9077// API parameter values that are decorated as "sensitive" in the API will not
9078// be included in the string output. The member name will be present, but the
9079// value will be replaced with "sensitive".
9080func (s SMSConfiguration) String() string {
9081	return awsutil.Prettify(s)
9082}
9083
9084// GoString returns the string representation.
9085//
9086// API parameter values that are decorated as "sensitive" in the API will not
9087// be included in the string output. The member name will be present, but the
9088// value will be replaced with "sensitive".
9089func (s SMSConfiguration) GoString() string {
9090	return s.String()
9091}
9092
9093// Validate inspects the fields of the type to determine if they are valid.
9094func (s *SMSConfiguration) Validate() error {
9095	invalidParams := request.ErrInvalidParams{Context: "SMSConfiguration"}
9096	if s.Recipients == nil {
9097		invalidParams.Add(request.NewErrParamRequired("Recipients"))
9098	}
9099	if s.Recipients != nil && len(s.Recipients) < 1 {
9100		invalidParams.Add(request.NewErrParamMinLen("Recipients", 1))
9101	}
9102	if s.Recipients != nil {
9103		for i, v := range s.Recipients {
9104			if v == nil {
9105				continue
9106			}
9107			if err := v.Validate(); err != nil {
9108				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Recipients", i), err.(request.ErrInvalidParams))
9109			}
9110		}
9111	}
9112
9113	if invalidParams.Len() > 0 {
9114		return invalidParams
9115	}
9116	return nil
9117}
9118
9119// SetAdditionalMessage sets the AdditionalMessage field's value.
9120func (s *SMSConfiguration) SetAdditionalMessage(v string) *SMSConfiguration {
9121	s.AdditionalMessage = &v
9122	return s
9123}
9124
9125// SetRecipients sets the Recipients field's value.
9126func (s *SMSConfiguration) SetRecipients(v []*RecipientDetail) *SMSConfiguration {
9127	s.Recipients = v
9128	return s
9129}
9130
9131// SetSenderId sets the SenderId field's value.
9132func (s *SMSConfiguration) SetSenderId(v string) *SMSConfiguration {
9133	s.SenderId = &v
9134	return s
9135}
9136
9137// Information required to publish the Amazon SNS message.
9138type SNSTopicPublishAction struct {
9139	_ struct{} `type:"structure"`
9140
9141	// You can configure the action payload when you send a message as an Amazon
9142	// SNS push notification.
9143	Payload *Payload `locationName:"payload" type:"structure"`
9144
9145	// The ARN of the Amazon SNS target where the message is sent.
9146	//
9147	// TargetArn is a required field
9148	TargetArn *string `locationName:"targetArn" min:"1" type:"string" required:"true"`
9149}
9150
9151// String returns the string representation.
9152//
9153// API parameter values that are decorated as "sensitive" in the API will not
9154// be included in the string output. The member name will be present, but the
9155// value will be replaced with "sensitive".
9156func (s SNSTopicPublishAction) String() string {
9157	return awsutil.Prettify(s)
9158}
9159
9160// GoString returns the string representation.
9161//
9162// API parameter values that are decorated as "sensitive" in the API will not
9163// be included in the string output. The member name will be present, but the
9164// value will be replaced with "sensitive".
9165func (s SNSTopicPublishAction) GoString() string {
9166	return s.String()
9167}
9168
9169// Validate inspects the fields of the type to determine if they are valid.
9170func (s *SNSTopicPublishAction) Validate() error {
9171	invalidParams := request.ErrInvalidParams{Context: "SNSTopicPublishAction"}
9172	if s.TargetArn == nil {
9173		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
9174	}
9175	if s.TargetArn != nil && len(*s.TargetArn) < 1 {
9176		invalidParams.Add(request.NewErrParamMinLen("TargetArn", 1))
9177	}
9178	if s.Payload != nil {
9179		if err := s.Payload.Validate(); err != nil {
9180			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
9181		}
9182	}
9183
9184	if invalidParams.Len() > 0 {
9185		return invalidParams
9186	}
9187	return nil
9188}
9189
9190// SetPayload sets the Payload field's value.
9191func (s *SNSTopicPublishAction) SetPayload(v *Payload) *SNSTopicPublishAction {
9192	s.Payload = v
9193	return s
9194}
9195
9196// SetTargetArn sets the TargetArn field's value.
9197func (s *SNSTopicPublishAction) SetTargetArn(v string) *SNSTopicPublishAction {
9198	s.TargetArn = &v
9199	return s
9200}
9201
9202// Contains information about your identity source in AWS Single Sign-On. For
9203// more information, see the AWS Single Sign-On User Guide (https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).
9204type SSOIdentity struct {
9205	_ struct{} `type:"structure"`
9206
9207	// The ID of the AWS SSO identity store.
9208	//
9209	// IdentityStoreId is a required field
9210	IdentityStoreId *string `locationName:"identityStoreId" type:"string" required:"true"`
9211
9212	// The user ID.
9213	UserId *string `locationName:"userId" type:"string"`
9214}
9215
9216// String returns the string representation.
9217//
9218// API parameter values that are decorated as "sensitive" in the API will not
9219// be included in the string output. The member name will be present, but the
9220// value will be replaced with "sensitive".
9221func (s SSOIdentity) String() string {
9222	return awsutil.Prettify(s)
9223}
9224
9225// GoString returns the string representation.
9226//
9227// API parameter values that are decorated as "sensitive" in the API will not
9228// be included in the string output. The member name will be present, but the
9229// value will be replaced with "sensitive".
9230func (s SSOIdentity) GoString() string {
9231	return s.String()
9232}
9233
9234// Validate inspects the fields of the type to determine if they are valid.
9235func (s *SSOIdentity) Validate() error {
9236	invalidParams := request.ErrInvalidParams{Context: "SSOIdentity"}
9237	if s.IdentityStoreId == nil {
9238		invalidParams.Add(request.NewErrParamRequired("IdentityStoreId"))
9239	}
9240
9241	if invalidParams.Len() > 0 {
9242		return invalidParams
9243	}
9244	return nil
9245}
9246
9247// SetIdentityStoreId sets the IdentityStoreId field's value.
9248func (s *SSOIdentity) SetIdentityStoreId(v string) *SSOIdentity {
9249	s.IdentityStoreId = &v
9250	return s
9251}
9252
9253// SetUserId sets the UserId field's value.
9254func (s *SSOIdentity) SetUserId(v string) *SSOIdentity {
9255	s.UserId = &v
9256	return s
9257}
9258
9259// The service is currently unavailable.
9260type ServiceUnavailableException struct {
9261	_            struct{}                  `type:"structure"`
9262	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9263
9264	// The message for the exception.
9265	Message_ *string `locationName:"message" type:"string"`
9266}
9267
9268// String returns the string representation.
9269//
9270// API parameter values that are decorated as "sensitive" in the API will not
9271// be included in the string output. The member name will be present, but the
9272// value will be replaced with "sensitive".
9273func (s ServiceUnavailableException) String() string {
9274	return awsutil.Prettify(s)
9275}
9276
9277// GoString returns the string representation.
9278//
9279// API parameter values that are decorated as "sensitive" in the API will not
9280// be included in the string output. The member name will be present, but the
9281// value will be replaced with "sensitive".
9282func (s ServiceUnavailableException) GoString() string {
9283	return s.String()
9284}
9285
9286func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
9287	return &ServiceUnavailableException{
9288		RespMetadata: v,
9289	}
9290}
9291
9292// Code returns the exception type name.
9293func (s *ServiceUnavailableException) Code() string {
9294	return "ServiceUnavailableException"
9295}
9296
9297// Message returns the exception's message.
9298func (s *ServiceUnavailableException) Message() string {
9299	if s.Message_ != nil {
9300		return *s.Message_
9301	}
9302	return ""
9303}
9304
9305// OrigErr always returns nil, satisfies awserr.Error interface.
9306func (s *ServiceUnavailableException) OrigErr() error {
9307	return nil
9308}
9309
9310func (s *ServiceUnavailableException) Error() string {
9311	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9312}
9313
9314// Status code returns the HTTP status code for the request's response error.
9315func (s *ServiceUnavailableException) StatusCode() int {
9316	return s.RespMetadata.StatusCode
9317}
9318
9319// RequestID returns the service's response RequestID for request.
9320func (s *ServiceUnavailableException) RequestID() string {
9321	return s.RespMetadata.RequestID
9322}
9323
9324// Information needed to set the timer.
9325type SetTimerAction struct {
9326	_ struct{} `type:"structure"`
9327
9328	// The duration of the timer, in seconds. You can use a string expression that
9329	// includes numbers, variables ($variable.<variable-name>), and input values
9330	// ($input.<input-name>.<path-to-datum>) as the duration. The range of the duration
9331	// is 1-31622400 seconds. To ensure accuracy, the minimum duration is 60 seconds.
9332	// The evaluated result of the duration is rounded down to the nearest whole
9333	// number.
9334	DurationExpression *string `locationName:"durationExpression" min:"1" type:"string"`
9335
9336	// The number of seconds until the timer expires. The minimum value is 60 seconds
9337	// to ensure accuracy. The maximum value is 31622400 seconds.
9338	//
9339	// Deprecated: seconds is deprecated. You can use durationExpression for SetTimerAction. The value of seconds can be used as a string expression for durationExpression.
9340	Seconds *int64 `locationName:"seconds" min:"1" deprecated:"true" type:"integer"`
9341
9342	// The name of the timer.
9343	//
9344	// TimerName is a required field
9345	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
9346}
9347
9348// String returns the string representation.
9349//
9350// API parameter values that are decorated as "sensitive" in the API will not
9351// be included in the string output. The member name will be present, but the
9352// value will be replaced with "sensitive".
9353func (s SetTimerAction) String() string {
9354	return awsutil.Prettify(s)
9355}
9356
9357// GoString returns the string representation.
9358//
9359// API parameter values that are decorated as "sensitive" in the API will not
9360// be included in the string output. The member name will be present, but the
9361// value will be replaced with "sensitive".
9362func (s SetTimerAction) GoString() string {
9363	return s.String()
9364}
9365
9366// Validate inspects the fields of the type to determine if they are valid.
9367func (s *SetTimerAction) Validate() error {
9368	invalidParams := request.ErrInvalidParams{Context: "SetTimerAction"}
9369	if s.DurationExpression != nil && len(*s.DurationExpression) < 1 {
9370		invalidParams.Add(request.NewErrParamMinLen("DurationExpression", 1))
9371	}
9372	if s.Seconds != nil && *s.Seconds < 1 {
9373		invalidParams.Add(request.NewErrParamMinValue("Seconds", 1))
9374	}
9375	if s.TimerName == nil {
9376		invalidParams.Add(request.NewErrParamRequired("TimerName"))
9377	}
9378	if s.TimerName != nil && len(*s.TimerName) < 1 {
9379		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
9380	}
9381
9382	if invalidParams.Len() > 0 {
9383		return invalidParams
9384	}
9385	return nil
9386}
9387
9388// SetDurationExpression sets the DurationExpression field's value.
9389func (s *SetTimerAction) SetDurationExpression(v string) *SetTimerAction {
9390	s.DurationExpression = &v
9391	return s
9392}
9393
9394// SetSeconds sets the Seconds field's value.
9395func (s *SetTimerAction) SetSeconds(v int64) *SetTimerAction {
9396	s.Seconds = &v
9397	return s
9398}
9399
9400// SetTimerName sets the TimerName field's value.
9401func (s *SetTimerAction) SetTimerName(v string) *SetTimerAction {
9402	s.TimerName = &v
9403	return s
9404}
9405
9406// Information about the variable and its new value.
9407type SetVariableAction struct {
9408	_ struct{} `type:"structure"`
9409
9410	// The new value of the variable.
9411	//
9412	// Value is a required field
9413	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
9414
9415	// The name of the variable.
9416	//
9417	// VariableName is a required field
9418	VariableName *string `locationName:"variableName" min:"1" type:"string" required:"true"`
9419}
9420
9421// String returns the string representation.
9422//
9423// API parameter values that are decorated as "sensitive" in the API will not
9424// be included in the string output. The member name will be present, but the
9425// value will be replaced with "sensitive".
9426func (s SetVariableAction) String() string {
9427	return awsutil.Prettify(s)
9428}
9429
9430// GoString returns the string representation.
9431//
9432// API parameter values that are decorated as "sensitive" in the API will not
9433// be included in the string output. The member name will be present, but the
9434// value will be replaced with "sensitive".
9435func (s SetVariableAction) GoString() string {
9436	return s.String()
9437}
9438
9439// Validate inspects the fields of the type to determine if they are valid.
9440func (s *SetVariableAction) Validate() error {
9441	invalidParams := request.ErrInvalidParams{Context: "SetVariableAction"}
9442	if s.Value == nil {
9443		invalidParams.Add(request.NewErrParamRequired("Value"))
9444	}
9445	if s.Value != nil && len(*s.Value) < 1 {
9446		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
9447	}
9448	if s.VariableName == nil {
9449		invalidParams.Add(request.NewErrParamRequired("VariableName"))
9450	}
9451	if s.VariableName != nil && len(*s.VariableName) < 1 {
9452		invalidParams.Add(request.NewErrParamMinLen("VariableName", 1))
9453	}
9454
9455	if invalidParams.Len() > 0 {
9456		return invalidParams
9457	}
9458	return nil
9459}
9460
9461// SetValue sets the Value field's value.
9462func (s *SetVariableAction) SetValue(v string) *SetVariableAction {
9463	s.Value = &v
9464	return s
9465}
9466
9467// SetVariableName sets the VariableName field's value.
9468func (s *SetVariableAction) SetVariableName(v string) *SetVariableAction {
9469	s.VariableName = &v
9470	return s
9471}
9472
9473// A rule that compares an input property value to a threshold value with a
9474// comparison operator.
9475type SimpleRule struct {
9476	_ struct{} `type:"structure"`
9477
9478	// The comparison operator.
9479	//
9480	// ComparisonOperator is a required field
9481	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" required:"true" enum:"ComparisonOperator"`
9482
9483	// The value on the left side of the comparison operator. You can specify an
9484	// AWS IoT Events input attribute as an input property.
9485	//
9486	// InputProperty is a required field
9487	InputProperty *string `locationName:"inputProperty" min:"1" type:"string" required:"true"`
9488
9489	// The value on the right side of the comparison operator. You can enter a number
9490	// or specify an AWS IoT Events input attribute.
9491	//
9492	// Threshold is a required field
9493	Threshold *string `locationName:"threshold" min:"1" type:"string" required:"true"`
9494}
9495
9496// String returns the string representation.
9497//
9498// API parameter values that are decorated as "sensitive" in the API will not
9499// be included in the string output. The member name will be present, but the
9500// value will be replaced with "sensitive".
9501func (s SimpleRule) String() string {
9502	return awsutil.Prettify(s)
9503}
9504
9505// GoString returns the string representation.
9506//
9507// API parameter values that are decorated as "sensitive" in the API will not
9508// be included in the string output. The member name will be present, but the
9509// value will be replaced with "sensitive".
9510func (s SimpleRule) GoString() string {
9511	return s.String()
9512}
9513
9514// Validate inspects the fields of the type to determine if they are valid.
9515func (s *SimpleRule) Validate() error {
9516	invalidParams := request.ErrInvalidParams{Context: "SimpleRule"}
9517	if s.ComparisonOperator == nil {
9518		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
9519	}
9520	if s.InputProperty == nil {
9521		invalidParams.Add(request.NewErrParamRequired("InputProperty"))
9522	}
9523	if s.InputProperty != nil && len(*s.InputProperty) < 1 {
9524		invalidParams.Add(request.NewErrParamMinLen("InputProperty", 1))
9525	}
9526	if s.Threshold == nil {
9527		invalidParams.Add(request.NewErrParamRequired("Threshold"))
9528	}
9529	if s.Threshold != nil && len(*s.Threshold) < 1 {
9530		invalidParams.Add(request.NewErrParamMinLen("Threshold", 1))
9531	}
9532
9533	if invalidParams.Len() > 0 {
9534		return invalidParams
9535	}
9536	return nil
9537}
9538
9539// SetComparisonOperator sets the ComparisonOperator field's value.
9540func (s *SimpleRule) SetComparisonOperator(v string) *SimpleRule {
9541	s.ComparisonOperator = &v
9542	return s
9543}
9544
9545// SetInputProperty sets the InputProperty field's value.
9546func (s *SimpleRule) SetInputProperty(v string) *SimpleRule {
9547	s.InputProperty = &v
9548	return s
9549}
9550
9551// SetThreshold sets the Threshold field's value.
9552func (s *SimpleRule) SetThreshold(v string) *SimpleRule {
9553	s.Threshold = &v
9554	return s
9555}
9556
9557// Sends information about the detector model instance and the event that triggered
9558// the action to an Amazon SQS queue.
9559type SqsAction struct {
9560	_ struct{} `type:"structure"`
9561
9562	// You can configure the action payload when you send a message to an Amazon
9563	// SQS queue.
9564	Payload *Payload `locationName:"payload" type:"structure"`
9565
9566	// The URL of the SQS queue where the data is written.
9567	//
9568	// QueueUrl is a required field
9569	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
9570
9571	// Set this to TRUE if you want the data to be base-64 encoded before it is
9572	// written to the queue. Otherwise, set this to FALSE.
9573	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
9574}
9575
9576// String returns the string representation.
9577//
9578// API parameter values that are decorated as "sensitive" in the API will not
9579// be included in the string output. The member name will be present, but the
9580// value will be replaced with "sensitive".
9581func (s SqsAction) String() string {
9582	return awsutil.Prettify(s)
9583}
9584
9585// GoString returns the string representation.
9586//
9587// API parameter values that are decorated as "sensitive" in the API will not
9588// be included in the string output. The member name will be present, but the
9589// value will be replaced with "sensitive".
9590func (s SqsAction) GoString() string {
9591	return s.String()
9592}
9593
9594// Validate inspects the fields of the type to determine if they are valid.
9595func (s *SqsAction) Validate() error {
9596	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
9597	if s.QueueUrl == nil {
9598		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
9599	}
9600	if s.Payload != nil {
9601		if err := s.Payload.Validate(); err != nil {
9602			invalidParams.AddNested("Payload", err.(request.ErrInvalidParams))
9603		}
9604	}
9605
9606	if invalidParams.Len() > 0 {
9607		return invalidParams
9608	}
9609	return nil
9610}
9611
9612// SetPayload sets the Payload field's value.
9613func (s *SqsAction) SetPayload(v *Payload) *SqsAction {
9614	s.Payload = v
9615	return s
9616}
9617
9618// SetQueueUrl sets the QueueUrl field's value.
9619func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
9620	s.QueueUrl = &v
9621	return s
9622}
9623
9624// SetUseBase64 sets the UseBase64 field's value.
9625func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
9626	s.UseBase64 = &v
9627	return s
9628}
9629
9630type StartDetectorModelAnalysisInput struct {
9631	_ struct{} `type:"structure"`
9632
9633	// Information that defines how a detector operates.
9634	//
9635	// DetectorModelDefinition is a required field
9636	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure" required:"true"`
9637}
9638
9639// String returns the string representation.
9640//
9641// API parameter values that are decorated as "sensitive" in the API will not
9642// be included in the string output. The member name will be present, but the
9643// value will be replaced with "sensitive".
9644func (s StartDetectorModelAnalysisInput) String() string {
9645	return awsutil.Prettify(s)
9646}
9647
9648// GoString returns the string representation.
9649//
9650// API parameter values that are decorated as "sensitive" in the API will not
9651// be included in the string output. The member name will be present, but the
9652// value will be replaced with "sensitive".
9653func (s StartDetectorModelAnalysisInput) GoString() string {
9654	return s.String()
9655}
9656
9657// Validate inspects the fields of the type to determine if they are valid.
9658func (s *StartDetectorModelAnalysisInput) Validate() error {
9659	invalidParams := request.ErrInvalidParams{Context: "StartDetectorModelAnalysisInput"}
9660	if s.DetectorModelDefinition == nil {
9661		invalidParams.Add(request.NewErrParamRequired("DetectorModelDefinition"))
9662	}
9663	if s.DetectorModelDefinition != nil {
9664		if err := s.DetectorModelDefinition.Validate(); err != nil {
9665			invalidParams.AddNested("DetectorModelDefinition", err.(request.ErrInvalidParams))
9666		}
9667	}
9668
9669	if invalidParams.Len() > 0 {
9670		return invalidParams
9671	}
9672	return nil
9673}
9674
9675// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
9676func (s *StartDetectorModelAnalysisInput) SetDetectorModelDefinition(v *DetectorModelDefinition) *StartDetectorModelAnalysisInput {
9677	s.DetectorModelDefinition = v
9678	return s
9679}
9680
9681type StartDetectorModelAnalysisOutput struct {
9682	_ struct{} `type:"structure"`
9683
9684	// The ID that you can use to retrieve the analysis result.
9685	AnalysisId *string `locationName:"analysisId" type:"string"`
9686}
9687
9688// String returns the string representation.
9689//
9690// API parameter values that are decorated as "sensitive" in the API will not
9691// be included in the string output. The member name will be present, but the
9692// value will be replaced with "sensitive".
9693func (s StartDetectorModelAnalysisOutput) String() string {
9694	return awsutil.Prettify(s)
9695}
9696
9697// GoString returns the string representation.
9698//
9699// API parameter values that are decorated as "sensitive" in the API will not
9700// be included in the string output. The member name will be present, but the
9701// value will be replaced with "sensitive".
9702func (s StartDetectorModelAnalysisOutput) GoString() string {
9703	return s.String()
9704}
9705
9706// SetAnalysisId sets the AnalysisId field's value.
9707func (s *StartDetectorModelAnalysisOutput) SetAnalysisId(v string) *StartDetectorModelAnalysisOutput {
9708	s.AnalysisId = &v
9709	return s
9710}
9711
9712// Information that defines a state of a detector.
9713type State struct {
9714	_ struct{} `type:"structure"`
9715
9716	// When entering this state, perform these actions if the condition is TRUE.
9717	OnEnter *OnEnterLifecycle `locationName:"onEnter" type:"structure"`
9718
9719	// When exiting this state, perform these actions if the specified condition
9720	// is TRUE.
9721	OnExit *OnExitLifecycle `locationName:"onExit" type:"structure"`
9722
9723	// When an input is received and the condition is TRUE, perform the specified
9724	// actions.
9725	OnInput *OnInputLifecycle `locationName:"onInput" type:"structure"`
9726
9727	// The name of the state.
9728	//
9729	// StateName is a required field
9730	StateName *string `locationName:"stateName" min:"1" type:"string" required:"true"`
9731}
9732
9733// String returns the string representation.
9734//
9735// API parameter values that are decorated as "sensitive" in the API will not
9736// be included in the string output. The member name will be present, but the
9737// value will be replaced with "sensitive".
9738func (s State) String() string {
9739	return awsutil.Prettify(s)
9740}
9741
9742// GoString returns the string representation.
9743//
9744// API parameter values that are decorated as "sensitive" in the API will not
9745// be included in the string output. The member name will be present, but the
9746// value will be replaced with "sensitive".
9747func (s State) GoString() string {
9748	return s.String()
9749}
9750
9751// Validate inspects the fields of the type to determine if they are valid.
9752func (s *State) Validate() error {
9753	invalidParams := request.ErrInvalidParams{Context: "State"}
9754	if s.StateName == nil {
9755		invalidParams.Add(request.NewErrParamRequired("StateName"))
9756	}
9757	if s.StateName != nil && len(*s.StateName) < 1 {
9758		invalidParams.Add(request.NewErrParamMinLen("StateName", 1))
9759	}
9760	if s.OnEnter != nil {
9761		if err := s.OnEnter.Validate(); err != nil {
9762			invalidParams.AddNested("OnEnter", err.(request.ErrInvalidParams))
9763		}
9764	}
9765	if s.OnExit != nil {
9766		if err := s.OnExit.Validate(); err != nil {
9767			invalidParams.AddNested("OnExit", err.(request.ErrInvalidParams))
9768		}
9769	}
9770	if s.OnInput != nil {
9771		if err := s.OnInput.Validate(); err != nil {
9772			invalidParams.AddNested("OnInput", err.(request.ErrInvalidParams))
9773		}
9774	}
9775
9776	if invalidParams.Len() > 0 {
9777		return invalidParams
9778	}
9779	return nil
9780}
9781
9782// SetOnEnter sets the OnEnter field's value.
9783func (s *State) SetOnEnter(v *OnEnterLifecycle) *State {
9784	s.OnEnter = v
9785	return s
9786}
9787
9788// SetOnExit sets the OnExit field's value.
9789func (s *State) SetOnExit(v *OnExitLifecycle) *State {
9790	s.OnExit = v
9791	return s
9792}
9793
9794// SetOnInput sets the OnInput field's value.
9795func (s *State) SetOnInput(v *OnInputLifecycle) *State {
9796	s.OnInput = v
9797	return s
9798}
9799
9800// SetStateName sets the StateName field's value.
9801func (s *State) SetStateName(v string) *State {
9802	s.StateName = &v
9803	return s
9804}
9805
9806// Metadata that can be used to manage the resource.
9807type Tag struct {
9808	_ struct{} `type:"structure"`
9809
9810	// The tag's key.
9811	//
9812	// Key is a required field
9813	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
9814
9815	// The tag's value.
9816	//
9817	// Value is a required field
9818	Value *string `locationName:"value" type:"string" required:"true"`
9819}
9820
9821// String returns the string representation.
9822//
9823// API parameter values that are decorated as "sensitive" in the API will not
9824// be included in the string output. The member name will be present, but the
9825// value will be replaced with "sensitive".
9826func (s Tag) String() string {
9827	return awsutil.Prettify(s)
9828}
9829
9830// GoString returns the string representation.
9831//
9832// API parameter values that are decorated as "sensitive" in the API will not
9833// be included in the string output. The member name will be present, but the
9834// value will be replaced with "sensitive".
9835func (s Tag) GoString() string {
9836	return s.String()
9837}
9838
9839// Validate inspects the fields of the type to determine if they are valid.
9840func (s *Tag) Validate() error {
9841	invalidParams := request.ErrInvalidParams{Context: "Tag"}
9842	if s.Key == nil {
9843		invalidParams.Add(request.NewErrParamRequired("Key"))
9844	}
9845	if s.Key != nil && len(*s.Key) < 1 {
9846		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
9847	}
9848	if s.Value == nil {
9849		invalidParams.Add(request.NewErrParamRequired("Value"))
9850	}
9851
9852	if invalidParams.Len() > 0 {
9853		return invalidParams
9854	}
9855	return nil
9856}
9857
9858// SetKey sets the Key field's value.
9859func (s *Tag) SetKey(v string) *Tag {
9860	s.Key = &v
9861	return s
9862}
9863
9864// SetValue sets the Value field's value.
9865func (s *Tag) SetValue(v string) *Tag {
9866	s.Value = &v
9867	return s
9868}
9869
9870type TagResourceInput struct {
9871	_ struct{} `type:"structure"`
9872
9873	// The ARN of the resource.
9874	//
9875	// ResourceArn is a required field
9876	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
9877
9878	// The new or modified tags for the resource.
9879	//
9880	// Tags is a required field
9881	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
9882}
9883
9884// String returns the string representation.
9885//
9886// API parameter values that are decorated as "sensitive" in the API will not
9887// be included in the string output. The member name will be present, but the
9888// value will be replaced with "sensitive".
9889func (s TagResourceInput) String() string {
9890	return awsutil.Prettify(s)
9891}
9892
9893// GoString returns the string representation.
9894//
9895// API parameter values that are decorated as "sensitive" in the API will not
9896// be included in the string output. The member name will be present, but the
9897// value will be replaced with "sensitive".
9898func (s TagResourceInput) GoString() string {
9899	return s.String()
9900}
9901
9902// Validate inspects the fields of the type to determine if they are valid.
9903func (s *TagResourceInput) Validate() error {
9904	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
9905	if s.ResourceArn == nil {
9906		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9907	}
9908	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9909		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9910	}
9911	if s.Tags == nil {
9912		invalidParams.Add(request.NewErrParamRequired("Tags"))
9913	}
9914	if s.Tags != nil {
9915		for i, v := range s.Tags {
9916			if v == nil {
9917				continue
9918			}
9919			if err := v.Validate(); err != nil {
9920				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9921			}
9922		}
9923	}
9924
9925	if invalidParams.Len() > 0 {
9926		return invalidParams
9927	}
9928	return nil
9929}
9930
9931// SetResourceArn sets the ResourceArn field's value.
9932func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
9933	s.ResourceArn = &v
9934	return s
9935}
9936
9937// SetTags sets the Tags field's value.
9938func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
9939	s.Tags = v
9940	return s
9941}
9942
9943type TagResourceOutput struct {
9944	_ struct{} `type:"structure"`
9945}
9946
9947// String returns the string representation.
9948//
9949// API parameter values that are decorated as "sensitive" in the API will not
9950// be included in the string output. The member name will be present, but the
9951// value will be replaced with "sensitive".
9952func (s TagResourceOutput) String() string {
9953	return awsutil.Prettify(s)
9954}
9955
9956// GoString returns the string representation.
9957//
9958// API parameter values that are decorated as "sensitive" in the API will not
9959// be included in the string output. The member name will be present, but the
9960// value will be replaced with "sensitive".
9961func (s TagResourceOutput) GoString() string {
9962	return s.String()
9963}
9964
9965// The request could not be completed due to throttling.
9966type ThrottlingException struct {
9967	_            struct{}                  `type:"structure"`
9968	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9969
9970	// The message for the exception.
9971	Message_ *string `locationName:"message" type:"string"`
9972}
9973
9974// String returns the string representation.
9975//
9976// API parameter values that are decorated as "sensitive" in the API will not
9977// be included in the string output. The member name will be present, but the
9978// value will be replaced with "sensitive".
9979func (s ThrottlingException) String() string {
9980	return awsutil.Prettify(s)
9981}
9982
9983// GoString returns the string representation.
9984//
9985// API parameter values that are decorated as "sensitive" in the API will not
9986// be included in the string output. The member name will be present, but the
9987// value will be replaced with "sensitive".
9988func (s ThrottlingException) GoString() string {
9989	return s.String()
9990}
9991
9992func newErrorThrottlingException(v protocol.ResponseMetadata) error {
9993	return &ThrottlingException{
9994		RespMetadata: v,
9995	}
9996}
9997
9998// Code returns the exception type name.
9999func (s *ThrottlingException) Code() string {
10000	return "ThrottlingException"
10001}
10002
10003// Message returns the exception's message.
10004func (s *ThrottlingException) Message() string {
10005	if s.Message_ != nil {
10006		return *s.Message_
10007	}
10008	return ""
10009}
10010
10011// OrigErr always returns nil, satisfies awserr.Error interface.
10012func (s *ThrottlingException) OrigErr() error {
10013	return nil
10014}
10015
10016func (s *ThrottlingException) Error() string {
10017	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10018}
10019
10020// Status code returns the HTTP status code for the request's response error.
10021func (s *ThrottlingException) StatusCode() int {
10022	return s.RespMetadata.StatusCode
10023}
10024
10025// RequestID returns the service's response RequestID for request.
10026func (s *ThrottlingException) RequestID() string {
10027	return s.RespMetadata.RequestID
10028}
10029
10030// Specifies the actions performed and the next state entered when a condition
10031// evaluates to TRUE.
10032type TransitionEvent struct {
10033	_ struct{} `type:"structure"`
10034
10035	// The actions to be performed.
10036	Actions []*ActionData `locationName:"actions" type:"list"`
10037
10038	// Required. A Boolean expression that when TRUE causes the actions to be performed
10039	// and the nextState to be entered.
10040	//
10041	// Condition is a required field
10042	Condition *string `locationName:"condition" type:"string" required:"true"`
10043
10044	// The name of the transition event.
10045	//
10046	// EventName is a required field
10047	EventName *string `locationName:"eventName" type:"string" required:"true"`
10048
10049	// The next state to enter.
10050	//
10051	// NextState is a required field
10052	NextState *string `locationName:"nextState" min:"1" type:"string" required:"true"`
10053}
10054
10055// String returns the string representation.
10056//
10057// API parameter values that are decorated as "sensitive" in the API will not
10058// be included in the string output. The member name will be present, but the
10059// value will be replaced with "sensitive".
10060func (s TransitionEvent) String() string {
10061	return awsutil.Prettify(s)
10062}
10063
10064// GoString returns the string representation.
10065//
10066// API parameter values that are decorated as "sensitive" in the API will not
10067// be included in the string output. The member name will be present, but the
10068// value will be replaced with "sensitive".
10069func (s TransitionEvent) GoString() string {
10070	return s.String()
10071}
10072
10073// Validate inspects the fields of the type to determine if they are valid.
10074func (s *TransitionEvent) Validate() error {
10075	invalidParams := request.ErrInvalidParams{Context: "TransitionEvent"}
10076	if s.Condition == nil {
10077		invalidParams.Add(request.NewErrParamRequired("Condition"))
10078	}
10079	if s.EventName == nil {
10080		invalidParams.Add(request.NewErrParamRequired("EventName"))
10081	}
10082	if s.NextState == nil {
10083		invalidParams.Add(request.NewErrParamRequired("NextState"))
10084	}
10085	if s.NextState != nil && len(*s.NextState) < 1 {
10086		invalidParams.Add(request.NewErrParamMinLen("NextState", 1))
10087	}
10088	if s.Actions != nil {
10089		for i, v := range s.Actions {
10090			if v == nil {
10091				continue
10092			}
10093			if err := v.Validate(); err != nil {
10094				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
10095			}
10096		}
10097	}
10098
10099	if invalidParams.Len() > 0 {
10100		return invalidParams
10101	}
10102	return nil
10103}
10104
10105// SetActions sets the Actions field's value.
10106func (s *TransitionEvent) SetActions(v []*ActionData) *TransitionEvent {
10107	s.Actions = v
10108	return s
10109}
10110
10111// SetCondition sets the Condition field's value.
10112func (s *TransitionEvent) SetCondition(v string) *TransitionEvent {
10113	s.Condition = &v
10114	return s
10115}
10116
10117// SetEventName sets the EventName field's value.
10118func (s *TransitionEvent) SetEventName(v string) *TransitionEvent {
10119	s.EventName = &v
10120	return s
10121}
10122
10123// SetNextState sets the NextState field's value.
10124func (s *TransitionEvent) SetNextState(v string) *TransitionEvent {
10125	s.NextState = &v
10126	return s
10127}
10128
10129// The requested operation is not supported.
10130type UnsupportedOperationException struct {
10131	_            struct{}                  `type:"structure"`
10132	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10133
10134	// The message for the exception.
10135	Message_ *string `locationName:"message" type:"string"`
10136}
10137
10138// String returns the string representation.
10139//
10140// API parameter values that are decorated as "sensitive" in the API will not
10141// be included in the string output. The member name will be present, but the
10142// value will be replaced with "sensitive".
10143func (s UnsupportedOperationException) String() string {
10144	return awsutil.Prettify(s)
10145}
10146
10147// GoString returns the string representation.
10148//
10149// API parameter values that are decorated as "sensitive" in the API will not
10150// be included in the string output. The member name will be present, but the
10151// value will be replaced with "sensitive".
10152func (s UnsupportedOperationException) GoString() string {
10153	return s.String()
10154}
10155
10156func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error {
10157	return &UnsupportedOperationException{
10158		RespMetadata: v,
10159	}
10160}
10161
10162// Code returns the exception type name.
10163func (s *UnsupportedOperationException) Code() string {
10164	return "UnsupportedOperationException"
10165}
10166
10167// Message returns the exception's message.
10168func (s *UnsupportedOperationException) Message() string {
10169	if s.Message_ != nil {
10170		return *s.Message_
10171	}
10172	return ""
10173}
10174
10175// OrigErr always returns nil, satisfies awserr.Error interface.
10176func (s *UnsupportedOperationException) OrigErr() error {
10177	return nil
10178}
10179
10180func (s *UnsupportedOperationException) Error() string {
10181	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10182}
10183
10184// Status code returns the HTTP status code for the request's response error.
10185func (s *UnsupportedOperationException) StatusCode() int {
10186	return s.RespMetadata.StatusCode
10187}
10188
10189// RequestID returns the service's response RequestID for request.
10190func (s *UnsupportedOperationException) RequestID() string {
10191	return s.RespMetadata.RequestID
10192}
10193
10194type UntagResourceInput struct {
10195	_ struct{} `type:"structure" nopayload:"true"`
10196
10197	// The ARN of the resource.
10198	//
10199	// ResourceArn is a required field
10200	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
10201
10202	// A list of the keys of the tags to be removed from the resource.
10203	//
10204	// TagKeys is a required field
10205	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
10206}
10207
10208// String returns the string representation.
10209//
10210// API parameter values that are decorated as "sensitive" in the API will not
10211// be included in the string output. The member name will be present, but the
10212// value will be replaced with "sensitive".
10213func (s UntagResourceInput) String() string {
10214	return awsutil.Prettify(s)
10215}
10216
10217// GoString returns the string representation.
10218//
10219// API parameter values that are decorated as "sensitive" in the API will not
10220// be included in the string output. The member name will be present, but the
10221// value will be replaced with "sensitive".
10222func (s UntagResourceInput) GoString() string {
10223	return s.String()
10224}
10225
10226// Validate inspects the fields of the type to determine if they are valid.
10227func (s *UntagResourceInput) Validate() error {
10228	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
10229	if s.ResourceArn == nil {
10230		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10231	}
10232	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10233		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10234	}
10235	if s.TagKeys == nil {
10236		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
10237	}
10238
10239	if invalidParams.Len() > 0 {
10240		return invalidParams
10241	}
10242	return nil
10243}
10244
10245// SetResourceArn sets the ResourceArn field's value.
10246func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
10247	s.ResourceArn = &v
10248	return s
10249}
10250
10251// SetTagKeys sets the TagKeys field's value.
10252func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
10253	s.TagKeys = v
10254	return s
10255}
10256
10257type UntagResourceOutput struct {
10258	_ struct{} `type:"structure"`
10259}
10260
10261// String returns the string representation.
10262//
10263// API parameter values that are decorated as "sensitive" in the API will not
10264// be included in the string output. The member name will be present, but the
10265// value will be replaced with "sensitive".
10266func (s UntagResourceOutput) String() string {
10267	return awsutil.Prettify(s)
10268}
10269
10270// GoString returns the string representation.
10271//
10272// API parameter values that are decorated as "sensitive" in the API will not
10273// be included in the string output. The member name will be present, but the
10274// value will be replaced with "sensitive".
10275func (s UntagResourceOutput) GoString() string {
10276	return s.String()
10277}
10278
10279type UpdateAlarmModelInput struct {
10280	_ struct{} `type:"structure"`
10281
10282	// Contains the configuration information of alarm state changes.
10283	AlarmCapabilities *AlarmCapabilities `locationName:"alarmCapabilities" type:"structure"`
10284
10285	// Contains information about one or more alarm actions.
10286	AlarmEventActions *AlarmEventActions `locationName:"alarmEventActions" type:"structure"`
10287
10288	// The description of the alarm model.
10289	AlarmModelDescription *string `locationName:"alarmModelDescription" type:"string"`
10290
10291	// The name of the alarm model.
10292	//
10293	// AlarmModelName is a required field
10294	AlarmModelName *string `location:"uri" locationName:"alarmModelName" min:"1" type:"string" required:"true"`
10295
10296	// Contains information about one or more notification actions.
10297	AlarmNotification *AlarmNotification `locationName:"alarmNotification" type:"structure"`
10298
10299	// Defines when your alarm is invoked.
10300	//
10301	// AlarmRule is a required field
10302	AlarmRule *AlarmRule `locationName:"alarmRule" type:"structure" required:"true"`
10303
10304	// The ARN of the IAM role that allows the alarm to perform actions and access
10305	// AWS resources. For more information, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
10306	// in the AWS General Reference.
10307	//
10308	// RoleArn is a required field
10309	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
10310
10311	// A non-negative integer that reflects the severity level of the alarm.
10312	Severity *int64 `locationName:"severity" type:"integer"`
10313}
10314
10315// String returns the string representation.
10316//
10317// API parameter values that are decorated as "sensitive" in the API will not
10318// be included in the string output. The member name will be present, but the
10319// value will be replaced with "sensitive".
10320func (s UpdateAlarmModelInput) String() string {
10321	return awsutil.Prettify(s)
10322}
10323
10324// GoString returns the string representation.
10325//
10326// API parameter values that are decorated as "sensitive" in the API will not
10327// be included in the string output. The member name will be present, but the
10328// value will be replaced with "sensitive".
10329func (s UpdateAlarmModelInput) GoString() string {
10330	return s.String()
10331}
10332
10333// Validate inspects the fields of the type to determine if they are valid.
10334func (s *UpdateAlarmModelInput) Validate() error {
10335	invalidParams := request.ErrInvalidParams{Context: "UpdateAlarmModelInput"}
10336	if s.AlarmModelName == nil {
10337		invalidParams.Add(request.NewErrParamRequired("AlarmModelName"))
10338	}
10339	if s.AlarmModelName != nil && len(*s.AlarmModelName) < 1 {
10340		invalidParams.Add(request.NewErrParamMinLen("AlarmModelName", 1))
10341	}
10342	if s.AlarmRule == nil {
10343		invalidParams.Add(request.NewErrParamRequired("AlarmRule"))
10344	}
10345	if s.RoleArn == nil {
10346		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
10347	}
10348	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
10349		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
10350	}
10351	if s.AlarmCapabilities != nil {
10352		if err := s.AlarmCapabilities.Validate(); err != nil {
10353			invalidParams.AddNested("AlarmCapabilities", err.(request.ErrInvalidParams))
10354		}
10355	}
10356	if s.AlarmEventActions != nil {
10357		if err := s.AlarmEventActions.Validate(); err != nil {
10358			invalidParams.AddNested("AlarmEventActions", err.(request.ErrInvalidParams))
10359		}
10360	}
10361	if s.AlarmNotification != nil {
10362		if err := s.AlarmNotification.Validate(); err != nil {
10363			invalidParams.AddNested("AlarmNotification", err.(request.ErrInvalidParams))
10364		}
10365	}
10366	if s.AlarmRule != nil {
10367		if err := s.AlarmRule.Validate(); err != nil {
10368			invalidParams.AddNested("AlarmRule", err.(request.ErrInvalidParams))
10369		}
10370	}
10371
10372	if invalidParams.Len() > 0 {
10373		return invalidParams
10374	}
10375	return nil
10376}
10377
10378// SetAlarmCapabilities sets the AlarmCapabilities field's value.
10379func (s *UpdateAlarmModelInput) SetAlarmCapabilities(v *AlarmCapabilities) *UpdateAlarmModelInput {
10380	s.AlarmCapabilities = v
10381	return s
10382}
10383
10384// SetAlarmEventActions sets the AlarmEventActions field's value.
10385func (s *UpdateAlarmModelInput) SetAlarmEventActions(v *AlarmEventActions) *UpdateAlarmModelInput {
10386	s.AlarmEventActions = v
10387	return s
10388}
10389
10390// SetAlarmModelDescription sets the AlarmModelDescription field's value.
10391func (s *UpdateAlarmModelInput) SetAlarmModelDescription(v string) *UpdateAlarmModelInput {
10392	s.AlarmModelDescription = &v
10393	return s
10394}
10395
10396// SetAlarmModelName sets the AlarmModelName field's value.
10397func (s *UpdateAlarmModelInput) SetAlarmModelName(v string) *UpdateAlarmModelInput {
10398	s.AlarmModelName = &v
10399	return s
10400}
10401
10402// SetAlarmNotification sets the AlarmNotification field's value.
10403func (s *UpdateAlarmModelInput) SetAlarmNotification(v *AlarmNotification) *UpdateAlarmModelInput {
10404	s.AlarmNotification = v
10405	return s
10406}
10407
10408// SetAlarmRule sets the AlarmRule field's value.
10409func (s *UpdateAlarmModelInput) SetAlarmRule(v *AlarmRule) *UpdateAlarmModelInput {
10410	s.AlarmRule = v
10411	return s
10412}
10413
10414// SetRoleArn sets the RoleArn field's value.
10415func (s *UpdateAlarmModelInput) SetRoleArn(v string) *UpdateAlarmModelInput {
10416	s.RoleArn = &v
10417	return s
10418}
10419
10420// SetSeverity sets the Severity field's value.
10421func (s *UpdateAlarmModelInput) SetSeverity(v int64) *UpdateAlarmModelInput {
10422	s.Severity = &v
10423	return s
10424}
10425
10426type UpdateAlarmModelOutput struct {
10427	_ struct{} `type:"structure"`
10428
10429	// The ARN of the alarm model. For more information, see Amazon Resource Names
10430	// (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
10431	// in the AWS General Reference.
10432	AlarmModelArn *string `locationName:"alarmModelArn" type:"string"`
10433
10434	// The version of the alarm model.
10435	AlarmModelVersion *string `locationName:"alarmModelVersion" min:"1" type:"string"`
10436
10437	// The time the alarm model was created, in the Unix epoch format.
10438	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
10439
10440	// The time the alarm model was last updated, in the Unix epoch format.
10441	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
10442
10443	// The status of the alarm model. The status can be one of the following values:
10444	//
10445	//    * ACTIVE - The alarm model is active and it's ready to evaluate data.
10446	//
10447	//    * ACTIVATING - AWS IoT Events is activating your alarm model. Activating
10448	//    an alarm model can take up to a few minutes.
10449	//
10450	//    * INACTIVE - The alarm model is inactive, so it isn't ready to evaluate
10451	//    data. Check your alarm model information and update the alarm model.
10452	//
10453	//    * FAILED - You couldn't create or update the alarm model. Check your alarm
10454	//    model information and try again.
10455	Status *string `locationName:"status" type:"string" enum:"AlarmModelVersionStatus"`
10456}
10457
10458// String returns the string representation.
10459//
10460// API parameter values that are decorated as "sensitive" in the API will not
10461// be included in the string output. The member name will be present, but the
10462// value will be replaced with "sensitive".
10463func (s UpdateAlarmModelOutput) String() string {
10464	return awsutil.Prettify(s)
10465}
10466
10467// GoString returns the string representation.
10468//
10469// API parameter values that are decorated as "sensitive" in the API will not
10470// be included in the string output. The member name will be present, but the
10471// value will be replaced with "sensitive".
10472func (s UpdateAlarmModelOutput) GoString() string {
10473	return s.String()
10474}
10475
10476// SetAlarmModelArn sets the AlarmModelArn field's value.
10477func (s *UpdateAlarmModelOutput) SetAlarmModelArn(v string) *UpdateAlarmModelOutput {
10478	s.AlarmModelArn = &v
10479	return s
10480}
10481
10482// SetAlarmModelVersion sets the AlarmModelVersion field's value.
10483func (s *UpdateAlarmModelOutput) SetAlarmModelVersion(v string) *UpdateAlarmModelOutput {
10484	s.AlarmModelVersion = &v
10485	return s
10486}
10487
10488// SetCreationTime sets the CreationTime field's value.
10489func (s *UpdateAlarmModelOutput) SetCreationTime(v time.Time) *UpdateAlarmModelOutput {
10490	s.CreationTime = &v
10491	return s
10492}
10493
10494// SetLastUpdateTime sets the LastUpdateTime field's value.
10495func (s *UpdateAlarmModelOutput) SetLastUpdateTime(v time.Time) *UpdateAlarmModelOutput {
10496	s.LastUpdateTime = &v
10497	return s
10498}
10499
10500// SetStatus sets the Status field's value.
10501func (s *UpdateAlarmModelOutput) SetStatus(v string) *UpdateAlarmModelOutput {
10502	s.Status = &v
10503	return s
10504}
10505
10506type UpdateDetectorModelInput struct {
10507	_ struct{} `type:"structure"`
10508
10509	// Information that defines how a detector operates.
10510	//
10511	// DetectorModelDefinition is a required field
10512	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure" required:"true"`
10513
10514	// A brief description of the detector model.
10515	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
10516
10517	// The name of the detector model that is updated.
10518	//
10519	// DetectorModelName is a required field
10520	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
10521
10522	// Information about the order in which events are evaluated and how actions
10523	// are executed.
10524	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
10525
10526	// The ARN of the role that grants permission to AWS IoT Events to perform its
10527	// operations.
10528	//
10529	// RoleArn is a required field
10530	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
10531}
10532
10533// String returns the string representation.
10534//
10535// API parameter values that are decorated as "sensitive" in the API will not
10536// be included in the string output. The member name will be present, but the
10537// value will be replaced with "sensitive".
10538func (s UpdateDetectorModelInput) String() string {
10539	return awsutil.Prettify(s)
10540}
10541
10542// GoString returns the string representation.
10543//
10544// API parameter values that are decorated as "sensitive" in the API will not
10545// be included in the string output. The member name will be present, but the
10546// value will be replaced with "sensitive".
10547func (s UpdateDetectorModelInput) GoString() string {
10548	return s.String()
10549}
10550
10551// Validate inspects the fields of the type to determine if they are valid.
10552func (s *UpdateDetectorModelInput) Validate() error {
10553	invalidParams := request.ErrInvalidParams{Context: "UpdateDetectorModelInput"}
10554	if s.DetectorModelDefinition == nil {
10555		invalidParams.Add(request.NewErrParamRequired("DetectorModelDefinition"))
10556	}
10557	if s.DetectorModelName == nil {
10558		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
10559	}
10560	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
10561		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
10562	}
10563	if s.RoleArn == nil {
10564		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
10565	}
10566	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
10567		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
10568	}
10569	if s.DetectorModelDefinition != nil {
10570		if err := s.DetectorModelDefinition.Validate(); err != nil {
10571			invalidParams.AddNested("DetectorModelDefinition", err.(request.ErrInvalidParams))
10572		}
10573	}
10574
10575	if invalidParams.Len() > 0 {
10576		return invalidParams
10577	}
10578	return nil
10579}
10580
10581// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
10582func (s *UpdateDetectorModelInput) SetDetectorModelDefinition(v *DetectorModelDefinition) *UpdateDetectorModelInput {
10583	s.DetectorModelDefinition = v
10584	return s
10585}
10586
10587// SetDetectorModelDescription sets the DetectorModelDescription field's value.
10588func (s *UpdateDetectorModelInput) SetDetectorModelDescription(v string) *UpdateDetectorModelInput {
10589	s.DetectorModelDescription = &v
10590	return s
10591}
10592
10593// SetDetectorModelName sets the DetectorModelName field's value.
10594func (s *UpdateDetectorModelInput) SetDetectorModelName(v string) *UpdateDetectorModelInput {
10595	s.DetectorModelName = &v
10596	return s
10597}
10598
10599// SetEvaluationMethod sets the EvaluationMethod field's value.
10600func (s *UpdateDetectorModelInput) SetEvaluationMethod(v string) *UpdateDetectorModelInput {
10601	s.EvaluationMethod = &v
10602	return s
10603}
10604
10605// SetRoleArn sets the RoleArn field's value.
10606func (s *UpdateDetectorModelInput) SetRoleArn(v string) *UpdateDetectorModelInput {
10607	s.RoleArn = &v
10608	return s
10609}
10610
10611type UpdateDetectorModelOutput struct {
10612	_ struct{} `type:"structure"`
10613
10614	// Information about how the detector model is configured.
10615	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
10616}
10617
10618// String returns the string representation.
10619//
10620// API parameter values that are decorated as "sensitive" in the API will not
10621// be included in the string output. The member name will be present, but the
10622// value will be replaced with "sensitive".
10623func (s UpdateDetectorModelOutput) String() string {
10624	return awsutil.Prettify(s)
10625}
10626
10627// GoString returns the string representation.
10628//
10629// API parameter values that are decorated as "sensitive" in the API will not
10630// be included in the string output. The member name will be present, but the
10631// value will be replaced with "sensitive".
10632func (s UpdateDetectorModelOutput) GoString() string {
10633	return s.String()
10634}
10635
10636// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
10637func (s *UpdateDetectorModelOutput) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *UpdateDetectorModelOutput {
10638	s.DetectorModelConfiguration = v
10639	return s
10640}
10641
10642type UpdateInputInput struct {
10643	_ struct{} `type:"structure"`
10644
10645	// The definition of the input.
10646	//
10647	// InputDefinition is a required field
10648	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure" required:"true"`
10649
10650	// A brief description of the input.
10651	InputDescription *string `locationName:"inputDescription" type:"string"`
10652
10653	// The name of the input you want to update.
10654	//
10655	// InputName is a required field
10656	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
10657}
10658
10659// String returns the string representation.
10660//
10661// API parameter values that are decorated as "sensitive" in the API will not
10662// be included in the string output. The member name will be present, but the
10663// value will be replaced with "sensitive".
10664func (s UpdateInputInput) String() string {
10665	return awsutil.Prettify(s)
10666}
10667
10668// GoString returns the string representation.
10669//
10670// API parameter values that are decorated as "sensitive" in the API will not
10671// be included in the string output. The member name will be present, but the
10672// value will be replaced with "sensitive".
10673func (s UpdateInputInput) GoString() string {
10674	return s.String()
10675}
10676
10677// Validate inspects the fields of the type to determine if they are valid.
10678func (s *UpdateInputInput) Validate() error {
10679	invalidParams := request.ErrInvalidParams{Context: "UpdateInputInput"}
10680	if s.InputDefinition == nil {
10681		invalidParams.Add(request.NewErrParamRequired("InputDefinition"))
10682	}
10683	if s.InputName == nil {
10684		invalidParams.Add(request.NewErrParamRequired("InputName"))
10685	}
10686	if s.InputName != nil && len(*s.InputName) < 1 {
10687		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
10688	}
10689	if s.InputDefinition != nil {
10690		if err := s.InputDefinition.Validate(); err != nil {
10691			invalidParams.AddNested("InputDefinition", err.(request.ErrInvalidParams))
10692		}
10693	}
10694
10695	if invalidParams.Len() > 0 {
10696		return invalidParams
10697	}
10698	return nil
10699}
10700
10701// SetInputDefinition sets the InputDefinition field's value.
10702func (s *UpdateInputInput) SetInputDefinition(v *InputDefinition) *UpdateInputInput {
10703	s.InputDefinition = v
10704	return s
10705}
10706
10707// SetInputDescription sets the InputDescription field's value.
10708func (s *UpdateInputInput) SetInputDescription(v string) *UpdateInputInput {
10709	s.InputDescription = &v
10710	return s
10711}
10712
10713// SetInputName sets the InputName field's value.
10714func (s *UpdateInputInput) SetInputName(v string) *UpdateInputInput {
10715	s.InputName = &v
10716	return s
10717}
10718
10719type UpdateInputOutput struct {
10720	_ struct{} `type:"structure"`
10721
10722	// Information about the configuration of the input.
10723	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
10724}
10725
10726// String returns the string representation.
10727//
10728// API parameter values that are decorated as "sensitive" in the API will not
10729// be included in the string output. The member name will be present, but the
10730// value will be replaced with "sensitive".
10731func (s UpdateInputOutput) String() string {
10732	return awsutil.Prettify(s)
10733}
10734
10735// GoString returns the string representation.
10736//
10737// API parameter values that are decorated as "sensitive" in the API will not
10738// be included in the string output. The member name will be present, but the
10739// value will be replaced with "sensitive".
10740func (s UpdateInputOutput) GoString() string {
10741	return s.String()
10742}
10743
10744// SetInputConfiguration sets the InputConfiguration field's value.
10745func (s *UpdateInputOutput) SetInputConfiguration(v *InputConfiguration) *UpdateInputOutput {
10746	s.InputConfiguration = v
10747	return s
10748}
10749
10750const (
10751	// AlarmModelVersionStatusActive is a AlarmModelVersionStatus enum value
10752	AlarmModelVersionStatusActive = "ACTIVE"
10753
10754	// AlarmModelVersionStatusActivating is a AlarmModelVersionStatus enum value
10755	AlarmModelVersionStatusActivating = "ACTIVATING"
10756
10757	// AlarmModelVersionStatusInactive is a AlarmModelVersionStatus enum value
10758	AlarmModelVersionStatusInactive = "INACTIVE"
10759
10760	// AlarmModelVersionStatusFailed is a AlarmModelVersionStatus enum value
10761	AlarmModelVersionStatusFailed = "FAILED"
10762)
10763
10764// AlarmModelVersionStatus_Values returns all elements of the AlarmModelVersionStatus enum
10765func AlarmModelVersionStatus_Values() []string {
10766	return []string{
10767		AlarmModelVersionStatusActive,
10768		AlarmModelVersionStatusActivating,
10769		AlarmModelVersionStatusInactive,
10770		AlarmModelVersionStatusFailed,
10771	}
10772}
10773
10774const (
10775	// AnalysisResultLevelInfo is a AnalysisResultLevel enum value
10776	AnalysisResultLevelInfo = "INFO"
10777
10778	// AnalysisResultLevelWarning is a AnalysisResultLevel enum value
10779	AnalysisResultLevelWarning = "WARNING"
10780
10781	// AnalysisResultLevelError is a AnalysisResultLevel enum value
10782	AnalysisResultLevelError = "ERROR"
10783)
10784
10785// AnalysisResultLevel_Values returns all elements of the AnalysisResultLevel enum
10786func AnalysisResultLevel_Values() []string {
10787	return []string{
10788		AnalysisResultLevelInfo,
10789		AnalysisResultLevelWarning,
10790		AnalysisResultLevelError,
10791	}
10792}
10793
10794const (
10795	// AnalysisStatusRunning is a AnalysisStatus enum value
10796	AnalysisStatusRunning = "RUNNING"
10797
10798	// AnalysisStatusComplete is a AnalysisStatus enum value
10799	AnalysisStatusComplete = "COMPLETE"
10800
10801	// AnalysisStatusFailed is a AnalysisStatus enum value
10802	AnalysisStatusFailed = "FAILED"
10803)
10804
10805// AnalysisStatus_Values returns all elements of the AnalysisStatus enum
10806func AnalysisStatus_Values() []string {
10807	return []string{
10808		AnalysisStatusRunning,
10809		AnalysisStatusComplete,
10810		AnalysisStatusFailed,
10811	}
10812}
10813
10814const (
10815	// ComparisonOperatorGreater is a ComparisonOperator enum value
10816	ComparisonOperatorGreater = "GREATER"
10817
10818	// ComparisonOperatorGreaterOrEqual is a ComparisonOperator enum value
10819	ComparisonOperatorGreaterOrEqual = "GREATER_OR_EQUAL"
10820
10821	// ComparisonOperatorLess is a ComparisonOperator enum value
10822	ComparisonOperatorLess = "LESS"
10823
10824	// ComparisonOperatorLessOrEqual is a ComparisonOperator enum value
10825	ComparisonOperatorLessOrEqual = "LESS_OR_EQUAL"
10826
10827	// ComparisonOperatorEqual is a ComparisonOperator enum value
10828	ComparisonOperatorEqual = "EQUAL"
10829
10830	// ComparisonOperatorNotEqual is a ComparisonOperator enum value
10831	ComparisonOperatorNotEqual = "NOT_EQUAL"
10832)
10833
10834// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
10835func ComparisonOperator_Values() []string {
10836	return []string{
10837		ComparisonOperatorGreater,
10838		ComparisonOperatorGreaterOrEqual,
10839		ComparisonOperatorLess,
10840		ComparisonOperatorLessOrEqual,
10841		ComparisonOperatorEqual,
10842		ComparisonOperatorNotEqual,
10843	}
10844}
10845
10846const (
10847	// DetectorModelVersionStatusActive is a DetectorModelVersionStatus enum value
10848	DetectorModelVersionStatusActive = "ACTIVE"
10849
10850	// DetectorModelVersionStatusActivating is a DetectorModelVersionStatus enum value
10851	DetectorModelVersionStatusActivating = "ACTIVATING"
10852
10853	// DetectorModelVersionStatusInactive is a DetectorModelVersionStatus enum value
10854	DetectorModelVersionStatusInactive = "INACTIVE"
10855
10856	// DetectorModelVersionStatusDeprecated is a DetectorModelVersionStatus enum value
10857	DetectorModelVersionStatusDeprecated = "DEPRECATED"
10858
10859	// DetectorModelVersionStatusDraft is a DetectorModelVersionStatus enum value
10860	DetectorModelVersionStatusDraft = "DRAFT"
10861
10862	// DetectorModelVersionStatusPaused is a DetectorModelVersionStatus enum value
10863	DetectorModelVersionStatusPaused = "PAUSED"
10864
10865	// DetectorModelVersionStatusFailed is a DetectorModelVersionStatus enum value
10866	DetectorModelVersionStatusFailed = "FAILED"
10867)
10868
10869// DetectorModelVersionStatus_Values returns all elements of the DetectorModelVersionStatus enum
10870func DetectorModelVersionStatus_Values() []string {
10871	return []string{
10872		DetectorModelVersionStatusActive,
10873		DetectorModelVersionStatusActivating,
10874		DetectorModelVersionStatusInactive,
10875		DetectorModelVersionStatusDeprecated,
10876		DetectorModelVersionStatusDraft,
10877		DetectorModelVersionStatusPaused,
10878		DetectorModelVersionStatusFailed,
10879	}
10880}
10881
10882const (
10883	// EvaluationMethodBatch is a EvaluationMethod enum value
10884	EvaluationMethodBatch = "BATCH"
10885
10886	// EvaluationMethodSerial is a EvaluationMethod enum value
10887	EvaluationMethodSerial = "SERIAL"
10888)
10889
10890// EvaluationMethod_Values returns all elements of the EvaluationMethod enum
10891func EvaluationMethod_Values() []string {
10892	return []string{
10893		EvaluationMethodBatch,
10894		EvaluationMethodSerial,
10895	}
10896}
10897
10898const (
10899	// InputStatusCreating is a InputStatus enum value
10900	InputStatusCreating = "CREATING"
10901
10902	// InputStatusUpdating is a InputStatus enum value
10903	InputStatusUpdating = "UPDATING"
10904
10905	// InputStatusActive is a InputStatus enum value
10906	InputStatusActive = "ACTIVE"
10907
10908	// InputStatusDeleting is a InputStatus enum value
10909	InputStatusDeleting = "DELETING"
10910)
10911
10912// InputStatus_Values returns all elements of the InputStatus enum
10913func InputStatus_Values() []string {
10914	return []string{
10915		InputStatusCreating,
10916		InputStatusUpdating,
10917		InputStatusActive,
10918		InputStatusDeleting,
10919	}
10920}
10921
10922const (
10923	// LoggingLevelError is a LoggingLevel enum value
10924	LoggingLevelError = "ERROR"
10925
10926	// LoggingLevelInfo is a LoggingLevel enum value
10927	LoggingLevelInfo = "INFO"
10928
10929	// LoggingLevelDebug is a LoggingLevel enum value
10930	LoggingLevelDebug = "DEBUG"
10931)
10932
10933// LoggingLevel_Values returns all elements of the LoggingLevel enum
10934func LoggingLevel_Values() []string {
10935	return []string{
10936		LoggingLevelError,
10937		LoggingLevelInfo,
10938		LoggingLevelDebug,
10939	}
10940}
10941
10942const (
10943	// PayloadTypeString is a PayloadType enum value
10944	PayloadTypeString = "STRING"
10945
10946	// PayloadTypeJson is a PayloadType enum value
10947	PayloadTypeJson = "JSON"
10948)
10949
10950// PayloadType_Values returns all elements of the PayloadType enum
10951func PayloadType_Values() []string {
10952	return []string{
10953		PayloadTypeString,
10954		PayloadTypeJson,
10955	}
10956}
10957