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 Types:
70//   * InvalidRequestException
71//   The request was invalid.
72//
73//   * ResourceInUseException
74//   The resource is in use.
75//
76//   * ResourceAlreadyExistsException
77//   The resource already exists.
78//
79//   * LimitExceededException
80//   A limit was exceeded.
81//
82//   * ThrottlingException
83//   The request could not be completed due to throttling.
84//
85//   * InternalFailureException
86//   An internal failure occurred.
87//
88//   * 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 Types:
167//   * InvalidRequestException
168//   The request was invalid.
169//
170//   * ThrottlingException
171//   The request could not be completed due to throttling.
172//
173//   * InternalFailureException
174//   An internal failure occurred.
175//
176//   * ServiceUnavailableException
177//   The service is currently unavailable.
178//
179//   * 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 Types:
260//   * InvalidRequestException
261//   The request was invalid.
262//
263//   * ResourceInUseException
264//   The resource is in use.
265//
266//   * ResourceNotFoundException
267//   The resource was not found.
268//
269//   * ThrottlingException
270//   The request could not be completed due to throttling.
271//
272//   * InternalFailureException
273//   An internal failure occurred.
274//
275//   * 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 Types:
355//   * InvalidRequestException
356//   The request was invalid.
357//
358//   * ResourceNotFoundException
359//   The resource was not found.
360//
361//   * ThrottlingException
362//   The request could not be completed due to throttling.
363//
364//   * InternalFailureException
365//   An internal failure occurred.
366//
367//   * ServiceUnavailableException
368//   The service is currently unavailable.
369//
370//   * 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, information
440// 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 Types:
450//   * InvalidRequestException
451//   The request was invalid.
452//
453//   * ResourceNotFoundException
454//   The resource was not found.
455//
456//   * ThrottlingException
457//   The request could not be completed due to throttling.
458//
459//   * InternalFailureException
460//   An internal failure occurred.
461//
462//   * 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 Types:
541//   * InvalidRequestException
542//   The request was invalid.
543//
544//   * ResourceNotFoundException
545//   The resource was not found.
546//
547//   * ThrottlingException
548//   The request could not be completed due to throttling.
549//
550//   * InternalFailureException
551//   An internal failure occurred.
552//
553//   * 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 Types:
632//   * InvalidRequestException
633//   The request was invalid.
634//
635//   * ThrottlingException
636//   The request could not be completed due to throttling.
637//
638//   * InternalFailureException
639//   An internal failure occurred.
640//
641//   * ResourceNotFoundException
642//   The resource was not found.
643//
644//   * ServiceUnavailableException
645//   The service is currently unavailable.
646//
647//   * 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 Types:
727//   * InvalidRequestException
728//   The request was invalid.
729//
730//   * ResourceNotFoundException
731//   The resource was not found.
732//
733//   * ThrottlingException
734//   The request could not be completed due to throttling.
735//
736//   * InternalFailureException
737//   An internal failure occurred.
738//
739//   * 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 Types:
819//   * InvalidRequestException
820//   The request was invalid.
821//
822//   * ThrottlingException
823//   The request could not be completed due to throttling.
824//
825//   * InternalFailureException
826//   An internal failure occurred.
827//
828//   * 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 Types:
907//   * InvalidRequestException
908//   The request was invalid.
909//
910//   * ThrottlingException
911//   The request could not be completed due to throttling.
912//
913//   * InternalFailureException
914//   An internal failure occurred.
915//
916//   * 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 Types:
995//   * InvalidRequestException
996//   The request was invalid.
997//
998//   * ResourceNotFoundException
999//   The resource was not found.
1000//
1001//   * ResourceInUseException
1002//   The resource is in use.
1003//
1004//   * ThrottlingException
1005//   The request could not be completed due to throttling.
1006//
1007//   * 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 minute
1080// for the change to take effect. If you change the policy attached to the role
1081// you specified in the roleArn field (for example, to correct an invalid policy),
1082// 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 Types:
1092//   * InvalidRequestException
1093//   The request was invalid.
1094//
1095//   * ThrottlingException
1096//   The request could not be completed due to throttling.
1097//
1098//   * InternalFailureException
1099//   An internal failure occurred.
1100//
1101//   * ServiceUnavailableException
1102//   The service is currently unavailable.
1103//
1104//   * UnsupportedOperationException
1105//   The requested operation is not supported.
1106//
1107//   * 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 Types:
1188//   * InvalidRequestException
1189//   The request was invalid.
1190//
1191//   * ResourceNotFoundException
1192//   The resource was not found.
1193//
1194//   * ResourceInUseException
1195//   The resource is in use.
1196//
1197//   * ThrottlingException
1198//   The request could not be completed due to throttling.
1199//
1200//   * LimitExceededException
1201//   A limit was exceeded.
1202//
1203//   * 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 Types:
1283//   * InvalidRequestException
1284//   The request was invalid.
1285//
1286//   * ResourceNotFoundException
1287//   The resource was not found.
1288//
1289//   * ResourceInUseException
1290//   The resource is in use.
1291//
1292//   * ThrottlingException
1293//   The request could not be completed due to throttling.
1294//
1295//   * 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 Types:
1375//   * InvalidRequestException
1376//   The request was invalid.
1377//
1378//   * ResourceInUseException
1379//   The resource is in use.
1380//
1381//   * ResourceNotFoundException
1382//   The resource was not found.
1383//
1384//   * ThrottlingException
1385//   The request could not be completed due to throttling.
1386//
1387//   * InternalFailureException
1388//   An internal failure occurred.
1389//
1390//   * 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 Types:
1469//   * InvalidRequestException
1470//   The request was invalid.
1471//
1472//   * ThrottlingException
1473//   The request could not be completed due to throttling.
1474//
1475//   * ResourceNotFoundException
1476//   The resource was not found.
1477//
1478//   * InternalFailureException
1479//   An internal failure occurred.
1480//
1481//   * ServiceUnavailableException
1482//   The service is currently unavailable.
1483//
1484//   * 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 AWS IoT Events input, passing in information about the detector
1510// model instance and the event that 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 that triggered
1560	// the action to an Amazon Kinesis Data Firehose delivery stream.
1561	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
1562
1563	// Sends an AWS IoT Events input, passing in information about the detector
1564	// model instance and the event that 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 a Lambda function, passing in information about the detector model
1571	// instance and the event that 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 that 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. 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 AWS IoT Events (BatchPutMessage).
1732	// Each such message contains a JSON payload. The attribute (and its paired
1733	// value) specified here are available for use in the condition expressions
1734	// 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	// Information about the order in which events are evaluated and how actions
1833	// are executed.
1834	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
1835
1836	// The input attribute key used to identify a device or system to create a detector
1837	// (an instance of the detector model) and then to route each input received
1838	// to the appropriate detector (instance). This parameter uses a JSON-path expression
1839	// in the message payload of each input to specify the attribute-value pair
1840	// that is used to identify the device associated with the input.
1841	Key *string `locationName:"key" min:"1" type:"string"`
1842
1843	// The ARN of the role that grants permission to AWS IoT Events to perform its
1844	// operations.
1845	//
1846	// RoleArn is a required field
1847	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
1848
1849	// Metadata that can be used to manage the detector model.
1850	Tags []*Tag `locationName:"tags" type:"list"`
1851}
1852
1853// String returns the string representation
1854func (s CreateDetectorModelInput) String() string {
1855	return awsutil.Prettify(s)
1856}
1857
1858// GoString returns the string representation
1859func (s CreateDetectorModelInput) GoString() string {
1860	return s.String()
1861}
1862
1863// Validate inspects the fields of the type to determine if they are valid.
1864func (s *CreateDetectorModelInput) Validate() error {
1865	invalidParams := request.ErrInvalidParams{Context: "CreateDetectorModelInput"}
1866	if s.DetectorModelDefinition == nil {
1867		invalidParams.Add(request.NewErrParamRequired("DetectorModelDefinition"))
1868	}
1869	if s.DetectorModelName == nil {
1870		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
1871	}
1872	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
1873		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
1874	}
1875	if s.Key != nil && len(*s.Key) < 1 {
1876		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
1877	}
1878	if s.RoleArn == nil {
1879		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
1880	}
1881	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
1882		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
1883	}
1884	if s.DetectorModelDefinition != nil {
1885		if err := s.DetectorModelDefinition.Validate(); err != nil {
1886			invalidParams.AddNested("DetectorModelDefinition", err.(request.ErrInvalidParams))
1887		}
1888	}
1889	if s.Tags != nil {
1890		for i, v := range s.Tags {
1891			if v == nil {
1892				continue
1893			}
1894			if err := v.Validate(); err != nil {
1895				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
1896			}
1897		}
1898	}
1899
1900	if invalidParams.Len() > 0 {
1901		return invalidParams
1902	}
1903	return nil
1904}
1905
1906// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
1907func (s *CreateDetectorModelInput) SetDetectorModelDefinition(v *DetectorModelDefinition) *CreateDetectorModelInput {
1908	s.DetectorModelDefinition = v
1909	return s
1910}
1911
1912// SetDetectorModelDescription sets the DetectorModelDescription field's value.
1913func (s *CreateDetectorModelInput) SetDetectorModelDescription(v string) *CreateDetectorModelInput {
1914	s.DetectorModelDescription = &v
1915	return s
1916}
1917
1918// SetDetectorModelName sets the DetectorModelName field's value.
1919func (s *CreateDetectorModelInput) SetDetectorModelName(v string) *CreateDetectorModelInput {
1920	s.DetectorModelName = &v
1921	return s
1922}
1923
1924// SetEvaluationMethod sets the EvaluationMethod field's value.
1925func (s *CreateDetectorModelInput) SetEvaluationMethod(v string) *CreateDetectorModelInput {
1926	s.EvaluationMethod = &v
1927	return s
1928}
1929
1930// SetKey sets the Key field's value.
1931func (s *CreateDetectorModelInput) SetKey(v string) *CreateDetectorModelInput {
1932	s.Key = &v
1933	return s
1934}
1935
1936// SetRoleArn sets the RoleArn field's value.
1937func (s *CreateDetectorModelInput) SetRoleArn(v string) *CreateDetectorModelInput {
1938	s.RoleArn = &v
1939	return s
1940}
1941
1942// SetTags sets the Tags field's value.
1943func (s *CreateDetectorModelInput) SetTags(v []*Tag) *CreateDetectorModelInput {
1944	s.Tags = v
1945	return s
1946}
1947
1948type CreateDetectorModelOutput struct {
1949	_ struct{} `type:"structure"`
1950
1951	// Information about how the detector model is configured.
1952	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
1953}
1954
1955// String returns the string representation
1956func (s CreateDetectorModelOutput) String() string {
1957	return awsutil.Prettify(s)
1958}
1959
1960// GoString returns the string representation
1961func (s CreateDetectorModelOutput) GoString() string {
1962	return s.String()
1963}
1964
1965// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
1966func (s *CreateDetectorModelOutput) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *CreateDetectorModelOutput {
1967	s.DetectorModelConfiguration = v
1968	return s
1969}
1970
1971type CreateInputInput struct {
1972	_ struct{} `type:"structure"`
1973
1974	// The definition of the input.
1975	//
1976	// InputDefinition is a required field
1977	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure" required:"true"`
1978
1979	// A brief description of the input.
1980	InputDescription *string `locationName:"inputDescription" type:"string"`
1981
1982	// The name you want to give to the input.
1983	//
1984	// InputName is a required field
1985	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
1986
1987	// Metadata that can be used to manage the input.
1988	Tags []*Tag `locationName:"tags" type:"list"`
1989}
1990
1991// String returns the string representation
1992func (s CreateInputInput) String() string {
1993	return awsutil.Prettify(s)
1994}
1995
1996// GoString returns the string representation
1997func (s CreateInputInput) GoString() string {
1998	return s.String()
1999}
2000
2001// Validate inspects the fields of the type to determine if they are valid.
2002func (s *CreateInputInput) Validate() error {
2003	invalidParams := request.ErrInvalidParams{Context: "CreateInputInput"}
2004	if s.InputDefinition == nil {
2005		invalidParams.Add(request.NewErrParamRequired("InputDefinition"))
2006	}
2007	if s.InputName == nil {
2008		invalidParams.Add(request.NewErrParamRequired("InputName"))
2009	}
2010	if s.InputName != nil && len(*s.InputName) < 1 {
2011		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
2012	}
2013	if s.InputDefinition != nil {
2014		if err := s.InputDefinition.Validate(); err != nil {
2015			invalidParams.AddNested("InputDefinition", err.(request.ErrInvalidParams))
2016		}
2017	}
2018	if s.Tags != nil {
2019		for i, v := range s.Tags {
2020			if v == nil {
2021				continue
2022			}
2023			if err := v.Validate(); err != nil {
2024				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2025			}
2026		}
2027	}
2028
2029	if invalidParams.Len() > 0 {
2030		return invalidParams
2031	}
2032	return nil
2033}
2034
2035// SetInputDefinition sets the InputDefinition field's value.
2036func (s *CreateInputInput) SetInputDefinition(v *InputDefinition) *CreateInputInput {
2037	s.InputDefinition = v
2038	return s
2039}
2040
2041// SetInputDescription sets the InputDescription field's value.
2042func (s *CreateInputInput) SetInputDescription(v string) *CreateInputInput {
2043	s.InputDescription = &v
2044	return s
2045}
2046
2047// SetInputName sets the InputName field's value.
2048func (s *CreateInputInput) SetInputName(v string) *CreateInputInput {
2049	s.InputName = &v
2050	return s
2051}
2052
2053// SetTags sets the Tags field's value.
2054func (s *CreateInputInput) SetTags(v []*Tag) *CreateInputInput {
2055	s.Tags = v
2056	return s
2057}
2058
2059type CreateInputOutput struct {
2060	_ struct{} `type:"structure"`
2061
2062	// Information about the configuration of the input.
2063	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
2064}
2065
2066// String returns the string representation
2067func (s CreateInputOutput) String() string {
2068	return awsutil.Prettify(s)
2069}
2070
2071// GoString returns the string representation
2072func (s CreateInputOutput) GoString() string {
2073	return s.String()
2074}
2075
2076// SetInputConfiguration sets the InputConfiguration field's value.
2077func (s *CreateInputOutput) SetInputConfiguration(v *InputConfiguration) *CreateInputOutput {
2078	s.InputConfiguration = v
2079	return s
2080}
2081
2082type DeleteDetectorModelInput struct {
2083	_ struct{} `type:"structure"`
2084
2085	// The name of the detector model to be deleted.
2086	//
2087	// DetectorModelName is a required field
2088	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
2089}
2090
2091// String returns the string representation
2092func (s DeleteDetectorModelInput) String() string {
2093	return awsutil.Prettify(s)
2094}
2095
2096// GoString returns the string representation
2097func (s DeleteDetectorModelInput) GoString() string {
2098	return s.String()
2099}
2100
2101// Validate inspects the fields of the type to determine if they are valid.
2102func (s *DeleteDetectorModelInput) Validate() error {
2103	invalidParams := request.ErrInvalidParams{Context: "DeleteDetectorModelInput"}
2104	if s.DetectorModelName == nil {
2105		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
2106	}
2107	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
2108		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
2109	}
2110
2111	if invalidParams.Len() > 0 {
2112		return invalidParams
2113	}
2114	return nil
2115}
2116
2117// SetDetectorModelName sets the DetectorModelName field's value.
2118func (s *DeleteDetectorModelInput) SetDetectorModelName(v string) *DeleteDetectorModelInput {
2119	s.DetectorModelName = &v
2120	return s
2121}
2122
2123type DeleteDetectorModelOutput struct {
2124	_ struct{} `type:"structure"`
2125}
2126
2127// String returns the string representation
2128func (s DeleteDetectorModelOutput) String() string {
2129	return awsutil.Prettify(s)
2130}
2131
2132// GoString returns the string representation
2133func (s DeleteDetectorModelOutput) GoString() string {
2134	return s.String()
2135}
2136
2137type DeleteInputInput struct {
2138	_ struct{} `type:"structure"`
2139
2140	// The name of the input to delete.
2141	//
2142	// InputName is a required field
2143	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
2144}
2145
2146// String returns the string representation
2147func (s DeleteInputInput) String() string {
2148	return awsutil.Prettify(s)
2149}
2150
2151// GoString returns the string representation
2152func (s DeleteInputInput) GoString() string {
2153	return s.String()
2154}
2155
2156// Validate inspects the fields of the type to determine if they are valid.
2157func (s *DeleteInputInput) Validate() error {
2158	invalidParams := request.ErrInvalidParams{Context: "DeleteInputInput"}
2159	if s.InputName == nil {
2160		invalidParams.Add(request.NewErrParamRequired("InputName"))
2161	}
2162	if s.InputName != nil && len(*s.InputName) < 1 {
2163		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
2164	}
2165
2166	if invalidParams.Len() > 0 {
2167		return invalidParams
2168	}
2169	return nil
2170}
2171
2172// SetInputName sets the InputName field's value.
2173func (s *DeleteInputInput) SetInputName(v string) *DeleteInputInput {
2174	s.InputName = &v
2175	return s
2176}
2177
2178type DeleteInputOutput struct {
2179	_ struct{} `type:"structure"`
2180}
2181
2182// String returns the string representation
2183func (s DeleteInputOutput) String() string {
2184	return awsutil.Prettify(s)
2185}
2186
2187// GoString returns the string representation
2188func (s DeleteInputOutput) GoString() string {
2189	return s.String()
2190}
2191
2192type DescribeDetectorModelInput struct {
2193	_ struct{} `type:"structure"`
2194
2195	// The name of the detector model.
2196	//
2197	// DetectorModelName is a required field
2198	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
2199
2200	// The version of the detector model.
2201	DetectorModelVersion *string `location:"querystring" locationName:"version" min:"1" type:"string"`
2202}
2203
2204// String returns the string representation
2205func (s DescribeDetectorModelInput) String() string {
2206	return awsutil.Prettify(s)
2207}
2208
2209// GoString returns the string representation
2210func (s DescribeDetectorModelInput) GoString() string {
2211	return s.String()
2212}
2213
2214// Validate inspects the fields of the type to determine if they are valid.
2215func (s *DescribeDetectorModelInput) Validate() error {
2216	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectorModelInput"}
2217	if s.DetectorModelName == nil {
2218		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
2219	}
2220	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
2221		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
2222	}
2223	if s.DetectorModelVersion != nil && len(*s.DetectorModelVersion) < 1 {
2224		invalidParams.Add(request.NewErrParamMinLen("DetectorModelVersion", 1))
2225	}
2226
2227	if invalidParams.Len() > 0 {
2228		return invalidParams
2229	}
2230	return nil
2231}
2232
2233// SetDetectorModelName sets the DetectorModelName field's value.
2234func (s *DescribeDetectorModelInput) SetDetectorModelName(v string) *DescribeDetectorModelInput {
2235	s.DetectorModelName = &v
2236	return s
2237}
2238
2239// SetDetectorModelVersion sets the DetectorModelVersion field's value.
2240func (s *DescribeDetectorModelInput) SetDetectorModelVersion(v string) *DescribeDetectorModelInput {
2241	s.DetectorModelVersion = &v
2242	return s
2243}
2244
2245type DescribeDetectorModelOutput struct {
2246	_ struct{} `type:"structure"`
2247
2248	// Information about the detector model.
2249	DetectorModel *DetectorModel `locationName:"detectorModel" type:"structure"`
2250}
2251
2252// String returns the string representation
2253func (s DescribeDetectorModelOutput) String() string {
2254	return awsutil.Prettify(s)
2255}
2256
2257// GoString returns the string representation
2258func (s DescribeDetectorModelOutput) GoString() string {
2259	return s.String()
2260}
2261
2262// SetDetectorModel sets the DetectorModel field's value.
2263func (s *DescribeDetectorModelOutput) SetDetectorModel(v *DetectorModel) *DescribeDetectorModelOutput {
2264	s.DetectorModel = v
2265	return s
2266}
2267
2268type DescribeInputInput struct {
2269	_ struct{} `type:"structure"`
2270
2271	// The name of the input.
2272	//
2273	// InputName is a required field
2274	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
2275}
2276
2277// String returns the string representation
2278func (s DescribeInputInput) String() string {
2279	return awsutil.Prettify(s)
2280}
2281
2282// GoString returns the string representation
2283func (s DescribeInputInput) GoString() string {
2284	return s.String()
2285}
2286
2287// Validate inspects the fields of the type to determine if they are valid.
2288func (s *DescribeInputInput) Validate() error {
2289	invalidParams := request.ErrInvalidParams{Context: "DescribeInputInput"}
2290	if s.InputName == nil {
2291		invalidParams.Add(request.NewErrParamRequired("InputName"))
2292	}
2293	if s.InputName != nil && len(*s.InputName) < 1 {
2294		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
2295	}
2296
2297	if invalidParams.Len() > 0 {
2298		return invalidParams
2299	}
2300	return nil
2301}
2302
2303// SetInputName sets the InputName field's value.
2304func (s *DescribeInputInput) SetInputName(v string) *DescribeInputInput {
2305	s.InputName = &v
2306	return s
2307}
2308
2309type DescribeInputOutput struct {
2310	_ struct{} `type:"structure"`
2311
2312	// Information about the input.
2313	Input *Input `locationName:"input" type:"structure"`
2314}
2315
2316// String returns the string representation
2317func (s DescribeInputOutput) String() string {
2318	return awsutil.Prettify(s)
2319}
2320
2321// GoString returns the string representation
2322func (s DescribeInputOutput) GoString() string {
2323	return s.String()
2324}
2325
2326// SetInput sets the Input field's value.
2327func (s *DescribeInputOutput) SetInput(v *Input) *DescribeInputOutput {
2328	s.Input = v
2329	return s
2330}
2331
2332type DescribeLoggingOptionsInput struct {
2333	_ struct{} `type:"structure"`
2334}
2335
2336// String returns the string representation
2337func (s DescribeLoggingOptionsInput) String() string {
2338	return awsutil.Prettify(s)
2339}
2340
2341// GoString returns the string representation
2342func (s DescribeLoggingOptionsInput) GoString() string {
2343	return s.String()
2344}
2345
2346type DescribeLoggingOptionsOutput struct {
2347	_ struct{} `type:"structure"`
2348
2349	// The current settings of the AWS IoT Events logging options.
2350	LoggingOptions *LoggingOptions `locationName:"loggingOptions" type:"structure"`
2351}
2352
2353// String returns the string representation
2354func (s DescribeLoggingOptionsOutput) String() string {
2355	return awsutil.Prettify(s)
2356}
2357
2358// GoString returns the string representation
2359func (s DescribeLoggingOptionsOutput) GoString() string {
2360	return s.String()
2361}
2362
2363// SetLoggingOptions sets the LoggingOptions field's value.
2364func (s *DescribeLoggingOptionsOutput) SetLoggingOptions(v *LoggingOptions) *DescribeLoggingOptionsOutput {
2365	s.LoggingOptions = v
2366	return s
2367}
2368
2369// The detector model and the specific detectors (instances) for which the logging
2370// level is given.
2371type DetectorDebugOption struct {
2372	_ struct{} `type:"structure"`
2373
2374	// The name of the detector model.
2375	//
2376	// DetectorModelName is a required field
2377	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string" required:"true"`
2378
2379	// The value of the input attribute key used to create the detector (the instance
2380	// of the detector model).
2381	KeyValue *string `locationName:"keyValue" min:"1" type:"string"`
2382}
2383
2384// String returns the string representation
2385func (s DetectorDebugOption) String() string {
2386	return awsutil.Prettify(s)
2387}
2388
2389// GoString returns the string representation
2390func (s DetectorDebugOption) GoString() string {
2391	return s.String()
2392}
2393
2394// Validate inspects the fields of the type to determine if they are valid.
2395func (s *DetectorDebugOption) Validate() error {
2396	invalidParams := request.ErrInvalidParams{Context: "DetectorDebugOption"}
2397	if s.DetectorModelName == nil {
2398		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
2399	}
2400	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
2401		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
2402	}
2403	if s.KeyValue != nil && len(*s.KeyValue) < 1 {
2404		invalidParams.Add(request.NewErrParamMinLen("KeyValue", 1))
2405	}
2406
2407	if invalidParams.Len() > 0 {
2408		return invalidParams
2409	}
2410	return nil
2411}
2412
2413// SetDetectorModelName sets the DetectorModelName field's value.
2414func (s *DetectorDebugOption) SetDetectorModelName(v string) *DetectorDebugOption {
2415	s.DetectorModelName = &v
2416	return s
2417}
2418
2419// SetKeyValue sets the KeyValue field's value.
2420func (s *DetectorDebugOption) SetKeyValue(v string) *DetectorDebugOption {
2421	s.KeyValue = &v
2422	return s
2423}
2424
2425// Information about the detector model.
2426type DetectorModel struct {
2427	_ struct{} `type:"structure"`
2428
2429	// Information about how the detector is configured.
2430	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
2431
2432	// Information that defines how a detector operates.
2433	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure"`
2434}
2435
2436// String returns the string representation
2437func (s DetectorModel) String() string {
2438	return awsutil.Prettify(s)
2439}
2440
2441// GoString returns the string representation
2442func (s DetectorModel) GoString() string {
2443	return s.String()
2444}
2445
2446// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
2447func (s *DetectorModel) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *DetectorModel {
2448	s.DetectorModelConfiguration = v
2449	return s
2450}
2451
2452// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
2453func (s *DetectorModel) SetDetectorModelDefinition(v *DetectorModelDefinition) *DetectorModel {
2454	s.DetectorModelDefinition = v
2455	return s
2456}
2457
2458// Information about how the detector model is configured.
2459type DetectorModelConfiguration struct {
2460	_ struct{} `type:"structure"`
2461
2462	// The time the detector model was created.
2463	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
2464
2465	// The ARN of the detector model.
2466	DetectorModelArn *string `locationName:"detectorModelArn" type:"string"`
2467
2468	// A brief description of the detector model.
2469	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
2470
2471	// The name of the detector model.
2472	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
2473
2474	// The version of the detector model.
2475	DetectorModelVersion *string `locationName:"detectorModelVersion" min:"1" type:"string"`
2476
2477	// Information about the order in which events are evaluated and how actions
2478	// are executed.
2479	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
2480
2481	// The input attribute key used to identify a device or system to create a detector
2482	// (an instance of the detector model) and then to route each input received
2483	// to the appropriate detector (instance). This parameter uses a JSON-path expression
2484	// in the message payload of each input to specify the attribute-value pair
2485	// that is used to identify the device associated with the input.
2486	Key *string `locationName:"key" min:"1" type:"string"`
2487
2488	// The time the detector model was last updated.
2489	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
2490
2491	// The ARN of the role that grants permission to AWS IoT Events to perform its
2492	// operations.
2493	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
2494
2495	// The status of the detector model.
2496	Status *string `locationName:"status" type:"string" enum:"DetectorModelVersionStatus"`
2497}
2498
2499// String returns the string representation
2500func (s DetectorModelConfiguration) String() string {
2501	return awsutil.Prettify(s)
2502}
2503
2504// GoString returns the string representation
2505func (s DetectorModelConfiguration) GoString() string {
2506	return s.String()
2507}
2508
2509// SetCreationTime sets the CreationTime field's value.
2510func (s *DetectorModelConfiguration) SetCreationTime(v time.Time) *DetectorModelConfiguration {
2511	s.CreationTime = &v
2512	return s
2513}
2514
2515// SetDetectorModelArn sets the DetectorModelArn field's value.
2516func (s *DetectorModelConfiguration) SetDetectorModelArn(v string) *DetectorModelConfiguration {
2517	s.DetectorModelArn = &v
2518	return s
2519}
2520
2521// SetDetectorModelDescription sets the DetectorModelDescription field's value.
2522func (s *DetectorModelConfiguration) SetDetectorModelDescription(v string) *DetectorModelConfiguration {
2523	s.DetectorModelDescription = &v
2524	return s
2525}
2526
2527// SetDetectorModelName sets the DetectorModelName field's value.
2528func (s *DetectorModelConfiguration) SetDetectorModelName(v string) *DetectorModelConfiguration {
2529	s.DetectorModelName = &v
2530	return s
2531}
2532
2533// SetDetectorModelVersion sets the DetectorModelVersion field's value.
2534func (s *DetectorModelConfiguration) SetDetectorModelVersion(v string) *DetectorModelConfiguration {
2535	s.DetectorModelVersion = &v
2536	return s
2537}
2538
2539// SetEvaluationMethod sets the EvaluationMethod field's value.
2540func (s *DetectorModelConfiguration) SetEvaluationMethod(v string) *DetectorModelConfiguration {
2541	s.EvaluationMethod = &v
2542	return s
2543}
2544
2545// SetKey sets the Key field's value.
2546func (s *DetectorModelConfiguration) SetKey(v string) *DetectorModelConfiguration {
2547	s.Key = &v
2548	return s
2549}
2550
2551// SetLastUpdateTime sets the LastUpdateTime field's value.
2552func (s *DetectorModelConfiguration) SetLastUpdateTime(v time.Time) *DetectorModelConfiguration {
2553	s.LastUpdateTime = &v
2554	return s
2555}
2556
2557// SetRoleArn sets the RoleArn field's value.
2558func (s *DetectorModelConfiguration) SetRoleArn(v string) *DetectorModelConfiguration {
2559	s.RoleArn = &v
2560	return s
2561}
2562
2563// SetStatus sets the Status field's value.
2564func (s *DetectorModelConfiguration) SetStatus(v string) *DetectorModelConfiguration {
2565	s.Status = &v
2566	return s
2567}
2568
2569// Information that defines how a detector operates.
2570type DetectorModelDefinition struct {
2571	_ struct{} `type:"structure"`
2572
2573	// The state that is entered at the creation of each detector (instance).
2574	//
2575	// InitialStateName is a required field
2576	InitialStateName *string `locationName:"initialStateName" min:"1" type:"string" required:"true"`
2577
2578	// Information about the states of the detector.
2579	//
2580	// States is a required field
2581	States []*State `locationName:"states" min:"1" type:"list" required:"true"`
2582}
2583
2584// String returns the string representation
2585func (s DetectorModelDefinition) String() string {
2586	return awsutil.Prettify(s)
2587}
2588
2589// GoString returns the string representation
2590func (s DetectorModelDefinition) GoString() string {
2591	return s.String()
2592}
2593
2594// Validate inspects the fields of the type to determine if they are valid.
2595func (s *DetectorModelDefinition) Validate() error {
2596	invalidParams := request.ErrInvalidParams{Context: "DetectorModelDefinition"}
2597	if s.InitialStateName == nil {
2598		invalidParams.Add(request.NewErrParamRequired("InitialStateName"))
2599	}
2600	if s.InitialStateName != nil && len(*s.InitialStateName) < 1 {
2601		invalidParams.Add(request.NewErrParamMinLen("InitialStateName", 1))
2602	}
2603	if s.States == nil {
2604		invalidParams.Add(request.NewErrParamRequired("States"))
2605	}
2606	if s.States != nil && len(s.States) < 1 {
2607		invalidParams.Add(request.NewErrParamMinLen("States", 1))
2608	}
2609	if s.States != nil {
2610		for i, v := range s.States {
2611			if v == nil {
2612				continue
2613			}
2614			if err := v.Validate(); err != nil {
2615				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "States", i), err.(request.ErrInvalidParams))
2616			}
2617		}
2618	}
2619
2620	if invalidParams.Len() > 0 {
2621		return invalidParams
2622	}
2623	return nil
2624}
2625
2626// SetInitialStateName sets the InitialStateName field's value.
2627func (s *DetectorModelDefinition) SetInitialStateName(v string) *DetectorModelDefinition {
2628	s.InitialStateName = &v
2629	return s
2630}
2631
2632// SetStates sets the States field's value.
2633func (s *DetectorModelDefinition) SetStates(v []*State) *DetectorModelDefinition {
2634	s.States = v
2635	return s
2636}
2637
2638// Information about the detector model.
2639type DetectorModelSummary struct {
2640	_ struct{} `type:"structure"`
2641
2642	// The time the detector model was created.
2643	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
2644
2645	// A brief description of the detector model.
2646	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
2647
2648	// The name of the detector model.
2649	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
2650}
2651
2652// String returns the string representation
2653func (s DetectorModelSummary) String() string {
2654	return awsutil.Prettify(s)
2655}
2656
2657// GoString returns the string representation
2658func (s DetectorModelSummary) GoString() string {
2659	return s.String()
2660}
2661
2662// SetCreationTime sets the CreationTime field's value.
2663func (s *DetectorModelSummary) SetCreationTime(v time.Time) *DetectorModelSummary {
2664	s.CreationTime = &v
2665	return s
2666}
2667
2668// SetDetectorModelDescription sets the DetectorModelDescription field's value.
2669func (s *DetectorModelSummary) SetDetectorModelDescription(v string) *DetectorModelSummary {
2670	s.DetectorModelDescription = &v
2671	return s
2672}
2673
2674// SetDetectorModelName sets the DetectorModelName field's value.
2675func (s *DetectorModelSummary) SetDetectorModelName(v string) *DetectorModelSummary {
2676	s.DetectorModelName = &v
2677	return s
2678}
2679
2680// Information about the detector model version.
2681type DetectorModelVersionSummary struct {
2682	_ struct{} `type:"structure"`
2683
2684	// The time the detector model version was created.
2685	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
2686
2687	// The ARN of the detector model version.
2688	DetectorModelArn *string `locationName:"detectorModelArn" type:"string"`
2689
2690	// The name of the detector model.
2691	DetectorModelName *string `locationName:"detectorModelName" min:"1" type:"string"`
2692
2693	// The ID of the detector model version.
2694	DetectorModelVersion *string `locationName:"detectorModelVersion" min:"1" type:"string"`
2695
2696	// Information about the order in which events are evaluated and how actions
2697	// are executed.
2698	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
2699
2700	// The last time the detector model version was updated.
2701	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
2702
2703	// The ARN of the role that grants the detector model permission to perform
2704	// its tasks.
2705	RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
2706
2707	// The status of the detector model version.
2708	Status *string `locationName:"status" type:"string" enum:"DetectorModelVersionStatus"`
2709}
2710
2711// String returns the string representation
2712func (s DetectorModelVersionSummary) String() string {
2713	return awsutil.Prettify(s)
2714}
2715
2716// GoString returns the string representation
2717func (s DetectorModelVersionSummary) GoString() string {
2718	return s.String()
2719}
2720
2721// SetCreationTime sets the CreationTime field's value.
2722func (s *DetectorModelVersionSummary) SetCreationTime(v time.Time) *DetectorModelVersionSummary {
2723	s.CreationTime = &v
2724	return s
2725}
2726
2727// SetDetectorModelArn sets the DetectorModelArn field's value.
2728func (s *DetectorModelVersionSummary) SetDetectorModelArn(v string) *DetectorModelVersionSummary {
2729	s.DetectorModelArn = &v
2730	return s
2731}
2732
2733// SetDetectorModelName sets the DetectorModelName field's value.
2734func (s *DetectorModelVersionSummary) SetDetectorModelName(v string) *DetectorModelVersionSummary {
2735	s.DetectorModelName = &v
2736	return s
2737}
2738
2739// SetDetectorModelVersion sets the DetectorModelVersion field's value.
2740func (s *DetectorModelVersionSummary) SetDetectorModelVersion(v string) *DetectorModelVersionSummary {
2741	s.DetectorModelVersion = &v
2742	return s
2743}
2744
2745// SetEvaluationMethod sets the EvaluationMethod field's value.
2746func (s *DetectorModelVersionSummary) SetEvaluationMethod(v string) *DetectorModelVersionSummary {
2747	s.EvaluationMethod = &v
2748	return s
2749}
2750
2751// SetLastUpdateTime sets the LastUpdateTime field's value.
2752func (s *DetectorModelVersionSummary) SetLastUpdateTime(v time.Time) *DetectorModelVersionSummary {
2753	s.LastUpdateTime = &v
2754	return s
2755}
2756
2757// SetRoleArn sets the RoleArn field's value.
2758func (s *DetectorModelVersionSummary) SetRoleArn(v string) *DetectorModelVersionSummary {
2759	s.RoleArn = &v
2760	return s
2761}
2762
2763// SetStatus sets the Status field's value.
2764func (s *DetectorModelVersionSummary) SetStatus(v string) *DetectorModelVersionSummary {
2765	s.Status = &v
2766	return s
2767}
2768
2769// Specifies the actions to be performed when the condition evaluates to TRUE.
2770type Event struct {
2771	_ struct{} `type:"structure"`
2772
2773	// The actions to be performed.
2774	Actions []*ActionData `locationName:"actions" type:"list"`
2775
2776	// Optional. The Boolean expression that, when TRUE, causes the actions to be
2777	// performed. If not present, the actions are performed (=TRUE). If the expression
2778	// result is not a Boolean value, the actions are not performed (=FALSE).
2779	Condition *string `locationName:"condition" type:"string"`
2780
2781	// The name of the event.
2782	//
2783	// EventName is a required field
2784	EventName *string `locationName:"eventName" type:"string" required:"true"`
2785}
2786
2787// String returns the string representation
2788func (s Event) String() string {
2789	return awsutil.Prettify(s)
2790}
2791
2792// GoString returns the string representation
2793func (s Event) GoString() string {
2794	return s.String()
2795}
2796
2797// Validate inspects the fields of the type to determine if they are valid.
2798func (s *Event) Validate() error {
2799	invalidParams := request.ErrInvalidParams{Context: "Event"}
2800	if s.EventName == nil {
2801		invalidParams.Add(request.NewErrParamRequired("EventName"))
2802	}
2803	if s.Actions != nil {
2804		for i, v := range s.Actions {
2805			if v == nil {
2806				continue
2807			}
2808			if err := v.Validate(); err != nil {
2809				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
2810			}
2811		}
2812	}
2813
2814	if invalidParams.Len() > 0 {
2815		return invalidParams
2816	}
2817	return nil
2818}
2819
2820// SetActions sets the Actions field's value.
2821func (s *Event) SetActions(v []*ActionData) *Event {
2822	s.Actions = v
2823	return s
2824}
2825
2826// SetCondition sets the Condition field's value.
2827func (s *Event) SetCondition(v string) *Event {
2828	s.Condition = &v
2829	return s
2830}
2831
2832// SetEventName sets the EventName field's value.
2833func (s *Event) SetEventName(v string) *Event {
2834	s.EventName = &v
2835	return s
2836}
2837
2838// Sends information about the detector model instance and the event that triggered
2839// the action to an Amazon Kinesis Data Firehose delivery stream.
2840type FirehoseAction struct {
2841	_ struct{} `type:"structure"`
2842
2843	// The name of the Kinesis Data Firehose delivery stream where the data is written.
2844	//
2845	// DeliveryStreamName is a required field
2846	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
2847
2848	// A character separator that is used to separate records written to the Kinesis
2849	// Data Firehose delivery stream. Valid values are: '\n' (newline), '\t' (tab),
2850	// '\r\n' (Windows newline), ',' (comma).
2851	Separator *string `locationName:"separator" type:"string"`
2852}
2853
2854// String returns the string representation
2855func (s FirehoseAction) String() string {
2856	return awsutil.Prettify(s)
2857}
2858
2859// GoString returns the string representation
2860func (s FirehoseAction) GoString() string {
2861	return s.String()
2862}
2863
2864// Validate inspects the fields of the type to determine if they are valid.
2865func (s *FirehoseAction) Validate() error {
2866	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
2867	if s.DeliveryStreamName == nil {
2868		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
2869	}
2870
2871	if invalidParams.Len() > 0 {
2872		return invalidParams
2873	}
2874	return nil
2875}
2876
2877// SetDeliveryStreamName sets the DeliveryStreamName field's value.
2878func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
2879	s.DeliveryStreamName = &v
2880	return s
2881}
2882
2883// SetSeparator sets the Separator field's value.
2884func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
2885	s.Separator = &v
2886	return s
2887}
2888
2889// Information about the input.
2890type Input struct {
2891	_ struct{} `type:"structure"`
2892
2893	// Information about the configuration of an input.
2894	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
2895
2896	// The definition of the input.
2897	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure"`
2898}
2899
2900// String returns the string representation
2901func (s Input) String() string {
2902	return awsutil.Prettify(s)
2903}
2904
2905// GoString returns the string representation
2906func (s Input) GoString() string {
2907	return s.String()
2908}
2909
2910// SetInputConfiguration sets the InputConfiguration field's value.
2911func (s *Input) SetInputConfiguration(v *InputConfiguration) *Input {
2912	s.InputConfiguration = v
2913	return s
2914}
2915
2916// SetInputDefinition sets the InputDefinition field's value.
2917func (s *Input) SetInputDefinition(v *InputDefinition) *Input {
2918	s.InputDefinition = v
2919	return s
2920}
2921
2922// Information about the configuration of an input.
2923type InputConfiguration struct {
2924	_ struct{} `type:"structure"`
2925
2926	// The time the input was created.
2927	//
2928	// CreationTime is a required field
2929	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" required:"true"`
2930
2931	// The ARN of the input.
2932	//
2933	// InputArn is a required field
2934	InputArn *string `locationName:"inputArn" type:"string" required:"true"`
2935
2936	// A brief description of the input.
2937	InputDescription *string `locationName:"inputDescription" type:"string"`
2938
2939	// The name of the input.
2940	//
2941	// InputName is a required field
2942	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
2943
2944	// The last time the input was updated.
2945	//
2946	// LastUpdateTime is a required field
2947	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" required:"true"`
2948
2949	// The status of the input.
2950	//
2951	// Status is a required field
2952	Status *string `locationName:"status" type:"string" required:"true" enum:"InputStatus"`
2953}
2954
2955// String returns the string representation
2956func (s InputConfiguration) String() string {
2957	return awsutil.Prettify(s)
2958}
2959
2960// GoString returns the string representation
2961func (s InputConfiguration) GoString() string {
2962	return s.String()
2963}
2964
2965// SetCreationTime sets the CreationTime field's value.
2966func (s *InputConfiguration) SetCreationTime(v time.Time) *InputConfiguration {
2967	s.CreationTime = &v
2968	return s
2969}
2970
2971// SetInputArn sets the InputArn field's value.
2972func (s *InputConfiguration) SetInputArn(v string) *InputConfiguration {
2973	s.InputArn = &v
2974	return s
2975}
2976
2977// SetInputDescription sets the InputDescription field's value.
2978func (s *InputConfiguration) SetInputDescription(v string) *InputConfiguration {
2979	s.InputDescription = &v
2980	return s
2981}
2982
2983// SetInputName sets the InputName field's value.
2984func (s *InputConfiguration) SetInputName(v string) *InputConfiguration {
2985	s.InputName = &v
2986	return s
2987}
2988
2989// SetLastUpdateTime sets the LastUpdateTime field's value.
2990func (s *InputConfiguration) SetLastUpdateTime(v time.Time) *InputConfiguration {
2991	s.LastUpdateTime = &v
2992	return s
2993}
2994
2995// SetStatus sets the Status field's value.
2996func (s *InputConfiguration) SetStatus(v string) *InputConfiguration {
2997	s.Status = &v
2998	return s
2999}
3000
3001// The definition of the input.
3002type InputDefinition struct {
3003	_ struct{} `type:"structure"`
3004
3005	// The attributes from the JSON payload that are made available by the input.
3006	// Inputs are derived from messages sent to the AWS IoT Events system using
3007	// BatchPutMessage. Each such message contains a JSON payload, and those attributes
3008	// (and their paired values) specified here are available for use in the condition
3009	// expressions used by detectors that monitor this input.
3010	//
3011	// Attributes is a required field
3012	Attributes []*Attribute `locationName:"attributes" min:"1" type:"list" required:"true"`
3013}
3014
3015// String returns the string representation
3016func (s InputDefinition) String() string {
3017	return awsutil.Prettify(s)
3018}
3019
3020// GoString returns the string representation
3021func (s InputDefinition) GoString() string {
3022	return s.String()
3023}
3024
3025// Validate inspects the fields of the type to determine if they are valid.
3026func (s *InputDefinition) Validate() error {
3027	invalidParams := request.ErrInvalidParams{Context: "InputDefinition"}
3028	if s.Attributes == nil {
3029		invalidParams.Add(request.NewErrParamRequired("Attributes"))
3030	}
3031	if s.Attributes != nil && len(s.Attributes) < 1 {
3032		invalidParams.Add(request.NewErrParamMinLen("Attributes", 1))
3033	}
3034	if s.Attributes != nil {
3035		for i, v := range s.Attributes {
3036			if v == nil {
3037				continue
3038			}
3039			if err := v.Validate(); err != nil {
3040				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
3041			}
3042		}
3043	}
3044
3045	if invalidParams.Len() > 0 {
3046		return invalidParams
3047	}
3048	return nil
3049}
3050
3051// SetAttributes sets the Attributes field's value.
3052func (s *InputDefinition) SetAttributes(v []*Attribute) *InputDefinition {
3053	s.Attributes = v
3054	return s
3055}
3056
3057// Information about the input.
3058type InputSummary struct {
3059	_ struct{} `type:"structure"`
3060
3061	// The time the input was created.
3062	CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
3063
3064	// The ARN of the input.
3065	InputArn *string `locationName:"inputArn" type:"string"`
3066
3067	// A brief description of the input.
3068	InputDescription *string `locationName:"inputDescription" type:"string"`
3069
3070	// The name of the input.
3071	InputName *string `locationName:"inputName" min:"1" type:"string"`
3072
3073	// The last time the input was updated.
3074	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"`
3075
3076	// The status of the input.
3077	Status *string `locationName:"status" type:"string" enum:"InputStatus"`
3078}
3079
3080// String returns the string representation
3081func (s InputSummary) String() string {
3082	return awsutil.Prettify(s)
3083}
3084
3085// GoString returns the string representation
3086func (s InputSummary) GoString() string {
3087	return s.String()
3088}
3089
3090// SetCreationTime sets the CreationTime field's value.
3091func (s *InputSummary) SetCreationTime(v time.Time) *InputSummary {
3092	s.CreationTime = &v
3093	return s
3094}
3095
3096// SetInputArn sets the InputArn field's value.
3097func (s *InputSummary) SetInputArn(v string) *InputSummary {
3098	s.InputArn = &v
3099	return s
3100}
3101
3102// SetInputDescription sets the InputDescription field's value.
3103func (s *InputSummary) SetInputDescription(v string) *InputSummary {
3104	s.InputDescription = &v
3105	return s
3106}
3107
3108// SetInputName sets the InputName field's value.
3109func (s *InputSummary) SetInputName(v string) *InputSummary {
3110	s.InputName = &v
3111	return s
3112}
3113
3114// SetLastUpdateTime sets the LastUpdateTime field's value.
3115func (s *InputSummary) SetLastUpdateTime(v time.Time) *InputSummary {
3116	s.LastUpdateTime = &v
3117	return s
3118}
3119
3120// SetStatus sets the Status field's value.
3121func (s *InputSummary) SetStatus(v string) *InputSummary {
3122	s.Status = &v
3123	return s
3124}
3125
3126// An internal failure occurred.
3127type InternalFailureException struct {
3128	_            struct{}                  `type:"structure"`
3129	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3130
3131	// The message for the exception.
3132	Message_ *string `locationName:"message" type:"string"`
3133}
3134
3135// String returns the string representation
3136func (s InternalFailureException) String() string {
3137	return awsutil.Prettify(s)
3138}
3139
3140// GoString returns the string representation
3141func (s InternalFailureException) GoString() string {
3142	return s.String()
3143}
3144
3145func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
3146	return &InternalFailureException{
3147		RespMetadata: v,
3148	}
3149}
3150
3151// Code returns the exception type name.
3152func (s *InternalFailureException) Code() string {
3153	return "InternalFailureException"
3154}
3155
3156// Message returns the exception's message.
3157func (s *InternalFailureException) Message() string {
3158	if s.Message_ != nil {
3159		return *s.Message_
3160	}
3161	return ""
3162}
3163
3164// OrigErr always returns nil, satisfies awserr.Error interface.
3165func (s *InternalFailureException) OrigErr() error {
3166	return nil
3167}
3168
3169func (s *InternalFailureException) Error() string {
3170	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3171}
3172
3173// Status code returns the HTTP status code for the request's response error.
3174func (s *InternalFailureException) StatusCode() int {
3175	return s.RespMetadata.StatusCode
3176}
3177
3178// RequestID returns the service's response RequestID for request.
3179func (s *InternalFailureException) RequestID() string {
3180	return s.RespMetadata.RequestID
3181}
3182
3183// The request was invalid.
3184type InvalidRequestException struct {
3185	_            struct{}                  `type:"structure"`
3186	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3187
3188	// The message for the exception.
3189	Message_ *string `locationName:"message" type:"string"`
3190}
3191
3192// String returns the string representation
3193func (s InvalidRequestException) String() string {
3194	return awsutil.Prettify(s)
3195}
3196
3197// GoString returns the string representation
3198func (s InvalidRequestException) GoString() string {
3199	return s.String()
3200}
3201
3202func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
3203	return &InvalidRequestException{
3204		RespMetadata: v,
3205	}
3206}
3207
3208// Code returns the exception type name.
3209func (s *InvalidRequestException) Code() string {
3210	return "InvalidRequestException"
3211}
3212
3213// Message returns the exception's message.
3214func (s *InvalidRequestException) Message() string {
3215	if s.Message_ != nil {
3216		return *s.Message_
3217	}
3218	return ""
3219}
3220
3221// OrigErr always returns nil, satisfies awserr.Error interface.
3222func (s *InvalidRequestException) OrigErr() error {
3223	return nil
3224}
3225
3226func (s *InvalidRequestException) Error() string {
3227	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3228}
3229
3230// Status code returns the HTTP status code for the request's response error.
3231func (s *InvalidRequestException) StatusCode() int {
3232	return s.RespMetadata.StatusCode
3233}
3234
3235// RequestID returns the service's response RequestID for request.
3236func (s *InvalidRequestException) RequestID() string {
3237	return s.RespMetadata.RequestID
3238}
3239
3240// Information required to publish the MQTT message through the AWS IoT message
3241// broker.
3242type IotTopicPublishAction struct {
3243	_ struct{} `type:"structure"`
3244
3245	// The MQTT topic of the message. You can use a string expression that includes
3246	// variables ($variable.<variable-name>) and input values ($input.<input-name>.<path-to-datum>)
3247	// as the topic string.
3248	//
3249	// MqttTopic is a required field
3250	MqttTopic *string `locationName:"mqttTopic" min:"1" type:"string" required:"true"`
3251}
3252
3253// String returns the string representation
3254func (s IotTopicPublishAction) String() string {
3255	return awsutil.Prettify(s)
3256}
3257
3258// GoString returns the string representation
3259func (s IotTopicPublishAction) GoString() string {
3260	return s.String()
3261}
3262
3263// Validate inspects the fields of the type to determine if they are valid.
3264func (s *IotTopicPublishAction) Validate() error {
3265	invalidParams := request.ErrInvalidParams{Context: "IotTopicPublishAction"}
3266	if s.MqttTopic == nil {
3267		invalidParams.Add(request.NewErrParamRequired("MqttTopic"))
3268	}
3269	if s.MqttTopic != nil && len(*s.MqttTopic) < 1 {
3270		invalidParams.Add(request.NewErrParamMinLen("MqttTopic", 1))
3271	}
3272
3273	if invalidParams.Len() > 0 {
3274		return invalidParams
3275	}
3276	return nil
3277}
3278
3279// SetMqttTopic sets the MqttTopic field's value.
3280func (s *IotTopicPublishAction) SetMqttTopic(v string) *IotTopicPublishAction {
3281	s.MqttTopic = &v
3282	return s
3283}
3284
3285// Calls a Lambda function, passing in information about the detector model
3286// instance and the event that triggered the action.
3287type LambdaAction struct {
3288	_ struct{} `type:"structure"`
3289
3290	// The ARN of the Lambda function that is executed.
3291	//
3292	// FunctionArn is a required field
3293	FunctionArn *string `locationName:"functionArn" min:"1" type:"string" required:"true"`
3294}
3295
3296// String returns the string representation
3297func (s LambdaAction) String() string {
3298	return awsutil.Prettify(s)
3299}
3300
3301// GoString returns the string representation
3302func (s LambdaAction) GoString() string {
3303	return s.String()
3304}
3305
3306// Validate inspects the fields of the type to determine if they are valid.
3307func (s *LambdaAction) Validate() error {
3308	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
3309	if s.FunctionArn == nil {
3310		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
3311	}
3312	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
3313		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
3314	}
3315
3316	if invalidParams.Len() > 0 {
3317		return invalidParams
3318	}
3319	return nil
3320}
3321
3322// SetFunctionArn sets the FunctionArn field's value.
3323func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
3324	s.FunctionArn = &v
3325	return s
3326}
3327
3328// A limit was exceeded.
3329type LimitExceededException struct {
3330	_            struct{}                  `type:"structure"`
3331	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3332
3333	// The message for the exception.
3334	Message_ *string `locationName:"message" type:"string"`
3335}
3336
3337// String returns the string representation
3338func (s LimitExceededException) String() string {
3339	return awsutil.Prettify(s)
3340}
3341
3342// GoString returns the string representation
3343func (s LimitExceededException) GoString() string {
3344	return s.String()
3345}
3346
3347func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
3348	return &LimitExceededException{
3349		RespMetadata: v,
3350	}
3351}
3352
3353// Code returns the exception type name.
3354func (s *LimitExceededException) Code() string {
3355	return "LimitExceededException"
3356}
3357
3358// Message returns the exception's message.
3359func (s *LimitExceededException) Message() string {
3360	if s.Message_ != nil {
3361		return *s.Message_
3362	}
3363	return ""
3364}
3365
3366// OrigErr always returns nil, satisfies awserr.Error interface.
3367func (s *LimitExceededException) OrigErr() error {
3368	return nil
3369}
3370
3371func (s *LimitExceededException) Error() string {
3372	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3373}
3374
3375// Status code returns the HTTP status code for the request's response error.
3376func (s *LimitExceededException) StatusCode() int {
3377	return s.RespMetadata.StatusCode
3378}
3379
3380// RequestID returns the service's response RequestID for request.
3381func (s *LimitExceededException) RequestID() string {
3382	return s.RespMetadata.RequestID
3383}
3384
3385type ListDetectorModelVersionsInput struct {
3386	_ struct{} `type:"structure"`
3387
3388	// The name of the detector model whose versions are returned.
3389	//
3390	// DetectorModelName is a required field
3391	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
3392
3393	// The maximum number of results to return at one time.
3394	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3395
3396	// The token for the next set of results.
3397	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3398}
3399
3400// String returns the string representation
3401func (s ListDetectorModelVersionsInput) String() string {
3402	return awsutil.Prettify(s)
3403}
3404
3405// GoString returns the string representation
3406func (s ListDetectorModelVersionsInput) GoString() string {
3407	return s.String()
3408}
3409
3410// Validate inspects the fields of the type to determine if they are valid.
3411func (s *ListDetectorModelVersionsInput) Validate() error {
3412	invalidParams := request.ErrInvalidParams{Context: "ListDetectorModelVersionsInput"}
3413	if s.DetectorModelName == nil {
3414		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
3415	}
3416	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
3417		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
3418	}
3419	if s.MaxResults != nil && *s.MaxResults < 1 {
3420		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3421	}
3422
3423	if invalidParams.Len() > 0 {
3424		return invalidParams
3425	}
3426	return nil
3427}
3428
3429// SetDetectorModelName sets the DetectorModelName field's value.
3430func (s *ListDetectorModelVersionsInput) SetDetectorModelName(v string) *ListDetectorModelVersionsInput {
3431	s.DetectorModelName = &v
3432	return s
3433}
3434
3435// SetMaxResults sets the MaxResults field's value.
3436func (s *ListDetectorModelVersionsInput) SetMaxResults(v int64) *ListDetectorModelVersionsInput {
3437	s.MaxResults = &v
3438	return s
3439}
3440
3441// SetNextToken sets the NextToken field's value.
3442func (s *ListDetectorModelVersionsInput) SetNextToken(v string) *ListDetectorModelVersionsInput {
3443	s.NextToken = &v
3444	return s
3445}
3446
3447type ListDetectorModelVersionsOutput struct {
3448	_ struct{} `type:"structure"`
3449
3450	// Summary information about the detector model versions.
3451	DetectorModelVersionSummaries []*DetectorModelVersionSummary `locationName:"detectorModelVersionSummaries" type:"list"`
3452
3453	// A token to retrieve the next set of results, or null if there are no additional
3454	// results.
3455	NextToken *string `locationName:"nextToken" type:"string"`
3456}
3457
3458// String returns the string representation
3459func (s ListDetectorModelVersionsOutput) String() string {
3460	return awsutil.Prettify(s)
3461}
3462
3463// GoString returns the string representation
3464func (s ListDetectorModelVersionsOutput) GoString() string {
3465	return s.String()
3466}
3467
3468// SetDetectorModelVersionSummaries sets the DetectorModelVersionSummaries field's value.
3469func (s *ListDetectorModelVersionsOutput) SetDetectorModelVersionSummaries(v []*DetectorModelVersionSummary) *ListDetectorModelVersionsOutput {
3470	s.DetectorModelVersionSummaries = v
3471	return s
3472}
3473
3474// SetNextToken sets the NextToken field's value.
3475func (s *ListDetectorModelVersionsOutput) SetNextToken(v string) *ListDetectorModelVersionsOutput {
3476	s.NextToken = &v
3477	return s
3478}
3479
3480type ListDetectorModelsInput struct {
3481	_ struct{} `type:"structure"`
3482
3483	// The maximum number of results to return at one time.
3484	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3485
3486	// The token for the next set of results.
3487	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3488}
3489
3490// String returns the string representation
3491func (s ListDetectorModelsInput) String() string {
3492	return awsutil.Prettify(s)
3493}
3494
3495// GoString returns the string representation
3496func (s ListDetectorModelsInput) GoString() string {
3497	return s.String()
3498}
3499
3500// Validate inspects the fields of the type to determine if they are valid.
3501func (s *ListDetectorModelsInput) Validate() error {
3502	invalidParams := request.ErrInvalidParams{Context: "ListDetectorModelsInput"}
3503	if s.MaxResults != nil && *s.MaxResults < 1 {
3504		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3505	}
3506
3507	if invalidParams.Len() > 0 {
3508		return invalidParams
3509	}
3510	return nil
3511}
3512
3513// SetMaxResults sets the MaxResults field's value.
3514func (s *ListDetectorModelsInput) SetMaxResults(v int64) *ListDetectorModelsInput {
3515	s.MaxResults = &v
3516	return s
3517}
3518
3519// SetNextToken sets the NextToken field's value.
3520func (s *ListDetectorModelsInput) SetNextToken(v string) *ListDetectorModelsInput {
3521	s.NextToken = &v
3522	return s
3523}
3524
3525type ListDetectorModelsOutput struct {
3526	_ struct{} `type:"structure"`
3527
3528	// Summary information about the detector models.
3529	DetectorModelSummaries []*DetectorModelSummary `locationName:"detectorModelSummaries" type:"list"`
3530
3531	// A token to retrieve the next set of results, or null if there are no additional
3532	// results.
3533	NextToken *string `locationName:"nextToken" type:"string"`
3534}
3535
3536// String returns the string representation
3537func (s ListDetectorModelsOutput) String() string {
3538	return awsutil.Prettify(s)
3539}
3540
3541// GoString returns the string representation
3542func (s ListDetectorModelsOutput) GoString() string {
3543	return s.String()
3544}
3545
3546// SetDetectorModelSummaries sets the DetectorModelSummaries field's value.
3547func (s *ListDetectorModelsOutput) SetDetectorModelSummaries(v []*DetectorModelSummary) *ListDetectorModelsOutput {
3548	s.DetectorModelSummaries = v
3549	return s
3550}
3551
3552// SetNextToken sets the NextToken field's value.
3553func (s *ListDetectorModelsOutput) SetNextToken(v string) *ListDetectorModelsOutput {
3554	s.NextToken = &v
3555	return s
3556}
3557
3558type ListInputsInput struct {
3559	_ struct{} `type:"structure"`
3560
3561	// The maximum number of results to return at one time.
3562	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3563
3564	// The token for the next set of results.
3565	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3566}
3567
3568// String returns the string representation
3569func (s ListInputsInput) String() string {
3570	return awsutil.Prettify(s)
3571}
3572
3573// GoString returns the string representation
3574func (s ListInputsInput) GoString() string {
3575	return s.String()
3576}
3577
3578// Validate inspects the fields of the type to determine if they are valid.
3579func (s *ListInputsInput) Validate() error {
3580	invalidParams := request.ErrInvalidParams{Context: "ListInputsInput"}
3581	if s.MaxResults != nil && *s.MaxResults < 1 {
3582		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3583	}
3584
3585	if invalidParams.Len() > 0 {
3586		return invalidParams
3587	}
3588	return nil
3589}
3590
3591// SetMaxResults sets the MaxResults field's value.
3592func (s *ListInputsInput) SetMaxResults(v int64) *ListInputsInput {
3593	s.MaxResults = &v
3594	return s
3595}
3596
3597// SetNextToken sets the NextToken field's value.
3598func (s *ListInputsInput) SetNextToken(v string) *ListInputsInput {
3599	s.NextToken = &v
3600	return s
3601}
3602
3603type ListInputsOutput struct {
3604	_ struct{} `type:"structure"`
3605
3606	// Summary information about the inputs.
3607	InputSummaries []*InputSummary `locationName:"inputSummaries" type:"list"`
3608
3609	// A token to retrieve the next set of results, or null if there are no additional
3610	// results.
3611	NextToken *string `locationName:"nextToken" type:"string"`
3612}
3613
3614// String returns the string representation
3615func (s ListInputsOutput) String() string {
3616	return awsutil.Prettify(s)
3617}
3618
3619// GoString returns the string representation
3620func (s ListInputsOutput) GoString() string {
3621	return s.String()
3622}
3623
3624// SetInputSummaries sets the InputSummaries field's value.
3625func (s *ListInputsOutput) SetInputSummaries(v []*InputSummary) *ListInputsOutput {
3626	s.InputSummaries = v
3627	return s
3628}
3629
3630// SetNextToken sets the NextToken field's value.
3631func (s *ListInputsOutput) SetNextToken(v string) *ListInputsOutput {
3632	s.NextToken = &v
3633	return s
3634}
3635
3636type ListTagsForResourceInput struct {
3637	_ struct{} `type:"structure"`
3638
3639	// The ARN of the resource.
3640	//
3641	// ResourceArn is a required field
3642	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
3643}
3644
3645// String returns the string representation
3646func (s ListTagsForResourceInput) String() string {
3647	return awsutil.Prettify(s)
3648}
3649
3650// GoString returns the string representation
3651func (s ListTagsForResourceInput) GoString() string {
3652	return s.String()
3653}
3654
3655// Validate inspects the fields of the type to determine if they are valid.
3656func (s *ListTagsForResourceInput) Validate() error {
3657	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
3658	if s.ResourceArn == nil {
3659		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
3660	}
3661	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
3662		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
3663	}
3664
3665	if invalidParams.Len() > 0 {
3666		return invalidParams
3667	}
3668	return nil
3669}
3670
3671// SetResourceArn sets the ResourceArn field's value.
3672func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
3673	s.ResourceArn = &v
3674	return s
3675}
3676
3677type ListTagsForResourceOutput struct {
3678	_ struct{} `type:"structure"`
3679
3680	// The list of tags assigned to the resource.
3681	Tags []*Tag `locationName:"tags" type:"list"`
3682}
3683
3684// String returns the string representation
3685func (s ListTagsForResourceOutput) String() string {
3686	return awsutil.Prettify(s)
3687}
3688
3689// GoString returns the string representation
3690func (s ListTagsForResourceOutput) GoString() string {
3691	return s.String()
3692}
3693
3694// SetTags sets the Tags field's value.
3695func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
3696	s.Tags = v
3697	return s
3698}
3699
3700// The values of the AWS IoT Events logging options.
3701type LoggingOptions struct {
3702	_ struct{} `type:"structure"`
3703
3704	// Information that identifies those detector models and their detectors (instances)
3705	// for which the logging level is given.
3706	DetectorDebugOptions []*DetectorDebugOption `locationName:"detectorDebugOptions" min:"1" type:"list"`
3707
3708	// If TRUE, logging is enabled for AWS IoT Events.
3709	//
3710	// Enabled is a required field
3711	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
3712
3713	// The logging level.
3714	//
3715	// Level is a required field
3716	Level *string `locationName:"level" type:"string" required:"true" enum:"LoggingLevel"`
3717
3718	// The ARN of the role that grants permission to AWS IoT Events to perform logging.
3719	//
3720	// RoleArn is a required field
3721	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
3722}
3723
3724// String returns the string representation
3725func (s LoggingOptions) String() string {
3726	return awsutil.Prettify(s)
3727}
3728
3729// GoString returns the string representation
3730func (s LoggingOptions) GoString() string {
3731	return s.String()
3732}
3733
3734// Validate inspects the fields of the type to determine if they are valid.
3735func (s *LoggingOptions) Validate() error {
3736	invalidParams := request.ErrInvalidParams{Context: "LoggingOptions"}
3737	if s.DetectorDebugOptions != nil && len(s.DetectorDebugOptions) < 1 {
3738		invalidParams.Add(request.NewErrParamMinLen("DetectorDebugOptions", 1))
3739	}
3740	if s.Enabled == nil {
3741		invalidParams.Add(request.NewErrParamRequired("Enabled"))
3742	}
3743	if s.Level == nil {
3744		invalidParams.Add(request.NewErrParamRequired("Level"))
3745	}
3746	if s.RoleArn == nil {
3747		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
3748	}
3749	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
3750		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
3751	}
3752	if s.DetectorDebugOptions != nil {
3753		for i, v := range s.DetectorDebugOptions {
3754			if v == nil {
3755				continue
3756			}
3757			if err := v.Validate(); err != nil {
3758				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DetectorDebugOptions", i), err.(request.ErrInvalidParams))
3759			}
3760		}
3761	}
3762
3763	if invalidParams.Len() > 0 {
3764		return invalidParams
3765	}
3766	return nil
3767}
3768
3769// SetDetectorDebugOptions sets the DetectorDebugOptions field's value.
3770func (s *LoggingOptions) SetDetectorDebugOptions(v []*DetectorDebugOption) *LoggingOptions {
3771	s.DetectorDebugOptions = v
3772	return s
3773}
3774
3775// SetEnabled sets the Enabled field's value.
3776func (s *LoggingOptions) SetEnabled(v bool) *LoggingOptions {
3777	s.Enabled = &v
3778	return s
3779}
3780
3781// SetLevel sets the Level field's value.
3782func (s *LoggingOptions) SetLevel(v string) *LoggingOptions {
3783	s.Level = &v
3784	return s
3785}
3786
3787// SetRoleArn sets the RoleArn field's value.
3788func (s *LoggingOptions) SetRoleArn(v string) *LoggingOptions {
3789	s.RoleArn = &v
3790	return s
3791}
3792
3793// When entering this state, perform these actions if the condition is TRUE.
3794type OnEnterLifecycle struct {
3795	_ struct{} `type:"structure"`
3796
3797	// Specifies the actions that are performed when the state is entered and the
3798	// condition is TRUE.
3799	Events []*Event `locationName:"events" type:"list"`
3800}
3801
3802// String returns the string representation
3803func (s OnEnterLifecycle) String() string {
3804	return awsutil.Prettify(s)
3805}
3806
3807// GoString returns the string representation
3808func (s OnEnterLifecycle) GoString() string {
3809	return s.String()
3810}
3811
3812// Validate inspects the fields of the type to determine if they are valid.
3813func (s *OnEnterLifecycle) Validate() error {
3814	invalidParams := request.ErrInvalidParams{Context: "OnEnterLifecycle"}
3815	if s.Events != nil {
3816		for i, v := range s.Events {
3817			if v == nil {
3818				continue
3819			}
3820			if err := v.Validate(); err != nil {
3821				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
3822			}
3823		}
3824	}
3825
3826	if invalidParams.Len() > 0 {
3827		return invalidParams
3828	}
3829	return nil
3830}
3831
3832// SetEvents sets the Events field's value.
3833func (s *OnEnterLifecycle) SetEvents(v []*Event) *OnEnterLifecycle {
3834	s.Events = v
3835	return s
3836}
3837
3838// When exiting this state, perform these actions if the specified condition
3839// is TRUE.
3840type OnExitLifecycle struct {
3841	_ struct{} `type:"structure"`
3842
3843	// Specifies the actions that are performed when the state is exited and the
3844	// condition is TRUE.
3845	Events []*Event `locationName:"events" type:"list"`
3846}
3847
3848// String returns the string representation
3849func (s OnExitLifecycle) String() string {
3850	return awsutil.Prettify(s)
3851}
3852
3853// GoString returns the string representation
3854func (s OnExitLifecycle) GoString() string {
3855	return s.String()
3856}
3857
3858// Validate inspects the fields of the type to determine if they are valid.
3859func (s *OnExitLifecycle) Validate() error {
3860	invalidParams := request.ErrInvalidParams{Context: "OnExitLifecycle"}
3861	if s.Events != nil {
3862		for i, v := range s.Events {
3863			if v == nil {
3864				continue
3865			}
3866			if err := v.Validate(); err != nil {
3867				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
3868			}
3869		}
3870	}
3871
3872	if invalidParams.Len() > 0 {
3873		return invalidParams
3874	}
3875	return nil
3876}
3877
3878// SetEvents sets the Events field's value.
3879func (s *OnExitLifecycle) SetEvents(v []*Event) *OnExitLifecycle {
3880	s.Events = v
3881	return s
3882}
3883
3884// Specifies the actions performed when the condition evaluates to TRUE.
3885type OnInputLifecycle struct {
3886	_ struct{} `type:"structure"`
3887
3888	// Specifies the actions performed when the condition evaluates to TRUE.
3889	Events []*Event `locationName:"events" type:"list"`
3890
3891	// Specifies the actions performed, and the next state entered, when a condition
3892	// evaluates to TRUE.
3893	TransitionEvents []*TransitionEvent `locationName:"transitionEvents" type:"list"`
3894}
3895
3896// String returns the string representation
3897func (s OnInputLifecycle) String() string {
3898	return awsutil.Prettify(s)
3899}
3900
3901// GoString returns the string representation
3902func (s OnInputLifecycle) GoString() string {
3903	return s.String()
3904}
3905
3906// Validate inspects the fields of the type to determine if they are valid.
3907func (s *OnInputLifecycle) Validate() error {
3908	invalidParams := request.ErrInvalidParams{Context: "OnInputLifecycle"}
3909	if s.Events != nil {
3910		for i, v := range s.Events {
3911			if v == nil {
3912				continue
3913			}
3914			if err := v.Validate(); err != nil {
3915				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Events", i), err.(request.ErrInvalidParams))
3916			}
3917		}
3918	}
3919	if s.TransitionEvents != nil {
3920		for i, v := range s.TransitionEvents {
3921			if v == nil {
3922				continue
3923			}
3924			if err := v.Validate(); err != nil {
3925				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransitionEvents", i), err.(request.ErrInvalidParams))
3926			}
3927		}
3928	}
3929
3930	if invalidParams.Len() > 0 {
3931		return invalidParams
3932	}
3933	return nil
3934}
3935
3936// SetEvents sets the Events field's value.
3937func (s *OnInputLifecycle) SetEvents(v []*Event) *OnInputLifecycle {
3938	s.Events = v
3939	return s
3940}
3941
3942// SetTransitionEvents sets the TransitionEvents field's value.
3943func (s *OnInputLifecycle) SetTransitionEvents(v []*TransitionEvent) *OnInputLifecycle {
3944	s.TransitionEvents = v
3945	return s
3946}
3947
3948type PutLoggingOptionsInput struct {
3949	_ struct{} `type:"structure"`
3950
3951	// The new values of the AWS IoT Events logging options.
3952	//
3953	// LoggingOptions is a required field
3954	LoggingOptions *LoggingOptions `locationName:"loggingOptions" type:"structure" required:"true"`
3955}
3956
3957// String returns the string representation
3958func (s PutLoggingOptionsInput) String() string {
3959	return awsutil.Prettify(s)
3960}
3961
3962// GoString returns the string representation
3963func (s PutLoggingOptionsInput) GoString() string {
3964	return s.String()
3965}
3966
3967// Validate inspects the fields of the type to determine if they are valid.
3968func (s *PutLoggingOptionsInput) Validate() error {
3969	invalidParams := request.ErrInvalidParams{Context: "PutLoggingOptionsInput"}
3970	if s.LoggingOptions == nil {
3971		invalidParams.Add(request.NewErrParamRequired("LoggingOptions"))
3972	}
3973	if s.LoggingOptions != nil {
3974		if err := s.LoggingOptions.Validate(); err != nil {
3975			invalidParams.AddNested("LoggingOptions", err.(request.ErrInvalidParams))
3976		}
3977	}
3978
3979	if invalidParams.Len() > 0 {
3980		return invalidParams
3981	}
3982	return nil
3983}
3984
3985// SetLoggingOptions sets the LoggingOptions field's value.
3986func (s *PutLoggingOptionsInput) SetLoggingOptions(v *LoggingOptions) *PutLoggingOptionsInput {
3987	s.LoggingOptions = v
3988	return s
3989}
3990
3991type PutLoggingOptionsOutput struct {
3992	_ struct{} `type:"structure"`
3993}
3994
3995// String returns the string representation
3996func (s PutLoggingOptionsOutput) String() string {
3997	return awsutil.Prettify(s)
3998}
3999
4000// GoString returns the string representation
4001func (s PutLoggingOptionsOutput) GoString() string {
4002	return s.String()
4003}
4004
4005// Information required to reset the timer. The timer is reset to the previously
4006// evaluated result of the duration.
4007type ResetTimerAction struct {
4008	_ struct{} `type:"structure"`
4009
4010	// The name of the timer to reset.
4011	//
4012	// TimerName is a required field
4013	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
4014}
4015
4016// String returns the string representation
4017func (s ResetTimerAction) String() string {
4018	return awsutil.Prettify(s)
4019}
4020
4021// GoString returns the string representation
4022func (s ResetTimerAction) GoString() string {
4023	return s.String()
4024}
4025
4026// Validate inspects the fields of the type to determine if they are valid.
4027func (s *ResetTimerAction) Validate() error {
4028	invalidParams := request.ErrInvalidParams{Context: "ResetTimerAction"}
4029	if s.TimerName == nil {
4030		invalidParams.Add(request.NewErrParamRequired("TimerName"))
4031	}
4032	if s.TimerName != nil && len(*s.TimerName) < 1 {
4033		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
4034	}
4035
4036	if invalidParams.Len() > 0 {
4037		return invalidParams
4038	}
4039	return nil
4040}
4041
4042// SetTimerName sets the TimerName field's value.
4043func (s *ResetTimerAction) SetTimerName(v string) *ResetTimerAction {
4044	s.TimerName = &v
4045	return s
4046}
4047
4048// The resource already exists.
4049type ResourceAlreadyExistsException struct {
4050	_            struct{}                  `type:"structure"`
4051	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4052
4053	// The message for the exception.
4054	Message_ *string `locationName:"message" type:"string"`
4055
4056	// The ARN of the resource.
4057	ResourceArn *string `locationName:"resourceArn" type:"string"`
4058
4059	// The ID of the resource.
4060	ResourceId *string `locationName:"resourceId" type:"string"`
4061}
4062
4063// String returns the string representation
4064func (s ResourceAlreadyExistsException) String() string {
4065	return awsutil.Prettify(s)
4066}
4067
4068// GoString returns the string representation
4069func (s ResourceAlreadyExistsException) GoString() string {
4070	return s.String()
4071}
4072
4073func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
4074	return &ResourceAlreadyExistsException{
4075		RespMetadata: v,
4076	}
4077}
4078
4079// Code returns the exception type name.
4080func (s *ResourceAlreadyExistsException) Code() string {
4081	return "ResourceAlreadyExistsException"
4082}
4083
4084// Message returns the exception's message.
4085func (s *ResourceAlreadyExistsException) Message() string {
4086	if s.Message_ != nil {
4087		return *s.Message_
4088	}
4089	return ""
4090}
4091
4092// OrigErr always returns nil, satisfies awserr.Error interface.
4093func (s *ResourceAlreadyExistsException) OrigErr() error {
4094	return nil
4095}
4096
4097func (s *ResourceAlreadyExistsException) Error() string {
4098	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4099}
4100
4101// Status code returns the HTTP status code for the request's response error.
4102func (s *ResourceAlreadyExistsException) StatusCode() int {
4103	return s.RespMetadata.StatusCode
4104}
4105
4106// RequestID returns the service's response RequestID for request.
4107func (s *ResourceAlreadyExistsException) RequestID() string {
4108	return s.RespMetadata.RequestID
4109}
4110
4111// The resource is in use.
4112type ResourceInUseException struct {
4113	_            struct{}                  `type:"structure"`
4114	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4115
4116	// The message for the exception.
4117	Message_ *string `locationName:"message" type:"string"`
4118}
4119
4120// String returns the string representation
4121func (s ResourceInUseException) String() string {
4122	return awsutil.Prettify(s)
4123}
4124
4125// GoString returns the string representation
4126func (s ResourceInUseException) GoString() string {
4127	return s.String()
4128}
4129
4130func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
4131	return &ResourceInUseException{
4132		RespMetadata: v,
4133	}
4134}
4135
4136// Code returns the exception type name.
4137func (s *ResourceInUseException) Code() string {
4138	return "ResourceInUseException"
4139}
4140
4141// Message returns the exception's message.
4142func (s *ResourceInUseException) Message() string {
4143	if s.Message_ != nil {
4144		return *s.Message_
4145	}
4146	return ""
4147}
4148
4149// OrigErr always returns nil, satisfies awserr.Error interface.
4150func (s *ResourceInUseException) OrigErr() error {
4151	return nil
4152}
4153
4154func (s *ResourceInUseException) Error() string {
4155	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4156}
4157
4158// Status code returns the HTTP status code for the request's response error.
4159func (s *ResourceInUseException) StatusCode() int {
4160	return s.RespMetadata.StatusCode
4161}
4162
4163// RequestID returns the service's response RequestID for request.
4164func (s *ResourceInUseException) RequestID() string {
4165	return s.RespMetadata.RequestID
4166}
4167
4168// The resource was not found.
4169type ResourceNotFoundException struct {
4170	_            struct{}                  `type:"structure"`
4171	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4172
4173	// The message for the exception.
4174	Message_ *string `locationName:"message" type:"string"`
4175}
4176
4177// String returns the string representation
4178func (s ResourceNotFoundException) String() string {
4179	return awsutil.Prettify(s)
4180}
4181
4182// GoString returns the string representation
4183func (s ResourceNotFoundException) GoString() string {
4184	return s.String()
4185}
4186
4187func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
4188	return &ResourceNotFoundException{
4189		RespMetadata: v,
4190	}
4191}
4192
4193// Code returns the exception type name.
4194func (s *ResourceNotFoundException) Code() string {
4195	return "ResourceNotFoundException"
4196}
4197
4198// Message returns the exception's message.
4199func (s *ResourceNotFoundException) Message() string {
4200	if s.Message_ != nil {
4201		return *s.Message_
4202	}
4203	return ""
4204}
4205
4206// OrigErr always returns nil, satisfies awserr.Error interface.
4207func (s *ResourceNotFoundException) OrigErr() error {
4208	return nil
4209}
4210
4211func (s *ResourceNotFoundException) Error() string {
4212	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4213}
4214
4215// Status code returns the HTTP status code for the request's response error.
4216func (s *ResourceNotFoundException) StatusCode() int {
4217	return s.RespMetadata.StatusCode
4218}
4219
4220// RequestID returns the service's response RequestID for request.
4221func (s *ResourceNotFoundException) RequestID() string {
4222	return s.RespMetadata.RequestID
4223}
4224
4225// Information required to publish the Amazon SNS message.
4226type SNSTopicPublishAction struct {
4227	_ struct{} `type:"structure"`
4228
4229	// The ARN of the Amazon SNS target where the message is sent.
4230	//
4231	// TargetArn is a required field
4232	TargetArn *string `locationName:"targetArn" min:"1" type:"string" required:"true"`
4233}
4234
4235// String returns the string representation
4236func (s SNSTopicPublishAction) String() string {
4237	return awsutil.Prettify(s)
4238}
4239
4240// GoString returns the string representation
4241func (s SNSTopicPublishAction) GoString() string {
4242	return s.String()
4243}
4244
4245// Validate inspects the fields of the type to determine if they are valid.
4246func (s *SNSTopicPublishAction) Validate() error {
4247	invalidParams := request.ErrInvalidParams{Context: "SNSTopicPublishAction"}
4248	if s.TargetArn == nil {
4249		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
4250	}
4251	if s.TargetArn != nil && len(*s.TargetArn) < 1 {
4252		invalidParams.Add(request.NewErrParamMinLen("TargetArn", 1))
4253	}
4254
4255	if invalidParams.Len() > 0 {
4256		return invalidParams
4257	}
4258	return nil
4259}
4260
4261// SetTargetArn sets the TargetArn field's value.
4262func (s *SNSTopicPublishAction) SetTargetArn(v string) *SNSTopicPublishAction {
4263	s.TargetArn = &v
4264	return s
4265}
4266
4267// The service is currently unavailable.
4268type ServiceUnavailableException struct {
4269	_            struct{}                  `type:"structure"`
4270	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4271
4272	// The message for the exception.
4273	Message_ *string `locationName:"message" type:"string"`
4274}
4275
4276// String returns the string representation
4277func (s ServiceUnavailableException) String() string {
4278	return awsutil.Prettify(s)
4279}
4280
4281// GoString returns the string representation
4282func (s ServiceUnavailableException) GoString() string {
4283	return s.String()
4284}
4285
4286func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
4287	return &ServiceUnavailableException{
4288		RespMetadata: v,
4289	}
4290}
4291
4292// Code returns the exception type name.
4293func (s *ServiceUnavailableException) Code() string {
4294	return "ServiceUnavailableException"
4295}
4296
4297// Message returns the exception's message.
4298func (s *ServiceUnavailableException) Message() string {
4299	if s.Message_ != nil {
4300		return *s.Message_
4301	}
4302	return ""
4303}
4304
4305// OrigErr always returns nil, satisfies awserr.Error interface.
4306func (s *ServiceUnavailableException) OrigErr() error {
4307	return nil
4308}
4309
4310func (s *ServiceUnavailableException) Error() string {
4311	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4312}
4313
4314// Status code returns the HTTP status code for the request's response error.
4315func (s *ServiceUnavailableException) StatusCode() int {
4316	return s.RespMetadata.StatusCode
4317}
4318
4319// RequestID returns the service's response RequestID for request.
4320func (s *ServiceUnavailableException) RequestID() string {
4321	return s.RespMetadata.RequestID
4322}
4323
4324// Information needed to set the timer.
4325type SetTimerAction struct {
4326	_ struct{} `type:"structure"`
4327
4328	// The duration of the timer, in seconds. You can use a string expression that
4329	// includes numbers, variables ($variable.<variable-name>), and input values
4330	// ($input.<input-name>.<path-to-datum>) as the duration. The range of the duration
4331	// is 1-31622400 seconds. To ensure accuracy, the minimum duration is 60 seconds.
4332	// The evaluated result of the duration is rounded down to the nearest whole
4333	// number.
4334	DurationExpression *string `locationName:"durationExpression" min:"1" type:"string"`
4335
4336	// The number of seconds until the timer expires. The minimum value is 60 seconds
4337	// to ensure accuracy.
4338	//
4339	// Deprecated: seconds is deprecated. You can use durationExpression for SetTimerAction. The value of seconds can be used as a string expression for durationExpression.
4340	Seconds *int64 `locationName:"seconds" min:"1" deprecated:"true" type:"integer"`
4341
4342	// The name of the timer.
4343	//
4344	// TimerName is a required field
4345	TimerName *string `locationName:"timerName" min:"1" type:"string" required:"true"`
4346}
4347
4348// String returns the string representation
4349func (s SetTimerAction) String() string {
4350	return awsutil.Prettify(s)
4351}
4352
4353// GoString returns the string representation
4354func (s SetTimerAction) GoString() string {
4355	return s.String()
4356}
4357
4358// Validate inspects the fields of the type to determine if they are valid.
4359func (s *SetTimerAction) Validate() error {
4360	invalidParams := request.ErrInvalidParams{Context: "SetTimerAction"}
4361	if s.DurationExpression != nil && len(*s.DurationExpression) < 1 {
4362		invalidParams.Add(request.NewErrParamMinLen("DurationExpression", 1))
4363	}
4364	if s.Seconds != nil && *s.Seconds < 1 {
4365		invalidParams.Add(request.NewErrParamMinValue("Seconds", 1))
4366	}
4367	if s.TimerName == nil {
4368		invalidParams.Add(request.NewErrParamRequired("TimerName"))
4369	}
4370	if s.TimerName != nil && len(*s.TimerName) < 1 {
4371		invalidParams.Add(request.NewErrParamMinLen("TimerName", 1))
4372	}
4373
4374	if invalidParams.Len() > 0 {
4375		return invalidParams
4376	}
4377	return nil
4378}
4379
4380// SetDurationExpression sets the DurationExpression field's value.
4381func (s *SetTimerAction) SetDurationExpression(v string) *SetTimerAction {
4382	s.DurationExpression = &v
4383	return s
4384}
4385
4386// SetSeconds sets the Seconds field's value.
4387func (s *SetTimerAction) SetSeconds(v int64) *SetTimerAction {
4388	s.Seconds = &v
4389	return s
4390}
4391
4392// SetTimerName sets the TimerName field's value.
4393func (s *SetTimerAction) SetTimerName(v string) *SetTimerAction {
4394	s.TimerName = &v
4395	return s
4396}
4397
4398// Information about the variable and its new value.
4399type SetVariableAction struct {
4400	_ struct{} `type:"structure"`
4401
4402	// The new value of the variable.
4403	//
4404	// Value is a required field
4405	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
4406
4407	// The name of the variable.
4408	//
4409	// VariableName is a required field
4410	VariableName *string `locationName:"variableName" min:"1" type:"string" required:"true"`
4411}
4412
4413// String returns the string representation
4414func (s SetVariableAction) String() string {
4415	return awsutil.Prettify(s)
4416}
4417
4418// GoString returns the string representation
4419func (s SetVariableAction) GoString() string {
4420	return s.String()
4421}
4422
4423// Validate inspects the fields of the type to determine if they are valid.
4424func (s *SetVariableAction) Validate() error {
4425	invalidParams := request.ErrInvalidParams{Context: "SetVariableAction"}
4426	if s.Value == nil {
4427		invalidParams.Add(request.NewErrParamRequired("Value"))
4428	}
4429	if s.Value != nil && len(*s.Value) < 1 {
4430		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
4431	}
4432	if s.VariableName == nil {
4433		invalidParams.Add(request.NewErrParamRequired("VariableName"))
4434	}
4435	if s.VariableName != nil && len(*s.VariableName) < 1 {
4436		invalidParams.Add(request.NewErrParamMinLen("VariableName", 1))
4437	}
4438
4439	if invalidParams.Len() > 0 {
4440		return invalidParams
4441	}
4442	return nil
4443}
4444
4445// SetValue sets the Value field's value.
4446func (s *SetVariableAction) SetValue(v string) *SetVariableAction {
4447	s.Value = &v
4448	return s
4449}
4450
4451// SetVariableName sets the VariableName field's value.
4452func (s *SetVariableAction) SetVariableName(v string) *SetVariableAction {
4453	s.VariableName = &v
4454	return s
4455}
4456
4457// Sends information about the detector model instance and the event that triggered
4458// the action to an Amazon SQS queue.
4459type SqsAction struct {
4460	_ struct{} `type:"structure"`
4461
4462	// The URL of the SQS queue where the data is written.
4463	//
4464	// QueueUrl is a required field
4465	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
4466
4467	// Set this to TRUE if you want the data to be base-64 encoded before it is
4468	// written to the queue.
4469	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
4470}
4471
4472// String returns the string representation
4473func (s SqsAction) String() string {
4474	return awsutil.Prettify(s)
4475}
4476
4477// GoString returns the string representation
4478func (s SqsAction) GoString() string {
4479	return s.String()
4480}
4481
4482// Validate inspects the fields of the type to determine if they are valid.
4483func (s *SqsAction) Validate() error {
4484	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
4485	if s.QueueUrl == nil {
4486		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
4487	}
4488
4489	if invalidParams.Len() > 0 {
4490		return invalidParams
4491	}
4492	return nil
4493}
4494
4495// SetQueueUrl sets the QueueUrl field's value.
4496func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
4497	s.QueueUrl = &v
4498	return s
4499}
4500
4501// SetUseBase64 sets the UseBase64 field's value.
4502func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
4503	s.UseBase64 = &v
4504	return s
4505}
4506
4507// Information that defines a state of a detector.
4508type State struct {
4509	_ struct{} `type:"structure"`
4510
4511	// When entering this state, perform these actions if the condition is TRUE.
4512	OnEnter *OnEnterLifecycle `locationName:"onEnter" type:"structure"`
4513
4514	// When exiting this state, perform these actions if the specified condition
4515	// is TRUE.
4516	OnExit *OnExitLifecycle `locationName:"onExit" type:"structure"`
4517
4518	// When an input is received and the condition is TRUE, perform the specified
4519	// actions.
4520	OnInput *OnInputLifecycle `locationName:"onInput" type:"structure"`
4521
4522	// The name of the state.
4523	//
4524	// StateName is a required field
4525	StateName *string `locationName:"stateName" min:"1" type:"string" required:"true"`
4526}
4527
4528// String returns the string representation
4529func (s State) String() string {
4530	return awsutil.Prettify(s)
4531}
4532
4533// GoString returns the string representation
4534func (s State) GoString() string {
4535	return s.String()
4536}
4537
4538// Validate inspects the fields of the type to determine if they are valid.
4539func (s *State) Validate() error {
4540	invalidParams := request.ErrInvalidParams{Context: "State"}
4541	if s.StateName == nil {
4542		invalidParams.Add(request.NewErrParamRequired("StateName"))
4543	}
4544	if s.StateName != nil && len(*s.StateName) < 1 {
4545		invalidParams.Add(request.NewErrParamMinLen("StateName", 1))
4546	}
4547	if s.OnEnter != nil {
4548		if err := s.OnEnter.Validate(); err != nil {
4549			invalidParams.AddNested("OnEnter", err.(request.ErrInvalidParams))
4550		}
4551	}
4552	if s.OnExit != nil {
4553		if err := s.OnExit.Validate(); err != nil {
4554			invalidParams.AddNested("OnExit", err.(request.ErrInvalidParams))
4555		}
4556	}
4557	if s.OnInput != nil {
4558		if err := s.OnInput.Validate(); err != nil {
4559			invalidParams.AddNested("OnInput", err.(request.ErrInvalidParams))
4560		}
4561	}
4562
4563	if invalidParams.Len() > 0 {
4564		return invalidParams
4565	}
4566	return nil
4567}
4568
4569// SetOnEnter sets the OnEnter field's value.
4570func (s *State) SetOnEnter(v *OnEnterLifecycle) *State {
4571	s.OnEnter = v
4572	return s
4573}
4574
4575// SetOnExit sets the OnExit field's value.
4576func (s *State) SetOnExit(v *OnExitLifecycle) *State {
4577	s.OnExit = v
4578	return s
4579}
4580
4581// SetOnInput sets the OnInput field's value.
4582func (s *State) SetOnInput(v *OnInputLifecycle) *State {
4583	s.OnInput = v
4584	return s
4585}
4586
4587// SetStateName sets the StateName field's value.
4588func (s *State) SetStateName(v string) *State {
4589	s.StateName = &v
4590	return s
4591}
4592
4593// Metadata that can be used to manage the resource.
4594type Tag struct {
4595	_ struct{} `type:"structure"`
4596
4597	// The tag's key.
4598	//
4599	// Key is a required field
4600	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
4601
4602	// The tag's value.
4603	//
4604	// Value is a required field
4605	Value *string `locationName:"value" type:"string" required:"true"`
4606}
4607
4608// String returns the string representation
4609func (s Tag) String() string {
4610	return awsutil.Prettify(s)
4611}
4612
4613// GoString returns the string representation
4614func (s Tag) GoString() string {
4615	return s.String()
4616}
4617
4618// Validate inspects the fields of the type to determine if they are valid.
4619func (s *Tag) Validate() error {
4620	invalidParams := request.ErrInvalidParams{Context: "Tag"}
4621	if s.Key == nil {
4622		invalidParams.Add(request.NewErrParamRequired("Key"))
4623	}
4624	if s.Key != nil && len(*s.Key) < 1 {
4625		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4626	}
4627	if s.Value == nil {
4628		invalidParams.Add(request.NewErrParamRequired("Value"))
4629	}
4630
4631	if invalidParams.Len() > 0 {
4632		return invalidParams
4633	}
4634	return nil
4635}
4636
4637// SetKey sets the Key field's value.
4638func (s *Tag) SetKey(v string) *Tag {
4639	s.Key = &v
4640	return s
4641}
4642
4643// SetValue sets the Value field's value.
4644func (s *Tag) SetValue(v string) *Tag {
4645	s.Value = &v
4646	return s
4647}
4648
4649type TagResourceInput struct {
4650	_ struct{} `type:"structure"`
4651
4652	// The ARN of the resource.
4653	//
4654	// ResourceArn is a required field
4655	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
4656
4657	// The new or modified tags for the resource.
4658	//
4659	// Tags is a required field
4660	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
4661}
4662
4663// String returns the string representation
4664func (s TagResourceInput) String() string {
4665	return awsutil.Prettify(s)
4666}
4667
4668// GoString returns the string representation
4669func (s TagResourceInput) GoString() string {
4670	return s.String()
4671}
4672
4673// Validate inspects the fields of the type to determine if they are valid.
4674func (s *TagResourceInput) Validate() error {
4675	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
4676	if s.ResourceArn == nil {
4677		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4678	}
4679	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4680		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4681	}
4682	if s.Tags == nil {
4683		invalidParams.Add(request.NewErrParamRequired("Tags"))
4684	}
4685	if s.Tags != nil {
4686		for i, v := range s.Tags {
4687			if v == nil {
4688				continue
4689			}
4690			if err := v.Validate(); err != nil {
4691				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4692			}
4693		}
4694	}
4695
4696	if invalidParams.Len() > 0 {
4697		return invalidParams
4698	}
4699	return nil
4700}
4701
4702// SetResourceArn sets the ResourceArn field's value.
4703func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
4704	s.ResourceArn = &v
4705	return s
4706}
4707
4708// SetTags sets the Tags field's value.
4709func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
4710	s.Tags = v
4711	return s
4712}
4713
4714type TagResourceOutput struct {
4715	_ struct{} `type:"structure"`
4716}
4717
4718// String returns the string representation
4719func (s TagResourceOutput) String() string {
4720	return awsutil.Prettify(s)
4721}
4722
4723// GoString returns the string representation
4724func (s TagResourceOutput) GoString() string {
4725	return s.String()
4726}
4727
4728// The request could not be completed due to throttling.
4729type ThrottlingException struct {
4730	_            struct{}                  `type:"structure"`
4731	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4732
4733	// The message for the exception.
4734	Message_ *string `locationName:"message" type:"string"`
4735}
4736
4737// String returns the string representation
4738func (s ThrottlingException) String() string {
4739	return awsutil.Prettify(s)
4740}
4741
4742// GoString returns the string representation
4743func (s ThrottlingException) GoString() string {
4744	return s.String()
4745}
4746
4747func newErrorThrottlingException(v protocol.ResponseMetadata) error {
4748	return &ThrottlingException{
4749		RespMetadata: v,
4750	}
4751}
4752
4753// Code returns the exception type name.
4754func (s *ThrottlingException) Code() string {
4755	return "ThrottlingException"
4756}
4757
4758// Message returns the exception's message.
4759func (s *ThrottlingException) Message() string {
4760	if s.Message_ != nil {
4761		return *s.Message_
4762	}
4763	return ""
4764}
4765
4766// OrigErr always returns nil, satisfies awserr.Error interface.
4767func (s *ThrottlingException) OrigErr() error {
4768	return nil
4769}
4770
4771func (s *ThrottlingException) Error() string {
4772	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4773}
4774
4775// Status code returns the HTTP status code for the request's response error.
4776func (s *ThrottlingException) StatusCode() int {
4777	return s.RespMetadata.StatusCode
4778}
4779
4780// RequestID returns the service's response RequestID for request.
4781func (s *ThrottlingException) RequestID() string {
4782	return s.RespMetadata.RequestID
4783}
4784
4785// Specifies the actions performed and the next state entered when a condition
4786// evaluates to TRUE.
4787type TransitionEvent struct {
4788	_ struct{} `type:"structure"`
4789
4790	// The actions to be performed.
4791	Actions []*ActionData `locationName:"actions" type:"list"`
4792
4793	// Required. A Boolean expression that when TRUE causes the actions to be performed
4794	// and the nextState to be entered.
4795	//
4796	// Condition is a required field
4797	Condition *string `locationName:"condition" type:"string" required:"true"`
4798
4799	// The name of the transition event.
4800	//
4801	// EventName is a required field
4802	EventName *string `locationName:"eventName" type:"string" required:"true"`
4803
4804	// The next state to enter.
4805	//
4806	// NextState is a required field
4807	NextState *string `locationName:"nextState" min:"1" type:"string" required:"true"`
4808}
4809
4810// String returns the string representation
4811func (s TransitionEvent) String() string {
4812	return awsutil.Prettify(s)
4813}
4814
4815// GoString returns the string representation
4816func (s TransitionEvent) GoString() string {
4817	return s.String()
4818}
4819
4820// Validate inspects the fields of the type to determine if they are valid.
4821func (s *TransitionEvent) Validate() error {
4822	invalidParams := request.ErrInvalidParams{Context: "TransitionEvent"}
4823	if s.Condition == nil {
4824		invalidParams.Add(request.NewErrParamRequired("Condition"))
4825	}
4826	if s.EventName == nil {
4827		invalidParams.Add(request.NewErrParamRequired("EventName"))
4828	}
4829	if s.NextState == nil {
4830		invalidParams.Add(request.NewErrParamRequired("NextState"))
4831	}
4832	if s.NextState != nil && len(*s.NextState) < 1 {
4833		invalidParams.Add(request.NewErrParamMinLen("NextState", 1))
4834	}
4835	if s.Actions != nil {
4836		for i, v := range s.Actions {
4837			if v == nil {
4838				continue
4839			}
4840			if err := v.Validate(); err != nil {
4841				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
4842			}
4843		}
4844	}
4845
4846	if invalidParams.Len() > 0 {
4847		return invalidParams
4848	}
4849	return nil
4850}
4851
4852// SetActions sets the Actions field's value.
4853func (s *TransitionEvent) SetActions(v []*ActionData) *TransitionEvent {
4854	s.Actions = v
4855	return s
4856}
4857
4858// SetCondition sets the Condition field's value.
4859func (s *TransitionEvent) SetCondition(v string) *TransitionEvent {
4860	s.Condition = &v
4861	return s
4862}
4863
4864// SetEventName sets the EventName field's value.
4865func (s *TransitionEvent) SetEventName(v string) *TransitionEvent {
4866	s.EventName = &v
4867	return s
4868}
4869
4870// SetNextState sets the NextState field's value.
4871func (s *TransitionEvent) SetNextState(v string) *TransitionEvent {
4872	s.NextState = &v
4873	return s
4874}
4875
4876// The requested operation is not supported.
4877type UnsupportedOperationException struct {
4878	_            struct{}                  `type:"structure"`
4879	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4880
4881	// The message for the exception.
4882	Message_ *string `locationName:"message" type:"string"`
4883}
4884
4885// String returns the string representation
4886func (s UnsupportedOperationException) String() string {
4887	return awsutil.Prettify(s)
4888}
4889
4890// GoString returns the string representation
4891func (s UnsupportedOperationException) GoString() string {
4892	return s.String()
4893}
4894
4895func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error {
4896	return &UnsupportedOperationException{
4897		RespMetadata: v,
4898	}
4899}
4900
4901// Code returns the exception type name.
4902func (s *UnsupportedOperationException) Code() string {
4903	return "UnsupportedOperationException"
4904}
4905
4906// Message returns the exception's message.
4907func (s *UnsupportedOperationException) Message() string {
4908	if s.Message_ != nil {
4909		return *s.Message_
4910	}
4911	return ""
4912}
4913
4914// OrigErr always returns nil, satisfies awserr.Error interface.
4915func (s *UnsupportedOperationException) OrigErr() error {
4916	return nil
4917}
4918
4919func (s *UnsupportedOperationException) Error() string {
4920	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4921}
4922
4923// Status code returns the HTTP status code for the request's response error.
4924func (s *UnsupportedOperationException) StatusCode() int {
4925	return s.RespMetadata.StatusCode
4926}
4927
4928// RequestID returns the service's response RequestID for request.
4929func (s *UnsupportedOperationException) RequestID() string {
4930	return s.RespMetadata.RequestID
4931}
4932
4933type UntagResourceInput struct {
4934	_ struct{} `type:"structure"`
4935
4936	// The ARN of the resource.
4937	//
4938	// ResourceArn is a required field
4939	ResourceArn *string `location:"querystring" locationName:"resourceArn" min:"1" type:"string" required:"true"`
4940
4941	// A list of the keys of the tags to be removed from the resource.
4942	//
4943	// TagKeys is a required field
4944	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
4945}
4946
4947// String returns the string representation
4948func (s UntagResourceInput) String() string {
4949	return awsutil.Prettify(s)
4950}
4951
4952// GoString returns the string representation
4953func (s UntagResourceInput) GoString() string {
4954	return s.String()
4955}
4956
4957// Validate inspects the fields of the type to determine if they are valid.
4958func (s *UntagResourceInput) Validate() error {
4959	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
4960	if s.ResourceArn == nil {
4961		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4962	}
4963	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4964		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4965	}
4966	if s.TagKeys == nil {
4967		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
4968	}
4969
4970	if invalidParams.Len() > 0 {
4971		return invalidParams
4972	}
4973	return nil
4974}
4975
4976// SetResourceArn sets the ResourceArn field's value.
4977func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
4978	s.ResourceArn = &v
4979	return s
4980}
4981
4982// SetTagKeys sets the TagKeys field's value.
4983func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
4984	s.TagKeys = v
4985	return s
4986}
4987
4988type UntagResourceOutput struct {
4989	_ struct{} `type:"structure"`
4990}
4991
4992// String returns the string representation
4993func (s UntagResourceOutput) String() string {
4994	return awsutil.Prettify(s)
4995}
4996
4997// GoString returns the string representation
4998func (s UntagResourceOutput) GoString() string {
4999	return s.String()
5000}
5001
5002type UpdateDetectorModelInput struct {
5003	_ struct{} `type:"structure"`
5004
5005	// Information that defines how a detector operates.
5006	//
5007	// DetectorModelDefinition is a required field
5008	DetectorModelDefinition *DetectorModelDefinition `locationName:"detectorModelDefinition" type:"structure" required:"true"`
5009
5010	// A brief description of the detector model.
5011	DetectorModelDescription *string `locationName:"detectorModelDescription" type:"string"`
5012
5013	// The name of the detector model that is updated.
5014	//
5015	// DetectorModelName is a required field
5016	DetectorModelName *string `location:"uri" locationName:"detectorModelName" min:"1" type:"string" required:"true"`
5017
5018	// Information about the order in which events are evaluated and how actions
5019	// are executed.
5020	EvaluationMethod *string `locationName:"evaluationMethod" type:"string" enum:"EvaluationMethod"`
5021
5022	// The ARN of the role that grants permission to AWS IoT Events to perform its
5023	// operations.
5024	//
5025	// RoleArn is a required field
5026	RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
5027}
5028
5029// String returns the string representation
5030func (s UpdateDetectorModelInput) String() string {
5031	return awsutil.Prettify(s)
5032}
5033
5034// GoString returns the string representation
5035func (s UpdateDetectorModelInput) GoString() string {
5036	return s.String()
5037}
5038
5039// Validate inspects the fields of the type to determine if they are valid.
5040func (s *UpdateDetectorModelInput) Validate() error {
5041	invalidParams := request.ErrInvalidParams{Context: "UpdateDetectorModelInput"}
5042	if s.DetectorModelDefinition == nil {
5043		invalidParams.Add(request.NewErrParamRequired("DetectorModelDefinition"))
5044	}
5045	if s.DetectorModelName == nil {
5046		invalidParams.Add(request.NewErrParamRequired("DetectorModelName"))
5047	}
5048	if s.DetectorModelName != nil && len(*s.DetectorModelName) < 1 {
5049		invalidParams.Add(request.NewErrParamMinLen("DetectorModelName", 1))
5050	}
5051	if s.RoleArn == nil {
5052		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
5053	}
5054	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
5055		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
5056	}
5057	if s.DetectorModelDefinition != nil {
5058		if err := s.DetectorModelDefinition.Validate(); err != nil {
5059			invalidParams.AddNested("DetectorModelDefinition", err.(request.ErrInvalidParams))
5060		}
5061	}
5062
5063	if invalidParams.Len() > 0 {
5064		return invalidParams
5065	}
5066	return nil
5067}
5068
5069// SetDetectorModelDefinition sets the DetectorModelDefinition field's value.
5070func (s *UpdateDetectorModelInput) SetDetectorModelDefinition(v *DetectorModelDefinition) *UpdateDetectorModelInput {
5071	s.DetectorModelDefinition = v
5072	return s
5073}
5074
5075// SetDetectorModelDescription sets the DetectorModelDescription field's value.
5076func (s *UpdateDetectorModelInput) SetDetectorModelDescription(v string) *UpdateDetectorModelInput {
5077	s.DetectorModelDescription = &v
5078	return s
5079}
5080
5081// SetDetectorModelName sets the DetectorModelName field's value.
5082func (s *UpdateDetectorModelInput) SetDetectorModelName(v string) *UpdateDetectorModelInput {
5083	s.DetectorModelName = &v
5084	return s
5085}
5086
5087// SetEvaluationMethod sets the EvaluationMethod field's value.
5088func (s *UpdateDetectorModelInput) SetEvaluationMethod(v string) *UpdateDetectorModelInput {
5089	s.EvaluationMethod = &v
5090	return s
5091}
5092
5093// SetRoleArn sets the RoleArn field's value.
5094func (s *UpdateDetectorModelInput) SetRoleArn(v string) *UpdateDetectorModelInput {
5095	s.RoleArn = &v
5096	return s
5097}
5098
5099type UpdateDetectorModelOutput struct {
5100	_ struct{} `type:"structure"`
5101
5102	// Information about how the detector model is configured.
5103	DetectorModelConfiguration *DetectorModelConfiguration `locationName:"detectorModelConfiguration" type:"structure"`
5104}
5105
5106// String returns the string representation
5107func (s UpdateDetectorModelOutput) String() string {
5108	return awsutil.Prettify(s)
5109}
5110
5111// GoString returns the string representation
5112func (s UpdateDetectorModelOutput) GoString() string {
5113	return s.String()
5114}
5115
5116// SetDetectorModelConfiguration sets the DetectorModelConfiguration field's value.
5117func (s *UpdateDetectorModelOutput) SetDetectorModelConfiguration(v *DetectorModelConfiguration) *UpdateDetectorModelOutput {
5118	s.DetectorModelConfiguration = v
5119	return s
5120}
5121
5122type UpdateInputInput struct {
5123	_ struct{} `type:"structure"`
5124
5125	// The definition of the input.
5126	//
5127	// InputDefinition is a required field
5128	InputDefinition *InputDefinition `locationName:"inputDefinition" type:"structure" required:"true"`
5129
5130	// A brief description of the input.
5131	InputDescription *string `locationName:"inputDescription" type:"string"`
5132
5133	// The name of the input you want to update.
5134	//
5135	// InputName is a required field
5136	InputName *string `location:"uri" locationName:"inputName" min:"1" type:"string" required:"true"`
5137}
5138
5139// String returns the string representation
5140func (s UpdateInputInput) String() string {
5141	return awsutil.Prettify(s)
5142}
5143
5144// GoString returns the string representation
5145func (s UpdateInputInput) GoString() string {
5146	return s.String()
5147}
5148
5149// Validate inspects the fields of the type to determine if they are valid.
5150func (s *UpdateInputInput) Validate() error {
5151	invalidParams := request.ErrInvalidParams{Context: "UpdateInputInput"}
5152	if s.InputDefinition == nil {
5153		invalidParams.Add(request.NewErrParamRequired("InputDefinition"))
5154	}
5155	if s.InputName == nil {
5156		invalidParams.Add(request.NewErrParamRequired("InputName"))
5157	}
5158	if s.InputName != nil && len(*s.InputName) < 1 {
5159		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
5160	}
5161	if s.InputDefinition != nil {
5162		if err := s.InputDefinition.Validate(); err != nil {
5163			invalidParams.AddNested("InputDefinition", err.(request.ErrInvalidParams))
5164		}
5165	}
5166
5167	if invalidParams.Len() > 0 {
5168		return invalidParams
5169	}
5170	return nil
5171}
5172
5173// SetInputDefinition sets the InputDefinition field's value.
5174func (s *UpdateInputInput) SetInputDefinition(v *InputDefinition) *UpdateInputInput {
5175	s.InputDefinition = v
5176	return s
5177}
5178
5179// SetInputDescription sets the InputDescription field's value.
5180func (s *UpdateInputInput) SetInputDescription(v string) *UpdateInputInput {
5181	s.InputDescription = &v
5182	return s
5183}
5184
5185// SetInputName sets the InputName field's value.
5186func (s *UpdateInputInput) SetInputName(v string) *UpdateInputInput {
5187	s.InputName = &v
5188	return s
5189}
5190
5191type UpdateInputOutput struct {
5192	_ struct{} `type:"structure"`
5193
5194	// Information about the configuration of the input.
5195	InputConfiguration *InputConfiguration `locationName:"inputConfiguration" type:"structure"`
5196}
5197
5198// String returns the string representation
5199func (s UpdateInputOutput) String() string {
5200	return awsutil.Prettify(s)
5201}
5202
5203// GoString returns the string representation
5204func (s UpdateInputOutput) GoString() string {
5205	return s.String()
5206}
5207
5208// SetInputConfiguration sets the InputConfiguration field's value.
5209func (s *UpdateInputOutput) SetInputConfiguration(v *InputConfiguration) *UpdateInputOutput {
5210	s.InputConfiguration = v
5211	return s
5212}
5213
5214const (
5215	// DetectorModelVersionStatusActive is a DetectorModelVersionStatus enum value
5216	DetectorModelVersionStatusActive = "ACTIVE"
5217
5218	// DetectorModelVersionStatusActivating is a DetectorModelVersionStatus enum value
5219	DetectorModelVersionStatusActivating = "ACTIVATING"
5220
5221	// DetectorModelVersionStatusInactive is a DetectorModelVersionStatus enum value
5222	DetectorModelVersionStatusInactive = "INACTIVE"
5223
5224	// DetectorModelVersionStatusDeprecated is a DetectorModelVersionStatus enum value
5225	DetectorModelVersionStatusDeprecated = "DEPRECATED"
5226
5227	// DetectorModelVersionStatusDraft is a DetectorModelVersionStatus enum value
5228	DetectorModelVersionStatusDraft = "DRAFT"
5229
5230	// DetectorModelVersionStatusPaused is a DetectorModelVersionStatus enum value
5231	DetectorModelVersionStatusPaused = "PAUSED"
5232
5233	// DetectorModelVersionStatusFailed is a DetectorModelVersionStatus enum value
5234	DetectorModelVersionStatusFailed = "FAILED"
5235)
5236
5237const (
5238	// EvaluationMethodBatch is a EvaluationMethod enum value
5239	EvaluationMethodBatch = "BATCH"
5240
5241	// EvaluationMethodSerial is a EvaluationMethod enum value
5242	EvaluationMethodSerial = "SERIAL"
5243)
5244
5245const (
5246	// InputStatusCreating is a InputStatus enum value
5247	InputStatusCreating = "CREATING"
5248
5249	// InputStatusUpdating is a InputStatus enum value
5250	InputStatusUpdating = "UPDATING"
5251
5252	// InputStatusActive is a InputStatus enum value
5253	InputStatusActive = "ACTIVE"
5254
5255	// InputStatusDeleting is a InputStatus enum value
5256	InputStatusDeleting = "DELETING"
5257)
5258
5259const (
5260	// LoggingLevelError is a LoggingLevel enum value
5261	LoggingLevelError = "ERROR"
5262
5263	// LoggingLevelInfo is a LoggingLevel enum value
5264	LoggingLevelInfo = "INFO"
5265
5266	// LoggingLevelDebug is a LoggingLevel enum value
5267	LoggingLevelDebug = "DEBUG"
5268)
5269