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 opCreateDetectorModel = "CreateDetectorModel"
17
18// CreateDetectorModelRequest generates a "aws/request.Request" representing the
19// client's request for the CreateDetectorModel 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 CreateDetectorModel for more information on using the CreateDetectorModel
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 CreateDetectorModelRequest method.
34//    req, resp := client.CreateDetectorModelRequest(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/CreateDetectorModel
42func (c *IoTEvents) CreateDetectorModelRequest(input *CreateDetectorModelInput) (req *request.Request, output *CreateDetectorModelOutput) {
43	op := &request.Operation{
44		Name:       opCreateDetectorModel,
45		HTTPMethod: "POST",
46		HTTPPath:   "/detector-models",
47	}
48
49	if input == nil {
50		input = &CreateDetectorModelInput{}
51	}
52
53	output = &CreateDetectorModelOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateDetectorModel API operation for AWS IoT Events.
59//
60// Creates a detector model.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for AWS IoT Events's
67// API operation CreateDetectorModel for usage and error information.
68//
69// Returned Error Codes:
70//   * ErrCodeInvalidRequestException "InvalidRequestException"
71//   The request was invalid.
72//
73//   * ErrCodeResourceInUseException "ResourceInUseException"
74//   The resource is in use.
75//
76//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
77//   The resource already exists.
78//
79//   * ErrCodeLimitExceededException "LimitExceededException"
80//   A limit was exceeded.
81//
82//   * ErrCodeThrottlingException "ThrottlingException"
83//   The request could not be completed due to throttling.
84//
85//   * ErrCodeInternalFailureException "InternalFailureException"
86//   An internal failure occurred.
87//
88//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
89//   The service is currently unavailable.
90//
91// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateDetectorModel
92func (c *IoTEvents) CreateDetectorModel(input *CreateDetectorModelInput) (*CreateDetectorModelOutput, error) {
93	req, out := c.CreateDetectorModelRequest(input)
94	return out, req.Send()
95}
96
97// CreateDetectorModelWithContext is the same as CreateDetectorModel with the addition of
98// the ability to pass a context and additional request options.
99//
100// See CreateDetectorModel for details on how to use this API operation.
101//
102// The context must be non-nil and will be used for request cancellation. If
103// the context is nil a panic will occur. In the future the SDK may create
104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
105// for more information on using Contexts.
106func (c *IoTEvents) CreateDetectorModelWithContext(ctx aws.Context, input *CreateDetectorModelInput, opts ...request.Option) (*CreateDetectorModelOutput, error) {
107	req, out := c.CreateDetectorModelRequest(input)
108	req.SetContext(ctx)
109	req.ApplyOptions(opts...)
110	return out, req.Send()
111}
112
113const opCreateInput = "CreateInput"
114
115// CreateInputRequest generates a "aws/request.Request" representing the
116// client's request for the CreateInput operation. The "output" return
117// value will be populated with the request's response once the request completes
118// successfully.
119//
120// Use "Send" method on the returned Request to send the API call to the service.
121// the "output" return value is not valid until after Send returns without error.
122//
123// See CreateInput for more information on using the CreateInput
124// API call, and error handling.
125//
126// This method is useful when you want to inject custom logic or configuration
127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
128//
129//
130//    // Example sending a request using the CreateInputRequest method.
131//    req, resp := client.CreateInputRequest(params)
132//
133//    err := req.Send()
134//    if err == nil { // resp is now filled
135//        fmt.Println(resp)
136//    }
137//
138// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateInput
139func (c *IoTEvents) CreateInputRequest(input *CreateInputInput) (req *request.Request, output *CreateInputOutput) {
140	op := &request.Operation{
141		Name:       opCreateInput,
142		HTTPMethod: "POST",
143		HTTPPath:   "/inputs",
144	}
145
146	if input == nil {
147		input = &CreateInputInput{}
148	}
149
150	output = &CreateInputOutput{}
151	req = c.newRequest(op, input, output)
152	return
153}
154
155// CreateInput API operation for AWS IoT Events.
156//
157// Creates an input.
158//
159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
160// with awserr.Error's Code and Message methods to get detailed information about
161// the error.
162//
163// See the AWS API reference guide for AWS IoT Events's
164// API operation CreateInput for usage and error information.
165//
166// Returned Error Codes:
167//   * ErrCodeInvalidRequestException "InvalidRequestException"
168//   The request was invalid.
169//
170//   * ErrCodeThrottlingException "ThrottlingException"
171//   The request could not be completed due to throttling.
172//
173//   * ErrCodeInternalFailureException "InternalFailureException"
174//   An internal failure occurred.
175//
176//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
177//   The service is currently unavailable.
178//
179//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
180//   The resource already exists.
181//
182// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/CreateInput
183func (c *IoTEvents) CreateInput(input *CreateInputInput) (*CreateInputOutput, error) {
184	req, out := c.CreateInputRequest(input)
185	return out, req.Send()
186}
187
188// CreateInputWithContext is the same as CreateInput with the addition of
189// the ability to pass a context and additional request options.
190//
191// See CreateInput for details on how to use this API operation.
192//
193// The context must be non-nil and will be used for request cancellation. If
194// the context is nil a panic will occur. In the future the SDK may create
195// sub-contexts for http.Requests. See https://golang.org/pkg/context/
196// for more information on using Contexts.
197func (c *IoTEvents) CreateInputWithContext(ctx aws.Context, input *CreateInputInput, opts ...request.Option) (*CreateInputOutput, error) {
198	req, out := c.CreateInputRequest(input)
199	req.SetContext(ctx)
200	req.ApplyOptions(opts...)
201	return out, req.Send()
202}
203
204const opDeleteDetectorModel = "DeleteDetectorModel"
205
206// DeleteDetectorModelRequest generates a "aws/request.Request" representing the
207// client's request for the DeleteDetectorModel operation. The "output" return
208// value will be populated with the request's response once the request completes
209// successfully.
210//
211// Use "Send" method on the returned Request to send the API call to the service.
212// the "output" return value is not valid until after Send returns without error.
213//
214// See DeleteDetectorModel for more information on using the DeleteDetectorModel
215// API call, and error handling.
216//
217// This method is useful when you want to inject custom logic or configuration
218// into the SDK's request lifecycle. Such as custom headers, or retry logic.
219//
220//
221//    // Example sending a request using the DeleteDetectorModelRequest method.
222//    req, resp := client.DeleteDetectorModelRequest(params)
223//
224//    err := req.Send()
225//    if err == nil { // resp is now filled
226//        fmt.Println(resp)
227//    }
228//
229// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteDetectorModel
230func (c *IoTEvents) DeleteDetectorModelRequest(input *DeleteDetectorModelInput) (req *request.Request, output *DeleteDetectorModelOutput) {
231	op := &request.Operation{
232		Name:       opDeleteDetectorModel,
233		HTTPMethod: "DELETE",
234		HTTPPath:   "/detector-models/{detectorModelName}",
235	}
236
237	if input == nil {
238		input = &DeleteDetectorModelInput{}
239	}
240
241	output = &DeleteDetectorModelOutput{}
242	req = c.newRequest(op, input, output)
243	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
244	return
245}
246
247// DeleteDetectorModel API operation for AWS IoT Events.
248//
249// Deletes a detector model. Any active instances of the detector model are
250// also deleted.
251//
252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
253// with awserr.Error's Code and Message methods to get detailed information about
254// the error.
255//
256// See the AWS API reference guide for AWS IoT Events's
257// API operation DeleteDetectorModel for usage and error information.
258//
259// Returned Error Codes:
260//   * ErrCodeInvalidRequestException "InvalidRequestException"
261//   The request was invalid.
262//
263//   * ErrCodeResourceInUseException "ResourceInUseException"
264//   The resource is in use.
265//
266//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
267//   The resource was not found.
268//
269//   * ErrCodeThrottlingException "ThrottlingException"
270//   The request could not be completed due to throttling.
271//
272//   * ErrCodeInternalFailureException "InternalFailureException"
273//   An internal failure occurred.
274//
275//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
276//   The service is currently unavailable.
277//
278// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteDetectorModel
279func (c *IoTEvents) DeleteDetectorModel(input *DeleteDetectorModelInput) (*DeleteDetectorModelOutput, error) {
280	req, out := c.DeleteDetectorModelRequest(input)
281	return out, req.Send()
282}
283
284// DeleteDetectorModelWithContext is the same as DeleteDetectorModel with the addition of
285// the ability to pass a context and additional request options.
286//
287// See DeleteDetectorModel for details on how to use this API operation.
288//
289// The context must be non-nil and will be used for request cancellation. If
290// the context is nil a panic will occur. In the future the SDK may create
291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
292// for more information on using Contexts.
293func (c *IoTEvents) DeleteDetectorModelWithContext(ctx aws.Context, input *DeleteDetectorModelInput, opts ...request.Option) (*DeleteDetectorModelOutput, error) {
294	req, out := c.DeleteDetectorModelRequest(input)
295	req.SetContext(ctx)
296	req.ApplyOptions(opts...)
297	return out, req.Send()
298}
299
300const opDeleteInput = "DeleteInput"
301
302// DeleteInputRequest generates a "aws/request.Request" representing the
303// client's request for the DeleteInput operation. The "output" return
304// value will be populated with the request's response once the request completes
305// successfully.
306//
307// Use "Send" method on the returned Request to send the API call to the service.
308// the "output" return value is not valid until after Send returns without error.
309//
310// See DeleteInput for more information on using the DeleteInput
311// API call, and error handling.
312//
313// This method is useful when you want to inject custom logic or configuration
314// into the SDK's request lifecycle. Such as custom headers, or retry logic.
315//
316//
317//    // Example sending a request using the DeleteInputRequest method.
318//    req, resp := client.DeleteInputRequest(params)
319//
320//    err := req.Send()
321//    if err == nil { // resp is now filled
322//        fmt.Println(resp)
323//    }
324//
325// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteInput
326func (c *IoTEvents) DeleteInputRequest(input *DeleteInputInput) (req *request.Request, output *DeleteInputOutput) {
327	op := &request.Operation{
328		Name:       opDeleteInput,
329		HTTPMethod: "DELETE",
330		HTTPPath:   "/inputs/{inputName}",
331	}
332
333	if input == nil {
334		input = &DeleteInputInput{}
335	}
336
337	output = &DeleteInputOutput{}
338	req = c.newRequest(op, input, output)
339	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
340	return
341}
342
343// DeleteInput API operation for AWS IoT Events.
344//
345// Deletes an input.
346//
347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
348// with awserr.Error's Code and Message methods to get detailed information about
349// the error.
350//
351// See the AWS API reference guide for AWS IoT Events's
352// API operation DeleteInput for usage and error information.
353//
354// Returned Error Codes:
355//   * ErrCodeInvalidRequestException "InvalidRequestException"
356//   The request was invalid.
357//
358//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
359//   The resource was not found.
360//
361//   * ErrCodeThrottlingException "ThrottlingException"
362//   The request could not be completed due to throttling.
363//
364//   * ErrCodeInternalFailureException "InternalFailureException"
365//   An internal failure occurred.
366//
367//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
368//   The service is currently unavailable.
369//
370//   * ErrCodeResourceInUseException "ResourceInUseException"
371//   The resource is in use.
372//
373// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DeleteInput
374func (c *IoTEvents) DeleteInput(input *DeleteInputInput) (*DeleteInputOutput, error) {
375	req, out := c.DeleteInputRequest(input)
376	return out, req.Send()
377}
378
379// DeleteInputWithContext is the same as DeleteInput with the addition of
380// the ability to pass a context and additional request options.
381//
382// See DeleteInput for details on how to use this API operation.
383//
384// The context must be non-nil and will be used for request cancellation. If
385// the context is nil a panic will occur. In the future the SDK may create
386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
387// for more information on using Contexts.
388func (c *IoTEvents) DeleteInputWithContext(ctx aws.Context, input *DeleteInputInput, opts ...request.Option) (*DeleteInputOutput, error) {
389	req, out := c.DeleteInputRequest(input)
390	req.SetContext(ctx)
391	req.ApplyOptions(opts...)
392	return out, req.Send()
393}
394
395const opDescribeDetectorModel = "DescribeDetectorModel"
396
397// DescribeDetectorModelRequest generates a "aws/request.Request" representing the
398// client's request for the DescribeDetectorModel operation. The "output" return
399// value will be populated with the request's response once the request completes
400// successfully.
401//
402// Use "Send" method on the returned Request to send the API call to the service.
403// the "output" return value is not valid until after Send returns without error.
404//
405// See DescribeDetectorModel for more information on using the DescribeDetectorModel
406// API call, and error handling.
407//
408// This method is useful when you want to inject custom logic or configuration
409// into the SDK's request lifecycle. Such as custom headers, or retry logic.
410//
411//
412//    // Example sending a request using the DescribeDetectorModelRequest method.
413//    req, resp := client.DescribeDetectorModelRequest(params)
414//
415//    err := req.Send()
416//    if err == nil { // resp is now filled
417//        fmt.Println(resp)
418//    }
419//
420// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeDetectorModel
421func (c *IoTEvents) DescribeDetectorModelRequest(input *DescribeDetectorModelInput) (req *request.Request, output *DescribeDetectorModelOutput) {
422	op := &request.Operation{
423		Name:       opDescribeDetectorModel,
424		HTTPMethod: "GET",
425		HTTPPath:   "/detector-models/{detectorModelName}",
426	}
427
428	if input == nil {
429		input = &DescribeDetectorModelInput{}
430	}
431
432	output = &DescribeDetectorModelOutput{}
433	req = c.newRequest(op, input, output)
434	return
435}
436
437// DescribeDetectorModel API operation for AWS IoT Events.
438//
439// Describes a detector model. If the "version" parameter is not specified,
440// information about the latest version is returned.
441//
442// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
443// with awserr.Error's Code and Message methods to get detailed information about
444// the error.
445//
446// See the AWS API reference guide for AWS IoT Events's
447// API operation DescribeDetectorModel for usage and error information.
448//
449// Returned Error Codes:
450//   * ErrCodeInvalidRequestException "InvalidRequestException"
451//   The request was invalid.
452//
453//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
454//   The resource was not found.
455//
456//   * ErrCodeThrottlingException "ThrottlingException"
457//   The request could not be completed due to throttling.
458//
459//   * ErrCodeInternalFailureException "InternalFailureException"
460//   An internal failure occurred.
461//
462//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
463//   The service is currently unavailable.
464//
465// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeDetectorModel
466func (c *IoTEvents) DescribeDetectorModel(input *DescribeDetectorModelInput) (*DescribeDetectorModelOutput, error) {
467	req, out := c.DescribeDetectorModelRequest(input)
468	return out, req.Send()
469}
470
471// DescribeDetectorModelWithContext is the same as DescribeDetectorModel with the addition of
472// the ability to pass a context and additional request options.
473//
474// See DescribeDetectorModel for details on how to use this API operation.
475//
476// The context must be non-nil and will be used for request cancellation. If
477// the context is nil a panic will occur. In the future the SDK may create
478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
479// for more information on using Contexts.
480func (c *IoTEvents) DescribeDetectorModelWithContext(ctx aws.Context, input *DescribeDetectorModelInput, opts ...request.Option) (*DescribeDetectorModelOutput, error) {
481	req, out := c.DescribeDetectorModelRequest(input)
482	req.SetContext(ctx)
483	req.ApplyOptions(opts...)
484	return out, req.Send()
485}
486
487const opDescribeInput = "DescribeInput"
488
489// DescribeInputRequest generates a "aws/request.Request" representing the
490// client's request for the DescribeInput operation. The "output" return
491// value will be populated with the request's response once the request completes
492// successfully.
493//
494// Use "Send" method on the returned Request to send the API call to the service.
495// the "output" return value is not valid until after Send returns without error.
496//
497// See DescribeInput for more information on using the DescribeInput
498// API call, and error handling.
499//
500// This method is useful when you want to inject custom logic or configuration
501// into the SDK's request lifecycle. Such as custom headers, or retry logic.
502//
503//
504//    // Example sending a request using the DescribeInputRequest method.
505//    req, resp := client.DescribeInputRequest(params)
506//
507//    err := req.Send()
508//    if err == nil { // resp is now filled
509//        fmt.Println(resp)
510//    }
511//
512// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeInput
513func (c *IoTEvents) DescribeInputRequest(input *DescribeInputInput) (req *request.Request, output *DescribeInputOutput) {
514	op := &request.Operation{
515		Name:       opDescribeInput,
516		HTTPMethod: "GET",
517		HTTPPath:   "/inputs/{inputName}",
518	}
519
520	if input == nil {
521		input = &DescribeInputInput{}
522	}
523
524	output = &DescribeInputOutput{}
525	req = c.newRequest(op, input, output)
526	return
527}
528
529// DescribeInput API operation for AWS IoT Events.
530//
531// Describes an input.
532//
533// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
534// with awserr.Error's Code and Message methods to get detailed information about
535// the error.
536//
537// See the AWS API reference guide for AWS IoT Events's
538// API operation DescribeInput for usage and error information.
539//
540// Returned Error Codes:
541//   * ErrCodeInvalidRequestException "InvalidRequestException"
542//   The request was invalid.
543//
544//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
545//   The resource was not found.
546//
547//   * ErrCodeThrottlingException "ThrottlingException"
548//   The request could not be completed due to throttling.
549//
550//   * ErrCodeInternalFailureException "InternalFailureException"
551//   An internal failure occurred.
552//
553//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
554//   The service is currently unavailable.
555//
556// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeInput
557func (c *IoTEvents) DescribeInput(input *DescribeInputInput) (*DescribeInputOutput, error) {
558	req, out := c.DescribeInputRequest(input)
559	return out, req.Send()
560}
561
562// DescribeInputWithContext is the same as DescribeInput with the addition of
563// the ability to pass a context and additional request options.
564//
565// See DescribeInput for details on how to use this API operation.
566//
567// The context must be non-nil and will be used for request cancellation. If
568// the context is nil a panic will occur. In the future the SDK may create
569// sub-contexts for http.Requests. See https://golang.org/pkg/context/
570// for more information on using Contexts.
571func (c *IoTEvents) DescribeInputWithContext(ctx aws.Context, input *DescribeInputInput, opts ...request.Option) (*DescribeInputOutput, error) {
572	req, out := c.DescribeInputRequest(input)
573	req.SetContext(ctx)
574	req.ApplyOptions(opts...)
575	return out, req.Send()
576}
577
578const opDescribeLoggingOptions = "DescribeLoggingOptions"
579
580// DescribeLoggingOptionsRequest generates a "aws/request.Request" representing the
581// client's request for the DescribeLoggingOptions operation. The "output" return
582// value will be populated with the request's response once the request completes
583// successfully.
584//
585// Use "Send" method on the returned Request to send the API call to the service.
586// the "output" return value is not valid until after Send returns without error.
587//
588// See DescribeLoggingOptions for more information on using the DescribeLoggingOptions
589// API call, and error handling.
590//
591// This method is useful when you want to inject custom logic or configuration
592// into the SDK's request lifecycle. Such as custom headers, or retry logic.
593//
594//
595//    // Example sending a request using the DescribeLoggingOptionsRequest method.
596//    req, resp := client.DescribeLoggingOptionsRequest(params)
597//
598//    err := req.Send()
599//    if err == nil { // resp is now filled
600//        fmt.Println(resp)
601//    }
602//
603// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeLoggingOptions
604func (c *IoTEvents) DescribeLoggingOptionsRequest(input *DescribeLoggingOptionsInput) (req *request.Request, output *DescribeLoggingOptionsOutput) {
605	op := &request.Operation{
606		Name:       opDescribeLoggingOptions,
607		HTTPMethod: "GET",
608		HTTPPath:   "/logging",
609	}
610
611	if input == nil {
612		input = &DescribeLoggingOptionsInput{}
613	}
614
615	output = &DescribeLoggingOptionsOutput{}
616	req = c.newRequest(op, input, output)
617	return
618}
619
620// DescribeLoggingOptions API operation for AWS IoT Events.
621//
622// Retrieves the current settings of the AWS IoT Events logging options.
623//
624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
625// with awserr.Error's Code and Message methods to get detailed information about
626// the error.
627//
628// See the AWS API reference guide for AWS IoT Events's
629// API operation DescribeLoggingOptions for usage and error information.
630//
631// Returned Error Codes:
632//   * ErrCodeInvalidRequestException "InvalidRequestException"
633//   The request was invalid.
634//
635//   * ErrCodeThrottlingException "ThrottlingException"
636//   The request could not be completed due to throttling.
637//
638//   * ErrCodeInternalFailureException "InternalFailureException"
639//   An internal failure occurred.
640//
641//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
642//   The resource was not found.
643//
644//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
645//   The service is currently unavailable.
646//
647//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
648//   The requested operation is not supported.
649//
650// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DescribeLoggingOptions
651func (c *IoTEvents) DescribeLoggingOptions(input *DescribeLoggingOptionsInput) (*DescribeLoggingOptionsOutput, error) {
652	req, out := c.DescribeLoggingOptionsRequest(input)
653	return out, req.Send()
654}
655
656// DescribeLoggingOptionsWithContext is the same as DescribeLoggingOptions with the addition of
657// the ability to pass a context and additional request options.
658//
659// See DescribeLoggingOptions for details on how to use this API operation.
660//
661// The context must be non-nil and will be used for request cancellation. If
662// the context is nil a panic will occur. In the future the SDK may create
663// sub-contexts for http.Requests. See https://golang.org/pkg/context/
664// for more information on using Contexts.
665func (c *IoTEvents) DescribeLoggingOptionsWithContext(ctx aws.Context, input *DescribeLoggingOptionsInput, opts ...request.Option) (*DescribeLoggingOptionsOutput, error) {
666	req, out := c.DescribeLoggingOptionsRequest(input)
667	req.SetContext(ctx)
668	req.ApplyOptions(opts...)
669	return out, req.Send()
670}
671
672const opListDetectorModelVersions = "ListDetectorModelVersions"
673
674// ListDetectorModelVersionsRequest generates a "aws/request.Request" representing the
675// client's request for the ListDetectorModelVersions operation. The "output" return
676// value will be populated with the request's response once the request completes
677// successfully.
678//
679// Use "Send" method on the returned Request to send the API call to the service.
680// the "output" return value is not valid until after Send returns without error.
681//
682// See ListDetectorModelVersions for more information on using the ListDetectorModelVersions
683// API call, and error handling.
684//
685// This method is useful when you want to inject custom logic or configuration
686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
687//
688//
689//    // Example sending a request using the ListDetectorModelVersionsRequest method.
690//    req, resp := client.ListDetectorModelVersionsRequest(params)
691//
692//    err := req.Send()
693//    if err == nil { // resp is now filled
694//        fmt.Println(resp)
695//    }
696//
697// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModelVersions
698func (c *IoTEvents) ListDetectorModelVersionsRequest(input *ListDetectorModelVersionsInput) (req *request.Request, output *ListDetectorModelVersionsOutput) {
699	op := &request.Operation{
700		Name:       opListDetectorModelVersions,
701		HTTPMethod: "GET",
702		HTTPPath:   "/detector-models/{detectorModelName}/versions",
703	}
704
705	if input == nil {
706		input = &ListDetectorModelVersionsInput{}
707	}
708
709	output = &ListDetectorModelVersionsOutput{}
710	req = c.newRequest(op, input, output)
711	return
712}
713
714// ListDetectorModelVersions API operation for AWS IoT Events.
715//
716// Lists all the versions of a detector model. Only the metadata associated
717// with each detector model version is returned.
718//
719// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
720// with awserr.Error's Code and Message methods to get detailed information about
721// the error.
722//
723// See the AWS API reference guide for AWS IoT Events's
724// API operation ListDetectorModelVersions for usage and error information.
725//
726// Returned Error Codes:
727//   * ErrCodeInvalidRequestException "InvalidRequestException"
728//   The request was invalid.
729//
730//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
731//   The resource was not found.
732//
733//   * ErrCodeThrottlingException "ThrottlingException"
734//   The request could not be completed due to throttling.
735//
736//   * ErrCodeInternalFailureException "InternalFailureException"
737//   An internal failure occurred.
738//
739//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
740//   The service is currently unavailable.
741//
742// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModelVersions
743func (c *IoTEvents) ListDetectorModelVersions(input *ListDetectorModelVersionsInput) (*ListDetectorModelVersionsOutput, error) {
744	req, out := c.ListDetectorModelVersionsRequest(input)
745	return out, req.Send()
746}
747
748// ListDetectorModelVersionsWithContext is the same as ListDetectorModelVersions with the addition of
749// the ability to pass a context and additional request options.
750//
751// See ListDetectorModelVersions for details on how to use this API operation.
752//
753// The context must be non-nil and will be used for request cancellation. If
754// the context is nil a panic will occur. In the future the SDK may create
755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
756// for more information on using Contexts.
757func (c *IoTEvents) ListDetectorModelVersionsWithContext(ctx aws.Context, input *ListDetectorModelVersionsInput, opts ...request.Option) (*ListDetectorModelVersionsOutput, error) {
758	req, out := c.ListDetectorModelVersionsRequest(input)
759	req.SetContext(ctx)
760	req.ApplyOptions(opts...)
761	return out, req.Send()
762}
763
764const opListDetectorModels = "ListDetectorModels"
765
766// ListDetectorModelsRequest generates a "aws/request.Request" representing the
767// client's request for the ListDetectorModels operation. The "output" return
768// value will be populated with the request's response once the request completes
769// successfully.
770//
771// Use "Send" method on the returned Request to send the API call to the service.
772// the "output" return value is not valid until after Send returns without error.
773//
774// See ListDetectorModels for more information on using the ListDetectorModels
775// API call, and error handling.
776//
777// This method is useful when you want to inject custom logic or configuration
778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
779//
780//
781//    // Example sending a request using the ListDetectorModelsRequest method.
782//    req, resp := client.ListDetectorModelsRequest(params)
783//
784//    err := req.Send()
785//    if err == nil { // resp is now filled
786//        fmt.Println(resp)
787//    }
788//
789// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModels
790func (c *IoTEvents) ListDetectorModelsRequest(input *ListDetectorModelsInput) (req *request.Request, output *ListDetectorModelsOutput) {
791	op := &request.Operation{
792		Name:       opListDetectorModels,
793		HTTPMethod: "GET",
794		HTTPPath:   "/detector-models",
795	}
796
797	if input == nil {
798		input = &ListDetectorModelsInput{}
799	}
800
801	output = &ListDetectorModelsOutput{}
802	req = c.newRequest(op, input, output)
803	return
804}
805
806// ListDetectorModels API operation for AWS IoT Events.
807//
808// Lists the detector models you have created. Only the metadata associated
809// with each detector model is returned.
810//
811// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
812// with awserr.Error's Code and Message methods to get detailed information about
813// the error.
814//
815// See the AWS API reference guide for AWS IoT Events's
816// API operation ListDetectorModels for usage and error information.
817//
818// Returned Error Codes:
819//   * ErrCodeInvalidRequestException "InvalidRequestException"
820//   The request was invalid.
821//
822//   * ErrCodeThrottlingException "ThrottlingException"
823//   The request could not be completed due to throttling.
824//
825//   * ErrCodeInternalFailureException "InternalFailureException"
826//   An internal failure occurred.
827//
828//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
829//   The service is currently unavailable.
830//
831// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListDetectorModels
832func (c *IoTEvents) ListDetectorModels(input *ListDetectorModelsInput) (*ListDetectorModelsOutput, error) {
833	req, out := c.ListDetectorModelsRequest(input)
834	return out, req.Send()
835}
836
837// ListDetectorModelsWithContext is the same as ListDetectorModels with the addition of
838// the ability to pass a context and additional request options.
839//
840// See ListDetectorModels for details on how to use this API operation.
841//
842// The context must be non-nil and will be used for request cancellation. If
843// the context is nil a panic will occur. In the future the SDK may create
844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
845// for more information on using Contexts.
846func (c *IoTEvents) ListDetectorModelsWithContext(ctx aws.Context, input *ListDetectorModelsInput, opts ...request.Option) (*ListDetectorModelsOutput, error) {
847	req, out := c.ListDetectorModelsRequest(input)
848	req.SetContext(ctx)
849	req.ApplyOptions(opts...)
850	return out, req.Send()
851}
852
853const opListInputs = "ListInputs"
854
855// ListInputsRequest generates a "aws/request.Request" representing the
856// client's request for the ListInputs operation. The "output" return
857// value will be populated with the request's response once the request completes
858// successfully.
859//
860// Use "Send" method on the returned Request to send the API call to the service.
861// the "output" return value is not valid until after Send returns without error.
862//
863// See ListInputs for more information on using the ListInputs
864// API call, and error handling.
865//
866// This method is useful when you want to inject custom logic or configuration
867// into the SDK's request lifecycle. Such as custom headers, or retry logic.
868//
869//
870//    // Example sending a request using the ListInputsRequest method.
871//    req, resp := client.ListInputsRequest(params)
872//
873//    err := req.Send()
874//    if err == nil { // resp is now filled
875//        fmt.Println(resp)
876//    }
877//
878// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListInputs
879func (c *IoTEvents) ListInputsRequest(input *ListInputsInput) (req *request.Request, output *ListInputsOutput) {
880	op := &request.Operation{
881		Name:       opListInputs,
882		HTTPMethod: "GET",
883		HTTPPath:   "/inputs",
884	}
885
886	if input == nil {
887		input = &ListInputsInput{}
888	}
889
890	output = &ListInputsOutput{}
891	req = c.newRequest(op, input, output)
892	return
893}
894
895// ListInputs API operation for AWS IoT Events.
896//
897// Lists the inputs you have created.
898//
899// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
900// with awserr.Error's Code and Message methods to get detailed information about
901// the error.
902//
903// See the AWS API reference guide for AWS IoT Events's
904// API operation ListInputs for usage and error information.
905//
906// Returned Error Codes:
907//   * ErrCodeInvalidRequestException "InvalidRequestException"
908//   The request was invalid.
909//
910//   * ErrCodeThrottlingException "ThrottlingException"
911//   The request could not be completed due to throttling.
912//
913//   * ErrCodeInternalFailureException "InternalFailureException"
914//   An internal failure occurred.
915//
916//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
917//   The service is currently unavailable.
918//
919// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListInputs
920func (c *IoTEvents) ListInputs(input *ListInputsInput) (*ListInputsOutput, error) {
921	req, out := c.ListInputsRequest(input)
922	return out, req.Send()
923}
924
925// ListInputsWithContext is the same as ListInputs with the addition of
926// the ability to pass a context and additional request options.
927//
928// See ListInputs for details on how to use this API operation.
929//
930// The context must be non-nil and will be used for request cancellation. If
931// the context is nil a panic will occur. In the future the SDK may create
932// sub-contexts for http.Requests. See https://golang.org/pkg/context/
933// for more information on using Contexts.
934func (c *IoTEvents) ListInputsWithContext(ctx aws.Context, input *ListInputsInput, opts ...request.Option) (*ListInputsOutput, error) {
935	req, out := c.ListInputsRequest(input)
936	req.SetContext(ctx)
937	req.ApplyOptions(opts...)
938	return out, req.Send()
939}
940
941const opListTagsForResource = "ListTagsForResource"
942
943// ListTagsForResourceRequest generates a "aws/request.Request" representing the
944// client's request for the ListTagsForResource operation. The "output" return
945// value will be populated with the request's response once the request completes
946// successfully.
947//
948// Use "Send" method on the returned Request to send the API call to the service.
949// the "output" return value is not valid until after Send returns without error.
950//
951// See ListTagsForResource for more information on using the ListTagsForResource
952// API call, and error handling.
953//
954// This method is useful when you want to inject custom logic or configuration
955// into the SDK's request lifecycle. Such as custom headers, or retry logic.
956//
957//
958//    // Example sending a request using the ListTagsForResourceRequest method.
959//    req, resp := client.ListTagsForResourceRequest(params)
960//
961//    err := req.Send()
962//    if err == nil { // resp is now filled
963//        fmt.Println(resp)
964//    }
965//
966// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListTagsForResource
967func (c *IoTEvents) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
968	op := &request.Operation{
969		Name:       opListTagsForResource,
970		HTTPMethod: "GET",
971		HTTPPath:   "/tags",
972	}
973
974	if input == nil {
975		input = &ListTagsForResourceInput{}
976	}
977
978	output = &ListTagsForResourceOutput{}
979	req = c.newRequest(op, input, output)
980	return
981}
982
983// ListTagsForResource API operation for AWS IoT Events.
984//
985// Lists the tags (metadata) you have assigned to the resource.
986//
987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
988// with awserr.Error's Code and Message methods to get detailed information about
989// the error.
990//
991// See the AWS API reference guide for AWS IoT Events's
992// API operation ListTagsForResource for usage and error information.
993//
994// Returned Error Codes:
995//   * ErrCodeInvalidRequestException "InvalidRequestException"
996//   The request was invalid.
997//
998//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
999//   The resource was not found.
1000//
1001//   * ErrCodeResourceInUseException "ResourceInUseException"
1002//   The resource is in use.
1003//
1004//   * ErrCodeThrottlingException "ThrottlingException"
1005//   The request could not be completed due to throttling.
1006//
1007//   * ErrCodeInternalFailureException "InternalFailureException"
1008//   An internal failure occurred.
1009//
1010// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/ListTagsForResource
1011func (c *IoTEvents) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1012	req, out := c.ListTagsForResourceRequest(input)
1013	return out, req.Send()
1014}
1015
1016// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1017// the ability to pass a context and additional request options.
1018//
1019// See ListTagsForResource for details on how to use this API operation.
1020//
1021// The context must be non-nil and will be used for request cancellation. If
1022// the context is nil a panic will occur. In the future the SDK may create
1023// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1024// for more information on using Contexts.
1025func (c *IoTEvents) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1026	req, out := c.ListTagsForResourceRequest(input)
1027	req.SetContext(ctx)
1028	req.ApplyOptions(opts...)
1029	return out, req.Send()
1030}
1031
1032const opPutLoggingOptions = "PutLoggingOptions"
1033
1034// PutLoggingOptionsRequest generates a "aws/request.Request" representing the
1035// client's request for the PutLoggingOptions operation. The "output" return
1036// value will be populated with the request's response once the request completes
1037// successfully.
1038//
1039// Use "Send" method on the returned Request to send the API call to the service.
1040// the "output" return value is not valid until after Send returns without error.
1041//
1042// See PutLoggingOptions for more information on using the PutLoggingOptions
1043// API call, and error handling.
1044//
1045// This method is useful when you want to inject custom logic or configuration
1046// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1047//
1048//
1049//    // Example sending a request using the PutLoggingOptionsRequest method.
1050//    req, resp := client.PutLoggingOptionsRequest(params)
1051//
1052//    err := req.Send()
1053//    if err == nil { // resp is now filled
1054//        fmt.Println(resp)
1055//    }
1056//
1057// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/PutLoggingOptions
1058func (c *IoTEvents) PutLoggingOptionsRequest(input *PutLoggingOptionsInput) (req *request.Request, output *PutLoggingOptionsOutput) {
1059	op := &request.Operation{
1060		Name:       opPutLoggingOptions,
1061		HTTPMethod: "PUT",
1062		HTTPPath:   "/logging",
1063	}
1064
1065	if input == nil {
1066		input = &PutLoggingOptionsInput{}
1067	}
1068
1069	output = &PutLoggingOptionsOutput{}
1070	req = c.newRequest(op, input, output)
1071	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1072	return
1073}
1074
1075// PutLoggingOptions API operation for AWS IoT Events.
1076//
1077// Sets or updates the AWS IoT Events logging options.
1078//
1079// If you update the value of any "loggingOptions" field, it takes up to one
1080// minute for the change to take effect. Also, if you change the policy attached
1081// to the role you specified in the "roleArn" field (for example, to correct
1082// an invalid policy) it takes up to five minutes for that change to take effect.
1083//
1084// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1085// with awserr.Error's Code and Message methods to get detailed information about
1086// the error.
1087//
1088// See the AWS API reference guide for AWS IoT Events's
1089// API operation PutLoggingOptions for usage and error information.
1090//
1091// Returned Error Codes:
1092//   * ErrCodeInvalidRequestException "InvalidRequestException"
1093//   The request was invalid.
1094//
1095//   * ErrCodeThrottlingException "ThrottlingException"
1096//   The request could not be completed due to throttling.
1097//
1098//   * ErrCodeInternalFailureException "InternalFailureException"
1099//   An internal failure occurred.
1100//
1101//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1102//   The service is currently unavailable.
1103//
1104//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1105//   The requested operation is not supported.
1106//
1107//   * ErrCodeResourceInUseException "ResourceInUseException"
1108//   The resource is in use.
1109//
1110// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/PutLoggingOptions
1111func (c *IoTEvents) PutLoggingOptions(input *PutLoggingOptionsInput) (*PutLoggingOptionsOutput, error) {
1112	req, out := c.PutLoggingOptionsRequest(input)
1113	return out, req.Send()
1114}
1115
1116// PutLoggingOptionsWithContext is the same as PutLoggingOptions with the addition of
1117// the ability to pass a context and additional request options.
1118//
1119// See PutLoggingOptions for details on how to use this API operation.
1120//
1121// The context must be non-nil and will be used for request cancellation. If
1122// the context is nil a panic will occur. In the future the SDK may create
1123// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1124// for more information on using Contexts.
1125func (c *IoTEvents) PutLoggingOptionsWithContext(ctx aws.Context, input *PutLoggingOptionsInput, opts ...request.Option) (*PutLoggingOptionsOutput, error) {
1126	req, out := c.PutLoggingOptionsRequest(input)
1127	req.SetContext(ctx)
1128	req.ApplyOptions(opts...)
1129	return out, req.Send()
1130}
1131
1132const opTagResource = "TagResource"
1133
1134// TagResourceRequest generates a "aws/request.Request" representing the
1135// client's request for the TagResource operation. The "output" return
1136// value will be populated with the request's response once the request completes
1137// successfully.
1138//
1139// Use "Send" method on the returned Request to send the API call to the service.
1140// the "output" return value is not valid until after Send returns without error.
1141//
1142// See TagResource for more information on using the TagResource
1143// API call, and error handling.
1144//
1145// This method is useful when you want to inject custom logic or configuration
1146// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1147//
1148//
1149//    // Example sending a request using the TagResourceRequest method.
1150//    req, resp := client.TagResourceRequest(params)
1151//
1152//    err := req.Send()
1153//    if err == nil { // resp is now filled
1154//        fmt.Println(resp)
1155//    }
1156//
1157// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/TagResource
1158func (c *IoTEvents) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1159	op := &request.Operation{
1160		Name:       opTagResource,
1161		HTTPMethod: "POST",
1162		HTTPPath:   "/tags",
1163	}
1164
1165	if input == nil {
1166		input = &TagResourceInput{}
1167	}
1168
1169	output = &TagResourceOutput{}
1170	req = c.newRequest(op, input, output)
1171	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1172	return
1173}
1174
1175// TagResource API operation for AWS IoT Events.
1176//
1177// Adds to or modifies the tags of the given resource. Tags are metadata that
1178// can be used to manage a resource.
1179//
1180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1181// with awserr.Error's Code and Message methods to get detailed information about
1182// the error.
1183//
1184// See the AWS API reference guide for AWS IoT Events's
1185// API operation TagResource for usage and error information.
1186//
1187// Returned Error Codes:
1188//   * ErrCodeInvalidRequestException "InvalidRequestException"
1189//   The request was invalid.
1190//
1191//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1192//   The resource was not found.
1193//
1194//   * ErrCodeResourceInUseException "ResourceInUseException"
1195//   The resource is in use.
1196//
1197//   * ErrCodeThrottlingException "ThrottlingException"
1198//   The request could not be completed due to throttling.
1199//
1200//   * ErrCodeLimitExceededException "LimitExceededException"
1201//   A limit was exceeded.
1202//
1203//   * ErrCodeInternalFailureException "InternalFailureException"
1204//   An internal failure occurred.
1205//
1206// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/TagResource
1207func (c *IoTEvents) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1208	req, out := c.TagResourceRequest(input)
1209	return out, req.Send()
1210}
1211
1212// TagResourceWithContext is the same as TagResource with the addition of
1213// the ability to pass a context and additional request options.
1214//
1215// See TagResource for details on how to use this API operation.
1216//
1217// The context must be non-nil and will be used for request cancellation. If
1218// the context is nil a panic will occur. In the future the SDK may create
1219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1220// for more information on using Contexts.
1221func (c *IoTEvents) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1222	req, out := c.TagResourceRequest(input)
1223	req.SetContext(ctx)
1224	req.ApplyOptions(opts...)
1225	return out, req.Send()
1226}
1227
1228const opUntagResource = "UntagResource"
1229
1230// UntagResourceRequest generates a "aws/request.Request" representing the
1231// client's request for the UntagResource operation. The "output" return
1232// value will be populated with the request's response once the request completes
1233// successfully.
1234//
1235// Use "Send" method on the returned Request to send the API call to the service.
1236// the "output" return value is not valid until after Send returns without error.
1237//
1238// See UntagResource for more information on using the UntagResource
1239// API call, and error handling.
1240//
1241// This method is useful when you want to inject custom logic or configuration
1242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1243//
1244//
1245//    // Example sending a request using the UntagResourceRequest method.
1246//    req, resp := client.UntagResourceRequest(params)
1247//
1248//    err := req.Send()
1249//    if err == nil { // resp is now filled
1250//        fmt.Println(resp)
1251//    }
1252//
1253// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UntagResource
1254func (c *IoTEvents) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1255	op := &request.Operation{
1256		Name:       opUntagResource,
1257		HTTPMethod: "DELETE",
1258		HTTPPath:   "/tags",
1259	}
1260
1261	if input == nil {
1262		input = &UntagResourceInput{}
1263	}
1264
1265	output = &UntagResourceOutput{}
1266	req = c.newRequest(op, input, output)
1267	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1268	return
1269}
1270
1271// UntagResource API operation for AWS IoT Events.
1272//
1273// Removes the given tags (metadata) from the resource.
1274//
1275// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1276// with awserr.Error's Code and Message methods to get detailed information about
1277// the error.
1278//
1279// See the AWS API reference guide for AWS IoT Events's
1280// API operation UntagResource for usage and error information.
1281//
1282// Returned Error Codes:
1283//   * ErrCodeInvalidRequestException "InvalidRequestException"
1284//   The request was invalid.
1285//
1286//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1287//   The resource was not found.
1288//
1289//   * ErrCodeResourceInUseException "ResourceInUseException"
1290//   The resource is in use.
1291//
1292//   * ErrCodeThrottlingException "ThrottlingException"
1293//   The request could not be completed due to throttling.
1294//
1295//   * ErrCodeInternalFailureException "InternalFailureException"
1296//   An internal failure occurred.
1297//
1298// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UntagResource
1299func (c *IoTEvents) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1300	req, out := c.UntagResourceRequest(input)
1301	return out, req.Send()
1302}
1303
1304// UntagResourceWithContext is the same as UntagResource with the addition of
1305// the ability to pass a context and additional request options.
1306//
1307// See UntagResource for details on how to use this API operation.
1308//
1309// The context must be non-nil and will be used for request cancellation. If
1310// the context is nil a panic will occur. In the future the SDK may create
1311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1312// for more information on using Contexts.
1313func (c *IoTEvents) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1314	req, out := c.UntagResourceRequest(input)
1315	req.SetContext(ctx)
1316	req.ApplyOptions(opts...)
1317	return out, req.Send()
1318}
1319
1320const opUpdateDetectorModel = "UpdateDetectorModel"
1321
1322// UpdateDetectorModelRequest generates a "aws/request.Request" representing the
1323// client's request for the UpdateDetectorModel operation. The "output" return
1324// value will be populated with the request's response once the request completes
1325// successfully.
1326//
1327// Use "Send" method on the returned Request to send the API call to the service.
1328// the "output" return value is not valid until after Send returns without error.
1329//
1330// See UpdateDetectorModel for more information on using the UpdateDetectorModel
1331// API call, and error handling.
1332//
1333// This method is useful when you want to inject custom logic or configuration
1334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1335//
1336//
1337//    // Example sending a request using the UpdateDetectorModelRequest method.
1338//    req, resp := client.UpdateDetectorModelRequest(params)
1339//
1340//    err := req.Send()
1341//    if err == nil { // resp is now filled
1342//        fmt.Println(resp)
1343//    }
1344//
1345// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateDetectorModel
1346func (c *IoTEvents) UpdateDetectorModelRequest(input *UpdateDetectorModelInput) (req *request.Request, output *UpdateDetectorModelOutput) {
1347	op := &request.Operation{
1348		Name:       opUpdateDetectorModel,
1349		HTTPMethod: "POST",
1350		HTTPPath:   "/detector-models/{detectorModelName}",
1351	}
1352
1353	if input == nil {
1354		input = &UpdateDetectorModelInput{}
1355	}
1356
1357	output = &UpdateDetectorModelOutput{}
1358	req = c.newRequest(op, input, output)
1359	return
1360}
1361
1362// UpdateDetectorModel API operation for AWS IoT Events.
1363//
1364// Updates a detector model. Detectors (instances) spawned by the previous version
1365// are deleted and then re-created as new inputs arrive.
1366//
1367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1368// with awserr.Error's Code and Message methods to get detailed information about
1369// the error.
1370//
1371// See the AWS API reference guide for AWS IoT Events's
1372// API operation UpdateDetectorModel for usage and error information.
1373//
1374// Returned Error Codes:
1375//   * ErrCodeInvalidRequestException "InvalidRequestException"
1376//   The request was invalid.
1377//
1378//   * ErrCodeResourceInUseException "ResourceInUseException"
1379//   The resource is in use.
1380//
1381//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1382//   The resource was not found.
1383//
1384//   * ErrCodeThrottlingException "ThrottlingException"
1385//   The request could not be completed due to throttling.
1386//
1387//   * ErrCodeInternalFailureException "InternalFailureException"
1388//   An internal failure occurred.
1389//
1390//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1391//   The service is currently unavailable.
1392//
1393// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateDetectorModel
1394func (c *IoTEvents) UpdateDetectorModel(input *UpdateDetectorModelInput) (*UpdateDetectorModelOutput, error) {
1395	req, out := c.UpdateDetectorModelRequest(input)
1396	return out, req.Send()
1397}
1398
1399// UpdateDetectorModelWithContext is the same as UpdateDetectorModel with the addition of
1400// the ability to pass a context and additional request options.
1401//
1402// See UpdateDetectorModel for details on how to use this API operation.
1403//
1404// The context must be non-nil and will be used for request cancellation. If
1405// the context is nil a panic will occur. In the future the SDK may create
1406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1407// for more information on using Contexts.
1408func (c *IoTEvents) UpdateDetectorModelWithContext(ctx aws.Context, input *UpdateDetectorModelInput, opts ...request.Option) (*UpdateDetectorModelOutput, error) {
1409	req, out := c.UpdateDetectorModelRequest(input)
1410	req.SetContext(ctx)
1411	req.ApplyOptions(opts...)
1412	return out, req.Send()
1413}
1414
1415const opUpdateInput = "UpdateInput"
1416
1417// UpdateInputRequest generates a "aws/request.Request" representing the
1418// client's request for the UpdateInput operation. The "output" return
1419// value will be populated with the request's response once the request completes
1420// successfully.
1421//
1422// Use "Send" method on the returned Request to send the API call to the service.
1423// the "output" return value is not valid until after Send returns without error.
1424//
1425// See UpdateInput for more information on using the UpdateInput
1426// API call, and error handling.
1427//
1428// This method is useful when you want to inject custom logic or configuration
1429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1430//
1431//
1432//    // Example sending a request using the UpdateInputRequest method.
1433//    req, resp := client.UpdateInputRequest(params)
1434//
1435//    err := req.Send()
1436//    if err == nil { // resp is now filled
1437//        fmt.Println(resp)
1438//    }
1439//
1440// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateInput
1441func (c *IoTEvents) UpdateInputRequest(input *UpdateInputInput) (req *request.Request, output *UpdateInputOutput) {
1442	op := &request.Operation{
1443		Name:       opUpdateInput,
1444		HTTPMethod: "PUT",
1445		HTTPPath:   "/inputs/{inputName}",
1446	}
1447
1448	if input == nil {
1449		input = &UpdateInputInput{}
1450	}
1451
1452	output = &UpdateInputOutput{}
1453	req = c.newRequest(op, input, output)
1454	return
1455}
1456
1457// UpdateInput API operation for AWS IoT Events.
1458//
1459// Updates an input.
1460//
1461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1462// with awserr.Error's Code and Message methods to get detailed information about
1463// the error.
1464//
1465// See the AWS API reference guide for AWS IoT Events's
1466// API operation UpdateInput for usage and error information.
1467//
1468// Returned Error Codes:
1469//   * ErrCodeInvalidRequestException "InvalidRequestException"
1470//   The request was invalid.
1471//
1472//   * ErrCodeThrottlingException "ThrottlingException"
1473//   The request could not be completed due to throttling.
1474//
1475//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1476//   The resource was not found.
1477//
1478//   * ErrCodeInternalFailureException "InternalFailureException"
1479//   An internal failure occurred.
1480//
1481//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1482//   The service is currently unavailable.
1483//
1484//   * ErrCodeResourceInUseException "ResourceInUseException"
1485//   The resource is in use.
1486//
1487// See also, https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/UpdateInput
1488func (c *IoTEvents) UpdateInput(input *UpdateInputInput) (*UpdateInputOutput, error) {
1489	req, out := c.UpdateInputRequest(input)
1490	return out, req.Send()
1491}
1492
1493// UpdateInputWithContext is the same as UpdateInput with the addition of
1494// the ability to pass a context and additional request options.
1495//
1496// See UpdateInput for details on how to use this API operation.
1497//
1498// The context must be non-nil and will be used for request cancellation. If
1499// the context is nil a panic will occur. In the future the SDK may create
1500// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1501// for more information on using Contexts.
1502func (c *IoTEvents) UpdateInputWithContext(ctx aws.Context, input *UpdateInputInput, opts ...request.Option) (*UpdateInputOutput, error) {
1503	req, out := c.UpdateInputRequest(input)
1504	req.SetContext(ctx)
1505	req.ApplyOptions(opts...)
1506	return out, req.Send()
1507}
1508
1509// Sends an IoT Events input, passing in information about the detector model
1510// instance and the event which triggered the action.
1511type Action struct {
1512	_ struct{} `type:"structure"`
1513
1514	// The name of the AWS IoT Events input where the data is sent.
1515	//
1516	// InputName is a required field
1517	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
1518}
1519
1520// String returns the string representation
1521func (s Action) String() string {
1522	return awsutil.Prettify(s)
1523}
1524
1525// GoString returns the string representation
1526func (s Action) GoString() string {
1527	return s.String()
1528}
1529
1530// Validate inspects the fields of the type to determine if they are valid.
1531func (s *Action) Validate() error {
1532	invalidParams := request.ErrInvalidParams{Context: "Action"}
1533	if s.InputName == nil {
1534		invalidParams.Add(request.NewErrParamRequired("InputName"))
1535	}
1536	if s.InputName != nil && len(*s.InputName) < 1 {
1537		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
1538	}
1539
1540	if invalidParams.Len() > 0 {
1541		return invalidParams
1542	}
1543	return nil
1544}
1545
1546// SetInputName sets the InputName field's value.
1547func (s *Action) SetInputName(v string) *Action {
1548	s.InputName = &v
1549	return s
1550}
1551
1552// An action to be performed when the "condition" is TRUE.
1553type ActionData struct {
1554	_ struct{} `type:"structure"`
1555
1556	// Information needed to clear the timer.
1557	ClearTimer *ClearTimerAction `locationName:"clearTimer" type:"structure"`
1558
1559	// Sends information about the detector model instance and the event which triggered
1560	// the action to a Kinesis Data Firehose delivery stream.
1561	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
1562
1563	// Sends an IoT Events input, passing in information about the detector model
1564	// instance and the event which triggered the action.
1565	IotEvents *Action `locationName:"iotEvents" type:"structure"`
1566
1567	// Publishes an MQTT message with the given topic to the AWS IoT message broker.
1568	IotTopicPublish *IotTopicPublishAction `locationName:"iotTopicPublish" type:"structure"`
1569
1570	// Calls an AWS Lambda function, passing in information about the detector model
1571	// instance and the event which triggered the action.
1572	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
1573
1574	// Information needed to reset the timer.
1575	ResetTimer *ResetTimerAction `locationName:"resetTimer" type:"structure"`
1576
1577	// Information needed to set the timer.
1578	SetTimer *SetTimerAction `locationName:"setTimer" type:"structure"`
1579
1580	// Sets a variable to a specified value.
1581	SetVariable *SetVariableAction `locationName:"setVariable" type:"structure"`
1582
1583	// Sends an Amazon SNS message.
1584	Sns *SNSTopicPublishAction `locationName:"sns" type:"structure"`
1585
1586	// Sends information about the detector model instance and the event which triggered
1587	// the action to an Amazon SQS queue.
1588	Sqs *SqsAction `locationName:"sqs" type:"structure"`
1589}
1590
1591// String returns the string representation
1592func (s ActionData) String() string {
1593	return awsutil.Prettify(s)
1594}
1595
1596// GoString returns the string representation
1597func (s ActionData) GoString() string {
1598	return s.String()
1599}
1600
1601// Validate inspects the fields of the type to determine if they are valid.
1602func (s *ActionData) Validate() error {
1603	invalidParams := request.ErrInvalidParams{Context: "ActionData"}
1604	if s.ClearTimer != nil {
1605		if err := s.ClearTimer.Validate(); err != nil {
1606			invalidParams.AddNested("ClearTimer", err.(request.ErrInvalidParams))
1607		}
1608	}
1609	if s.Firehose != nil {
1610		if err := s.Firehose.Validate(); err != nil {
1611			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
1612		}
1613	}
1614	if s.IotEvents != nil {
1615		if err := s.IotEvents.Validate(); err != nil {
1616			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
1617		}
1618	}
1619	if s.IotTopicPublish != nil {
1620		if err := s.IotTopicPublish.Validate(); err != nil {
1621			invalidParams.AddNested("IotTopicPublish", err.(request.ErrInvalidParams))
1622		}
1623	}
1624	if s.Lambda != nil {
1625		if err := s.Lambda.Validate(); err != nil {
1626			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
1627		}
1628	}
1629	if s.ResetTimer != nil {
1630		if err := s.ResetTimer.Validate(); err != nil {
1631			invalidParams.AddNested("ResetTimer", err.(request.ErrInvalidParams))
1632		}
1633	}
1634	if s.SetTimer != nil {
1635		if err := s.SetTimer.Validate(); err != nil {
1636			invalidParams.AddNested("SetTimer", err.(request.ErrInvalidParams))
1637		}
1638	}
1639	if s.SetVariable != nil {
1640		if err := s.SetVariable.Validate(); err != nil {
1641			invalidParams.AddNested("SetVariable", err.(request.ErrInvalidParams))
1642		}
1643	}
1644	if s.Sns != nil {
1645		if err := s.Sns.Validate(); err != nil {
1646			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
1647		}
1648	}
1649	if s.Sqs != nil {
1650		if err := s.Sqs.Validate(); err != nil {
1651			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
1652		}
1653	}
1654
1655	if invalidParams.Len() > 0 {
1656		return invalidParams
1657	}
1658	return nil
1659}
1660
1661// SetClearTimer sets the ClearTimer field's value.
1662func (s *ActionData) SetClearTimer(v *ClearTimerAction) *ActionData {
1663	s.ClearTimer = v
1664	return s
1665}
1666
1667// SetFirehose sets the Firehose field's value.
1668func (s *ActionData) SetFirehose(v *FirehoseAction) *ActionData {
1669	s.Firehose = v
1670	return s
1671}
1672
1673// SetIotEvents sets the IotEvents field's value.
1674func (s *ActionData) SetIotEvents(v *Action) *ActionData {
1675	s.IotEvents = v
1676	return s
1677}
1678
1679// SetIotTopicPublish sets the IotTopicPublish field's value.
1680func (s *ActionData) SetIotTopicPublish(v *IotTopicPublishAction) *ActionData {
1681	s.IotTopicPublish = v
1682	return s
1683}
1684
1685// SetLambda sets the Lambda field's value.
1686func (s *ActionData) SetLambda(v *LambdaAction) *ActionData {
1687	s.Lambda = v
1688	return s
1689}
1690
1691// SetResetTimer sets the ResetTimer field's value.
1692func (s *ActionData) SetResetTimer(v *ResetTimerAction) *ActionData {
1693	s.ResetTimer = v
1694	return s
1695}
1696
1697// SetSetTimer sets the SetTimer field's value.
1698func (s *ActionData) SetSetTimer(v *SetTimerAction) *ActionData {
1699	s.SetTimer = v
1700	return s
1701}
1702
1703// SetSetVariable sets the SetVariable field's value.
1704func (s *ActionData) SetSetVariable(v *SetVariableAction) *ActionData {
1705	s.SetVariable = v
1706	return s
1707}
1708
1709// SetSns sets the Sns field's value.
1710func (s *ActionData) SetSns(v *SNSTopicPublishAction) *ActionData {
1711	s.Sns = v
1712	return s
1713}
1714
1715// SetSqs sets the Sqs field's value.
1716func (s *ActionData) SetSqs(v *SqsAction) *ActionData {
1717	s.Sqs = v
1718	return s
1719}
1720
1721// The attributes from the JSON payload that are made available by the input.
1722// Inputs are derived from messages sent to the AWS IoT Events system using
1723// BatchPutMessage. Each such message contains a JSON payload, and those attributes
1724// (and their paired values) specified here are available for use in the condition
1725// expressions used by detectors.
1726type Attribute struct {
1727	_ struct{} `type:"structure"`
1728
1729	// An expression that specifies an attribute-value pair in a JSON structure.
1730	// Use this to specify an attribute from the JSON payload that is made available
1731	// by the input. Inputs are derived from messages sent to the AWS IoT Events
1732	// system (BatchPutMessage). Each such message contains a JSON payload, and
1733	// the attribute (and its paired value) specified here are available for use
1734	// in the "condition" expressions used by detectors.
1735	//
1736	// Syntax: <field-name>.<field-name>...
1737	//
1738	// JsonPath is a required field
1739	JsonPath *string `locationName:"jsonPath" min:"1" type:"string" required:"true"`
1740}
1741
1742// String returns the string representation
1743func (s Attribute) String() string {
1744	return awsutil.Prettify(s)
1745}
1746
1747// GoString returns the string representation
1748func (s Attribute) GoString() string {
1749	return s.String()
1750}
1751
1752// Validate inspects the fields of the type to determine if they are valid.
1753func (s *Attribute) Validate() error {
1754	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
1755	if s.JsonPath == nil {
1756		invalidParams.Add(request.NewErrParamRequired("JsonPath"))
1757	}
1758	if s.JsonPath != nil && len(*s.JsonPath) < 1 {
1759		invalidParams.Add(request.NewErrParamMinLen("JsonPath", 1))
1760	}
1761
1762	if invalidParams.Len() > 0 {
1763		return invalidParams
1764	}
1765	return nil
1766}
1767
1768// SetJsonPath sets the JsonPath field's value.
1769func (s *Attribute) SetJsonPath(v string) *Attribute {
1770	s.JsonPath = &v
1771	return s
1772}
1773
1774// Information needed to clear the timer.
1775type ClearTimerAction struct {
1776	_ struct{} `type:"structure"`
1777
1778	// The name of the timer to clear.
1779	//
1780	// TimerName is a required field
1781	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
1782}
1783
1784// String returns the string representation
1785func (s ClearTimerAction) String() string {
1786	return awsutil.Prettify(s)
1787}
1788
1789// GoString returns the string representation
1790func (s ClearTimerAction) GoString() string {
1791	return s.String()
1792}
1793
1794// Validate inspects the fields of the type to determine if they are valid.
1795func (s *ClearTimerAction) Validate() error {
1796	invalidParams := request.ErrInvalidParams{Context: "ClearTimerAction"}
1797	if s.TimerName == nil {
1798		invalidParams.Add(request.NewErrParamRequired("TimerName"))
1799	}
1800	if s.TimerName != nil && len(*s.TimerName) < 1 {
1801		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
1802	}
1803
1804	if invalidParams.Len() > 0 {
1805		return invalidParams
1806	}
1807	return nil
1808}
1809
1810// SetTimerName sets the TimerName field's value.
1811func (s *ClearTimerAction) SetTimerName(v string) *ClearTimerAction {
1812	s.TimerName = &v
1813	return s
1814}
1815
1816type CreateDetectorModelInput struct {
1817	_ struct{} `type:"structure"`
1818
1819	// Information that defines how the detectors operate.
1820	//
1821	// DetectorModelDefinition is a required field
1822	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure" required:"true"`
1823
1824	// A brief description of the detector model.
1825	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
1826
1827	// The name of the detector model.
1828	//
1829	// DetectorModelName is a required field
1830	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string" required:"true"`
1831
1832	// When set to SERIAL, variables are updated and event conditions evaluated
1833	// in the order that the events are defined. When set to BATCH, variables are
1834	// updated and events performed only after all event conditions are evaluated.
1835	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
1836
1837	// The input attribute key used to identify a device or system to create a detector
1838	// (an instance of the detector model) and then to route each input received
1839	// to the appropriate detector (instance). This parameter uses a JSON-path expression
1840	// to specify the attribute-value pair in the message payload of each input
1841	// that is used to identify the device associated with the input.
1842	Key *string `locationName:"key" min:"1" type:"string"`
1843
1844	// The ARN of the role that grants permission to AWS IoT Events to perform its
1845	// operations.
1846	//
1847	// RoleArn is a required field
1848	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
1849
1850	// Metadata that can be used to manage the detector model.
1851	Tags []*Tag `locationName:"tags" type:"list"`
1852}
1853
1854// String returns the string representation
1855func (s CreateDetectorModelInput) String() string {
1856	return awsutil.Prettify(s)
1857}
1858
1859// GoString returns the string representation
1860func (s CreateDetectorModelInput) GoString() string {
1861	return s.String()
1862}
1863
1864// Validate inspects the fields of the type to determine if they are valid.
1865func (s *CreateDetectorModelInput) Validate() error {
1866	invalidParams := request.ErrInvalidParams{Context: "CreateDetectorModelInput"}
1867	if s.DetectorModelDefinition == nil {
1868		invalidParams.Add(request.NewErrParamRequired("DetectorModelDefinition"))
1869	}
1870	if s.DetectorModelName == nil {
1871		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
1872	}
1873	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
1874		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
1875	}
1876	if s.Key != nil && len(*s.Key) < 1 {
1877		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
1878	}
1879	if s.RoleArn == nil {
1880		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
1881	}
1882	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
1883		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
1884	}
1885	if s.DetectorModelDefinition != nil {
1886		if err := s.DetectorModelDefinition.Validate(); err != nil {
1887			invalidParams.AddNested("DetectorModelDefinition", err.(request.ErrInvalidParams))
1888		}
1889	}
1890	if s.Tags != nil {
1891		for i, v := range s.Tags {
1892			if v == nil {
1893				continue
1894			}
1895			if err := v.Validate(); err != nil {
1896				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
1897			}
1898		}
1899	}
1900
1901	if invalidParams.Len() > 0 {
1902		return invalidParams
1903	}
1904	return nil
1905}
1906
1907// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
1908func (s *CreateDetectorModelInput) SetDetectorModelDefinition(v *DetectorModelDefinition) *CreateDetectorModelInput {
1909	s.DetectorModelDefinition = v
1910	return s
1911}
1912
1913// SetDetectorModelDescription sets the DetectorModelDescription field's value.
1914func (s *CreateDetectorModelInput) SetDetectorModelDescription(v string) *CreateDetectorModelInput {
1915	s.DetectorModelDescription = &v
1916	return s
1917}
1918
1919// SetDetectorModelName sets the DetectorModelName field's value.
1920func (s *CreateDetectorModelInput) SetDetectorModelName(v string) *CreateDetectorModelInput {
1921	s.DetectorModelName = &v
1922	return s
1923}
1924
1925// SetEvaluationMethod sets the EvaluationMethod field's value.
1926func (s *CreateDetectorModelInput) SetEvaluationMethod(v string) *CreateDetectorModelInput {
1927	s.EvaluationMethod = &v
1928	return s
1929}
1930
1931// SetKey sets the Key field's value.
1932func (s *CreateDetectorModelInput) SetKey(v string) *CreateDetectorModelInput {
1933	s.Key = &v
1934	return s
1935}
1936
1937// SetRoleArn sets the RoleArn field's value.
1938func (s *CreateDetectorModelInput) SetRoleArn(v string) *CreateDetectorModelInput {
1939	s.RoleArn = &v
1940	return s
1941}
1942
1943// SetTags sets the Tags field's value.
1944func (s *CreateDetectorModelInput) SetTags(v []*Tag) *CreateDetectorModelInput {
1945	s.Tags = v
1946	return s
1947}
1948
1949type CreateDetectorModelOutput struct {
1950	_ struct{} `type:"structure"`
1951
1952	// Information about how the detector model is configured.
1953	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
1954}
1955
1956// String returns the string representation
1957func (s CreateDetectorModelOutput) String() string {
1958	return awsutil.Prettify(s)
1959}
1960
1961// GoString returns the string representation
1962func (s CreateDetectorModelOutput) GoString() string {
1963	return s.String()
1964}
1965
1966// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
1967func (s *CreateDetectorModelOutput) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *CreateDetectorModelOutput {
1968	s.DetectorModelConfiguration = v
1969	return s
1970}
1971
1972type CreateInputInput struct {
1973	_ struct{} `type:"structure"`
1974
1975	// The definition of the input.
1976	//
1977	// InputDefinition is a required field
1978	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure" required:"true"`
1979
1980	// A brief description of the input.
1981	InputDescription *string `locationName:"inputDescription" type:"string"`
1982
1983	// The name you want to give to the input.
1984	//
1985	// InputName is a required field
1986	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
1987
1988	// Metadata that can be used to manage the input.
1989	Tags []*Tag `locationName:"tags" type:"list"`
1990}
1991
1992// String returns the string representation
1993func (s CreateInputInput) String() string {
1994	return awsutil.Prettify(s)
1995}
1996
1997// GoString returns the string representation
1998func (s CreateInputInput) GoString() string {
1999	return s.String()
2000}
2001
2002// Validate inspects the fields of the type to determine if they are valid.
2003func (s *CreateInputInput) Validate() error {
2004	invalidParams := request.ErrInvalidParams{Context: "CreateInputInput"}
2005	if s.InputDefinition == nil {
2006		invalidParams.Add(request.NewErrParamRequired("InputDefinition"))
2007	}
2008	if s.InputName == nil {
2009		invalidParams.Add(request.NewErrParamRequired("InputName"))
2010	}
2011	if s.InputName != nil && len(*s.InputName) < 1 {
2012		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
2013	}
2014	if s.InputDefinition != nil {
2015		if err := s.InputDefinition.Validate(); err != nil {
2016			invalidParams.AddNested("InputDefinition", err.(request.ErrInvalidParams))
2017		}
2018	}
2019	if s.Tags != nil {
2020		for i, v := range s.Tags {
2021			if v == nil {
2022				continue
2023			}
2024			if err := v.Validate(); err != nil {
2025				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2026			}
2027		}
2028	}
2029
2030	if invalidParams.Len() > 0 {
2031		return invalidParams
2032	}
2033	return nil
2034}
2035
2036// SetInputDefinition sets the InputDefinition field's value.
2037func (s *CreateInputInput) SetInputDefinition(v *InputDefinition) *CreateInputInput {
2038	s.InputDefinition = v
2039	return s
2040}
2041
2042// SetInputDescription sets the InputDescription field's value.
2043func (s *CreateInputInput) SetInputDescription(v string) *CreateInputInput {
2044	s.InputDescription = &v
2045	return s
2046}
2047
2048// SetInputName sets the InputName field's value.
2049func (s *CreateInputInput) SetInputName(v string) *CreateInputInput {
2050	s.InputName = &v
2051	return s
2052}
2053
2054// SetTags sets the Tags field's value.
2055func (s *CreateInputInput) SetTags(v []*Tag) *CreateInputInput {
2056	s.Tags = v
2057	return s
2058}
2059
2060type CreateInputOutput struct {
2061	_ struct{} `type:"structure"`
2062
2063	// Information about the configuration of the input.
2064	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
2065}
2066
2067// String returns the string representation
2068func (s CreateInputOutput) String() string {
2069	return awsutil.Prettify(s)
2070}
2071
2072// GoString returns the string representation
2073func (s CreateInputOutput) GoString() string {
2074	return s.String()
2075}
2076
2077// SetInputConfiguration sets the InputConfiguration field's value.
2078func (s *CreateInputOutput) SetInputConfiguration(v *InputConfiguration) *CreateInputOutput {
2079	s.InputConfiguration = v
2080	return s
2081}
2082
2083type DeleteDetectorModelInput struct {
2084	_ struct{} `type:"structure"`
2085
2086	// The name of the detector model to be deleted.
2087	//
2088	// DetectorModelName is a required field
2089	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
2090}
2091
2092// String returns the string representation
2093func (s DeleteDetectorModelInput) String() string {
2094	return awsutil.Prettify(s)
2095}
2096
2097// GoString returns the string representation
2098func (s DeleteDetectorModelInput) GoString() string {
2099	return s.String()
2100}
2101
2102// Validate inspects the fields of the type to determine if they are valid.
2103func (s *DeleteDetectorModelInput) Validate() error {
2104	invalidParams := request.ErrInvalidParams{Context: "DeleteDetectorModelInput"}
2105	if s.DetectorModelName == nil {
2106		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
2107	}
2108	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
2109		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
2110	}
2111
2112	if invalidParams.Len() > 0 {
2113		return invalidParams
2114	}
2115	return nil
2116}
2117
2118// SetDetectorModelName sets the DetectorModelName field's value.
2119func (s *DeleteDetectorModelInput) SetDetectorModelName(v string) *DeleteDetectorModelInput {
2120	s.DetectorModelName = &v
2121	return s
2122}
2123
2124type DeleteDetectorModelOutput struct {
2125	_ struct{} `type:"structure"`
2126}
2127
2128// String returns the string representation
2129func (s DeleteDetectorModelOutput) String() string {
2130	return awsutil.Prettify(s)
2131}
2132
2133// GoString returns the string representation
2134func (s DeleteDetectorModelOutput) GoString() string {
2135	return s.String()
2136}
2137
2138type DeleteInputInput struct {
2139	_ struct{} `type:"structure"`
2140
2141	// The name of the input to delete.
2142	//
2143	// InputName is a required field
2144	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
2145}
2146
2147// String returns the string representation
2148func (s DeleteInputInput) String() string {
2149	return awsutil.Prettify(s)
2150}
2151
2152// GoString returns the string representation
2153func (s DeleteInputInput) GoString() string {
2154	return s.String()
2155}
2156
2157// Validate inspects the fields of the type to determine if they are valid.
2158func (s *DeleteInputInput) Validate() error {
2159	invalidParams := request.ErrInvalidParams{Context: "DeleteInputInput"}
2160	if s.InputName == nil {
2161		invalidParams.Add(request.NewErrParamRequired("InputName"))
2162	}
2163	if s.InputName != nil && len(*s.InputName) < 1 {
2164		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
2165	}
2166
2167	if invalidParams.Len() > 0 {
2168		return invalidParams
2169	}
2170	return nil
2171}
2172
2173// SetInputName sets the InputName field's value.
2174func (s *DeleteInputInput) SetInputName(v string) *DeleteInputInput {
2175	s.InputName = &v
2176	return s
2177}
2178
2179type DeleteInputOutput struct {
2180	_ struct{} `type:"structure"`
2181}
2182
2183// String returns the string representation
2184func (s DeleteInputOutput) String() string {
2185	return awsutil.Prettify(s)
2186}
2187
2188// GoString returns the string representation
2189func (s DeleteInputOutput) GoString() string {
2190	return s.String()
2191}
2192
2193type DescribeDetectorModelInput struct {
2194	_ struct{} `type:"structure"`
2195
2196	// The name of the detector model.
2197	//
2198	// DetectorModelName is a required field
2199	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
2200
2201	// The version of the detector model.
2202	DetectorModelVersion *string `location:"querystring" locationName:"version" min:"1" type:"string"`
2203}
2204
2205// String returns the string representation
2206func (s DescribeDetectorModelInput) String() string {
2207	return awsutil.Prettify(s)
2208}
2209
2210// GoString returns the string representation
2211func (s DescribeDetectorModelInput) GoString() string {
2212	return s.String()
2213}
2214
2215// Validate inspects the fields of the type to determine if they are valid.
2216func (s *DescribeDetectorModelInput) Validate() error {
2217	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectorModelInput"}
2218	if s.DetectorModelName == nil {
2219		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
2220	}
2221	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
2222		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
2223	}
2224	if s.DetectorModelVersion != nil && len(*s.DetectorModelVersion) < 1 {
2225		invalidParams.Add(request.NewErrParamMinLen("DetectorModelVersion", 1))
2226	}
2227
2228	if invalidParams.Len() > 0 {
2229		return invalidParams
2230	}
2231	return nil
2232}
2233
2234// SetDetectorModelName sets the DetectorModelName field's value.
2235func (s *DescribeDetectorModelInput) SetDetectorModelName(v string) *DescribeDetectorModelInput {
2236	s.DetectorModelName = &v
2237	return s
2238}
2239
2240// SetDetectorModelVersion sets the DetectorModelVersion field's value.
2241func (s *DescribeDetectorModelInput) SetDetectorModelVersion(v string) *DescribeDetectorModelInput {
2242	s.DetectorModelVersion = &v
2243	return s
2244}
2245
2246type DescribeDetectorModelOutput struct {
2247	_ struct{} `type:"structure"`
2248
2249	// Information about the detector model.
2250	DetectorModel *DetectorModel `locationName:"detectorModel" type:"structure"`
2251}
2252
2253// String returns the string representation
2254func (s DescribeDetectorModelOutput) String() string {
2255	return awsutil.Prettify(s)
2256}
2257
2258// GoString returns the string representation
2259func (s DescribeDetectorModelOutput) GoString() string {
2260	return s.String()
2261}
2262
2263// SetDetectorModel sets the DetectorModel field's value.
2264func (s *DescribeDetectorModelOutput) SetDetectorModel(v *DetectorModel) *DescribeDetectorModelOutput {
2265	s.DetectorModel = v
2266	return s
2267}
2268
2269type DescribeInputInput struct {
2270	_ struct{} `type:"structure"`
2271
2272	// The name of the input.
2273	//
2274	// InputName is a required field
2275	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
2276}
2277
2278// String returns the string representation
2279func (s DescribeInputInput) String() string {
2280	return awsutil.Prettify(s)
2281}
2282
2283// GoString returns the string representation
2284func (s DescribeInputInput) GoString() string {
2285	return s.String()
2286}
2287
2288// Validate inspects the fields of the type to determine if they are valid.
2289func (s *DescribeInputInput) Validate() error {
2290	invalidParams := request.ErrInvalidParams{Context: "DescribeInputInput"}
2291	if s.InputName == nil {
2292		invalidParams.Add(request.NewErrParamRequired("InputName"))
2293	}
2294	if s.InputName != nil && len(*s.InputName) < 1 {
2295		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
2296	}
2297
2298	if invalidParams.Len() > 0 {
2299		return invalidParams
2300	}
2301	return nil
2302}
2303
2304// SetInputName sets the InputName field's value.
2305func (s *DescribeInputInput) SetInputName(v string) *DescribeInputInput {
2306	s.InputName = &v
2307	return s
2308}
2309
2310type DescribeInputOutput struct {
2311	_ struct{} `type:"structure"`
2312
2313	// Information about the input.
2314	Input *Input `locationName:"input" type:"structure"`
2315}
2316
2317// String returns the string representation
2318func (s DescribeInputOutput) String() string {
2319	return awsutil.Prettify(s)
2320}
2321
2322// GoString returns the string representation
2323func (s DescribeInputOutput) GoString() string {
2324	return s.String()
2325}
2326
2327// SetInput sets the Input field's value.
2328func (s *DescribeInputOutput) SetInput(v *Input) *DescribeInputOutput {
2329	s.Input = v
2330	return s
2331}
2332
2333type DescribeLoggingOptionsInput struct {
2334	_ struct{} `type:"structure"`
2335}
2336
2337// String returns the string representation
2338func (s DescribeLoggingOptionsInput) String() string {
2339	return awsutil.Prettify(s)
2340}
2341
2342// GoString returns the string representation
2343func (s DescribeLoggingOptionsInput) GoString() string {
2344	return s.String()
2345}
2346
2347type DescribeLoggingOptionsOutput struct {
2348	_ struct{} `type:"structure"`
2349
2350	// The current settings of the AWS IoT Events logging options.
2351	LoggingOptions *LoggingOptions `locationName:"loggingOptions" type:"structure"`
2352}
2353
2354// String returns the string representation
2355func (s DescribeLoggingOptionsOutput) String() string {
2356	return awsutil.Prettify(s)
2357}
2358
2359// GoString returns the string representation
2360func (s DescribeLoggingOptionsOutput) GoString() string {
2361	return s.String()
2362}
2363
2364// SetLoggingOptions sets the LoggingOptions field's value.
2365func (s *DescribeLoggingOptionsOutput) SetLoggingOptions(v *LoggingOptions) *DescribeLoggingOptionsOutput {
2366	s.LoggingOptions = v
2367	return s
2368}
2369
2370// The detector model and the specific detectors (instances) for which the logging
2371// level is given.
2372type DetectorDebugOption struct {
2373	_ struct{} `type:"structure"`
2374
2375	// The name of the detector model.
2376	//
2377	// DetectorModelName is a required field
2378	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string" required:"true"`
2379
2380	// The value of the input attribute key used to create the detector (the instance
2381	// of the detector model).
2382	KeyValue *string `locationName:"keyValue" min:"1" type:"string"`
2383}
2384
2385// String returns the string representation
2386func (s DetectorDebugOption) String() string {
2387	return awsutil.Prettify(s)
2388}
2389
2390// GoString returns the string representation
2391func (s DetectorDebugOption) GoString() string {
2392	return s.String()
2393}
2394
2395// Validate inspects the fields of the type to determine if they are valid.
2396func (s *DetectorDebugOption) Validate() error {
2397	invalidParams := request.ErrInvalidParams{Context: "DetectorDebugOption"}
2398	if s.DetectorModelName == nil {
2399		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
2400	}
2401	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
2402		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
2403	}
2404	if s.KeyValue != nil && len(*s.KeyValue) < 1 {
2405		invalidParams.Add(request.NewErrParamMinLen("KeyValue", 1))
2406	}
2407
2408	if invalidParams.Len() > 0 {
2409		return invalidParams
2410	}
2411	return nil
2412}
2413
2414// SetDetectorModelName sets the DetectorModelName field's value.
2415func (s *DetectorDebugOption) SetDetectorModelName(v string) *DetectorDebugOption {
2416	s.DetectorModelName = &v
2417	return s
2418}
2419
2420// SetKeyValue sets the KeyValue field's value.
2421func (s *DetectorDebugOption) SetKeyValue(v string) *DetectorDebugOption {
2422	s.KeyValue = &v
2423	return s
2424}
2425
2426// Information about the detector model.
2427type DetectorModel struct {
2428	_ struct{} `type:"structure"`
2429
2430	// Information about how the detector is configured.
2431	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
2432
2433	// Information that defines how a detector operates.
2434	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure"`
2435}
2436
2437// String returns the string representation
2438func (s DetectorModel) String() string {
2439	return awsutil.Prettify(s)
2440}
2441
2442// GoString returns the string representation
2443func (s DetectorModel) GoString() string {
2444	return s.String()
2445}
2446
2447// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
2448func (s *DetectorModel) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *DetectorModel {
2449	s.DetectorModelConfiguration = v
2450	return s
2451}
2452
2453// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
2454func (s *DetectorModel) SetDetectorModelDefinition(v *DetectorModelDefinition) *DetectorModel {
2455	s.DetectorModelDefinition = v
2456	return s
2457}
2458
2459// Information about how the detector model is configured.
2460type DetectorModelConfiguration struct {
2461	_ struct{} `type:"structure"`
2462
2463	// The time the detector model was created.
2464	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
2465
2466	// The ARN of the detector model.
2467	DetectorModelArn *string `locationName:"detectorModelArn" type:"string"`
2468
2469	// A brief description of the detector model.
2470	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
2471
2472	// The name of the detector model.
2473	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
2474
2475	// The version of the detector model.
2476	DetectorModelVersion *string `locationName:"detectorModelVersion" min:"1" type:"string"`
2477
2478	// When set to SERIAL, variables are updated and event conditions evaluated
2479	// in the order that the events are defined. When set to BATCH, variables are
2480	// updated and events performed only after all event conditions are evaluated.
2481	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
2482
2483	// The input attribute key used to identify a device or system to create a detector
2484	// (an instance of the detector model) and then to route each input received
2485	// to the appropriate detector (instance). This parameter uses a JSON-path expression
2486	// to specify the attribute-value pair in the message payload of each input
2487	// that is used to identify the device associated with the input.
2488	Key *string `locationName:"key" min:"1" type:"string"`
2489
2490	// The time the detector model was last updated.
2491	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
2492
2493	// The ARN of the role that grants permission to AWS IoT Events to perform its
2494	// operations.
2495	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
2496
2497	// The status of the detector model.
2498	Status *string `locationName:"status" type:"string" enum:"DetectorModelVersionStatus"`
2499}
2500
2501// String returns the string representation
2502func (s DetectorModelConfiguration) String() string {
2503	return awsutil.Prettify(s)
2504}
2505
2506// GoString returns the string representation
2507func (s DetectorModelConfiguration) GoString() string {
2508	return s.String()
2509}
2510
2511// SetCreationTime sets the CreationTime field's value.
2512func (s *DetectorModelConfiguration) SetCreationTime(v time.Time) *DetectorModelConfiguration {
2513	s.CreationTime = &v
2514	return s
2515}
2516
2517// SetDetectorModelArn sets the DetectorModelArn field's value.
2518func (s *DetectorModelConfiguration) SetDetectorModelArn(v string) *DetectorModelConfiguration {
2519	s.DetectorModelArn = &v
2520	return s
2521}
2522
2523// SetDetectorModelDescription sets the DetectorModelDescription field's value.
2524func (s *DetectorModelConfiguration) SetDetectorModelDescription(v string) *DetectorModelConfiguration {
2525	s.DetectorModelDescription = &v
2526	return s
2527}
2528
2529// SetDetectorModelName sets the DetectorModelName field's value.
2530func (s *DetectorModelConfiguration) SetDetectorModelName(v string) *DetectorModelConfiguration {
2531	s.DetectorModelName = &v
2532	return s
2533}
2534
2535// SetDetectorModelVersion sets the DetectorModelVersion field's value.
2536func (s *DetectorModelConfiguration) SetDetectorModelVersion(v string) *DetectorModelConfiguration {
2537	s.DetectorModelVersion = &v
2538	return s
2539}
2540
2541// SetEvaluationMethod sets the EvaluationMethod field's value.
2542func (s *DetectorModelConfiguration) SetEvaluationMethod(v string) *DetectorModelConfiguration {
2543	s.EvaluationMethod = &v
2544	return s
2545}
2546
2547// SetKey sets the Key field's value.
2548func (s *DetectorModelConfiguration) SetKey(v string) *DetectorModelConfiguration {
2549	s.Key = &v
2550	return s
2551}
2552
2553// SetLastUpdateTime sets the LastUpdateTime field's value.
2554func (s *DetectorModelConfiguration) SetLastUpdateTime(v time.Time) *DetectorModelConfiguration {
2555	s.LastUpdateTime = &v
2556	return s
2557}
2558
2559// SetRoleArn sets the RoleArn field's value.
2560func (s *DetectorModelConfiguration) SetRoleArn(v string) *DetectorModelConfiguration {
2561	s.RoleArn = &v
2562	return s
2563}
2564
2565// SetStatus sets the Status field's value.
2566func (s *DetectorModelConfiguration) SetStatus(v string) *DetectorModelConfiguration {
2567	s.Status = &v
2568	return s
2569}
2570
2571// Information that defines how a detector operates.
2572type DetectorModelDefinition struct {
2573	_ struct{} `type:"structure"`
2574
2575	// The state that is entered at the creation of each detector (instance).
2576	//
2577	// InitialStateName is a required field
2578	InitialStateName *string `locationName:"initialStateName" min:"1" type:"string" required:"true"`
2579
2580	// Information about the states of the detector.
2581	//
2582	// States is a required field
2583	States []*State `locationName:"states" min:"1" type:"list" required:"true"`
2584}
2585
2586// String returns the string representation
2587func (s DetectorModelDefinition) String() string {
2588	return awsutil.Prettify(s)
2589}
2590
2591// GoString returns the string representation
2592func (s DetectorModelDefinition) GoString() string {
2593	return s.String()
2594}
2595
2596// Validate inspects the fields of the type to determine if they are valid.
2597func (s *DetectorModelDefinition) Validate() error {
2598	invalidParams := request.ErrInvalidParams{Context: "DetectorModelDefinition"}
2599	if s.InitialStateName == nil {
2600		invalidParams.Add(request.NewErrParamRequired("InitialStateName"))
2601	}
2602	if s.InitialStateName != nil && len(*s.InitialStateName) < 1 {
2603		invalidParams.Add(request.NewErrParamMinLen("InitialStateName", 1))
2604	}
2605	if s.States == nil {
2606		invalidParams.Add(request.NewErrParamRequired("States"))
2607	}
2608	if s.States != nil && len(s.States) < 1 {
2609		invalidParams.Add(request.NewErrParamMinLen("States", 1))
2610	}
2611	if s.States != nil {
2612		for i, v := range s.States {
2613			if v == nil {
2614				continue
2615			}
2616			if err := v.Validate(); err != nil {
2617				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "States", i), err.(request.ErrInvalidParams))
2618			}
2619		}
2620	}
2621
2622	if invalidParams.Len() > 0 {
2623		return invalidParams
2624	}
2625	return nil
2626}
2627
2628// SetInitialStateName sets the InitialStateName field's value.
2629func (s *DetectorModelDefinition) SetInitialStateName(v string) *DetectorModelDefinition {
2630	s.InitialStateName = &v
2631	return s
2632}
2633
2634// SetStates sets the States field's value.
2635func (s *DetectorModelDefinition) SetStates(v []*State) *DetectorModelDefinition {
2636	s.States = v
2637	return s
2638}
2639
2640// Information about the detector model.
2641type DetectorModelSummary struct {
2642	_ struct{} `type:"structure"`
2643
2644	// The time the detector model was created.
2645	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
2646
2647	// A brief description of the detector model.
2648	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
2649
2650	// The name of the detector model.
2651	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
2652}
2653
2654// String returns the string representation
2655func (s DetectorModelSummary) String() string {
2656	return awsutil.Prettify(s)
2657}
2658
2659// GoString returns the string representation
2660func (s DetectorModelSummary) GoString() string {
2661	return s.String()
2662}
2663
2664// SetCreationTime sets the CreationTime field's value.
2665func (s *DetectorModelSummary) SetCreationTime(v time.Time) *DetectorModelSummary {
2666	s.CreationTime = &v
2667	return s
2668}
2669
2670// SetDetectorModelDescription sets the DetectorModelDescription field's value.
2671func (s *DetectorModelSummary) SetDetectorModelDescription(v string) *DetectorModelSummary {
2672	s.DetectorModelDescription = &v
2673	return s
2674}
2675
2676// SetDetectorModelName sets the DetectorModelName field's value.
2677func (s *DetectorModelSummary) SetDetectorModelName(v string) *DetectorModelSummary {
2678	s.DetectorModelName = &v
2679	return s
2680}
2681
2682// Information about the detector model version.
2683type DetectorModelVersionSummary struct {
2684	_ struct{} `type:"structure"`
2685
2686	// The time the detector model version was created.
2687	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
2688
2689	// The ARN of the detector model version.
2690	DetectorModelArn *string `locationName:"detectorModelArn" type:"string"`
2691
2692	// The name of the detector model.
2693	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
2694
2695	// The ID of the detector model version.
2696	DetectorModelVersion *string `locationName:"detectorModelVersion" min:"1" type:"string"`
2697
2698	// When set to SERIAL, variables are updated and event conditions evaluated
2699	// in the order that the events are defined. When set to BATCH, variables are
2700	// updated and events performed only after all event conditions are evaluated.
2701	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
2702
2703	// The last time the detector model version was updated.
2704	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
2705
2706	// The ARN of the role that grants the detector model permission to perform
2707	// its tasks.
2708	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
2709
2710	// The status of the detector model version.
2711	Status *string `locationName:"status" type:"string" enum:"DetectorModelVersionStatus"`
2712}
2713
2714// String returns the string representation
2715func (s DetectorModelVersionSummary) String() string {
2716	return awsutil.Prettify(s)
2717}
2718
2719// GoString returns the string representation
2720func (s DetectorModelVersionSummary) GoString() string {
2721	return s.String()
2722}
2723
2724// SetCreationTime sets the CreationTime field's value.
2725func (s *DetectorModelVersionSummary) SetCreationTime(v time.Time) *DetectorModelVersionSummary {
2726	s.CreationTime = &v
2727	return s
2728}
2729
2730// SetDetectorModelArn sets the DetectorModelArn field's value.
2731func (s *DetectorModelVersionSummary) SetDetectorModelArn(v string) *DetectorModelVersionSummary {
2732	s.DetectorModelArn = &v
2733	return s
2734}
2735
2736// SetDetectorModelName sets the DetectorModelName field's value.
2737func (s *DetectorModelVersionSummary) SetDetectorModelName(v string) *DetectorModelVersionSummary {
2738	s.DetectorModelName = &v
2739	return s
2740}
2741
2742// SetDetectorModelVersion sets the DetectorModelVersion field's value.
2743func (s *DetectorModelVersionSummary) SetDetectorModelVersion(v string) *DetectorModelVersionSummary {
2744	s.DetectorModelVersion = &v
2745	return s
2746}
2747
2748// SetEvaluationMethod sets the EvaluationMethod field's value.
2749func (s *DetectorModelVersionSummary) SetEvaluationMethod(v string) *DetectorModelVersionSummary {
2750	s.EvaluationMethod = &v
2751	return s
2752}
2753
2754// SetLastUpdateTime sets the LastUpdateTime field's value.
2755func (s *DetectorModelVersionSummary) SetLastUpdateTime(v time.Time) *DetectorModelVersionSummary {
2756	s.LastUpdateTime = &v
2757	return s
2758}
2759
2760// SetRoleArn sets the RoleArn field's value.
2761func (s *DetectorModelVersionSummary) SetRoleArn(v string) *DetectorModelVersionSummary {
2762	s.RoleArn = &v
2763	return s
2764}
2765
2766// SetStatus sets the Status field's value.
2767func (s *DetectorModelVersionSummary) SetStatus(v string) *DetectorModelVersionSummary {
2768	s.Status = &v
2769	return s
2770}
2771
2772// Specifies the "actions" to be performed when the "condition" evaluates to
2773// TRUE.
2774type Event struct {
2775	_ struct{} `type:"structure"`
2776
2777	// The actions to be performed.
2778	Actions []*ActionData `locationName:"actions" type:"list"`
2779
2780	// [Optional] The Boolean expression that when TRUE causes the "actions" to
2781	// be performed. If not present, the actions are performed (=TRUE); if the expression
2782	// result is not a Boolean value, the actions are NOT performed (=FALSE).
2783	Condition *string `locationName:"condition" type:"string"`
2784
2785	// The name of the event.
2786	//
2787	// EventName is a required field
2788	EventName *string `locationName:"eventName" type:"string" required:"true"`
2789}
2790
2791// String returns the string representation
2792func (s Event) String() string {
2793	return awsutil.Prettify(s)
2794}
2795
2796// GoString returns the string representation
2797func (s Event) GoString() string {
2798	return s.String()
2799}
2800
2801// Validate inspects the fields of the type to determine if they are valid.
2802func (s *Event) Validate() error {
2803	invalidParams := request.ErrInvalidParams{Context: "Event"}
2804	if s.EventName == nil {
2805		invalidParams.Add(request.NewErrParamRequired("EventName"))
2806	}
2807	if s.Actions != nil {
2808		for i, v := range s.Actions {
2809			if v == nil {
2810				continue
2811			}
2812			if err := v.Validate(); err != nil {
2813				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
2814			}
2815		}
2816	}
2817
2818	if invalidParams.Len() > 0 {
2819		return invalidParams
2820	}
2821	return nil
2822}
2823
2824// SetActions sets the Actions field's value.
2825func (s *Event) SetActions(v []*ActionData) *Event {
2826	s.Actions = v
2827	return s
2828}
2829
2830// SetCondition sets the Condition field's value.
2831func (s *Event) SetCondition(v string) *Event {
2832	s.Condition = &v
2833	return s
2834}
2835
2836// SetEventName sets the EventName field's value.
2837func (s *Event) SetEventName(v string) *Event {
2838	s.EventName = &v
2839	return s
2840}
2841
2842// Sends information about the detector model instance and the event which triggered
2843// the action to a Kinesis Data Firehose delivery stream.
2844type FirehoseAction struct {
2845	_ struct{} `type:"structure"`
2846
2847	// The name of the Kinesis Data Firehose delivery stream where the data is written.
2848	//
2849	// DeliveryStreamName is a required field
2850	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
2851
2852	// A character separator that is used to separate records written to the Kinesis
2853	// Data Firehose delivery stream. Valid values are: '\n' (newline), '\t' (tab),
2854	// '\r\n' (Windows newline), ',' (comma).
2855	Separator *string `locationName:"separator" type:"string"`
2856}
2857
2858// String returns the string representation
2859func (s FirehoseAction) String() string {
2860	return awsutil.Prettify(s)
2861}
2862
2863// GoString returns the string representation
2864func (s FirehoseAction) GoString() string {
2865	return s.String()
2866}
2867
2868// Validate inspects the fields of the type to determine if they are valid.
2869func (s *FirehoseAction) Validate() error {
2870	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
2871	if s.DeliveryStreamName == nil {
2872		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
2873	}
2874
2875	if invalidParams.Len() > 0 {
2876		return invalidParams
2877	}
2878	return nil
2879}
2880
2881// SetDeliveryStreamName sets the DeliveryStreamName field's value.
2882func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
2883	s.DeliveryStreamName = &v
2884	return s
2885}
2886
2887// SetSeparator sets the Separator field's value.
2888func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
2889	s.Separator = &v
2890	return s
2891}
2892
2893// Information about the input.
2894type Input struct {
2895	_ struct{} `type:"structure"`
2896
2897	// Information about the configuration of an input.
2898	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
2899
2900	// The definition of the input.
2901	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure"`
2902}
2903
2904// String returns the string representation
2905func (s Input) String() string {
2906	return awsutil.Prettify(s)
2907}
2908
2909// GoString returns the string representation
2910func (s Input) GoString() string {
2911	return s.String()
2912}
2913
2914// SetInputConfiguration sets the InputConfiguration field's value.
2915func (s *Input) SetInputConfiguration(v *InputConfiguration) *Input {
2916	s.InputConfiguration = v
2917	return s
2918}
2919
2920// SetInputDefinition sets the InputDefinition field's value.
2921func (s *Input) SetInputDefinition(v *InputDefinition) *Input {
2922	s.InputDefinition = v
2923	return s
2924}
2925
2926// Information about the configuration of an input.
2927type InputConfiguration struct {
2928	_ struct{} `type:"structure"`
2929
2930	// The time the input was created.
2931	//
2932	// CreationTime is a required field
2933	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" required:"true"`
2934
2935	// The ARN of the input.
2936	//
2937	// InputArn is a required field
2938	InputArn *string `locationName:"inputArn" type:"string" required:"true"`
2939
2940	// A brief description of the input.
2941	InputDescription *string `locationName:"inputDescription" type:"string"`
2942
2943	// The name of the input.
2944	//
2945	// InputName is a required field
2946	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
2947
2948	// The last time the input was updated.
2949	//
2950	// LastUpdateTime is a required field
2951	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" required:"true"`
2952
2953	// The status of the input.
2954	//
2955	// Status is a required field
2956	Status *string `locationName:"status" type:"string" required:"true" enum:"InputStatus"`
2957}
2958
2959// String returns the string representation
2960func (s InputConfiguration) String() string {
2961	return awsutil.Prettify(s)
2962}
2963
2964// GoString returns the string representation
2965func (s InputConfiguration) GoString() string {
2966	return s.String()
2967}
2968
2969// SetCreationTime sets the CreationTime field's value.
2970func (s *InputConfiguration) SetCreationTime(v time.Time) *InputConfiguration {
2971	s.CreationTime = &v
2972	return s
2973}
2974
2975// SetInputArn sets the InputArn field's value.
2976func (s *InputConfiguration) SetInputArn(v string) *InputConfiguration {
2977	s.InputArn = &v
2978	return s
2979}
2980
2981// SetInputDescription sets the InputDescription field's value.
2982func (s *InputConfiguration) SetInputDescription(v string) *InputConfiguration {
2983	s.InputDescription = &v
2984	return s
2985}
2986
2987// SetInputName sets the InputName field's value.
2988func (s *InputConfiguration) SetInputName(v string) *InputConfiguration {
2989	s.InputName = &v
2990	return s
2991}
2992
2993// SetLastUpdateTime sets the LastUpdateTime field's value.
2994func (s *InputConfiguration) SetLastUpdateTime(v time.Time) *InputConfiguration {
2995	s.LastUpdateTime = &v
2996	return s
2997}
2998
2999// SetStatus sets the Status field's value.
3000func (s *InputConfiguration) SetStatus(v string) *InputConfiguration {
3001	s.Status = &v
3002	return s
3003}
3004
3005// The definition of the input.
3006type InputDefinition struct {
3007	_ struct{} `type:"structure"`
3008
3009	// The attributes from the JSON payload that are made available by the input.
3010	// Inputs are derived from messages sent to the AWS IoT Events system using
3011	// BatchPutMessage. Each such message contains a JSON payload, and those attributes
3012	// (and their paired values) specified here are available for use in the "condition"
3013	// expressions used by detectors that monitor this input.
3014	//
3015	// Attributes is a required field
3016	Attributes []*Attribute `locationName:"attributes" min:"1" type:"list" required:"true"`
3017}
3018
3019// String returns the string representation
3020func (s InputDefinition) String() string {
3021	return awsutil.Prettify(s)
3022}
3023
3024// GoString returns the string representation
3025func (s InputDefinition) GoString() string {
3026	return s.String()
3027}
3028
3029// Validate inspects the fields of the type to determine if they are valid.
3030func (s *InputDefinition) Validate() error {
3031	invalidParams := request.ErrInvalidParams{Context: "InputDefinition"}
3032	if s.Attributes == nil {
3033		invalidParams.Add(request.NewErrParamRequired("Attributes"))
3034	}
3035	if s.Attributes != nil && len(s.Attributes) < 1 {
3036		invalidParams.Add(request.NewErrParamMinLen("Attributes", 1))
3037	}
3038	if s.Attributes != nil {
3039		for i, v := range s.Attributes {
3040			if v == nil {
3041				continue
3042			}
3043			if err := v.Validate(); err != nil {
3044				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
3045			}
3046		}
3047	}
3048
3049	if invalidParams.Len() > 0 {
3050		return invalidParams
3051	}
3052	return nil
3053}
3054
3055// SetAttributes sets the Attributes field's value.
3056func (s *InputDefinition) SetAttributes(v []*Attribute) *InputDefinition {
3057	s.Attributes = v
3058	return s
3059}
3060
3061// Information about the input.
3062type InputSummary struct {
3063	_ struct{} `type:"structure"`
3064
3065	// The time the input was created.
3066	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
3067
3068	// The ARN of the input.
3069	InputArn *string `locationName:"inputArn" type:"string"`
3070
3071	// A brief description of the input.
3072	InputDescription *string `locationName:"inputDescription" type:"string"`
3073
3074	// The name of the input.
3075	InputName *string `locationName:"inputName" min:"1" type:"string"`
3076
3077	// The last time the input was updated.
3078	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
3079
3080	// The status of the input.
3081	Status *string `locationName:"status" type:"string" enum:"InputStatus"`
3082}
3083
3084// String returns the string representation
3085func (s InputSummary) String() string {
3086	return awsutil.Prettify(s)
3087}
3088
3089// GoString returns the string representation
3090func (s InputSummary) GoString() string {
3091	return s.String()
3092}
3093
3094// SetCreationTime sets the CreationTime field's value.
3095func (s *InputSummary) SetCreationTime(v time.Time) *InputSummary {
3096	s.CreationTime = &v
3097	return s
3098}
3099
3100// SetInputArn sets the InputArn field's value.
3101func (s *InputSummary) SetInputArn(v string) *InputSummary {
3102	s.InputArn = &v
3103	return s
3104}
3105
3106// SetInputDescription sets the InputDescription field's value.
3107func (s *InputSummary) SetInputDescription(v string) *InputSummary {
3108	s.InputDescription = &v
3109	return s
3110}
3111
3112// SetInputName sets the InputName field's value.
3113func (s *InputSummary) SetInputName(v string) *InputSummary {
3114	s.InputName = &v
3115	return s
3116}
3117
3118// SetLastUpdateTime sets the LastUpdateTime field's value.
3119func (s *InputSummary) SetLastUpdateTime(v time.Time) *InputSummary {
3120	s.LastUpdateTime = &v
3121	return s
3122}
3123
3124// SetStatus sets the Status field's value.
3125func (s *InputSummary) SetStatus(v string) *InputSummary {
3126	s.Status = &v
3127	return s
3128}
3129
3130// Information required to publish the MQTT message via the AWS IoT message
3131// broker.
3132type IotTopicPublishAction struct {
3133	_ struct{} `type:"structure"`
3134
3135	// The MQTT topic of the message.
3136	//
3137	// MqttTopic is a required field
3138	MqttTopic *string `locationName:"mqttTopic" min:"1" type:"string" required:"true"`
3139}
3140
3141// String returns the string representation
3142func (s IotTopicPublishAction) String() string {
3143	return awsutil.Prettify(s)
3144}
3145
3146// GoString returns the string representation
3147func (s IotTopicPublishAction) GoString() string {
3148	return s.String()
3149}
3150
3151// Validate inspects the fields of the type to determine if they are valid.
3152func (s *IotTopicPublishAction) Validate() error {
3153	invalidParams := request.ErrInvalidParams{Context: "IotTopicPublishAction"}
3154	if s.MqttTopic == nil {
3155		invalidParams.Add(request.NewErrParamRequired("MqttTopic"))
3156	}
3157	if s.MqttTopic != nil && len(*s.MqttTopic) < 1 {
3158		invalidParams.Add(request.NewErrParamMinLen("MqttTopic", 1))
3159	}
3160
3161	if invalidParams.Len() > 0 {
3162		return invalidParams
3163	}
3164	return nil
3165}
3166
3167// SetMqttTopic sets the MqttTopic field's value.
3168func (s *IotTopicPublishAction) SetMqttTopic(v string) *IotTopicPublishAction {
3169	s.MqttTopic = &v
3170	return s
3171}
3172
3173// Calls an AWS Lambda function, passing in information about the detector model
3174// instance and the event which triggered the action.
3175type LambdaAction struct {
3176	_ struct{} `type:"structure"`
3177
3178	// The ARN of the AWS Lambda function which is executed.
3179	//
3180	// FunctionArn is a required field
3181	FunctionArn *string `locationName:"functionArn" min:"1" type:"string" required:"true"`
3182}
3183
3184// String returns the string representation
3185func (s LambdaAction) String() string {
3186	return awsutil.Prettify(s)
3187}
3188
3189// GoString returns the string representation
3190func (s LambdaAction) GoString() string {
3191	return s.String()
3192}
3193
3194// Validate inspects the fields of the type to determine if they are valid.
3195func (s *LambdaAction) Validate() error {
3196	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
3197	if s.FunctionArn == nil {
3198		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
3199	}
3200	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
3201		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
3202	}
3203
3204	if invalidParams.Len() > 0 {
3205		return invalidParams
3206	}
3207	return nil
3208}
3209
3210// SetFunctionArn sets the FunctionArn field's value.
3211func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
3212	s.FunctionArn = &v
3213	return s
3214}
3215
3216type ListDetectorModelVersionsInput struct {
3217	_ struct{} `type:"structure"`
3218
3219	// The name of the detector model whose versions are returned.
3220	//
3221	// DetectorModelName is a required field
3222	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
3223
3224	// The maximum number of results to return at one time.
3225	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3226
3227	// The token for the next set of results.
3228	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3229}
3230
3231// String returns the string representation
3232func (s ListDetectorModelVersionsInput) String() string {
3233	return awsutil.Prettify(s)
3234}
3235
3236// GoString returns the string representation
3237func (s ListDetectorModelVersionsInput) GoString() string {
3238	return s.String()
3239}
3240
3241// Validate inspects the fields of the type to determine if they are valid.
3242func (s *ListDetectorModelVersionsInput) Validate() error {
3243	invalidParams := request.ErrInvalidParams{Context: "ListDetectorModelVersionsInput"}
3244	if s.DetectorModelName == nil {
3245		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
3246	}
3247	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
3248		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
3249	}
3250	if s.MaxResults != nil && *s.MaxResults < 1 {
3251		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3252	}
3253
3254	if invalidParams.Len() > 0 {
3255		return invalidParams
3256	}
3257	return nil
3258}
3259
3260// SetDetectorModelName sets the DetectorModelName field's value.
3261func (s *ListDetectorModelVersionsInput) SetDetectorModelName(v string) *ListDetectorModelVersionsInput {
3262	s.DetectorModelName = &v
3263	return s
3264}
3265
3266// SetMaxResults sets the MaxResults field's value.
3267func (s *ListDetectorModelVersionsInput) SetMaxResults(v int64) *ListDetectorModelVersionsInput {
3268	s.MaxResults = &v
3269	return s
3270}
3271
3272// SetNextToken sets the NextToken field's value.
3273func (s *ListDetectorModelVersionsInput) SetNextToken(v string) *ListDetectorModelVersionsInput {
3274	s.NextToken = &v
3275	return s
3276}
3277
3278type ListDetectorModelVersionsOutput struct {
3279	_ struct{} `type:"structure"`
3280
3281	// Summary information about the detector model versions.
3282	DetectorModelVersionSummaries []*DetectorModelVersionSummary `locationName:"detectorModelVersionSummaries" type:"list"`
3283
3284	// A token to retrieve the next set of results, or null if there are no additional
3285	// results.
3286	NextToken *string `locationName:"nextToken" type:"string"`
3287}
3288
3289// String returns the string representation
3290func (s ListDetectorModelVersionsOutput) String() string {
3291	return awsutil.Prettify(s)
3292}
3293
3294// GoString returns the string representation
3295func (s ListDetectorModelVersionsOutput) GoString() string {
3296	return s.String()
3297}
3298
3299// SetDetectorModelVersionSummaries sets the DetectorModelVersionSummaries field's value.
3300func (s *ListDetectorModelVersionsOutput) SetDetectorModelVersionSummaries(v []*DetectorModelVersionSummary) *ListDetectorModelVersionsOutput {
3301	s.DetectorModelVersionSummaries = v
3302	return s
3303}
3304
3305// SetNextToken sets the NextToken field's value.
3306func (s *ListDetectorModelVersionsOutput) SetNextToken(v string) *ListDetectorModelVersionsOutput {
3307	s.NextToken = &v
3308	return s
3309}
3310
3311type ListDetectorModelsInput struct {
3312	_ struct{} `type:"structure"`
3313
3314	// The maximum number of results to return at one time.
3315	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3316
3317	// The token for the next set of results.
3318	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3319}
3320
3321// String returns the string representation
3322func (s ListDetectorModelsInput) String() string {
3323	return awsutil.Prettify(s)
3324}
3325
3326// GoString returns the string representation
3327func (s ListDetectorModelsInput) GoString() string {
3328	return s.String()
3329}
3330
3331// Validate inspects the fields of the type to determine if they are valid.
3332func (s *ListDetectorModelsInput) Validate() error {
3333	invalidParams := request.ErrInvalidParams{Context: "ListDetectorModelsInput"}
3334	if s.MaxResults != nil && *s.MaxResults < 1 {
3335		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3336	}
3337
3338	if invalidParams.Len() > 0 {
3339		return invalidParams
3340	}
3341	return nil
3342}
3343
3344// SetMaxResults sets the MaxResults field's value.
3345func (s *ListDetectorModelsInput) SetMaxResults(v int64) *ListDetectorModelsInput {
3346	s.MaxResults = &v
3347	return s
3348}
3349
3350// SetNextToken sets the NextToken field's value.
3351func (s *ListDetectorModelsInput) SetNextToken(v string) *ListDetectorModelsInput {
3352	s.NextToken = &v
3353	return s
3354}
3355
3356type ListDetectorModelsOutput struct {
3357	_ struct{} `type:"structure"`
3358
3359	// Summary information about the detector models.
3360	DetectorModelSummaries []*DetectorModelSummary `locationName:"detectorModelSummaries" type:"list"`
3361
3362	// A token to retrieve the next set of results, or null if there are no additional
3363	// results.
3364	NextToken *string `locationName:"nextToken" type:"string"`
3365}
3366
3367// String returns the string representation
3368func (s ListDetectorModelsOutput) String() string {
3369	return awsutil.Prettify(s)
3370}
3371
3372// GoString returns the string representation
3373func (s ListDetectorModelsOutput) GoString() string {
3374	return s.String()
3375}
3376
3377// SetDetectorModelSummaries sets the DetectorModelSummaries field's value.
3378func (s *ListDetectorModelsOutput) SetDetectorModelSummaries(v []*DetectorModelSummary) *ListDetectorModelsOutput {
3379	s.DetectorModelSummaries = v
3380	return s
3381}
3382
3383// SetNextToken sets the NextToken field's value.
3384func (s *ListDetectorModelsOutput) SetNextToken(v string) *ListDetectorModelsOutput {
3385	s.NextToken = &v
3386	return s
3387}
3388
3389type ListInputsInput struct {
3390	_ struct{} `type:"structure"`
3391
3392	// The maximum number of results to return at one time.
3393	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3394
3395	// The token for the next set of results.
3396	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3397}
3398
3399// String returns the string representation
3400func (s ListInputsInput) String() string {
3401	return awsutil.Prettify(s)
3402}
3403
3404// GoString returns the string representation
3405func (s ListInputsInput) GoString() string {
3406	return s.String()
3407}
3408
3409// Validate inspects the fields of the type to determine if they are valid.
3410func (s *ListInputsInput) Validate() error {
3411	invalidParams := request.ErrInvalidParams{Context: "ListInputsInput"}
3412	if s.MaxResults != nil && *s.MaxResults < 1 {
3413		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3414	}
3415
3416	if invalidParams.Len() > 0 {
3417		return invalidParams
3418	}
3419	return nil
3420}
3421
3422// SetMaxResults sets the MaxResults field's value.
3423func (s *ListInputsInput) SetMaxResults(v int64) *ListInputsInput {
3424	s.MaxResults = &v
3425	return s
3426}
3427
3428// SetNextToken sets the NextToken field's value.
3429func (s *ListInputsInput) SetNextToken(v string) *ListInputsInput {
3430	s.NextToken = &v
3431	return s
3432}
3433
3434type ListInputsOutput struct {
3435	_ struct{} `type:"structure"`
3436
3437	// Summary information about the inputs.
3438	InputSummaries []*InputSummary `locationName:"inputSummaries" type:"list"`
3439
3440	// A token to retrieve the next set of results, or null if there are no additional
3441	// results.
3442	NextToken *string `locationName:"nextToken" type:"string"`
3443}
3444
3445// String returns the string representation
3446func (s ListInputsOutput) String() string {
3447	return awsutil.Prettify(s)
3448}
3449
3450// GoString returns the string representation
3451func (s ListInputsOutput) GoString() string {
3452	return s.String()
3453}
3454
3455// SetInputSummaries sets the InputSummaries field's value.
3456func (s *ListInputsOutput) SetInputSummaries(v []*InputSummary) *ListInputsOutput {
3457	s.InputSummaries = v
3458	return s
3459}
3460
3461// SetNextToken sets the NextToken field's value.
3462func (s *ListInputsOutput) SetNextToken(v string) *ListInputsOutput {
3463	s.NextToken = &v
3464	return s
3465}
3466
3467type ListTagsForResourceInput struct {
3468	_ struct{} `type:"structure"`
3469
3470	// The ARN of the resource.
3471	//
3472	// ResourceArn is a required field
3473	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
3474}
3475
3476// String returns the string representation
3477func (s ListTagsForResourceInput) String() string {
3478	return awsutil.Prettify(s)
3479}
3480
3481// GoString returns the string representation
3482func (s ListTagsForResourceInput) GoString() string {
3483	return s.String()
3484}
3485
3486// Validate inspects the fields of the type to determine if they are valid.
3487func (s *ListTagsForResourceInput) Validate() error {
3488	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
3489	if s.ResourceArn == nil {
3490		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
3491	}
3492	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
3493		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
3494	}
3495
3496	if invalidParams.Len() > 0 {
3497		return invalidParams
3498	}
3499	return nil
3500}
3501
3502// SetResourceArn sets the ResourceArn field's value.
3503func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
3504	s.ResourceArn = &v
3505	return s
3506}
3507
3508type ListTagsForResourceOutput struct {
3509	_ struct{} `type:"structure"`
3510
3511	// The list of tags assigned to the resource.
3512	Tags []*Tag `locationName:"tags" type:"list"`
3513}
3514
3515// String returns the string representation
3516func (s ListTagsForResourceOutput) String() string {
3517	return awsutil.Prettify(s)
3518}
3519
3520// GoString returns the string representation
3521func (s ListTagsForResourceOutput) GoString() string {
3522	return s.String()
3523}
3524
3525// SetTags sets the Tags field's value.
3526func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
3527	s.Tags = v
3528	return s
3529}
3530
3531// The values of the AWS IoT Events logging options.
3532type LoggingOptions struct {
3533	_ struct{} `type:"structure"`
3534
3535	// Information that identifies those detector models and their detectors (instances)
3536	// for which the logging level is given.
3537	DetectorDebugOptions []*DetectorDebugOption `locationName:"detectorDebugOptions" min:"1" type:"list"`
3538
3539	// If TRUE, logging is enabled for AWS IoT Events.
3540	//
3541	// Enabled is a required field
3542	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
3543
3544	// The logging level.
3545	//
3546	// Level is a required field
3547	Level *string `locationName:"level" type:"string" required:"true" enum:"LoggingLevel"`
3548
3549	// The ARN of the role that grants permission to AWS IoT Events to perform logging.
3550	//
3551	// RoleArn is a required field
3552	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
3553}
3554
3555// String returns the string representation
3556func (s LoggingOptions) String() string {
3557	return awsutil.Prettify(s)
3558}
3559
3560// GoString returns the string representation
3561func (s LoggingOptions) GoString() string {
3562	return s.String()
3563}
3564
3565// Validate inspects the fields of the type to determine if they are valid.
3566func (s *LoggingOptions) Validate() error {
3567	invalidParams := request.ErrInvalidParams{Context: "LoggingOptions"}
3568	if s.DetectorDebugOptions != nil && len(s.DetectorDebugOptions) < 1 {
3569		invalidParams.Add(request.NewErrParamMinLen("DetectorDebugOptions", 1))
3570	}
3571	if s.Enabled == nil {
3572		invalidParams.Add(request.NewErrParamRequired("Enabled"))
3573	}
3574	if s.Level == nil {
3575		invalidParams.Add(request.NewErrParamRequired("Level"))
3576	}
3577	if s.RoleArn == nil {
3578		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
3579	}
3580	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
3581		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
3582	}
3583	if s.DetectorDebugOptions != nil {
3584		for i, v := range s.DetectorDebugOptions {
3585			if v == nil {
3586				continue
3587			}
3588			if err := v.Validate(); err != nil {
3589				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DetectorDebugOptions", i), err.(request.ErrInvalidParams))
3590			}
3591		}
3592	}
3593
3594	if invalidParams.Len() > 0 {
3595		return invalidParams
3596	}
3597	return nil
3598}
3599
3600// SetDetectorDebugOptions sets the DetectorDebugOptions field's value.
3601func (s *LoggingOptions) SetDetectorDebugOptions(v []*DetectorDebugOption) *LoggingOptions {
3602	s.DetectorDebugOptions = v
3603	return s
3604}
3605
3606// SetEnabled sets the Enabled field's value.
3607func (s *LoggingOptions) SetEnabled(v bool) *LoggingOptions {
3608	s.Enabled = &v
3609	return s
3610}
3611
3612// SetLevel sets the Level field's value.
3613func (s *LoggingOptions) SetLevel(v string) *LoggingOptions {
3614	s.Level = &v
3615	return s
3616}
3617
3618// SetRoleArn sets the RoleArn field's value.
3619func (s *LoggingOptions) SetRoleArn(v string) *LoggingOptions {
3620	s.RoleArn = &v
3621	return s
3622}
3623
3624// When entering this state, perform these actions if the condition is TRUE.
3625type OnEnterLifecycle struct {
3626	_ struct{} `type:"structure"`
3627
3628	// Specifies the actions that are performed when the state is entered and the
3629	// "condition" is TRUE.
3630	Events []*Event `locationName:"events" type:"list"`
3631}
3632
3633// String returns the string representation
3634func (s OnEnterLifecycle) String() string {
3635	return awsutil.Prettify(s)
3636}
3637
3638// GoString returns the string representation
3639func (s OnEnterLifecycle) GoString() string {
3640	return s.String()
3641}
3642
3643// Validate inspects the fields of the type to determine if they are valid.
3644func (s *OnEnterLifecycle) Validate() error {
3645	invalidParams := request.ErrInvalidParams{Context: "OnEnterLifecycle"}
3646	if s.Events != nil {
3647		for i, v := range s.Events {
3648			if v == nil {
3649				continue
3650			}
3651			if err := v.Validate(); err != nil {
3652				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
3653			}
3654		}
3655	}
3656
3657	if invalidParams.Len() > 0 {
3658		return invalidParams
3659	}
3660	return nil
3661}
3662
3663// SetEvents sets the Events field's value.
3664func (s *OnEnterLifecycle) SetEvents(v []*Event) *OnEnterLifecycle {
3665	s.Events = v
3666	return s
3667}
3668
3669// When exiting this state, perform these "actions" if the specified "condition"
3670// is TRUE.
3671type OnExitLifecycle struct {
3672	_ struct{} `type:"structure"`
3673
3674	// Specifies the "actions" that are performed when the state is exited and the
3675	// "condition" is TRUE.
3676	Events []*Event `locationName:"events" type:"list"`
3677}
3678
3679// String returns the string representation
3680func (s OnExitLifecycle) String() string {
3681	return awsutil.Prettify(s)
3682}
3683
3684// GoString returns the string representation
3685func (s OnExitLifecycle) GoString() string {
3686	return s.String()
3687}
3688
3689// Validate inspects the fields of the type to determine if they are valid.
3690func (s *OnExitLifecycle) Validate() error {
3691	invalidParams := request.ErrInvalidParams{Context: "OnExitLifecycle"}
3692	if s.Events != nil {
3693		for i, v := range s.Events {
3694			if v == nil {
3695				continue
3696			}
3697			if err := v.Validate(); err != nil {
3698				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
3699			}
3700		}
3701	}
3702
3703	if invalidParams.Len() > 0 {
3704		return invalidParams
3705	}
3706	return nil
3707}
3708
3709// SetEvents sets the Events field's value.
3710func (s *OnExitLifecycle) SetEvents(v []*Event) *OnExitLifecycle {
3711	s.Events = v
3712	return s
3713}
3714
3715// Specifies the actions performed when the "condition" evaluates to TRUE.
3716type OnInputLifecycle struct {
3717	_ struct{} `type:"structure"`
3718
3719	// Specifies the actions performed when the "condition" evaluates to TRUE.
3720	Events []*Event `locationName:"events" type:"list"`
3721
3722	// Specifies the actions performed, and the next state entered, when a "condition"
3723	// evaluates to TRUE.
3724	TransitionEvents []*TransitionEvent `locationName:"transitionEvents" type:"list"`
3725}
3726
3727// String returns the string representation
3728func (s OnInputLifecycle) String() string {
3729	return awsutil.Prettify(s)
3730}
3731
3732// GoString returns the string representation
3733func (s OnInputLifecycle) GoString() string {
3734	return s.String()
3735}
3736
3737// Validate inspects the fields of the type to determine if they are valid.
3738func (s *OnInputLifecycle) Validate() error {
3739	invalidParams := request.ErrInvalidParams{Context: "OnInputLifecycle"}
3740	if s.Events != nil {
3741		for i, v := range s.Events {
3742			if v == nil {
3743				continue
3744			}
3745			if err := v.Validate(); err != nil {
3746				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
3747			}
3748		}
3749	}
3750	if s.TransitionEvents != nil {
3751		for i, v := range s.TransitionEvents {
3752			if v == nil {
3753				continue
3754			}
3755			if err := v.Validate(); err != nil {
3756				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransitionEvents", i), err.(request.ErrInvalidParams))
3757			}
3758		}
3759	}
3760
3761	if invalidParams.Len() > 0 {
3762		return invalidParams
3763	}
3764	return nil
3765}
3766
3767// SetEvents sets the Events field's value.
3768func (s *OnInputLifecycle) SetEvents(v []*Event) *OnInputLifecycle {
3769	s.Events = v
3770	return s
3771}
3772
3773// SetTransitionEvents sets the TransitionEvents field's value.
3774func (s *OnInputLifecycle) SetTransitionEvents(v []*TransitionEvent) *OnInputLifecycle {
3775	s.TransitionEvents = v
3776	return s
3777}
3778
3779type PutLoggingOptionsInput struct {
3780	_ struct{} `type:"structure"`
3781
3782	// The new values of the AWS IoT Events logging options.
3783	//
3784	// LoggingOptions is a required field
3785	LoggingOptions *LoggingOptions `locationName:"loggingOptions" type:"structure" required:"true"`
3786}
3787
3788// String returns the string representation
3789func (s PutLoggingOptionsInput) String() string {
3790	return awsutil.Prettify(s)
3791}
3792
3793// GoString returns the string representation
3794func (s PutLoggingOptionsInput) GoString() string {
3795	return s.String()
3796}
3797
3798// Validate inspects the fields of the type to determine if they are valid.
3799func (s *PutLoggingOptionsInput) Validate() error {
3800	invalidParams := request.ErrInvalidParams{Context: "PutLoggingOptionsInput"}
3801	if s.LoggingOptions == nil {
3802		invalidParams.Add(request.NewErrParamRequired("LoggingOptions"))
3803	}
3804	if s.LoggingOptions != nil {
3805		if err := s.LoggingOptions.Validate(); err != nil {
3806			invalidParams.AddNested("LoggingOptions", err.(request.ErrInvalidParams))
3807		}
3808	}
3809
3810	if invalidParams.Len() > 0 {
3811		return invalidParams
3812	}
3813	return nil
3814}
3815
3816// SetLoggingOptions sets the LoggingOptions field's value.
3817func (s *PutLoggingOptionsInput) SetLoggingOptions(v *LoggingOptions) *PutLoggingOptionsInput {
3818	s.LoggingOptions = v
3819	return s
3820}
3821
3822type PutLoggingOptionsOutput struct {
3823	_ struct{} `type:"structure"`
3824}
3825
3826// String returns the string representation
3827func (s PutLoggingOptionsOutput) String() string {
3828	return awsutil.Prettify(s)
3829}
3830
3831// GoString returns the string representation
3832func (s PutLoggingOptionsOutput) GoString() string {
3833	return s.String()
3834}
3835
3836// Information needed to reset the timer.
3837type ResetTimerAction struct {
3838	_ struct{} `type:"structure"`
3839
3840	// The name of the timer to reset.
3841	//
3842	// TimerName is a required field
3843	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
3844}
3845
3846// String returns the string representation
3847func (s ResetTimerAction) String() string {
3848	return awsutil.Prettify(s)
3849}
3850
3851// GoString returns the string representation
3852func (s ResetTimerAction) GoString() string {
3853	return s.String()
3854}
3855
3856// Validate inspects the fields of the type to determine if they are valid.
3857func (s *ResetTimerAction) Validate() error {
3858	invalidParams := request.ErrInvalidParams{Context: "ResetTimerAction"}
3859	if s.TimerName == nil {
3860		invalidParams.Add(request.NewErrParamRequired("TimerName"))
3861	}
3862	if s.TimerName != nil && len(*s.TimerName) < 1 {
3863		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
3864	}
3865
3866	if invalidParams.Len() > 0 {
3867		return invalidParams
3868	}
3869	return nil
3870}
3871
3872// SetTimerName sets the TimerName field's value.
3873func (s *ResetTimerAction) SetTimerName(v string) *ResetTimerAction {
3874	s.TimerName = &v
3875	return s
3876}
3877
3878// Information required to publish the Amazon SNS message.
3879type SNSTopicPublishAction struct {
3880	_ struct{} `type:"structure"`
3881
3882	// The ARN of the Amazon SNS target where the message is sent.
3883	//
3884	// TargetArn is a required field
3885	TargetArn *string `locationName:"targetArn" min:"1" type:"string" required:"true"`
3886}
3887
3888// String returns the string representation
3889func (s SNSTopicPublishAction) String() string {
3890	return awsutil.Prettify(s)
3891}
3892
3893// GoString returns the string representation
3894func (s SNSTopicPublishAction) GoString() string {
3895	return s.String()
3896}
3897
3898// Validate inspects the fields of the type to determine if they are valid.
3899func (s *SNSTopicPublishAction) Validate() error {
3900	invalidParams := request.ErrInvalidParams{Context: "SNSTopicPublishAction"}
3901	if s.TargetArn == nil {
3902		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
3903	}
3904	if s.TargetArn != nil && len(*s.TargetArn) < 1 {
3905		invalidParams.Add(request.NewErrParamMinLen("TargetArn", 1))
3906	}
3907
3908	if invalidParams.Len() > 0 {
3909		return invalidParams
3910	}
3911	return nil
3912}
3913
3914// SetTargetArn sets the TargetArn field's value.
3915func (s *SNSTopicPublishAction) SetTargetArn(v string) *SNSTopicPublishAction {
3916	s.TargetArn = &v
3917	return s
3918}
3919
3920// Information needed to set the timer.
3921type SetTimerAction struct {
3922	_ struct{} `type:"structure"`
3923
3924	// The number of seconds until the timer expires. The minimum value is 60 seconds
3925	// to ensure accuracy.
3926	//
3927	// Seconds is a required field
3928	Seconds *int64 `locationName:"seconds" type:"integer" required:"true"`
3929
3930	// The name of the timer.
3931	//
3932	// TimerName is a required field
3933	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
3934}
3935
3936// String returns the string representation
3937func (s SetTimerAction) String() string {
3938	return awsutil.Prettify(s)
3939}
3940
3941// GoString returns the string representation
3942func (s SetTimerAction) GoString() string {
3943	return s.String()
3944}
3945
3946// Validate inspects the fields of the type to determine if they are valid.
3947func (s *SetTimerAction) Validate() error {
3948	invalidParams := request.ErrInvalidParams{Context: "SetTimerAction"}
3949	if s.Seconds == nil {
3950		invalidParams.Add(request.NewErrParamRequired("Seconds"))
3951	}
3952	if s.TimerName == nil {
3953		invalidParams.Add(request.NewErrParamRequired("TimerName"))
3954	}
3955	if s.TimerName != nil && len(*s.TimerName) < 1 {
3956		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
3957	}
3958
3959	if invalidParams.Len() > 0 {
3960		return invalidParams
3961	}
3962	return nil
3963}
3964
3965// SetSeconds sets the Seconds field's value.
3966func (s *SetTimerAction) SetSeconds(v int64) *SetTimerAction {
3967	s.Seconds = &v
3968	return s
3969}
3970
3971// SetTimerName sets the TimerName field's value.
3972func (s *SetTimerAction) SetTimerName(v string) *SetTimerAction {
3973	s.TimerName = &v
3974	return s
3975}
3976
3977// Information about the variable and its new value.
3978type SetVariableAction struct {
3979	_ struct{} `type:"structure"`
3980
3981	// The new value of the variable.
3982	//
3983	// Value is a required field
3984	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
3985
3986	// The name of the variable.
3987	//
3988	// VariableName is a required field
3989	VariableName *string `locationName:"variableName" min:"1" type:"string" required:"true"`
3990}
3991
3992// String returns the string representation
3993func (s SetVariableAction) String() string {
3994	return awsutil.Prettify(s)
3995}
3996
3997// GoString returns the string representation
3998func (s SetVariableAction) GoString() string {
3999	return s.String()
4000}
4001
4002// Validate inspects the fields of the type to determine if they are valid.
4003func (s *SetVariableAction) Validate() error {
4004	invalidParams := request.ErrInvalidParams{Context: "SetVariableAction"}
4005	if s.Value == nil {
4006		invalidParams.Add(request.NewErrParamRequired("Value"))
4007	}
4008	if s.Value != nil && len(*s.Value) < 1 {
4009		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
4010	}
4011	if s.VariableName == nil {
4012		invalidParams.Add(request.NewErrParamRequired("VariableName"))
4013	}
4014	if s.VariableName != nil && len(*s.VariableName) < 1 {
4015		invalidParams.Add(request.NewErrParamMinLen("VariableName", 1))
4016	}
4017
4018	if invalidParams.Len() > 0 {
4019		return invalidParams
4020	}
4021	return nil
4022}
4023
4024// SetValue sets the Value field's value.
4025func (s *SetVariableAction) SetValue(v string) *SetVariableAction {
4026	s.Value = &v
4027	return s
4028}
4029
4030// SetVariableName sets the VariableName field's value.
4031func (s *SetVariableAction) SetVariableName(v string) *SetVariableAction {
4032	s.VariableName = &v
4033	return s
4034}
4035
4036// Sends information about the detector model instance and the event which triggered
4037// the action to an Amazon SQS queue.
4038type SqsAction struct {
4039	_ struct{} `type:"structure"`
4040
4041	// The URL of the Amazon SQS queue where the data is written.
4042	//
4043	// QueueUrl is a required field
4044	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
4045
4046	// Set this to TRUE if you want the data to be Base-64 encoded before it is
4047	// written to the queue. Otherwise, set this to FALSE.
4048	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
4049}
4050
4051// String returns the string representation
4052func (s SqsAction) String() string {
4053	return awsutil.Prettify(s)
4054}
4055
4056// GoString returns the string representation
4057func (s SqsAction) GoString() string {
4058	return s.String()
4059}
4060
4061// Validate inspects the fields of the type to determine if they are valid.
4062func (s *SqsAction) Validate() error {
4063	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
4064	if s.QueueUrl == nil {
4065		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
4066	}
4067
4068	if invalidParams.Len() > 0 {
4069		return invalidParams
4070	}
4071	return nil
4072}
4073
4074// SetQueueUrl sets the QueueUrl field's value.
4075func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
4076	s.QueueUrl = &v
4077	return s
4078}
4079
4080// SetUseBase64 sets the UseBase64 field's value.
4081func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
4082	s.UseBase64 = &v
4083	return s
4084}
4085
4086// Information that defines a state of a detector.
4087type State struct {
4088	_ struct{} `type:"structure"`
4089
4090	// When entering this state, perform these "actions" if the "condition" is TRUE.
4091	OnEnter *OnEnterLifecycle `locationName:"onEnter" type:"structure"`
4092
4093	// When exiting this state, perform these "actions" if the specified "condition"
4094	// is TRUE.
4095	OnExit *OnExitLifecycle `locationName:"onExit" type:"structure"`
4096
4097	// When an input is received and the "condition" is TRUE, perform the specified
4098	// "actions".
4099	OnInput *OnInputLifecycle `locationName:"onInput" type:"structure"`
4100
4101	// The name of the state.
4102	//
4103	// StateName is a required field
4104	StateName *string `locationName:"stateName" min:"1" type:"string" required:"true"`
4105}
4106
4107// String returns the string representation
4108func (s State) String() string {
4109	return awsutil.Prettify(s)
4110}
4111
4112// GoString returns the string representation
4113func (s State) GoString() string {
4114	return s.String()
4115}
4116
4117// Validate inspects the fields of the type to determine if they are valid.
4118func (s *State) Validate() error {
4119	invalidParams := request.ErrInvalidParams{Context: "State"}
4120	if s.StateName == nil {
4121		invalidParams.Add(request.NewErrParamRequired("StateName"))
4122	}
4123	if s.StateName != nil && len(*s.StateName) < 1 {
4124		invalidParams.Add(request.NewErrParamMinLen("StateName", 1))
4125	}
4126	if s.OnEnter != nil {
4127		if err := s.OnEnter.Validate(); err != nil {
4128			invalidParams.AddNested("OnEnter", err.(request.ErrInvalidParams))
4129		}
4130	}
4131	if s.OnExit != nil {
4132		if err := s.OnExit.Validate(); err != nil {
4133			invalidParams.AddNested("OnExit", err.(request.ErrInvalidParams))
4134		}
4135	}
4136	if s.OnInput != nil {
4137		if err := s.OnInput.Validate(); err != nil {
4138			invalidParams.AddNested("OnInput", err.(request.ErrInvalidParams))
4139		}
4140	}
4141
4142	if invalidParams.Len() > 0 {
4143		return invalidParams
4144	}
4145	return nil
4146}
4147
4148// SetOnEnter sets the OnEnter field's value.
4149func (s *State) SetOnEnter(v *OnEnterLifecycle) *State {
4150	s.OnEnter = v
4151	return s
4152}
4153
4154// SetOnExit sets the OnExit field's value.
4155func (s *State) SetOnExit(v *OnExitLifecycle) *State {
4156	s.OnExit = v
4157	return s
4158}
4159
4160// SetOnInput sets the OnInput field's value.
4161func (s *State) SetOnInput(v *OnInputLifecycle) *State {
4162	s.OnInput = v
4163	return s
4164}
4165
4166// SetStateName sets the StateName field's value.
4167func (s *State) SetStateName(v string) *State {
4168	s.StateName = &v
4169	return s
4170}
4171
4172// Metadata that can be used to manage the resource.
4173type Tag struct {
4174	_ struct{} `type:"structure"`
4175
4176	// The tag's key.
4177	//
4178	// Key is a required field
4179	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
4180
4181	// The tag's value.
4182	//
4183	// Value is a required field
4184	Value *string `locationName:"value" type:"string" required:"true"`
4185}
4186
4187// String returns the string representation
4188func (s Tag) String() string {
4189	return awsutil.Prettify(s)
4190}
4191
4192// GoString returns the string representation
4193func (s Tag) GoString() string {
4194	return s.String()
4195}
4196
4197// Validate inspects the fields of the type to determine if they are valid.
4198func (s *Tag) Validate() error {
4199	invalidParams := request.ErrInvalidParams{Context: "Tag"}
4200	if s.Key == nil {
4201		invalidParams.Add(request.NewErrParamRequired("Key"))
4202	}
4203	if s.Key != nil && len(*s.Key) < 1 {
4204		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4205	}
4206	if s.Value == nil {
4207		invalidParams.Add(request.NewErrParamRequired("Value"))
4208	}
4209
4210	if invalidParams.Len() > 0 {
4211		return invalidParams
4212	}
4213	return nil
4214}
4215
4216// SetKey sets the Key field's value.
4217func (s *Tag) SetKey(v string) *Tag {
4218	s.Key = &v
4219	return s
4220}
4221
4222// SetValue sets the Value field's value.
4223func (s *Tag) SetValue(v string) *Tag {
4224	s.Value = &v
4225	return s
4226}
4227
4228type TagResourceInput struct {
4229	_ struct{} `type:"structure"`
4230
4231	// The ARN of the resource.
4232	//
4233	// ResourceArn is a required field
4234	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
4235
4236	// The new or modified tags for the resource.
4237	//
4238	// Tags is a required field
4239	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
4240}
4241
4242// String returns the string representation
4243func (s TagResourceInput) String() string {
4244	return awsutil.Prettify(s)
4245}
4246
4247// GoString returns the string representation
4248func (s TagResourceInput) GoString() string {
4249	return s.String()
4250}
4251
4252// Validate inspects the fields of the type to determine if they are valid.
4253func (s *TagResourceInput) Validate() error {
4254	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
4255	if s.ResourceArn == nil {
4256		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4257	}
4258	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4259		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4260	}
4261	if s.Tags == nil {
4262		invalidParams.Add(request.NewErrParamRequired("Tags"))
4263	}
4264	if s.Tags != nil {
4265		for i, v := range s.Tags {
4266			if v == nil {
4267				continue
4268			}
4269			if err := v.Validate(); err != nil {
4270				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4271			}
4272		}
4273	}
4274
4275	if invalidParams.Len() > 0 {
4276		return invalidParams
4277	}
4278	return nil
4279}
4280
4281// SetResourceArn sets the ResourceArn field's value.
4282func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
4283	s.ResourceArn = &v
4284	return s
4285}
4286
4287// SetTags sets the Tags field's value.
4288func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
4289	s.Tags = v
4290	return s
4291}
4292
4293type TagResourceOutput struct {
4294	_ struct{} `type:"structure"`
4295}
4296
4297// String returns the string representation
4298func (s TagResourceOutput) String() string {
4299	return awsutil.Prettify(s)
4300}
4301
4302// GoString returns the string representation
4303func (s TagResourceOutput) GoString() string {
4304	return s.String()
4305}
4306
4307// Specifies the actions performed and the next state entered when a "condition"
4308// evaluates to TRUE.
4309type TransitionEvent struct {
4310	_ struct{} `type:"structure"`
4311
4312	// The actions to be performed.
4313	Actions []*ActionData `locationName:"actions" type:"list"`
4314
4315	// [Required] A Boolean expression that when TRUE causes the actions to be performed
4316	// and the "nextState" to be entered.
4317	//
4318	// Condition is a required field
4319	Condition *string `locationName:"condition" type:"string" required:"true"`
4320
4321	// The name of the transition event.
4322	//
4323	// EventName is a required field
4324	EventName *string `locationName:"eventName" type:"string" required:"true"`
4325
4326	// The next state to enter.
4327	//
4328	// NextState is a required field
4329	NextState *string `locationName:"nextState" min:"1" type:"string" required:"true"`
4330}
4331
4332// String returns the string representation
4333func (s TransitionEvent) String() string {
4334	return awsutil.Prettify(s)
4335}
4336
4337// GoString returns the string representation
4338func (s TransitionEvent) GoString() string {
4339	return s.String()
4340}
4341
4342// Validate inspects the fields of the type to determine if they are valid.
4343func (s *TransitionEvent) Validate() error {
4344	invalidParams := request.ErrInvalidParams{Context: "TransitionEvent"}
4345	if s.Condition == nil {
4346		invalidParams.Add(request.NewErrParamRequired("Condition"))
4347	}
4348	if s.EventName == nil {
4349		invalidParams.Add(request.NewErrParamRequired("EventName"))
4350	}
4351	if s.NextState == nil {
4352		invalidParams.Add(request.NewErrParamRequired("NextState"))
4353	}
4354	if s.NextState != nil && len(*s.NextState) < 1 {
4355		invalidParams.Add(request.NewErrParamMinLen("NextState", 1))
4356	}
4357	if s.Actions != nil {
4358		for i, v := range s.Actions {
4359			if v == nil {
4360				continue
4361			}
4362			if err := v.Validate(); err != nil {
4363				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
4364			}
4365		}
4366	}
4367
4368	if invalidParams.Len() > 0 {
4369		return invalidParams
4370	}
4371	return nil
4372}
4373
4374// SetActions sets the Actions field's value.
4375func (s *TransitionEvent) SetActions(v []*ActionData) *TransitionEvent {
4376	s.Actions = v
4377	return s
4378}
4379
4380// SetCondition sets the Condition field's value.
4381func (s *TransitionEvent) SetCondition(v string) *TransitionEvent {
4382	s.Condition = &v
4383	return s
4384}
4385
4386// SetEventName sets the EventName field's value.
4387func (s *TransitionEvent) SetEventName(v string) *TransitionEvent {
4388	s.EventName = &v
4389	return s
4390}
4391
4392// SetNextState sets the NextState field's value.
4393func (s *TransitionEvent) SetNextState(v string) *TransitionEvent {
4394	s.NextState = &v
4395	return s
4396}
4397
4398type UntagResourceInput struct {
4399	_ struct{} `type:"structure"`
4400
4401	// The ARN of the resource.
4402	//
4403	// ResourceArn is a required field
4404	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
4405
4406	// A list of the keys of the tags to be removed from the resource.
4407	//
4408	// TagKeys is a required field
4409	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
4410}
4411
4412// String returns the string representation
4413func (s UntagResourceInput) String() string {
4414	return awsutil.Prettify(s)
4415}
4416
4417// GoString returns the string representation
4418func (s UntagResourceInput) GoString() string {
4419	return s.String()
4420}
4421
4422// Validate inspects the fields of the type to determine if they are valid.
4423func (s *UntagResourceInput) Validate() error {
4424	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
4425	if s.ResourceArn == nil {
4426		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4427	}
4428	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4429		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4430	}
4431	if s.TagKeys == nil {
4432		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
4433	}
4434
4435	if invalidParams.Len() > 0 {
4436		return invalidParams
4437	}
4438	return nil
4439}
4440
4441// SetResourceArn sets the ResourceArn field's value.
4442func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
4443	s.ResourceArn = &v
4444	return s
4445}
4446
4447// SetTagKeys sets the TagKeys field's value.
4448func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
4449	s.TagKeys = v
4450	return s
4451}
4452
4453type UntagResourceOutput struct {
4454	_ struct{} `type:"structure"`
4455}
4456
4457// String returns the string representation
4458func (s UntagResourceOutput) String() string {
4459	return awsutil.Prettify(s)
4460}
4461
4462// GoString returns the string representation
4463func (s UntagResourceOutput) GoString() string {
4464	return s.String()
4465}
4466
4467type UpdateDetectorModelInput struct {
4468	_ struct{} `type:"structure"`
4469
4470	// Information that defines how a detector operates.
4471	//
4472	// DetectorModelDefinition is a required field
4473	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure" required:"true"`
4474
4475	// A brief description of the detector model.
4476	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
4477
4478	// The name of the detector model that is updated.
4479	//
4480	// DetectorModelName is a required field
4481	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
4482
4483	// When set to SERIAL, variables are updated and event conditions evaluated
4484	// in the order that the events are defined. When set to BATCH, variables are
4485	// updated and events performed only after all event conditions are evaluated.
4486	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
4487
4488	// The ARN of the role that grants permission to AWS IoT Events to perform its
4489	// operations.
4490	//
4491	// RoleArn is a required field
4492	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
4493}
4494
4495// String returns the string representation
4496func (s UpdateDetectorModelInput) String() string {
4497	return awsutil.Prettify(s)
4498}
4499
4500// GoString returns the string representation
4501func (s UpdateDetectorModelInput) GoString() string {
4502	return s.String()
4503}
4504
4505// Validate inspects the fields of the type to determine if they are valid.
4506func (s *UpdateDetectorModelInput) Validate() error {
4507	invalidParams := request.ErrInvalidParams{Context: "UpdateDetectorModelInput"}
4508	if s.DetectorModelDefinition == nil {
4509		invalidParams.Add(request.NewErrParamRequired("DetectorModelDefinition"))
4510	}
4511	if s.DetectorModelName == nil {
4512		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
4513	}
4514	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
4515		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
4516	}
4517	if s.RoleArn == nil {
4518		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
4519	}
4520	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
4521		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
4522	}
4523	if s.DetectorModelDefinition != nil {
4524		if err := s.DetectorModelDefinition.Validate(); err != nil {
4525			invalidParams.AddNested("DetectorModelDefinition", err.(request.ErrInvalidParams))
4526		}
4527	}
4528
4529	if invalidParams.Len() > 0 {
4530		return invalidParams
4531	}
4532	return nil
4533}
4534
4535// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
4536func (s *UpdateDetectorModelInput) SetDetectorModelDefinition(v *DetectorModelDefinition) *UpdateDetectorModelInput {
4537	s.DetectorModelDefinition = v
4538	return s
4539}
4540
4541// SetDetectorModelDescription sets the DetectorModelDescription field's value.
4542func (s *UpdateDetectorModelInput) SetDetectorModelDescription(v string) *UpdateDetectorModelInput {
4543	s.DetectorModelDescription = &v
4544	return s
4545}
4546
4547// SetDetectorModelName sets the DetectorModelName field's value.
4548func (s *UpdateDetectorModelInput) SetDetectorModelName(v string) *UpdateDetectorModelInput {
4549	s.DetectorModelName = &v
4550	return s
4551}
4552
4553// SetEvaluationMethod sets the EvaluationMethod field's value.
4554func (s *UpdateDetectorModelInput) SetEvaluationMethod(v string) *UpdateDetectorModelInput {
4555	s.EvaluationMethod = &v
4556	return s
4557}
4558
4559// SetRoleArn sets the RoleArn field's value.
4560func (s *UpdateDetectorModelInput) SetRoleArn(v string) *UpdateDetectorModelInput {
4561	s.RoleArn = &v
4562	return s
4563}
4564
4565type UpdateDetectorModelOutput struct {
4566	_ struct{} `type:"structure"`
4567
4568	// Information about how the detector model is configured.
4569	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
4570}
4571
4572// String returns the string representation
4573func (s UpdateDetectorModelOutput) String() string {
4574	return awsutil.Prettify(s)
4575}
4576
4577// GoString returns the string representation
4578func (s UpdateDetectorModelOutput) GoString() string {
4579	return s.String()
4580}
4581
4582// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
4583func (s *UpdateDetectorModelOutput) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *UpdateDetectorModelOutput {
4584	s.DetectorModelConfiguration = v
4585	return s
4586}
4587
4588type UpdateInputInput struct {
4589	_ struct{} `type:"structure"`
4590
4591	// The definition of the input.
4592	//
4593	// InputDefinition is a required field
4594	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure" required:"true"`
4595
4596	// A brief description of the input.
4597	InputDescription *string `locationName:"inputDescription" type:"string"`
4598
4599	// The name of the input you want to update.
4600	//
4601	// InputName is a required field
4602	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
4603}
4604
4605// String returns the string representation
4606func (s UpdateInputInput) String() string {
4607	return awsutil.Prettify(s)
4608}
4609
4610// GoString returns the string representation
4611func (s UpdateInputInput) GoString() string {
4612	return s.String()
4613}
4614
4615// Validate inspects the fields of the type to determine if they are valid.
4616func (s *UpdateInputInput) Validate() error {
4617	invalidParams := request.ErrInvalidParams{Context: "UpdateInputInput"}
4618	if s.InputDefinition == nil {
4619		invalidParams.Add(request.NewErrParamRequired("InputDefinition"))
4620	}
4621	if s.InputName == nil {
4622		invalidParams.Add(request.NewErrParamRequired("InputName"))
4623	}
4624	if s.InputName != nil && len(*s.InputName) < 1 {
4625		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
4626	}
4627	if s.InputDefinition != nil {
4628		if err := s.InputDefinition.Validate(); err != nil {
4629			invalidParams.AddNested("InputDefinition", err.(request.ErrInvalidParams))
4630		}
4631	}
4632
4633	if invalidParams.Len() > 0 {
4634		return invalidParams
4635	}
4636	return nil
4637}
4638
4639// SetInputDefinition sets the InputDefinition field's value.
4640func (s *UpdateInputInput) SetInputDefinition(v *InputDefinition) *UpdateInputInput {
4641	s.InputDefinition = v
4642	return s
4643}
4644
4645// SetInputDescription sets the InputDescription field's value.
4646func (s *UpdateInputInput) SetInputDescription(v string) *UpdateInputInput {
4647	s.InputDescription = &v
4648	return s
4649}
4650
4651// SetInputName sets the InputName field's value.
4652func (s *UpdateInputInput) SetInputName(v string) *UpdateInputInput {
4653	s.InputName = &v
4654	return s
4655}
4656
4657type UpdateInputOutput struct {
4658	_ struct{} `type:"structure"`
4659
4660	// Information about the configuration of the input.
4661	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
4662}
4663
4664// String returns the string representation
4665func (s UpdateInputOutput) String() string {
4666	return awsutil.Prettify(s)
4667}
4668
4669// GoString returns the string representation
4670func (s UpdateInputOutput) GoString() string {
4671	return s.String()
4672}
4673
4674// SetInputConfiguration sets the InputConfiguration field's value.
4675func (s *UpdateInputOutput) SetInputConfiguration(v *InputConfiguration) *UpdateInputOutput {
4676	s.InputConfiguration = v
4677	return s
4678}
4679
4680const (
4681	// DetectorModelVersionStatusActive is a DetectorModelVersionStatus enum value
4682	DetectorModelVersionStatusActive = "ACTIVE"
4683
4684	// DetectorModelVersionStatusActivating is a DetectorModelVersionStatus enum value
4685	DetectorModelVersionStatusActivating = "ACTIVATING"
4686
4687	// DetectorModelVersionStatusInactive is a DetectorModelVersionStatus enum value
4688	DetectorModelVersionStatusInactive = "INACTIVE"
4689
4690	// DetectorModelVersionStatusDeprecated is a DetectorModelVersionStatus enum value
4691	DetectorModelVersionStatusDeprecated = "DEPRECATED"
4692
4693	// DetectorModelVersionStatusDraft is a DetectorModelVersionStatus enum value
4694	DetectorModelVersionStatusDraft = "DRAFT"
4695
4696	// DetectorModelVersionStatusPaused is a DetectorModelVersionStatus enum value
4697	DetectorModelVersionStatusPaused = "PAUSED"
4698
4699	// DetectorModelVersionStatusFailed is a DetectorModelVersionStatus enum value
4700	DetectorModelVersionStatusFailed = "FAILED"
4701)
4702
4703const (
4704	// EvaluationMethodBatch is a EvaluationMethod enum value
4705	EvaluationMethodBatch = "BATCH"
4706
4707	// EvaluationMethodSerial is a EvaluationMethod enum value
4708	EvaluationMethodSerial = "SERIAL"
4709)
4710
4711const (
4712	// InputStatusCreating is a InputStatus enum value
4713	InputStatusCreating = "CREATING"
4714
4715	// InputStatusUpdating is a InputStatus enum value
4716	InputStatusUpdating = "UPDATING"
4717
4718	// InputStatusActive is a InputStatus enum value
4719	InputStatusActive = "ACTIVE"
4720
4721	// InputStatusDeleting is a InputStatus enum value
4722	InputStatusDeleting = "DELETING"
4723)
4724
4725const (
4726	// LoggingLevelError is a LoggingLevel enum value
4727	LoggingLevelError = "ERROR"
4728
4729	// LoggingLevelInfo is a LoggingLevel enum value
4730	LoggingLevelInfo = "INFO"
4731
4732	// LoggingLevelDebug is a LoggingLevel enum value
4733	LoggingLevelDebug = "DEBUG"
4734)
4735