1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package iotthingsgraph
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/jsonrpc"
14)
15
16const opAssociateEntityToThing = "AssociateEntityToThing"
17
18// AssociateEntityToThingRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateEntityToThing 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 AssociateEntityToThing for more information on using the AssociateEntityToThing
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 AssociateEntityToThingRequest method.
34//    req, resp := client.AssociateEntityToThingRequest(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/iotthingsgraph-2018-09-06/AssociateEntityToThing
42func (c *IoTThingsGraph) AssociateEntityToThingRequest(input *AssociateEntityToThingInput) (req *request.Request, output *AssociateEntityToThingOutput) {
43	op := &request.Operation{
44		Name:       opAssociateEntityToThing,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateEntityToThingInput{}
51	}
52
53	output = &AssociateEntityToThingOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateEntityToThing API operation for AWS IoT Things Graph.
60//
61// Associates a device with a concrete thing that is in the user's registry.
62//
63// A thing can be associated with only one device at a time. If you associate
64// a thing with a new device id, its previous association will be removed.
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for AWS IoT Things Graph's
71// API operation AssociateEntityToThing for usage and error information.
72//
73// Returned Error Types:
74//   * InvalidRequestException
75//
76//   * ResourceNotFoundException
77//
78//   * InternalFailureException
79//
80//   * ThrottlingException
81//
82// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/AssociateEntityToThing
83func (c *IoTThingsGraph) AssociateEntityToThing(input *AssociateEntityToThingInput) (*AssociateEntityToThingOutput, error) {
84	req, out := c.AssociateEntityToThingRequest(input)
85	return out, req.Send()
86}
87
88// AssociateEntityToThingWithContext is the same as AssociateEntityToThing with the addition of
89// the ability to pass a context and additional request options.
90//
91// See AssociateEntityToThing for details on how to use this API operation.
92//
93// The context must be non-nil and will be used for request cancellation. If
94// the context is nil a panic will occur. In the future the SDK may create
95// sub-contexts for http.Requests. See https://golang.org/pkg/context/
96// for more information on using Contexts.
97func (c *IoTThingsGraph) AssociateEntityToThingWithContext(ctx aws.Context, input *AssociateEntityToThingInput, opts ...request.Option) (*AssociateEntityToThingOutput, error) {
98	req, out := c.AssociateEntityToThingRequest(input)
99	req.SetContext(ctx)
100	req.ApplyOptions(opts...)
101	return out, req.Send()
102}
103
104const opCreateFlowTemplate = "CreateFlowTemplate"
105
106// CreateFlowTemplateRequest generates a "aws/request.Request" representing the
107// client's request for the CreateFlowTemplate operation. The "output" return
108// value will be populated with the request's response once the request completes
109// successfully.
110//
111// Use "Send" method on the returned Request to send the API call to the service.
112// the "output" return value is not valid until after Send returns without error.
113//
114// See CreateFlowTemplate for more information on using the CreateFlowTemplate
115// API call, and error handling.
116//
117// This method is useful when you want to inject custom logic or configuration
118// into the SDK's request lifecycle. Such as custom headers, or retry logic.
119//
120//
121//    // Example sending a request using the CreateFlowTemplateRequest method.
122//    req, resp := client.CreateFlowTemplateRequest(params)
123//
124//    err := req.Send()
125//    if err == nil { // resp is now filled
126//        fmt.Println(resp)
127//    }
128//
129// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/CreateFlowTemplate
130func (c *IoTThingsGraph) CreateFlowTemplateRequest(input *CreateFlowTemplateInput) (req *request.Request, output *CreateFlowTemplateOutput) {
131	op := &request.Operation{
132		Name:       opCreateFlowTemplate,
133		HTTPMethod: "POST",
134		HTTPPath:   "/",
135	}
136
137	if input == nil {
138		input = &CreateFlowTemplateInput{}
139	}
140
141	output = &CreateFlowTemplateOutput{}
142	req = c.newRequest(op, input, output)
143	return
144}
145
146// CreateFlowTemplate API operation for AWS IoT Things Graph.
147//
148// Creates a workflow template. Workflows can be created only in the user's
149// namespace. (The public namespace contains only entities.) The workflow can
150// contain only entities in the specified namespace. The workflow is validated
151// against the entities in the latest version of the user's namespace unless
152// another namespace version is specified in the request.
153//
154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
155// with awserr.Error's Code and Message methods to get detailed information about
156// the error.
157//
158// See the AWS API reference guide for AWS IoT Things Graph's
159// API operation CreateFlowTemplate for usage and error information.
160//
161// Returned Error Types:
162//   * InvalidRequestException
163//
164//   * ResourceAlreadyExistsException
165//
166//   * ThrottlingException
167//
168//   * LimitExceededException
169//
170//   * InternalFailureException
171//
172// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/CreateFlowTemplate
173func (c *IoTThingsGraph) CreateFlowTemplate(input *CreateFlowTemplateInput) (*CreateFlowTemplateOutput, error) {
174	req, out := c.CreateFlowTemplateRequest(input)
175	return out, req.Send()
176}
177
178// CreateFlowTemplateWithContext is the same as CreateFlowTemplate with the addition of
179// the ability to pass a context and additional request options.
180//
181// See CreateFlowTemplate for details on how to use this API operation.
182//
183// The context must be non-nil and will be used for request cancellation. If
184// the context is nil a panic will occur. In the future the SDK may create
185// sub-contexts for http.Requests. See https://golang.org/pkg/context/
186// for more information on using Contexts.
187func (c *IoTThingsGraph) CreateFlowTemplateWithContext(ctx aws.Context, input *CreateFlowTemplateInput, opts ...request.Option) (*CreateFlowTemplateOutput, error) {
188	req, out := c.CreateFlowTemplateRequest(input)
189	req.SetContext(ctx)
190	req.ApplyOptions(opts...)
191	return out, req.Send()
192}
193
194const opCreateSystemInstance = "CreateSystemInstance"
195
196// CreateSystemInstanceRequest generates a "aws/request.Request" representing the
197// client's request for the CreateSystemInstance operation. The "output" return
198// value will be populated with the request's response once the request completes
199// successfully.
200//
201// Use "Send" method on the returned Request to send the API call to the service.
202// the "output" return value is not valid until after Send returns without error.
203//
204// See CreateSystemInstance for more information on using the CreateSystemInstance
205// API call, and error handling.
206//
207// This method is useful when you want to inject custom logic or configuration
208// into the SDK's request lifecycle. Such as custom headers, or retry logic.
209//
210//
211//    // Example sending a request using the CreateSystemInstanceRequest method.
212//    req, resp := client.CreateSystemInstanceRequest(params)
213//
214//    err := req.Send()
215//    if err == nil { // resp is now filled
216//        fmt.Println(resp)
217//    }
218//
219// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/CreateSystemInstance
220func (c *IoTThingsGraph) CreateSystemInstanceRequest(input *CreateSystemInstanceInput) (req *request.Request, output *CreateSystemInstanceOutput) {
221	op := &request.Operation{
222		Name:       opCreateSystemInstance,
223		HTTPMethod: "POST",
224		HTTPPath:   "/",
225	}
226
227	if input == nil {
228		input = &CreateSystemInstanceInput{}
229	}
230
231	output = &CreateSystemInstanceOutput{}
232	req = c.newRequest(op, input, output)
233	return
234}
235
236// CreateSystemInstance API operation for AWS IoT Things Graph.
237//
238// Creates a system instance.
239//
240// This action validates the system instance, prepares the deployment-related
241// resources. For Greengrass deployments, it updates the Greengrass group that
242// is specified by the greengrassGroupName parameter. It also adds a file to
243// the S3 bucket specified by the s3BucketName parameter. You need to call DeploySystemInstance
244// after running this action.
245//
246// For Greengrass deployments, since this action modifies and adds resources
247// to a Greengrass group and an S3 bucket on the caller's behalf, the calling
248// identity must have write permissions to both the specified Greengrass group
249// and S3 bucket. Otherwise, the call will fail with an authorization error.
250//
251// For cloud deployments, this action requires a flowActionsRoleArn value. This
252// is an IAM role that has permissions to access AWS services, such as AWS Lambda
253// and AWS IoT, that the flow uses when it executes.
254//
255// If the definition document doesn't specify a version of the user's namespace,
256// the latest version will be used by default.
257//
258// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
259// with awserr.Error's Code and Message methods to get detailed information about
260// the error.
261//
262// See the AWS API reference guide for AWS IoT Things Graph's
263// API operation CreateSystemInstance for usage and error information.
264//
265// Returned Error Types:
266//   * InvalidRequestException
267//
268//   * ResourceAlreadyExistsException
269//
270//   * ThrottlingException
271//
272//   * InternalFailureException
273//
274//   * LimitExceededException
275//
276// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/CreateSystemInstance
277func (c *IoTThingsGraph) CreateSystemInstance(input *CreateSystemInstanceInput) (*CreateSystemInstanceOutput, error) {
278	req, out := c.CreateSystemInstanceRequest(input)
279	return out, req.Send()
280}
281
282// CreateSystemInstanceWithContext is the same as CreateSystemInstance with the addition of
283// the ability to pass a context and additional request options.
284//
285// See CreateSystemInstance for details on how to use this API operation.
286//
287// The context must be non-nil and will be used for request cancellation. If
288// the context is nil a panic will occur. In the future the SDK may create
289// sub-contexts for http.Requests. See https://golang.org/pkg/context/
290// for more information on using Contexts.
291func (c *IoTThingsGraph) CreateSystemInstanceWithContext(ctx aws.Context, input *CreateSystemInstanceInput, opts ...request.Option) (*CreateSystemInstanceOutput, error) {
292	req, out := c.CreateSystemInstanceRequest(input)
293	req.SetContext(ctx)
294	req.ApplyOptions(opts...)
295	return out, req.Send()
296}
297
298const opCreateSystemTemplate = "CreateSystemTemplate"
299
300// CreateSystemTemplateRequest generates a "aws/request.Request" representing the
301// client's request for the CreateSystemTemplate operation. The "output" return
302// value will be populated with the request's response once the request completes
303// successfully.
304//
305// Use "Send" method on the returned Request to send the API call to the service.
306// the "output" return value is not valid until after Send returns without error.
307//
308// See CreateSystemTemplate for more information on using the CreateSystemTemplate
309// API call, and error handling.
310//
311// This method is useful when you want to inject custom logic or configuration
312// into the SDK's request lifecycle. Such as custom headers, or retry logic.
313//
314//
315//    // Example sending a request using the CreateSystemTemplateRequest method.
316//    req, resp := client.CreateSystemTemplateRequest(params)
317//
318//    err := req.Send()
319//    if err == nil { // resp is now filled
320//        fmt.Println(resp)
321//    }
322//
323// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/CreateSystemTemplate
324func (c *IoTThingsGraph) CreateSystemTemplateRequest(input *CreateSystemTemplateInput) (req *request.Request, output *CreateSystemTemplateOutput) {
325	op := &request.Operation{
326		Name:       opCreateSystemTemplate,
327		HTTPMethod: "POST",
328		HTTPPath:   "/",
329	}
330
331	if input == nil {
332		input = &CreateSystemTemplateInput{}
333	}
334
335	output = &CreateSystemTemplateOutput{}
336	req = c.newRequest(op, input, output)
337	return
338}
339
340// CreateSystemTemplate API operation for AWS IoT Things Graph.
341//
342// Creates a system. The system is validated against the entities in the latest
343// version of the user's namespace unless another namespace version is specified
344// in the request.
345//
346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
347// with awserr.Error's Code and Message methods to get detailed information about
348// the error.
349//
350// See the AWS API reference guide for AWS IoT Things Graph's
351// API operation CreateSystemTemplate for usage and error information.
352//
353// Returned Error Types:
354//   * InvalidRequestException
355//
356//   * ResourceAlreadyExistsException
357//
358//   * ThrottlingException
359//
360//   * InternalFailureException
361//
362// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/CreateSystemTemplate
363func (c *IoTThingsGraph) CreateSystemTemplate(input *CreateSystemTemplateInput) (*CreateSystemTemplateOutput, error) {
364	req, out := c.CreateSystemTemplateRequest(input)
365	return out, req.Send()
366}
367
368// CreateSystemTemplateWithContext is the same as CreateSystemTemplate with the addition of
369// the ability to pass a context and additional request options.
370//
371// See CreateSystemTemplate for details on how to use this API operation.
372//
373// The context must be non-nil and will be used for request cancellation. If
374// the context is nil a panic will occur. In the future the SDK may create
375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
376// for more information on using Contexts.
377func (c *IoTThingsGraph) CreateSystemTemplateWithContext(ctx aws.Context, input *CreateSystemTemplateInput, opts ...request.Option) (*CreateSystemTemplateOutput, error) {
378	req, out := c.CreateSystemTemplateRequest(input)
379	req.SetContext(ctx)
380	req.ApplyOptions(opts...)
381	return out, req.Send()
382}
383
384const opDeleteFlowTemplate = "DeleteFlowTemplate"
385
386// DeleteFlowTemplateRequest generates a "aws/request.Request" representing the
387// client's request for the DeleteFlowTemplate operation. The "output" return
388// value will be populated with the request's response once the request completes
389// successfully.
390//
391// Use "Send" method on the returned Request to send the API call to the service.
392// the "output" return value is not valid until after Send returns without error.
393//
394// See DeleteFlowTemplate for more information on using the DeleteFlowTemplate
395// API call, and error handling.
396//
397// This method is useful when you want to inject custom logic or configuration
398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
399//
400//
401//    // Example sending a request using the DeleteFlowTemplateRequest method.
402//    req, resp := client.DeleteFlowTemplateRequest(params)
403//
404//    err := req.Send()
405//    if err == nil { // resp is now filled
406//        fmt.Println(resp)
407//    }
408//
409// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteFlowTemplate
410func (c *IoTThingsGraph) DeleteFlowTemplateRequest(input *DeleteFlowTemplateInput) (req *request.Request, output *DeleteFlowTemplateOutput) {
411	op := &request.Operation{
412		Name:       opDeleteFlowTemplate,
413		HTTPMethod: "POST",
414		HTTPPath:   "/",
415	}
416
417	if input == nil {
418		input = &DeleteFlowTemplateInput{}
419	}
420
421	output = &DeleteFlowTemplateOutput{}
422	req = c.newRequest(op, input, output)
423	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
424	return
425}
426
427// DeleteFlowTemplate API operation for AWS IoT Things Graph.
428//
429// Deletes a workflow. Any new system or deployment that contains this workflow
430// will fail to update or deploy. Existing deployments that contain the workflow
431// will continue to run (since they use a snapshot of the workflow taken at
432// the time of deployment).
433//
434// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
435// with awserr.Error's Code and Message methods to get detailed information about
436// the error.
437//
438// See the AWS API reference guide for AWS IoT Things Graph's
439// API operation DeleteFlowTemplate for usage and error information.
440//
441// Returned Error Types:
442//   * InvalidRequestException
443//
444//   * ThrottlingException
445//
446//   * InternalFailureException
447//
448//   * ResourceInUseException
449//
450// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteFlowTemplate
451func (c *IoTThingsGraph) DeleteFlowTemplate(input *DeleteFlowTemplateInput) (*DeleteFlowTemplateOutput, error) {
452	req, out := c.DeleteFlowTemplateRequest(input)
453	return out, req.Send()
454}
455
456// DeleteFlowTemplateWithContext is the same as DeleteFlowTemplate with the addition of
457// the ability to pass a context and additional request options.
458//
459// See DeleteFlowTemplate for details on how to use this API operation.
460//
461// The context must be non-nil and will be used for request cancellation. If
462// the context is nil a panic will occur. In the future the SDK may create
463// sub-contexts for http.Requests. See https://golang.org/pkg/context/
464// for more information on using Contexts.
465func (c *IoTThingsGraph) DeleteFlowTemplateWithContext(ctx aws.Context, input *DeleteFlowTemplateInput, opts ...request.Option) (*DeleteFlowTemplateOutput, error) {
466	req, out := c.DeleteFlowTemplateRequest(input)
467	req.SetContext(ctx)
468	req.ApplyOptions(opts...)
469	return out, req.Send()
470}
471
472const opDeleteNamespace = "DeleteNamespace"
473
474// DeleteNamespaceRequest generates a "aws/request.Request" representing the
475// client's request for the DeleteNamespace operation. The "output" return
476// value will be populated with the request's response once the request completes
477// successfully.
478//
479// Use "Send" method on the returned Request to send the API call to the service.
480// the "output" return value is not valid until after Send returns without error.
481//
482// See DeleteNamespace for more information on using the DeleteNamespace
483// API call, and error handling.
484//
485// This method is useful when you want to inject custom logic or configuration
486// into the SDK's request lifecycle. Such as custom headers, or retry logic.
487//
488//
489//    // Example sending a request using the DeleteNamespaceRequest method.
490//    req, resp := client.DeleteNamespaceRequest(params)
491//
492//    err := req.Send()
493//    if err == nil { // resp is now filled
494//        fmt.Println(resp)
495//    }
496//
497// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteNamespace
498func (c *IoTThingsGraph) DeleteNamespaceRequest(input *DeleteNamespaceInput) (req *request.Request, output *DeleteNamespaceOutput) {
499	op := &request.Operation{
500		Name:       opDeleteNamespace,
501		HTTPMethod: "POST",
502		HTTPPath:   "/",
503	}
504
505	if input == nil {
506		input = &DeleteNamespaceInput{}
507	}
508
509	output = &DeleteNamespaceOutput{}
510	req = c.newRequest(op, input, output)
511	return
512}
513
514// DeleteNamespace API operation for AWS IoT Things Graph.
515//
516// Deletes the specified namespace. This action deletes all of the entities
517// in the namespace. Delete the systems and flows that use entities in the namespace
518// before performing this action.
519//
520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
521// with awserr.Error's Code and Message methods to get detailed information about
522// the error.
523//
524// See the AWS API reference guide for AWS IoT Things Graph's
525// API operation DeleteNamespace for usage and error information.
526//
527// Returned Error Types:
528//   * InternalFailureException
529//
530//   * ThrottlingException
531//
532// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteNamespace
533func (c *IoTThingsGraph) DeleteNamespace(input *DeleteNamespaceInput) (*DeleteNamespaceOutput, error) {
534	req, out := c.DeleteNamespaceRequest(input)
535	return out, req.Send()
536}
537
538// DeleteNamespaceWithContext is the same as DeleteNamespace with the addition of
539// the ability to pass a context and additional request options.
540//
541// See DeleteNamespace for details on how to use this API operation.
542//
543// The context must be non-nil and will be used for request cancellation. If
544// the context is nil a panic will occur. In the future the SDK may create
545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
546// for more information on using Contexts.
547func (c *IoTThingsGraph) DeleteNamespaceWithContext(ctx aws.Context, input *DeleteNamespaceInput, opts ...request.Option) (*DeleteNamespaceOutput, error) {
548	req, out := c.DeleteNamespaceRequest(input)
549	req.SetContext(ctx)
550	req.ApplyOptions(opts...)
551	return out, req.Send()
552}
553
554const opDeleteSystemInstance = "DeleteSystemInstance"
555
556// DeleteSystemInstanceRequest generates a "aws/request.Request" representing the
557// client's request for the DeleteSystemInstance operation. The "output" return
558// value will be populated with the request's response once the request completes
559// successfully.
560//
561// Use "Send" method on the returned Request to send the API call to the service.
562// the "output" return value is not valid until after Send returns without error.
563//
564// See DeleteSystemInstance for more information on using the DeleteSystemInstance
565// API call, and error handling.
566//
567// This method is useful when you want to inject custom logic or configuration
568// into the SDK's request lifecycle. Such as custom headers, or retry logic.
569//
570//
571//    // Example sending a request using the DeleteSystemInstanceRequest method.
572//    req, resp := client.DeleteSystemInstanceRequest(params)
573//
574//    err := req.Send()
575//    if err == nil { // resp is now filled
576//        fmt.Println(resp)
577//    }
578//
579// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteSystemInstance
580func (c *IoTThingsGraph) DeleteSystemInstanceRequest(input *DeleteSystemInstanceInput) (req *request.Request, output *DeleteSystemInstanceOutput) {
581	op := &request.Operation{
582		Name:       opDeleteSystemInstance,
583		HTTPMethod: "POST",
584		HTTPPath:   "/",
585	}
586
587	if input == nil {
588		input = &DeleteSystemInstanceInput{}
589	}
590
591	output = &DeleteSystemInstanceOutput{}
592	req = c.newRequest(op, input, output)
593	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
594	return
595}
596
597// DeleteSystemInstance API operation for AWS IoT Things Graph.
598//
599// Deletes a system instance. Only system instances that have never been deployed,
600// or that have been undeployed can be deleted.
601//
602// Users can create a new system instance that has the same ID as a deleted
603// system instance.
604//
605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
606// with awserr.Error's Code and Message methods to get detailed information about
607// the error.
608//
609// See the AWS API reference guide for AWS IoT Things Graph's
610// API operation DeleteSystemInstance for usage and error information.
611//
612// Returned Error Types:
613//   * InvalidRequestException
614//
615//   * ThrottlingException
616//
617//   * InternalFailureException
618//
619//   * ResourceInUseException
620//
621// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteSystemInstance
622func (c *IoTThingsGraph) DeleteSystemInstance(input *DeleteSystemInstanceInput) (*DeleteSystemInstanceOutput, error) {
623	req, out := c.DeleteSystemInstanceRequest(input)
624	return out, req.Send()
625}
626
627// DeleteSystemInstanceWithContext is the same as DeleteSystemInstance with the addition of
628// the ability to pass a context and additional request options.
629//
630// See DeleteSystemInstance for details on how to use this API operation.
631//
632// The context must be non-nil and will be used for request cancellation. If
633// the context is nil a panic will occur. In the future the SDK may create
634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
635// for more information on using Contexts.
636func (c *IoTThingsGraph) DeleteSystemInstanceWithContext(ctx aws.Context, input *DeleteSystemInstanceInput, opts ...request.Option) (*DeleteSystemInstanceOutput, error) {
637	req, out := c.DeleteSystemInstanceRequest(input)
638	req.SetContext(ctx)
639	req.ApplyOptions(opts...)
640	return out, req.Send()
641}
642
643const opDeleteSystemTemplate = "DeleteSystemTemplate"
644
645// DeleteSystemTemplateRequest generates a "aws/request.Request" representing the
646// client's request for the DeleteSystemTemplate operation. The "output" return
647// value will be populated with the request's response once the request completes
648// successfully.
649//
650// Use "Send" method on the returned Request to send the API call to the service.
651// the "output" return value is not valid until after Send returns without error.
652//
653// See DeleteSystemTemplate for more information on using the DeleteSystemTemplate
654// API call, and error handling.
655//
656// This method is useful when you want to inject custom logic or configuration
657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
658//
659//
660//    // Example sending a request using the DeleteSystemTemplateRequest method.
661//    req, resp := client.DeleteSystemTemplateRequest(params)
662//
663//    err := req.Send()
664//    if err == nil { // resp is now filled
665//        fmt.Println(resp)
666//    }
667//
668// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteSystemTemplate
669func (c *IoTThingsGraph) DeleteSystemTemplateRequest(input *DeleteSystemTemplateInput) (req *request.Request, output *DeleteSystemTemplateOutput) {
670	op := &request.Operation{
671		Name:       opDeleteSystemTemplate,
672		HTTPMethod: "POST",
673		HTTPPath:   "/",
674	}
675
676	if input == nil {
677		input = &DeleteSystemTemplateInput{}
678	}
679
680	output = &DeleteSystemTemplateOutput{}
681	req = c.newRequest(op, input, output)
682	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
683	return
684}
685
686// DeleteSystemTemplate API operation for AWS IoT Things Graph.
687//
688// Deletes a system. New deployments can't contain the system after its deletion.
689// Existing deployments that contain the system will continue to work because
690// they use a snapshot of the system that is taken when it is deployed.
691//
692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
693// with awserr.Error's Code and Message methods to get detailed information about
694// the error.
695//
696// See the AWS API reference guide for AWS IoT Things Graph's
697// API operation DeleteSystemTemplate for usage and error information.
698//
699// Returned Error Types:
700//   * InvalidRequestException
701//
702//   * ThrottlingException
703//
704//   * InternalFailureException
705//
706//   * ResourceInUseException
707//
708// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeleteSystemTemplate
709func (c *IoTThingsGraph) DeleteSystemTemplate(input *DeleteSystemTemplateInput) (*DeleteSystemTemplateOutput, error) {
710	req, out := c.DeleteSystemTemplateRequest(input)
711	return out, req.Send()
712}
713
714// DeleteSystemTemplateWithContext is the same as DeleteSystemTemplate with the addition of
715// the ability to pass a context and additional request options.
716//
717// See DeleteSystemTemplate for details on how to use this API operation.
718//
719// The context must be non-nil and will be used for request cancellation. If
720// the context is nil a panic will occur. In the future the SDK may create
721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
722// for more information on using Contexts.
723func (c *IoTThingsGraph) DeleteSystemTemplateWithContext(ctx aws.Context, input *DeleteSystemTemplateInput, opts ...request.Option) (*DeleteSystemTemplateOutput, error) {
724	req, out := c.DeleteSystemTemplateRequest(input)
725	req.SetContext(ctx)
726	req.ApplyOptions(opts...)
727	return out, req.Send()
728}
729
730const opDeploySystemInstance = "DeploySystemInstance"
731
732// DeploySystemInstanceRequest generates a "aws/request.Request" representing the
733// client's request for the DeploySystemInstance operation. The "output" return
734// value will be populated with the request's response once the request completes
735// successfully.
736//
737// Use "Send" method on the returned Request to send the API call to the service.
738// the "output" return value is not valid until after Send returns without error.
739//
740// See DeploySystemInstance for more information on using the DeploySystemInstance
741// API call, and error handling.
742//
743// This method is useful when you want to inject custom logic or configuration
744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
745//
746//
747//    // Example sending a request using the DeploySystemInstanceRequest method.
748//    req, resp := client.DeploySystemInstanceRequest(params)
749//
750//    err := req.Send()
751//    if err == nil { // resp is now filled
752//        fmt.Println(resp)
753//    }
754//
755// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeploySystemInstance
756func (c *IoTThingsGraph) DeploySystemInstanceRequest(input *DeploySystemInstanceInput) (req *request.Request, output *DeploySystemInstanceOutput) {
757	op := &request.Operation{
758		Name:       opDeploySystemInstance,
759		HTTPMethod: "POST",
760		HTTPPath:   "/",
761	}
762
763	if input == nil {
764		input = &DeploySystemInstanceInput{}
765	}
766
767	output = &DeploySystemInstanceOutput{}
768	req = c.newRequest(op, input, output)
769	return
770}
771
772// DeploySystemInstance API operation for AWS IoT Things Graph.
773//
774// Greengrass and Cloud Deployments
775//
776// Deploys the system instance to the target specified in CreateSystemInstance.
777//
778// Greengrass Deployments
779//
780// If the system or any workflows and entities have been updated before this
781// action is called, then the deployment will create a new Amazon Simple Storage
782// Service resource file and then deploy it.
783//
784// Since this action creates a Greengrass deployment on the caller's behalf,
785// the calling identity must have write permissions to the specified Greengrass
786// group. Otherwise, the call will fail with an authorization error.
787//
788// For information about the artifacts that get added to your Greengrass core
789// device when you use this API, see AWS IoT Things Graph and AWS IoT Greengrass
790// (https://docs.aws.amazon.com/thingsgraph/latest/ug/iot-tg-greengrass.html).
791//
792// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
793// with awserr.Error's Code and Message methods to get detailed information about
794// the error.
795//
796// See the AWS API reference guide for AWS IoT Things Graph's
797// API operation DeploySystemInstance for usage and error information.
798//
799// Returned Error Types:
800//   * ResourceNotFoundException
801//
802//   * InvalidRequestException
803//
804//   * ThrottlingException
805//
806//   * InternalFailureException
807//
808//   * ResourceInUseException
809//
810// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeploySystemInstance
811func (c *IoTThingsGraph) DeploySystemInstance(input *DeploySystemInstanceInput) (*DeploySystemInstanceOutput, error) {
812	req, out := c.DeploySystemInstanceRequest(input)
813	return out, req.Send()
814}
815
816// DeploySystemInstanceWithContext is the same as DeploySystemInstance with the addition of
817// the ability to pass a context and additional request options.
818//
819// See DeploySystemInstance for details on how to use this API operation.
820//
821// The context must be non-nil and will be used for request cancellation. If
822// the context is nil a panic will occur. In the future the SDK may create
823// sub-contexts for http.Requests. See https://golang.org/pkg/context/
824// for more information on using Contexts.
825func (c *IoTThingsGraph) DeploySystemInstanceWithContext(ctx aws.Context, input *DeploySystemInstanceInput, opts ...request.Option) (*DeploySystemInstanceOutput, error) {
826	req, out := c.DeploySystemInstanceRequest(input)
827	req.SetContext(ctx)
828	req.ApplyOptions(opts...)
829	return out, req.Send()
830}
831
832const opDeprecateFlowTemplate = "DeprecateFlowTemplate"
833
834// DeprecateFlowTemplateRequest generates a "aws/request.Request" representing the
835// client's request for the DeprecateFlowTemplate operation. The "output" return
836// value will be populated with the request's response once the request completes
837// successfully.
838//
839// Use "Send" method on the returned Request to send the API call to the service.
840// the "output" return value is not valid until after Send returns without error.
841//
842// See DeprecateFlowTemplate for more information on using the DeprecateFlowTemplate
843// API call, and error handling.
844//
845// This method is useful when you want to inject custom logic or configuration
846// into the SDK's request lifecycle. Such as custom headers, or retry logic.
847//
848//
849//    // Example sending a request using the DeprecateFlowTemplateRequest method.
850//    req, resp := client.DeprecateFlowTemplateRequest(params)
851//
852//    err := req.Send()
853//    if err == nil { // resp is now filled
854//        fmt.Println(resp)
855//    }
856//
857// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeprecateFlowTemplate
858func (c *IoTThingsGraph) DeprecateFlowTemplateRequest(input *DeprecateFlowTemplateInput) (req *request.Request, output *DeprecateFlowTemplateOutput) {
859	op := &request.Operation{
860		Name:       opDeprecateFlowTemplate,
861		HTTPMethod: "POST",
862		HTTPPath:   "/",
863	}
864
865	if input == nil {
866		input = &DeprecateFlowTemplateInput{}
867	}
868
869	output = &DeprecateFlowTemplateOutput{}
870	req = c.newRequest(op, input, output)
871	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
872	return
873}
874
875// DeprecateFlowTemplate API operation for AWS IoT Things Graph.
876//
877// Deprecates the specified workflow. This action marks the workflow for deletion.
878// Deprecated flows can't be deployed, but existing deployments will continue
879// to run.
880//
881// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
882// with awserr.Error's Code and Message methods to get detailed information about
883// the error.
884//
885// See the AWS API reference guide for AWS IoT Things Graph's
886// API operation DeprecateFlowTemplate for usage and error information.
887//
888// Returned Error Types:
889//   * InvalidRequestException
890//
891//   * ThrottlingException
892//
893//   * InternalFailureException
894//
895//   * ResourceNotFoundException
896//
897// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeprecateFlowTemplate
898func (c *IoTThingsGraph) DeprecateFlowTemplate(input *DeprecateFlowTemplateInput) (*DeprecateFlowTemplateOutput, error) {
899	req, out := c.DeprecateFlowTemplateRequest(input)
900	return out, req.Send()
901}
902
903// DeprecateFlowTemplateWithContext is the same as DeprecateFlowTemplate with the addition of
904// the ability to pass a context and additional request options.
905//
906// See DeprecateFlowTemplate for details on how to use this API operation.
907//
908// The context must be non-nil and will be used for request cancellation. If
909// the context is nil a panic will occur. In the future the SDK may create
910// sub-contexts for http.Requests. See https://golang.org/pkg/context/
911// for more information on using Contexts.
912func (c *IoTThingsGraph) DeprecateFlowTemplateWithContext(ctx aws.Context, input *DeprecateFlowTemplateInput, opts ...request.Option) (*DeprecateFlowTemplateOutput, error) {
913	req, out := c.DeprecateFlowTemplateRequest(input)
914	req.SetContext(ctx)
915	req.ApplyOptions(opts...)
916	return out, req.Send()
917}
918
919const opDeprecateSystemTemplate = "DeprecateSystemTemplate"
920
921// DeprecateSystemTemplateRequest generates a "aws/request.Request" representing the
922// client's request for the DeprecateSystemTemplate operation. The "output" return
923// value will be populated with the request's response once the request completes
924// successfully.
925//
926// Use "Send" method on the returned Request to send the API call to the service.
927// the "output" return value is not valid until after Send returns without error.
928//
929// See DeprecateSystemTemplate for more information on using the DeprecateSystemTemplate
930// API call, and error handling.
931//
932// This method is useful when you want to inject custom logic or configuration
933// into the SDK's request lifecycle. Such as custom headers, or retry logic.
934//
935//
936//    // Example sending a request using the DeprecateSystemTemplateRequest method.
937//    req, resp := client.DeprecateSystemTemplateRequest(params)
938//
939//    err := req.Send()
940//    if err == nil { // resp is now filled
941//        fmt.Println(resp)
942//    }
943//
944// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeprecateSystemTemplate
945func (c *IoTThingsGraph) DeprecateSystemTemplateRequest(input *DeprecateSystemTemplateInput) (req *request.Request, output *DeprecateSystemTemplateOutput) {
946	op := &request.Operation{
947		Name:       opDeprecateSystemTemplate,
948		HTTPMethod: "POST",
949		HTTPPath:   "/",
950	}
951
952	if input == nil {
953		input = &DeprecateSystemTemplateInput{}
954	}
955
956	output = &DeprecateSystemTemplateOutput{}
957	req = c.newRequest(op, input, output)
958	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
959	return
960}
961
962// DeprecateSystemTemplate API operation for AWS IoT Things Graph.
963//
964// Deprecates the specified system.
965//
966// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
967// with awserr.Error's Code and Message methods to get detailed information about
968// the error.
969//
970// See the AWS API reference guide for AWS IoT Things Graph's
971// API operation DeprecateSystemTemplate for usage and error information.
972//
973// Returned Error Types:
974//   * InvalidRequestException
975//
976//   * ThrottlingException
977//
978//   * InternalFailureException
979//
980//   * ResourceNotFoundException
981//
982// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DeprecateSystemTemplate
983func (c *IoTThingsGraph) DeprecateSystemTemplate(input *DeprecateSystemTemplateInput) (*DeprecateSystemTemplateOutput, error) {
984	req, out := c.DeprecateSystemTemplateRequest(input)
985	return out, req.Send()
986}
987
988// DeprecateSystemTemplateWithContext is the same as DeprecateSystemTemplate with the addition of
989// the ability to pass a context and additional request options.
990//
991// See DeprecateSystemTemplate for details on how to use this API operation.
992//
993// The context must be non-nil and will be used for request cancellation. If
994// the context is nil a panic will occur. In the future the SDK may create
995// sub-contexts for http.Requests. See https://golang.org/pkg/context/
996// for more information on using Contexts.
997func (c *IoTThingsGraph) DeprecateSystemTemplateWithContext(ctx aws.Context, input *DeprecateSystemTemplateInput, opts ...request.Option) (*DeprecateSystemTemplateOutput, error) {
998	req, out := c.DeprecateSystemTemplateRequest(input)
999	req.SetContext(ctx)
1000	req.ApplyOptions(opts...)
1001	return out, req.Send()
1002}
1003
1004const opDescribeNamespace = "DescribeNamespace"
1005
1006// DescribeNamespaceRequest generates a "aws/request.Request" representing the
1007// client's request for the DescribeNamespace operation. The "output" return
1008// value will be populated with the request's response once the request completes
1009// successfully.
1010//
1011// Use "Send" method on the returned Request to send the API call to the service.
1012// the "output" return value is not valid until after Send returns without error.
1013//
1014// See DescribeNamespace for more information on using the DescribeNamespace
1015// API call, and error handling.
1016//
1017// This method is useful when you want to inject custom logic or configuration
1018// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1019//
1020//
1021//    // Example sending a request using the DescribeNamespaceRequest method.
1022//    req, resp := client.DescribeNamespaceRequest(params)
1023//
1024//    err := req.Send()
1025//    if err == nil { // resp is now filled
1026//        fmt.Println(resp)
1027//    }
1028//
1029// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DescribeNamespace
1030func (c *IoTThingsGraph) DescribeNamespaceRequest(input *DescribeNamespaceInput) (req *request.Request, output *DescribeNamespaceOutput) {
1031	op := &request.Operation{
1032		Name:       opDescribeNamespace,
1033		HTTPMethod: "POST",
1034		HTTPPath:   "/",
1035	}
1036
1037	if input == nil {
1038		input = &DescribeNamespaceInput{}
1039	}
1040
1041	output = &DescribeNamespaceOutput{}
1042	req = c.newRequest(op, input, output)
1043	return
1044}
1045
1046// DescribeNamespace API operation for AWS IoT Things Graph.
1047//
1048// Gets the latest version of the user's namespace and the public version that
1049// it is tracking.
1050//
1051// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1052// with awserr.Error's Code and Message methods to get detailed information about
1053// the error.
1054//
1055// See the AWS API reference guide for AWS IoT Things Graph's
1056// API operation DescribeNamespace for usage and error information.
1057//
1058// Returned Error Types:
1059//   * ResourceNotFoundException
1060//
1061//   * InvalidRequestException
1062//
1063//   * InternalFailureException
1064//
1065//   * ThrottlingException
1066//
1067// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DescribeNamespace
1068func (c *IoTThingsGraph) DescribeNamespace(input *DescribeNamespaceInput) (*DescribeNamespaceOutput, error) {
1069	req, out := c.DescribeNamespaceRequest(input)
1070	return out, req.Send()
1071}
1072
1073// DescribeNamespaceWithContext is the same as DescribeNamespace with the addition of
1074// the ability to pass a context and additional request options.
1075//
1076// See DescribeNamespace for details on how to use this API operation.
1077//
1078// The context must be non-nil and will be used for request cancellation. If
1079// the context is nil a panic will occur. In the future the SDK may create
1080// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1081// for more information on using Contexts.
1082func (c *IoTThingsGraph) DescribeNamespaceWithContext(ctx aws.Context, input *DescribeNamespaceInput, opts ...request.Option) (*DescribeNamespaceOutput, error) {
1083	req, out := c.DescribeNamespaceRequest(input)
1084	req.SetContext(ctx)
1085	req.ApplyOptions(opts...)
1086	return out, req.Send()
1087}
1088
1089const opDissociateEntityFromThing = "DissociateEntityFromThing"
1090
1091// DissociateEntityFromThingRequest generates a "aws/request.Request" representing the
1092// client's request for the DissociateEntityFromThing operation. The "output" return
1093// value will be populated with the request's response once the request completes
1094// successfully.
1095//
1096// Use "Send" method on the returned Request to send the API call to the service.
1097// the "output" return value is not valid until after Send returns without error.
1098//
1099// See DissociateEntityFromThing for more information on using the DissociateEntityFromThing
1100// API call, and error handling.
1101//
1102// This method is useful when you want to inject custom logic or configuration
1103// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1104//
1105//
1106//    // Example sending a request using the DissociateEntityFromThingRequest method.
1107//    req, resp := client.DissociateEntityFromThingRequest(params)
1108//
1109//    err := req.Send()
1110//    if err == nil { // resp is now filled
1111//        fmt.Println(resp)
1112//    }
1113//
1114// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DissociateEntityFromThing
1115func (c *IoTThingsGraph) DissociateEntityFromThingRequest(input *DissociateEntityFromThingInput) (req *request.Request, output *DissociateEntityFromThingOutput) {
1116	op := &request.Operation{
1117		Name:       opDissociateEntityFromThing,
1118		HTTPMethod: "POST",
1119		HTTPPath:   "/",
1120	}
1121
1122	if input == nil {
1123		input = &DissociateEntityFromThingInput{}
1124	}
1125
1126	output = &DissociateEntityFromThingOutput{}
1127	req = c.newRequest(op, input, output)
1128	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1129	return
1130}
1131
1132// DissociateEntityFromThing API operation for AWS IoT Things Graph.
1133//
1134// Dissociates a device entity from a concrete thing. The action takes only
1135// the type of the entity that you need to dissociate because only one entity
1136// of a particular type can be associated with a thing.
1137//
1138// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1139// with awserr.Error's Code and Message methods to get detailed information about
1140// the error.
1141//
1142// See the AWS API reference guide for AWS IoT Things Graph's
1143// API operation DissociateEntityFromThing for usage and error information.
1144//
1145// Returned Error Types:
1146//   * InvalidRequestException
1147//
1148//   * ResourceNotFoundException
1149//
1150//   * InternalFailureException
1151//
1152//   * ThrottlingException
1153//
1154// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/DissociateEntityFromThing
1155func (c *IoTThingsGraph) DissociateEntityFromThing(input *DissociateEntityFromThingInput) (*DissociateEntityFromThingOutput, error) {
1156	req, out := c.DissociateEntityFromThingRequest(input)
1157	return out, req.Send()
1158}
1159
1160// DissociateEntityFromThingWithContext is the same as DissociateEntityFromThing with the addition of
1161// the ability to pass a context and additional request options.
1162//
1163// See DissociateEntityFromThing for details on how to use this API operation.
1164//
1165// The context must be non-nil and will be used for request cancellation. If
1166// the context is nil a panic will occur. In the future the SDK may create
1167// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1168// for more information on using Contexts.
1169func (c *IoTThingsGraph) DissociateEntityFromThingWithContext(ctx aws.Context, input *DissociateEntityFromThingInput, opts ...request.Option) (*DissociateEntityFromThingOutput, error) {
1170	req, out := c.DissociateEntityFromThingRequest(input)
1171	req.SetContext(ctx)
1172	req.ApplyOptions(opts...)
1173	return out, req.Send()
1174}
1175
1176const opGetEntities = "GetEntities"
1177
1178// GetEntitiesRequest generates a "aws/request.Request" representing the
1179// client's request for the GetEntities operation. The "output" return
1180// value will be populated with the request's response once the request completes
1181// successfully.
1182//
1183// Use "Send" method on the returned Request to send the API call to the service.
1184// the "output" return value is not valid until after Send returns without error.
1185//
1186// See GetEntities for more information on using the GetEntities
1187// API call, and error handling.
1188//
1189// This method is useful when you want to inject custom logic or configuration
1190// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1191//
1192//
1193//    // Example sending a request using the GetEntitiesRequest method.
1194//    req, resp := client.GetEntitiesRequest(params)
1195//
1196//    err := req.Send()
1197//    if err == nil { // resp is now filled
1198//        fmt.Println(resp)
1199//    }
1200//
1201// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetEntities
1202func (c *IoTThingsGraph) GetEntitiesRequest(input *GetEntitiesInput) (req *request.Request, output *GetEntitiesOutput) {
1203	op := &request.Operation{
1204		Name:       opGetEntities,
1205		HTTPMethod: "POST",
1206		HTTPPath:   "/",
1207	}
1208
1209	if input == nil {
1210		input = &GetEntitiesInput{}
1211	}
1212
1213	output = &GetEntitiesOutput{}
1214	req = c.newRequest(op, input, output)
1215	return
1216}
1217
1218// GetEntities API operation for AWS IoT Things Graph.
1219//
1220// Gets definitions of the specified entities. Uses the latest version of the
1221// user's namespace by default. This API returns the following TDM entities.
1222//
1223//    * Properties
1224//
1225//    * States
1226//
1227//    * Events
1228//
1229//    * Actions
1230//
1231//    * Capabilities
1232//
1233//    * Mappings
1234//
1235//    * Devices
1236//
1237//    * Device Models
1238//
1239//    * Services
1240//
1241// This action doesn't return definitions for systems, flows, and deployments.
1242//
1243// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1244// with awserr.Error's Code and Message methods to get detailed information about
1245// the error.
1246//
1247// See the AWS API reference guide for AWS IoT Things Graph's
1248// API operation GetEntities for usage and error information.
1249//
1250// Returned Error Types:
1251//   * InvalidRequestException
1252//
1253//   * ResourceNotFoundException
1254//
1255//   * ThrottlingException
1256//
1257//   * InternalFailureException
1258//
1259// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetEntities
1260func (c *IoTThingsGraph) GetEntities(input *GetEntitiesInput) (*GetEntitiesOutput, error) {
1261	req, out := c.GetEntitiesRequest(input)
1262	return out, req.Send()
1263}
1264
1265// GetEntitiesWithContext is the same as GetEntities with the addition of
1266// the ability to pass a context and additional request options.
1267//
1268// See GetEntities for details on how to use this API operation.
1269//
1270// The context must be non-nil and will be used for request cancellation. If
1271// the context is nil a panic will occur. In the future the SDK may create
1272// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1273// for more information on using Contexts.
1274func (c *IoTThingsGraph) GetEntitiesWithContext(ctx aws.Context, input *GetEntitiesInput, opts ...request.Option) (*GetEntitiesOutput, error) {
1275	req, out := c.GetEntitiesRequest(input)
1276	req.SetContext(ctx)
1277	req.ApplyOptions(opts...)
1278	return out, req.Send()
1279}
1280
1281const opGetFlowTemplate = "GetFlowTemplate"
1282
1283// GetFlowTemplateRequest generates a "aws/request.Request" representing the
1284// client's request for the GetFlowTemplate operation. The "output" return
1285// value will be populated with the request's response once the request completes
1286// successfully.
1287//
1288// Use "Send" method on the returned Request to send the API call to the service.
1289// the "output" return value is not valid until after Send returns without error.
1290//
1291// See GetFlowTemplate for more information on using the GetFlowTemplate
1292// API call, and error handling.
1293//
1294// This method is useful when you want to inject custom logic or configuration
1295// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1296//
1297//
1298//    // Example sending a request using the GetFlowTemplateRequest method.
1299//    req, resp := client.GetFlowTemplateRequest(params)
1300//
1301//    err := req.Send()
1302//    if err == nil { // resp is now filled
1303//        fmt.Println(resp)
1304//    }
1305//
1306// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetFlowTemplate
1307func (c *IoTThingsGraph) GetFlowTemplateRequest(input *GetFlowTemplateInput) (req *request.Request, output *GetFlowTemplateOutput) {
1308	op := &request.Operation{
1309		Name:       opGetFlowTemplate,
1310		HTTPMethod: "POST",
1311		HTTPPath:   "/",
1312	}
1313
1314	if input == nil {
1315		input = &GetFlowTemplateInput{}
1316	}
1317
1318	output = &GetFlowTemplateOutput{}
1319	req = c.newRequest(op, input, output)
1320	return
1321}
1322
1323// GetFlowTemplate API operation for AWS IoT Things Graph.
1324//
1325// Gets the latest version of the DefinitionDocument and FlowTemplateSummary
1326// for the specified workflow.
1327//
1328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1329// with awserr.Error's Code and Message methods to get detailed information about
1330// the error.
1331//
1332// See the AWS API reference guide for AWS IoT Things Graph's
1333// API operation GetFlowTemplate for usage and error information.
1334//
1335// Returned Error Types:
1336//   * InvalidRequestException
1337//
1338//   * ThrottlingException
1339//
1340//   * InternalFailureException
1341//
1342//   * ResourceNotFoundException
1343//
1344// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetFlowTemplate
1345func (c *IoTThingsGraph) GetFlowTemplate(input *GetFlowTemplateInput) (*GetFlowTemplateOutput, error) {
1346	req, out := c.GetFlowTemplateRequest(input)
1347	return out, req.Send()
1348}
1349
1350// GetFlowTemplateWithContext is the same as GetFlowTemplate with the addition of
1351// the ability to pass a context and additional request options.
1352//
1353// See GetFlowTemplate for details on how to use this API operation.
1354//
1355// The context must be non-nil and will be used for request cancellation. If
1356// the context is nil a panic will occur. In the future the SDK may create
1357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1358// for more information on using Contexts.
1359func (c *IoTThingsGraph) GetFlowTemplateWithContext(ctx aws.Context, input *GetFlowTemplateInput, opts ...request.Option) (*GetFlowTemplateOutput, error) {
1360	req, out := c.GetFlowTemplateRequest(input)
1361	req.SetContext(ctx)
1362	req.ApplyOptions(opts...)
1363	return out, req.Send()
1364}
1365
1366const opGetFlowTemplateRevisions = "GetFlowTemplateRevisions"
1367
1368// GetFlowTemplateRevisionsRequest generates a "aws/request.Request" representing the
1369// client's request for the GetFlowTemplateRevisions operation. The "output" return
1370// value will be populated with the request's response once the request completes
1371// successfully.
1372//
1373// Use "Send" method on the returned Request to send the API call to the service.
1374// the "output" return value is not valid until after Send returns without error.
1375//
1376// See GetFlowTemplateRevisions for more information on using the GetFlowTemplateRevisions
1377// API call, and error handling.
1378//
1379// This method is useful when you want to inject custom logic or configuration
1380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1381//
1382//
1383//    // Example sending a request using the GetFlowTemplateRevisionsRequest method.
1384//    req, resp := client.GetFlowTemplateRevisionsRequest(params)
1385//
1386//    err := req.Send()
1387//    if err == nil { // resp is now filled
1388//        fmt.Println(resp)
1389//    }
1390//
1391// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetFlowTemplateRevisions
1392func (c *IoTThingsGraph) GetFlowTemplateRevisionsRequest(input *GetFlowTemplateRevisionsInput) (req *request.Request, output *GetFlowTemplateRevisionsOutput) {
1393	op := &request.Operation{
1394		Name:       opGetFlowTemplateRevisions,
1395		HTTPMethod: "POST",
1396		HTTPPath:   "/",
1397		Paginator: &request.Paginator{
1398			InputTokens:     []string{"nextToken"},
1399			OutputTokens:    []string{"nextToken"},
1400			LimitToken:      "maxResults",
1401			TruncationToken: "",
1402		},
1403	}
1404
1405	if input == nil {
1406		input = &GetFlowTemplateRevisionsInput{}
1407	}
1408
1409	output = &GetFlowTemplateRevisionsOutput{}
1410	req = c.newRequest(op, input, output)
1411	return
1412}
1413
1414// GetFlowTemplateRevisions API operation for AWS IoT Things Graph.
1415//
1416// Gets revisions of the specified workflow. Only the last 100 revisions are
1417// stored. If the workflow has been deprecated, this action will return revisions
1418// that occurred before the deprecation. This action won't work for workflows
1419// that have been deleted.
1420//
1421// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1422// with awserr.Error's Code and Message methods to get detailed information about
1423// the error.
1424//
1425// See the AWS API reference guide for AWS IoT Things Graph's
1426// API operation GetFlowTemplateRevisions for usage and error information.
1427//
1428// Returned Error Types:
1429//   * InvalidRequestException
1430//
1431//   * ThrottlingException
1432//
1433//   * InternalFailureException
1434//
1435//   * ResourceNotFoundException
1436//
1437// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetFlowTemplateRevisions
1438func (c *IoTThingsGraph) GetFlowTemplateRevisions(input *GetFlowTemplateRevisionsInput) (*GetFlowTemplateRevisionsOutput, error) {
1439	req, out := c.GetFlowTemplateRevisionsRequest(input)
1440	return out, req.Send()
1441}
1442
1443// GetFlowTemplateRevisionsWithContext is the same as GetFlowTemplateRevisions with the addition of
1444// the ability to pass a context and additional request options.
1445//
1446// See GetFlowTemplateRevisions for details on how to use this API operation.
1447//
1448// The context must be non-nil and will be used for request cancellation. If
1449// the context is nil a panic will occur. In the future the SDK may create
1450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1451// for more information on using Contexts.
1452func (c *IoTThingsGraph) GetFlowTemplateRevisionsWithContext(ctx aws.Context, input *GetFlowTemplateRevisionsInput, opts ...request.Option) (*GetFlowTemplateRevisionsOutput, error) {
1453	req, out := c.GetFlowTemplateRevisionsRequest(input)
1454	req.SetContext(ctx)
1455	req.ApplyOptions(opts...)
1456	return out, req.Send()
1457}
1458
1459// GetFlowTemplateRevisionsPages iterates over the pages of a GetFlowTemplateRevisions operation,
1460// calling the "fn" function with the response data for each page. To stop
1461// iterating, return false from the fn function.
1462//
1463// See GetFlowTemplateRevisions method for more information on how to use this operation.
1464//
1465// Note: This operation can generate multiple requests to a service.
1466//
1467//    // Example iterating over at most 3 pages of a GetFlowTemplateRevisions operation.
1468//    pageNum := 0
1469//    err := client.GetFlowTemplateRevisionsPages(params,
1470//        func(page *iotthingsgraph.GetFlowTemplateRevisionsOutput, lastPage bool) bool {
1471//            pageNum++
1472//            fmt.Println(page)
1473//            return pageNum <= 3
1474//        })
1475//
1476func (c *IoTThingsGraph) GetFlowTemplateRevisionsPages(input *GetFlowTemplateRevisionsInput, fn func(*GetFlowTemplateRevisionsOutput, bool) bool) error {
1477	return c.GetFlowTemplateRevisionsPagesWithContext(aws.BackgroundContext(), input, fn)
1478}
1479
1480// GetFlowTemplateRevisionsPagesWithContext same as GetFlowTemplateRevisionsPages except
1481// it takes a Context and allows setting request options on the pages.
1482//
1483// The context must be non-nil and will be used for request cancellation. If
1484// the context is nil a panic will occur. In the future the SDK may create
1485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1486// for more information on using Contexts.
1487func (c *IoTThingsGraph) GetFlowTemplateRevisionsPagesWithContext(ctx aws.Context, input *GetFlowTemplateRevisionsInput, fn func(*GetFlowTemplateRevisionsOutput, bool) bool, opts ...request.Option) error {
1488	p := request.Pagination{
1489		NewRequest: func() (*request.Request, error) {
1490			var inCpy *GetFlowTemplateRevisionsInput
1491			if input != nil {
1492				tmp := *input
1493				inCpy = &tmp
1494			}
1495			req, _ := c.GetFlowTemplateRevisionsRequest(inCpy)
1496			req.SetContext(ctx)
1497			req.ApplyOptions(opts...)
1498			return req, nil
1499		},
1500	}
1501
1502	for p.Next() {
1503		if !fn(p.Page().(*GetFlowTemplateRevisionsOutput), !p.HasNextPage()) {
1504			break
1505		}
1506	}
1507
1508	return p.Err()
1509}
1510
1511const opGetNamespaceDeletionStatus = "GetNamespaceDeletionStatus"
1512
1513// GetNamespaceDeletionStatusRequest generates a "aws/request.Request" representing the
1514// client's request for the GetNamespaceDeletionStatus operation. The "output" return
1515// value will be populated with the request's response once the request completes
1516// successfully.
1517//
1518// Use "Send" method on the returned Request to send the API call to the service.
1519// the "output" return value is not valid until after Send returns without error.
1520//
1521// See GetNamespaceDeletionStatus for more information on using the GetNamespaceDeletionStatus
1522// API call, and error handling.
1523//
1524// This method is useful when you want to inject custom logic or configuration
1525// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1526//
1527//
1528//    // Example sending a request using the GetNamespaceDeletionStatusRequest method.
1529//    req, resp := client.GetNamespaceDeletionStatusRequest(params)
1530//
1531//    err := req.Send()
1532//    if err == nil { // resp is now filled
1533//        fmt.Println(resp)
1534//    }
1535//
1536// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetNamespaceDeletionStatus
1537func (c *IoTThingsGraph) GetNamespaceDeletionStatusRequest(input *GetNamespaceDeletionStatusInput) (req *request.Request, output *GetNamespaceDeletionStatusOutput) {
1538	op := &request.Operation{
1539		Name:       opGetNamespaceDeletionStatus,
1540		HTTPMethod: "POST",
1541		HTTPPath:   "/",
1542	}
1543
1544	if input == nil {
1545		input = &GetNamespaceDeletionStatusInput{}
1546	}
1547
1548	output = &GetNamespaceDeletionStatusOutput{}
1549	req = c.newRequest(op, input, output)
1550	return
1551}
1552
1553// GetNamespaceDeletionStatus API operation for AWS IoT Things Graph.
1554//
1555// Gets the status of a namespace deletion task.
1556//
1557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1558// with awserr.Error's Code and Message methods to get detailed information about
1559// the error.
1560//
1561// See the AWS API reference guide for AWS IoT Things Graph's
1562// API operation GetNamespaceDeletionStatus for usage and error information.
1563//
1564// Returned Error Types:
1565//   * InvalidRequestException
1566//
1567//   * InternalFailureException
1568//
1569//   * ThrottlingException
1570//
1571// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetNamespaceDeletionStatus
1572func (c *IoTThingsGraph) GetNamespaceDeletionStatus(input *GetNamespaceDeletionStatusInput) (*GetNamespaceDeletionStatusOutput, error) {
1573	req, out := c.GetNamespaceDeletionStatusRequest(input)
1574	return out, req.Send()
1575}
1576
1577// GetNamespaceDeletionStatusWithContext is the same as GetNamespaceDeletionStatus with the addition of
1578// the ability to pass a context and additional request options.
1579//
1580// See GetNamespaceDeletionStatus for details on how to use this API operation.
1581//
1582// The context must be non-nil and will be used for request cancellation. If
1583// the context is nil a panic will occur. In the future the SDK may create
1584// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1585// for more information on using Contexts.
1586func (c *IoTThingsGraph) GetNamespaceDeletionStatusWithContext(ctx aws.Context, input *GetNamespaceDeletionStatusInput, opts ...request.Option) (*GetNamespaceDeletionStatusOutput, error) {
1587	req, out := c.GetNamespaceDeletionStatusRequest(input)
1588	req.SetContext(ctx)
1589	req.ApplyOptions(opts...)
1590	return out, req.Send()
1591}
1592
1593const opGetSystemInstance = "GetSystemInstance"
1594
1595// GetSystemInstanceRequest generates a "aws/request.Request" representing the
1596// client's request for the GetSystemInstance operation. The "output" return
1597// value will be populated with the request's response once the request completes
1598// successfully.
1599//
1600// Use "Send" method on the returned Request to send the API call to the service.
1601// the "output" return value is not valid until after Send returns without error.
1602//
1603// See GetSystemInstance for more information on using the GetSystemInstance
1604// API call, and error handling.
1605//
1606// This method is useful when you want to inject custom logic or configuration
1607// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1608//
1609//
1610//    // Example sending a request using the GetSystemInstanceRequest method.
1611//    req, resp := client.GetSystemInstanceRequest(params)
1612//
1613//    err := req.Send()
1614//    if err == nil { // resp is now filled
1615//        fmt.Println(resp)
1616//    }
1617//
1618// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetSystemInstance
1619func (c *IoTThingsGraph) GetSystemInstanceRequest(input *GetSystemInstanceInput) (req *request.Request, output *GetSystemInstanceOutput) {
1620	op := &request.Operation{
1621		Name:       opGetSystemInstance,
1622		HTTPMethod: "POST",
1623		HTTPPath:   "/",
1624	}
1625
1626	if input == nil {
1627		input = &GetSystemInstanceInput{}
1628	}
1629
1630	output = &GetSystemInstanceOutput{}
1631	req = c.newRequest(op, input, output)
1632	return
1633}
1634
1635// GetSystemInstance API operation for AWS IoT Things Graph.
1636//
1637// Gets a system instance.
1638//
1639// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1640// with awserr.Error's Code and Message methods to get detailed information about
1641// the error.
1642//
1643// See the AWS API reference guide for AWS IoT Things Graph's
1644// API operation GetSystemInstance for usage and error information.
1645//
1646// Returned Error Types:
1647//   * InvalidRequestException
1648//
1649//   * ThrottlingException
1650//
1651//   * InternalFailureException
1652//
1653//   * ResourceNotFoundException
1654//
1655// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetSystemInstance
1656func (c *IoTThingsGraph) GetSystemInstance(input *GetSystemInstanceInput) (*GetSystemInstanceOutput, error) {
1657	req, out := c.GetSystemInstanceRequest(input)
1658	return out, req.Send()
1659}
1660
1661// GetSystemInstanceWithContext is the same as GetSystemInstance with the addition of
1662// the ability to pass a context and additional request options.
1663//
1664// See GetSystemInstance for details on how to use this API operation.
1665//
1666// The context must be non-nil and will be used for request cancellation. If
1667// the context is nil a panic will occur. In the future the SDK may create
1668// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1669// for more information on using Contexts.
1670func (c *IoTThingsGraph) GetSystemInstanceWithContext(ctx aws.Context, input *GetSystemInstanceInput, opts ...request.Option) (*GetSystemInstanceOutput, error) {
1671	req, out := c.GetSystemInstanceRequest(input)
1672	req.SetContext(ctx)
1673	req.ApplyOptions(opts...)
1674	return out, req.Send()
1675}
1676
1677const opGetSystemTemplate = "GetSystemTemplate"
1678
1679// GetSystemTemplateRequest generates a "aws/request.Request" representing the
1680// client's request for the GetSystemTemplate operation. The "output" return
1681// value will be populated with the request's response once the request completes
1682// successfully.
1683//
1684// Use "Send" method on the returned Request to send the API call to the service.
1685// the "output" return value is not valid until after Send returns without error.
1686//
1687// See GetSystemTemplate for more information on using the GetSystemTemplate
1688// API call, and error handling.
1689//
1690// This method is useful when you want to inject custom logic or configuration
1691// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1692//
1693//
1694//    // Example sending a request using the GetSystemTemplateRequest method.
1695//    req, resp := client.GetSystemTemplateRequest(params)
1696//
1697//    err := req.Send()
1698//    if err == nil { // resp is now filled
1699//        fmt.Println(resp)
1700//    }
1701//
1702// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetSystemTemplate
1703func (c *IoTThingsGraph) GetSystemTemplateRequest(input *GetSystemTemplateInput) (req *request.Request, output *GetSystemTemplateOutput) {
1704	op := &request.Operation{
1705		Name:       opGetSystemTemplate,
1706		HTTPMethod: "POST",
1707		HTTPPath:   "/",
1708	}
1709
1710	if input == nil {
1711		input = &GetSystemTemplateInput{}
1712	}
1713
1714	output = &GetSystemTemplateOutput{}
1715	req = c.newRequest(op, input, output)
1716	return
1717}
1718
1719// GetSystemTemplate API operation for AWS IoT Things Graph.
1720//
1721// Gets a system.
1722//
1723// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1724// with awserr.Error's Code and Message methods to get detailed information about
1725// the error.
1726//
1727// See the AWS API reference guide for AWS IoT Things Graph's
1728// API operation GetSystemTemplate for usage and error information.
1729//
1730// Returned Error Types:
1731//   * InvalidRequestException
1732//
1733//   * ThrottlingException
1734//
1735//   * InternalFailureException
1736//
1737//   * ResourceNotFoundException
1738//
1739// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetSystemTemplate
1740func (c *IoTThingsGraph) GetSystemTemplate(input *GetSystemTemplateInput) (*GetSystemTemplateOutput, error) {
1741	req, out := c.GetSystemTemplateRequest(input)
1742	return out, req.Send()
1743}
1744
1745// GetSystemTemplateWithContext is the same as GetSystemTemplate with the addition of
1746// the ability to pass a context and additional request options.
1747//
1748// See GetSystemTemplate for details on how to use this API operation.
1749//
1750// The context must be non-nil and will be used for request cancellation. If
1751// the context is nil a panic will occur. In the future the SDK may create
1752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1753// for more information on using Contexts.
1754func (c *IoTThingsGraph) GetSystemTemplateWithContext(ctx aws.Context, input *GetSystemTemplateInput, opts ...request.Option) (*GetSystemTemplateOutput, error) {
1755	req, out := c.GetSystemTemplateRequest(input)
1756	req.SetContext(ctx)
1757	req.ApplyOptions(opts...)
1758	return out, req.Send()
1759}
1760
1761const opGetSystemTemplateRevisions = "GetSystemTemplateRevisions"
1762
1763// GetSystemTemplateRevisionsRequest generates a "aws/request.Request" representing the
1764// client's request for the GetSystemTemplateRevisions operation. The "output" return
1765// value will be populated with the request's response once the request completes
1766// successfully.
1767//
1768// Use "Send" method on the returned Request to send the API call to the service.
1769// the "output" return value is not valid until after Send returns without error.
1770//
1771// See GetSystemTemplateRevisions for more information on using the GetSystemTemplateRevisions
1772// API call, and error handling.
1773//
1774// This method is useful when you want to inject custom logic or configuration
1775// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1776//
1777//
1778//    // Example sending a request using the GetSystemTemplateRevisionsRequest method.
1779//    req, resp := client.GetSystemTemplateRevisionsRequest(params)
1780//
1781//    err := req.Send()
1782//    if err == nil { // resp is now filled
1783//        fmt.Println(resp)
1784//    }
1785//
1786// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetSystemTemplateRevisions
1787func (c *IoTThingsGraph) GetSystemTemplateRevisionsRequest(input *GetSystemTemplateRevisionsInput) (req *request.Request, output *GetSystemTemplateRevisionsOutput) {
1788	op := &request.Operation{
1789		Name:       opGetSystemTemplateRevisions,
1790		HTTPMethod: "POST",
1791		HTTPPath:   "/",
1792		Paginator: &request.Paginator{
1793			InputTokens:     []string{"nextToken"},
1794			OutputTokens:    []string{"nextToken"},
1795			LimitToken:      "maxResults",
1796			TruncationToken: "",
1797		},
1798	}
1799
1800	if input == nil {
1801		input = &GetSystemTemplateRevisionsInput{}
1802	}
1803
1804	output = &GetSystemTemplateRevisionsOutput{}
1805	req = c.newRequest(op, input, output)
1806	return
1807}
1808
1809// GetSystemTemplateRevisions API operation for AWS IoT Things Graph.
1810//
1811// Gets revisions made to the specified system template. Only the previous 100
1812// revisions are stored. If the system has been deprecated, this action will
1813// return the revisions that occurred before its deprecation. This action won't
1814// work with systems that have been deleted.
1815//
1816// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1817// with awserr.Error's Code and Message methods to get detailed information about
1818// the error.
1819//
1820// See the AWS API reference guide for AWS IoT Things Graph's
1821// API operation GetSystemTemplateRevisions for usage and error information.
1822//
1823// Returned Error Types:
1824//   * InvalidRequestException
1825//
1826//   * ThrottlingException
1827//
1828//   * InternalFailureException
1829//
1830//   * ResourceNotFoundException
1831//
1832// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetSystemTemplateRevisions
1833func (c *IoTThingsGraph) GetSystemTemplateRevisions(input *GetSystemTemplateRevisionsInput) (*GetSystemTemplateRevisionsOutput, error) {
1834	req, out := c.GetSystemTemplateRevisionsRequest(input)
1835	return out, req.Send()
1836}
1837
1838// GetSystemTemplateRevisionsWithContext is the same as GetSystemTemplateRevisions with the addition of
1839// the ability to pass a context and additional request options.
1840//
1841// See GetSystemTemplateRevisions for details on how to use this API operation.
1842//
1843// The context must be non-nil and will be used for request cancellation. If
1844// the context is nil a panic will occur. In the future the SDK may create
1845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1846// for more information on using Contexts.
1847func (c *IoTThingsGraph) GetSystemTemplateRevisionsWithContext(ctx aws.Context, input *GetSystemTemplateRevisionsInput, opts ...request.Option) (*GetSystemTemplateRevisionsOutput, error) {
1848	req, out := c.GetSystemTemplateRevisionsRequest(input)
1849	req.SetContext(ctx)
1850	req.ApplyOptions(opts...)
1851	return out, req.Send()
1852}
1853
1854// GetSystemTemplateRevisionsPages iterates over the pages of a GetSystemTemplateRevisions operation,
1855// calling the "fn" function with the response data for each page. To stop
1856// iterating, return false from the fn function.
1857//
1858// See GetSystemTemplateRevisions method for more information on how to use this operation.
1859//
1860// Note: This operation can generate multiple requests to a service.
1861//
1862//    // Example iterating over at most 3 pages of a GetSystemTemplateRevisions operation.
1863//    pageNum := 0
1864//    err := client.GetSystemTemplateRevisionsPages(params,
1865//        func(page *iotthingsgraph.GetSystemTemplateRevisionsOutput, lastPage bool) bool {
1866//            pageNum++
1867//            fmt.Println(page)
1868//            return pageNum <= 3
1869//        })
1870//
1871func (c *IoTThingsGraph) GetSystemTemplateRevisionsPages(input *GetSystemTemplateRevisionsInput, fn func(*GetSystemTemplateRevisionsOutput, bool) bool) error {
1872	return c.GetSystemTemplateRevisionsPagesWithContext(aws.BackgroundContext(), input, fn)
1873}
1874
1875// GetSystemTemplateRevisionsPagesWithContext same as GetSystemTemplateRevisionsPages except
1876// it takes a Context and allows setting request options on the pages.
1877//
1878// The context must be non-nil and will be used for request cancellation. If
1879// the context is nil a panic will occur. In the future the SDK may create
1880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1881// for more information on using Contexts.
1882func (c *IoTThingsGraph) GetSystemTemplateRevisionsPagesWithContext(ctx aws.Context, input *GetSystemTemplateRevisionsInput, fn func(*GetSystemTemplateRevisionsOutput, bool) bool, opts ...request.Option) error {
1883	p := request.Pagination{
1884		NewRequest: func() (*request.Request, error) {
1885			var inCpy *GetSystemTemplateRevisionsInput
1886			if input != nil {
1887				tmp := *input
1888				inCpy = &tmp
1889			}
1890			req, _ := c.GetSystemTemplateRevisionsRequest(inCpy)
1891			req.SetContext(ctx)
1892			req.ApplyOptions(opts...)
1893			return req, nil
1894		},
1895	}
1896
1897	for p.Next() {
1898		if !fn(p.Page().(*GetSystemTemplateRevisionsOutput), !p.HasNextPage()) {
1899			break
1900		}
1901	}
1902
1903	return p.Err()
1904}
1905
1906const opGetUploadStatus = "GetUploadStatus"
1907
1908// GetUploadStatusRequest generates a "aws/request.Request" representing the
1909// client's request for the GetUploadStatus operation. The "output" return
1910// value will be populated with the request's response once the request completes
1911// successfully.
1912//
1913// Use "Send" method on the returned Request to send the API call to the service.
1914// the "output" return value is not valid until after Send returns without error.
1915//
1916// See GetUploadStatus for more information on using the GetUploadStatus
1917// API call, and error handling.
1918//
1919// This method is useful when you want to inject custom logic or configuration
1920// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1921//
1922//
1923//    // Example sending a request using the GetUploadStatusRequest method.
1924//    req, resp := client.GetUploadStatusRequest(params)
1925//
1926//    err := req.Send()
1927//    if err == nil { // resp is now filled
1928//        fmt.Println(resp)
1929//    }
1930//
1931// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetUploadStatus
1932func (c *IoTThingsGraph) GetUploadStatusRequest(input *GetUploadStatusInput) (req *request.Request, output *GetUploadStatusOutput) {
1933	op := &request.Operation{
1934		Name:       opGetUploadStatus,
1935		HTTPMethod: "POST",
1936		HTTPPath:   "/",
1937	}
1938
1939	if input == nil {
1940		input = &GetUploadStatusInput{}
1941	}
1942
1943	output = &GetUploadStatusOutput{}
1944	req = c.newRequest(op, input, output)
1945	return
1946}
1947
1948// GetUploadStatus API operation for AWS IoT Things Graph.
1949//
1950// Gets the status of the specified upload.
1951//
1952// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1953// with awserr.Error's Code and Message methods to get detailed information about
1954// the error.
1955//
1956// See the AWS API reference guide for AWS IoT Things Graph's
1957// API operation GetUploadStatus for usage and error information.
1958//
1959// Returned Error Types:
1960//   * InvalidRequestException
1961//
1962//   * ResourceNotFoundException
1963//
1964//   * InternalFailureException
1965//
1966//   * ThrottlingException
1967//
1968// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/GetUploadStatus
1969func (c *IoTThingsGraph) GetUploadStatus(input *GetUploadStatusInput) (*GetUploadStatusOutput, error) {
1970	req, out := c.GetUploadStatusRequest(input)
1971	return out, req.Send()
1972}
1973
1974// GetUploadStatusWithContext is the same as GetUploadStatus with the addition of
1975// the ability to pass a context and additional request options.
1976//
1977// See GetUploadStatus for details on how to use this API operation.
1978//
1979// The context must be non-nil and will be used for request cancellation. If
1980// the context is nil a panic will occur. In the future the SDK may create
1981// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1982// for more information on using Contexts.
1983func (c *IoTThingsGraph) GetUploadStatusWithContext(ctx aws.Context, input *GetUploadStatusInput, opts ...request.Option) (*GetUploadStatusOutput, error) {
1984	req, out := c.GetUploadStatusRequest(input)
1985	req.SetContext(ctx)
1986	req.ApplyOptions(opts...)
1987	return out, req.Send()
1988}
1989
1990const opListFlowExecutionMessages = "ListFlowExecutionMessages"
1991
1992// ListFlowExecutionMessagesRequest generates a "aws/request.Request" representing the
1993// client's request for the ListFlowExecutionMessages operation. The "output" return
1994// value will be populated with the request's response once the request completes
1995// successfully.
1996//
1997// Use "Send" method on the returned Request to send the API call to the service.
1998// the "output" return value is not valid until after Send returns without error.
1999//
2000// See ListFlowExecutionMessages for more information on using the ListFlowExecutionMessages
2001// API call, and error handling.
2002//
2003// This method is useful when you want to inject custom logic or configuration
2004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2005//
2006//
2007//    // Example sending a request using the ListFlowExecutionMessagesRequest method.
2008//    req, resp := client.ListFlowExecutionMessagesRequest(params)
2009//
2010//    err := req.Send()
2011//    if err == nil { // resp is now filled
2012//        fmt.Println(resp)
2013//    }
2014//
2015// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/ListFlowExecutionMessages
2016func (c *IoTThingsGraph) ListFlowExecutionMessagesRequest(input *ListFlowExecutionMessagesInput) (req *request.Request, output *ListFlowExecutionMessagesOutput) {
2017	op := &request.Operation{
2018		Name:       opListFlowExecutionMessages,
2019		HTTPMethod: "POST",
2020		HTTPPath:   "/",
2021		Paginator: &request.Paginator{
2022			InputTokens:     []string{"nextToken"},
2023			OutputTokens:    []string{"nextToken"},
2024			LimitToken:      "maxResults",
2025			TruncationToken: "",
2026		},
2027	}
2028
2029	if input == nil {
2030		input = &ListFlowExecutionMessagesInput{}
2031	}
2032
2033	output = &ListFlowExecutionMessagesOutput{}
2034	req = c.newRequest(op, input, output)
2035	return
2036}
2037
2038// ListFlowExecutionMessages API operation for AWS IoT Things Graph.
2039//
2040// Returns a list of objects that contain information about events in a flow
2041// execution.
2042//
2043// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2044// with awserr.Error's Code and Message methods to get detailed information about
2045// the error.
2046//
2047// See the AWS API reference guide for AWS IoT Things Graph's
2048// API operation ListFlowExecutionMessages for usage and error information.
2049//
2050// Returned Error Types:
2051//   * InvalidRequestException
2052//
2053//   * ThrottlingException
2054//
2055//   * InternalFailureException
2056//
2057//   * ResourceNotFoundException
2058//
2059// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/ListFlowExecutionMessages
2060func (c *IoTThingsGraph) ListFlowExecutionMessages(input *ListFlowExecutionMessagesInput) (*ListFlowExecutionMessagesOutput, error) {
2061	req, out := c.ListFlowExecutionMessagesRequest(input)
2062	return out, req.Send()
2063}
2064
2065// ListFlowExecutionMessagesWithContext is the same as ListFlowExecutionMessages with the addition of
2066// the ability to pass a context and additional request options.
2067//
2068// See ListFlowExecutionMessages for details on how to use this API operation.
2069//
2070// The context must be non-nil and will be used for request cancellation. If
2071// the context is nil a panic will occur. In the future the SDK may create
2072// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2073// for more information on using Contexts.
2074func (c *IoTThingsGraph) ListFlowExecutionMessagesWithContext(ctx aws.Context, input *ListFlowExecutionMessagesInput, opts ...request.Option) (*ListFlowExecutionMessagesOutput, error) {
2075	req, out := c.ListFlowExecutionMessagesRequest(input)
2076	req.SetContext(ctx)
2077	req.ApplyOptions(opts...)
2078	return out, req.Send()
2079}
2080
2081// ListFlowExecutionMessagesPages iterates over the pages of a ListFlowExecutionMessages operation,
2082// calling the "fn" function with the response data for each page. To stop
2083// iterating, return false from the fn function.
2084//
2085// See ListFlowExecutionMessages method for more information on how to use this operation.
2086//
2087// Note: This operation can generate multiple requests to a service.
2088//
2089//    // Example iterating over at most 3 pages of a ListFlowExecutionMessages operation.
2090//    pageNum := 0
2091//    err := client.ListFlowExecutionMessagesPages(params,
2092//        func(page *iotthingsgraph.ListFlowExecutionMessagesOutput, lastPage bool) bool {
2093//            pageNum++
2094//            fmt.Println(page)
2095//            return pageNum <= 3
2096//        })
2097//
2098func (c *IoTThingsGraph) ListFlowExecutionMessagesPages(input *ListFlowExecutionMessagesInput, fn func(*ListFlowExecutionMessagesOutput, bool) bool) error {
2099	return c.ListFlowExecutionMessagesPagesWithContext(aws.BackgroundContext(), input, fn)
2100}
2101
2102// ListFlowExecutionMessagesPagesWithContext same as ListFlowExecutionMessagesPages except
2103// it takes a Context and allows setting request options on the pages.
2104//
2105// The context must be non-nil and will be used for request cancellation. If
2106// the context is nil a panic will occur. In the future the SDK may create
2107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2108// for more information on using Contexts.
2109func (c *IoTThingsGraph) ListFlowExecutionMessagesPagesWithContext(ctx aws.Context, input *ListFlowExecutionMessagesInput, fn func(*ListFlowExecutionMessagesOutput, bool) bool, opts ...request.Option) error {
2110	p := request.Pagination{
2111		NewRequest: func() (*request.Request, error) {
2112			var inCpy *ListFlowExecutionMessagesInput
2113			if input != nil {
2114				tmp := *input
2115				inCpy = &tmp
2116			}
2117			req, _ := c.ListFlowExecutionMessagesRequest(inCpy)
2118			req.SetContext(ctx)
2119			req.ApplyOptions(opts...)
2120			return req, nil
2121		},
2122	}
2123
2124	for p.Next() {
2125		if !fn(p.Page().(*ListFlowExecutionMessagesOutput), !p.HasNextPage()) {
2126			break
2127		}
2128	}
2129
2130	return p.Err()
2131}
2132
2133const opListTagsForResource = "ListTagsForResource"
2134
2135// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2136// client's request for the ListTagsForResource operation. The "output" return
2137// value will be populated with the request's response once the request completes
2138// successfully.
2139//
2140// Use "Send" method on the returned Request to send the API call to the service.
2141// the "output" return value is not valid until after Send returns without error.
2142//
2143// See ListTagsForResource for more information on using the ListTagsForResource
2144// API call, and error handling.
2145//
2146// This method is useful when you want to inject custom logic or configuration
2147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2148//
2149//
2150//    // Example sending a request using the ListTagsForResourceRequest method.
2151//    req, resp := client.ListTagsForResourceRequest(params)
2152//
2153//    err := req.Send()
2154//    if err == nil { // resp is now filled
2155//        fmt.Println(resp)
2156//    }
2157//
2158// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/ListTagsForResource
2159func (c *IoTThingsGraph) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2160	op := &request.Operation{
2161		Name:       opListTagsForResource,
2162		HTTPMethod: "POST",
2163		HTTPPath:   "/",
2164		Paginator: &request.Paginator{
2165			InputTokens:     []string{"nextToken"},
2166			OutputTokens:    []string{"nextToken"},
2167			LimitToken:      "maxResults",
2168			TruncationToken: "",
2169		},
2170	}
2171
2172	if input == nil {
2173		input = &ListTagsForResourceInput{}
2174	}
2175
2176	output = &ListTagsForResourceOutput{}
2177	req = c.newRequest(op, input, output)
2178	return
2179}
2180
2181// ListTagsForResource API operation for AWS IoT Things Graph.
2182//
2183// Lists all tags on an AWS IoT Things Graph resource.
2184//
2185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2186// with awserr.Error's Code and Message methods to get detailed information about
2187// the error.
2188//
2189// See the AWS API reference guide for AWS IoT Things Graph's
2190// API operation ListTagsForResource for usage and error information.
2191//
2192// Returned Error Types:
2193//   * InvalidRequestException
2194//
2195//   * ResourceAlreadyExistsException
2196//
2197//   * ThrottlingException
2198//
2199//   * InternalFailureException
2200//
2201// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/ListTagsForResource
2202func (c *IoTThingsGraph) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2203	req, out := c.ListTagsForResourceRequest(input)
2204	return out, req.Send()
2205}
2206
2207// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2208// the ability to pass a context and additional request options.
2209//
2210// See ListTagsForResource for details on how to use this API operation.
2211//
2212// The context must be non-nil and will be used for request cancellation. If
2213// the context is nil a panic will occur. In the future the SDK may create
2214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2215// for more information on using Contexts.
2216func (c *IoTThingsGraph) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2217	req, out := c.ListTagsForResourceRequest(input)
2218	req.SetContext(ctx)
2219	req.ApplyOptions(opts...)
2220	return out, req.Send()
2221}
2222
2223// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
2224// calling the "fn" function with the response data for each page. To stop
2225// iterating, return false from the fn function.
2226//
2227// See ListTagsForResource method for more information on how to use this operation.
2228//
2229// Note: This operation can generate multiple requests to a service.
2230//
2231//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
2232//    pageNum := 0
2233//    err := client.ListTagsForResourcePages(params,
2234//        func(page *iotthingsgraph.ListTagsForResourceOutput, lastPage bool) bool {
2235//            pageNum++
2236//            fmt.Println(page)
2237//            return pageNum <= 3
2238//        })
2239//
2240func (c *IoTThingsGraph) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
2241	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
2242}
2243
2244// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
2245// it takes a Context and allows setting request options on the pages.
2246//
2247// The context must be non-nil and will be used for request cancellation. If
2248// the context is nil a panic will occur. In the future the SDK may create
2249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2250// for more information on using Contexts.
2251func (c *IoTThingsGraph) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
2252	p := request.Pagination{
2253		NewRequest: func() (*request.Request, error) {
2254			var inCpy *ListTagsForResourceInput
2255			if input != nil {
2256				tmp := *input
2257				inCpy = &tmp
2258			}
2259			req, _ := c.ListTagsForResourceRequest(inCpy)
2260			req.SetContext(ctx)
2261			req.ApplyOptions(opts...)
2262			return req, nil
2263		},
2264	}
2265
2266	for p.Next() {
2267		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
2268			break
2269		}
2270	}
2271
2272	return p.Err()
2273}
2274
2275const opSearchEntities = "SearchEntities"
2276
2277// SearchEntitiesRequest generates a "aws/request.Request" representing the
2278// client's request for the SearchEntities operation. The "output" return
2279// value will be populated with the request's response once the request completes
2280// successfully.
2281//
2282// Use "Send" method on the returned Request to send the API call to the service.
2283// the "output" return value is not valid until after Send returns without error.
2284//
2285// See SearchEntities for more information on using the SearchEntities
2286// API call, and error handling.
2287//
2288// This method is useful when you want to inject custom logic or configuration
2289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2290//
2291//
2292//    // Example sending a request using the SearchEntitiesRequest method.
2293//    req, resp := client.SearchEntitiesRequest(params)
2294//
2295//    err := req.Send()
2296//    if err == nil { // resp is now filled
2297//        fmt.Println(resp)
2298//    }
2299//
2300// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchEntities
2301func (c *IoTThingsGraph) SearchEntitiesRequest(input *SearchEntitiesInput) (req *request.Request, output *SearchEntitiesOutput) {
2302	op := &request.Operation{
2303		Name:       opSearchEntities,
2304		HTTPMethod: "POST",
2305		HTTPPath:   "/",
2306		Paginator: &request.Paginator{
2307			InputTokens:     []string{"nextToken"},
2308			OutputTokens:    []string{"nextToken"},
2309			LimitToken:      "maxResults",
2310			TruncationToken: "",
2311		},
2312	}
2313
2314	if input == nil {
2315		input = &SearchEntitiesInput{}
2316	}
2317
2318	output = &SearchEntitiesOutput{}
2319	req = c.newRequest(op, input, output)
2320	return
2321}
2322
2323// SearchEntities API operation for AWS IoT Things Graph.
2324//
2325// Searches for entities of the specified type. You can search for entities
2326// in your namespace and the public namespace that you're tracking.
2327//
2328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2329// with awserr.Error's Code and Message methods to get detailed information about
2330// the error.
2331//
2332// See the AWS API reference guide for AWS IoT Things Graph's
2333// API operation SearchEntities for usage and error information.
2334//
2335// Returned Error Types:
2336//   * InvalidRequestException
2337//
2338//   * InternalFailureException
2339//
2340//   * ThrottlingException
2341//
2342// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchEntities
2343func (c *IoTThingsGraph) SearchEntities(input *SearchEntitiesInput) (*SearchEntitiesOutput, error) {
2344	req, out := c.SearchEntitiesRequest(input)
2345	return out, req.Send()
2346}
2347
2348// SearchEntitiesWithContext is the same as SearchEntities with the addition of
2349// the ability to pass a context and additional request options.
2350//
2351// See SearchEntities for details on how to use this API operation.
2352//
2353// The context must be non-nil and will be used for request cancellation. If
2354// the context is nil a panic will occur. In the future the SDK may create
2355// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2356// for more information on using Contexts.
2357func (c *IoTThingsGraph) SearchEntitiesWithContext(ctx aws.Context, input *SearchEntitiesInput, opts ...request.Option) (*SearchEntitiesOutput, error) {
2358	req, out := c.SearchEntitiesRequest(input)
2359	req.SetContext(ctx)
2360	req.ApplyOptions(opts...)
2361	return out, req.Send()
2362}
2363
2364// SearchEntitiesPages iterates over the pages of a SearchEntities operation,
2365// calling the "fn" function with the response data for each page. To stop
2366// iterating, return false from the fn function.
2367//
2368// See SearchEntities method for more information on how to use this operation.
2369//
2370// Note: This operation can generate multiple requests to a service.
2371//
2372//    // Example iterating over at most 3 pages of a SearchEntities operation.
2373//    pageNum := 0
2374//    err := client.SearchEntitiesPages(params,
2375//        func(page *iotthingsgraph.SearchEntitiesOutput, lastPage bool) bool {
2376//            pageNum++
2377//            fmt.Println(page)
2378//            return pageNum <= 3
2379//        })
2380//
2381func (c *IoTThingsGraph) SearchEntitiesPages(input *SearchEntitiesInput, fn func(*SearchEntitiesOutput, bool) bool) error {
2382	return c.SearchEntitiesPagesWithContext(aws.BackgroundContext(), input, fn)
2383}
2384
2385// SearchEntitiesPagesWithContext same as SearchEntitiesPages except
2386// it takes a Context and allows setting request options on the pages.
2387//
2388// The context must be non-nil and will be used for request cancellation. If
2389// the context is nil a panic will occur. In the future the SDK may create
2390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2391// for more information on using Contexts.
2392func (c *IoTThingsGraph) SearchEntitiesPagesWithContext(ctx aws.Context, input *SearchEntitiesInput, fn func(*SearchEntitiesOutput, bool) bool, opts ...request.Option) error {
2393	p := request.Pagination{
2394		NewRequest: func() (*request.Request, error) {
2395			var inCpy *SearchEntitiesInput
2396			if input != nil {
2397				tmp := *input
2398				inCpy = &tmp
2399			}
2400			req, _ := c.SearchEntitiesRequest(inCpy)
2401			req.SetContext(ctx)
2402			req.ApplyOptions(opts...)
2403			return req, nil
2404		},
2405	}
2406
2407	for p.Next() {
2408		if !fn(p.Page().(*SearchEntitiesOutput), !p.HasNextPage()) {
2409			break
2410		}
2411	}
2412
2413	return p.Err()
2414}
2415
2416const opSearchFlowExecutions = "SearchFlowExecutions"
2417
2418// SearchFlowExecutionsRequest generates a "aws/request.Request" representing the
2419// client's request for the SearchFlowExecutions operation. The "output" return
2420// value will be populated with the request's response once the request completes
2421// successfully.
2422//
2423// Use "Send" method on the returned Request to send the API call to the service.
2424// the "output" return value is not valid until after Send returns without error.
2425//
2426// See SearchFlowExecutions for more information on using the SearchFlowExecutions
2427// API call, and error handling.
2428//
2429// This method is useful when you want to inject custom logic or configuration
2430// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2431//
2432//
2433//    // Example sending a request using the SearchFlowExecutionsRequest method.
2434//    req, resp := client.SearchFlowExecutionsRequest(params)
2435//
2436//    err := req.Send()
2437//    if err == nil { // resp is now filled
2438//        fmt.Println(resp)
2439//    }
2440//
2441// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchFlowExecutions
2442func (c *IoTThingsGraph) SearchFlowExecutionsRequest(input *SearchFlowExecutionsInput) (req *request.Request, output *SearchFlowExecutionsOutput) {
2443	op := &request.Operation{
2444		Name:       opSearchFlowExecutions,
2445		HTTPMethod: "POST",
2446		HTTPPath:   "/",
2447		Paginator: &request.Paginator{
2448			InputTokens:     []string{"nextToken"},
2449			OutputTokens:    []string{"nextToken"},
2450			LimitToken:      "maxResults",
2451			TruncationToken: "",
2452		},
2453	}
2454
2455	if input == nil {
2456		input = &SearchFlowExecutionsInput{}
2457	}
2458
2459	output = &SearchFlowExecutionsOutput{}
2460	req = c.newRequest(op, input, output)
2461	return
2462}
2463
2464// SearchFlowExecutions API operation for AWS IoT Things Graph.
2465//
2466// Searches for AWS IoT Things Graph workflow execution instances.
2467//
2468// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2469// with awserr.Error's Code and Message methods to get detailed information about
2470// the error.
2471//
2472// See the AWS API reference guide for AWS IoT Things Graph's
2473// API operation SearchFlowExecutions for usage and error information.
2474//
2475// Returned Error Types:
2476//   * InvalidRequestException
2477//
2478//   * ThrottlingException
2479//
2480//   * InternalFailureException
2481//
2482//   * ResourceNotFoundException
2483//
2484// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchFlowExecutions
2485func (c *IoTThingsGraph) SearchFlowExecutions(input *SearchFlowExecutionsInput) (*SearchFlowExecutionsOutput, error) {
2486	req, out := c.SearchFlowExecutionsRequest(input)
2487	return out, req.Send()
2488}
2489
2490// SearchFlowExecutionsWithContext is the same as SearchFlowExecutions with the addition of
2491// the ability to pass a context and additional request options.
2492//
2493// See SearchFlowExecutions for details on how to use this API operation.
2494//
2495// The context must be non-nil and will be used for request cancellation. If
2496// the context is nil a panic will occur. In the future the SDK may create
2497// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2498// for more information on using Contexts.
2499func (c *IoTThingsGraph) SearchFlowExecutionsWithContext(ctx aws.Context, input *SearchFlowExecutionsInput, opts ...request.Option) (*SearchFlowExecutionsOutput, error) {
2500	req, out := c.SearchFlowExecutionsRequest(input)
2501	req.SetContext(ctx)
2502	req.ApplyOptions(opts...)
2503	return out, req.Send()
2504}
2505
2506// SearchFlowExecutionsPages iterates over the pages of a SearchFlowExecutions operation,
2507// calling the "fn" function with the response data for each page. To stop
2508// iterating, return false from the fn function.
2509//
2510// See SearchFlowExecutions method for more information on how to use this operation.
2511//
2512// Note: This operation can generate multiple requests to a service.
2513//
2514//    // Example iterating over at most 3 pages of a SearchFlowExecutions operation.
2515//    pageNum := 0
2516//    err := client.SearchFlowExecutionsPages(params,
2517//        func(page *iotthingsgraph.SearchFlowExecutionsOutput, lastPage bool) bool {
2518//            pageNum++
2519//            fmt.Println(page)
2520//            return pageNum <= 3
2521//        })
2522//
2523func (c *IoTThingsGraph) SearchFlowExecutionsPages(input *SearchFlowExecutionsInput, fn func(*SearchFlowExecutionsOutput, bool) bool) error {
2524	return c.SearchFlowExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
2525}
2526
2527// SearchFlowExecutionsPagesWithContext same as SearchFlowExecutionsPages except
2528// it takes a Context and allows setting request options on the pages.
2529//
2530// The context must be non-nil and will be used for request cancellation. If
2531// the context is nil a panic will occur. In the future the SDK may create
2532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2533// for more information on using Contexts.
2534func (c *IoTThingsGraph) SearchFlowExecutionsPagesWithContext(ctx aws.Context, input *SearchFlowExecutionsInput, fn func(*SearchFlowExecutionsOutput, bool) bool, opts ...request.Option) error {
2535	p := request.Pagination{
2536		NewRequest: func() (*request.Request, error) {
2537			var inCpy *SearchFlowExecutionsInput
2538			if input != nil {
2539				tmp := *input
2540				inCpy = &tmp
2541			}
2542			req, _ := c.SearchFlowExecutionsRequest(inCpy)
2543			req.SetContext(ctx)
2544			req.ApplyOptions(opts...)
2545			return req, nil
2546		},
2547	}
2548
2549	for p.Next() {
2550		if !fn(p.Page().(*SearchFlowExecutionsOutput), !p.HasNextPage()) {
2551			break
2552		}
2553	}
2554
2555	return p.Err()
2556}
2557
2558const opSearchFlowTemplates = "SearchFlowTemplates"
2559
2560// SearchFlowTemplatesRequest generates a "aws/request.Request" representing the
2561// client's request for the SearchFlowTemplates operation. The "output" return
2562// value will be populated with the request's response once the request completes
2563// successfully.
2564//
2565// Use "Send" method on the returned Request to send the API call to the service.
2566// the "output" return value is not valid until after Send returns without error.
2567//
2568// See SearchFlowTemplates for more information on using the SearchFlowTemplates
2569// API call, and error handling.
2570//
2571// This method is useful when you want to inject custom logic or configuration
2572// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2573//
2574//
2575//    // Example sending a request using the SearchFlowTemplatesRequest method.
2576//    req, resp := client.SearchFlowTemplatesRequest(params)
2577//
2578//    err := req.Send()
2579//    if err == nil { // resp is now filled
2580//        fmt.Println(resp)
2581//    }
2582//
2583// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchFlowTemplates
2584func (c *IoTThingsGraph) SearchFlowTemplatesRequest(input *SearchFlowTemplatesInput) (req *request.Request, output *SearchFlowTemplatesOutput) {
2585	op := &request.Operation{
2586		Name:       opSearchFlowTemplates,
2587		HTTPMethod: "POST",
2588		HTTPPath:   "/",
2589		Paginator: &request.Paginator{
2590			InputTokens:     []string{"nextToken"},
2591			OutputTokens:    []string{"nextToken"},
2592			LimitToken:      "maxResults",
2593			TruncationToken: "",
2594		},
2595	}
2596
2597	if input == nil {
2598		input = &SearchFlowTemplatesInput{}
2599	}
2600
2601	output = &SearchFlowTemplatesOutput{}
2602	req = c.newRequest(op, input, output)
2603	return
2604}
2605
2606// SearchFlowTemplates API operation for AWS IoT Things Graph.
2607//
2608// Searches for summary information about workflows.
2609//
2610// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2611// with awserr.Error's Code and Message methods to get detailed information about
2612// the error.
2613//
2614// See the AWS API reference guide for AWS IoT Things Graph's
2615// API operation SearchFlowTemplates for usage and error information.
2616//
2617// Returned Error Types:
2618//   * InvalidRequestException
2619//
2620//   * ThrottlingException
2621//
2622//   * InternalFailureException
2623//
2624// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchFlowTemplates
2625func (c *IoTThingsGraph) SearchFlowTemplates(input *SearchFlowTemplatesInput) (*SearchFlowTemplatesOutput, error) {
2626	req, out := c.SearchFlowTemplatesRequest(input)
2627	return out, req.Send()
2628}
2629
2630// SearchFlowTemplatesWithContext is the same as SearchFlowTemplates with the addition of
2631// the ability to pass a context and additional request options.
2632//
2633// See SearchFlowTemplates for details on how to use this API operation.
2634//
2635// The context must be non-nil and will be used for request cancellation. If
2636// the context is nil a panic will occur. In the future the SDK may create
2637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2638// for more information on using Contexts.
2639func (c *IoTThingsGraph) SearchFlowTemplatesWithContext(ctx aws.Context, input *SearchFlowTemplatesInput, opts ...request.Option) (*SearchFlowTemplatesOutput, error) {
2640	req, out := c.SearchFlowTemplatesRequest(input)
2641	req.SetContext(ctx)
2642	req.ApplyOptions(opts...)
2643	return out, req.Send()
2644}
2645
2646// SearchFlowTemplatesPages iterates over the pages of a SearchFlowTemplates operation,
2647// calling the "fn" function with the response data for each page. To stop
2648// iterating, return false from the fn function.
2649//
2650// See SearchFlowTemplates method for more information on how to use this operation.
2651//
2652// Note: This operation can generate multiple requests to a service.
2653//
2654//    // Example iterating over at most 3 pages of a SearchFlowTemplates operation.
2655//    pageNum := 0
2656//    err := client.SearchFlowTemplatesPages(params,
2657//        func(page *iotthingsgraph.SearchFlowTemplatesOutput, lastPage bool) bool {
2658//            pageNum++
2659//            fmt.Println(page)
2660//            return pageNum <= 3
2661//        })
2662//
2663func (c *IoTThingsGraph) SearchFlowTemplatesPages(input *SearchFlowTemplatesInput, fn func(*SearchFlowTemplatesOutput, bool) bool) error {
2664	return c.SearchFlowTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
2665}
2666
2667// SearchFlowTemplatesPagesWithContext same as SearchFlowTemplatesPages except
2668// it takes a Context and allows setting request options on the pages.
2669//
2670// The context must be non-nil and will be used for request cancellation. If
2671// the context is nil a panic will occur. In the future the SDK may create
2672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2673// for more information on using Contexts.
2674func (c *IoTThingsGraph) SearchFlowTemplatesPagesWithContext(ctx aws.Context, input *SearchFlowTemplatesInput, fn func(*SearchFlowTemplatesOutput, bool) bool, opts ...request.Option) error {
2675	p := request.Pagination{
2676		NewRequest: func() (*request.Request, error) {
2677			var inCpy *SearchFlowTemplatesInput
2678			if input != nil {
2679				tmp := *input
2680				inCpy = &tmp
2681			}
2682			req, _ := c.SearchFlowTemplatesRequest(inCpy)
2683			req.SetContext(ctx)
2684			req.ApplyOptions(opts...)
2685			return req, nil
2686		},
2687	}
2688
2689	for p.Next() {
2690		if !fn(p.Page().(*SearchFlowTemplatesOutput), !p.HasNextPage()) {
2691			break
2692		}
2693	}
2694
2695	return p.Err()
2696}
2697
2698const opSearchSystemInstances = "SearchSystemInstances"
2699
2700// SearchSystemInstancesRequest generates a "aws/request.Request" representing the
2701// client's request for the SearchSystemInstances operation. The "output" return
2702// value will be populated with the request's response once the request completes
2703// successfully.
2704//
2705// Use "Send" method on the returned Request to send the API call to the service.
2706// the "output" return value is not valid until after Send returns without error.
2707//
2708// See SearchSystemInstances for more information on using the SearchSystemInstances
2709// API call, and error handling.
2710//
2711// This method is useful when you want to inject custom logic or configuration
2712// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2713//
2714//
2715//    // Example sending a request using the SearchSystemInstancesRequest method.
2716//    req, resp := client.SearchSystemInstancesRequest(params)
2717//
2718//    err := req.Send()
2719//    if err == nil { // resp is now filled
2720//        fmt.Println(resp)
2721//    }
2722//
2723// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchSystemInstances
2724func (c *IoTThingsGraph) SearchSystemInstancesRequest(input *SearchSystemInstancesInput) (req *request.Request, output *SearchSystemInstancesOutput) {
2725	op := &request.Operation{
2726		Name:       opSearchSystemInstances,
2727		HTTPMethod: "POST",
2728		HTTPPath:   "/",
2729		Paginator: &request.Paginator{
2730			InputTokens:     []string{"nextToken"},
2731			OutputTokens:    []string{"nextToken"},
2732			LimitToken:      "maxResults",
2733			TruncationToken: "",
2734		},
2735	}
2736
2737	if input == nil {
2738		input = &SearchSystemInstancesInput{}
2739	}
2740
2741	output = &SearchSystemInstancesOutput{}
2742	req = c.newRequest(op, input, output)
2743	return
2744}
2745
2746// SearchSystemInstances API operation for AWS IoT Things Graph.
2747//
2748// Searches for system instances in the user's account.
2749//
2750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2751// with awserr.Error's Code and Message methods to get detailed information about
2752// the error.
2753//
2754// See the AWS API reference guide for AWS IoT Things Graph's
2755// API operation SearchSystemInstances for usage and error information.
2756//
2757// Returned Error Types:
2758//   * InvalidRequestException
2759//
2760//   * ThrottlingException
2761//
2762//   * InternalFailureException
2763//
2764// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchSystemInstances
2765func (c *IoTThingsGraph) SearchSystemInstances(input *SearchSystemInstancesInput) (*SearchSystemInstancesOutput, error) {
2766	req, out := c.SearchSystemInstancesRequest(input)
2767	return out, req.Send()
2768}
2769
2770// SearchSystemInstancesWithContext is the same as SearchSystemInstances with the addition of
2771// the ability to pass a context and additional request options.
2772//
2773// See SearchSystemInstances for details on how to use this API operation.
2774//
2775// The context must be non-nil and will be used for request cancellation. If
2776// the context is nil a panic will occur. In the future the SDK may create
2777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2778// for more information on using Contexts.
2779func (c *IoTThingsGraph) SearchSystemInstancesWithContext(ctx aws.Context, input *SearchSystemInstancesInput, opts ...request.Option) (*SearchSystemInstancesOutput, error) {
2780	req, out := c.SearchSystemInstancesRequest(input)
2781	req.SetContext(ctx)
2782	req.ApplyOptions(opts...)
2783	return out, req.Send()
2784}
2785
2786// SearchSystemInstancesPages iterates over the pages of a SearchSystemInstances operation,
2787// calling the "fn" function with the response data for each page. To stop
2788// iterating, return false from the fn function.
2789//
2790// See SearchSystemInstances method for more information on how to use this operation.
2791//
2792// Note: This operation can generate multiple requests to a service.
2793//
2794//    // Example iterating over at most 3 pages of a SearchSystemInstances operation.
2795//    pageNum := 0
2796//    err := client.SearchSystemInstancesPages(params,
2797//        func(page *iotthingsgraph.SearchSystemInstancesOutput, lastPage bool) bool {
2798//            pageNum++
2799//            fmt.Println(page)
2800//            return pageNum <= 3
2801//        })
2802//
2803func (c *IoTThingsGraph) SearchSystemInstancesPages(input *SearchSystemInstancesInput, fn func(*SearchSystemInstancesOutput, bool) bool) error {
2804	return c.SearchSystemInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2805}
2806
2807// SearchSystemInstancesPagesWithContext same as SearchSystemInstancesPages except
2808// it takes a Context and allows setting request options on the pages.
2809//
2810// The context must be non-nil and will be used for request cancellation. If
2811// the context is nil a panic will occur. In the future the SDK may create
2812// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2813// for more information on using Contexts.
2814func (c *IoTThingsGraph) SearchSystemInstancesPagesWithContext(ctx aws.Context, input *SearchSystemInstancesInput, fn func(*SearchSystemInstancesOutput, bool) bool, opts ...request.Option) error {
2815	p := request.Pagination{
2816		NewRequest: func() (*request.Request, error) {
2817			var inCpy *SearchSystemInstancesInput
2818			if input != nil {
2819				tmp := *input
2820				inCpy = &tmp
2821			}
2822			req, _ := c.SearchSystemInstancesRequest(inCpy)
2823			req.SetContext(ctx)
2824			req.ApplyOptions(opts...)
2825			return req, nil
2826		},
2827	}
2828
2829	for p.Next() {
2830		if !fn(p.Page().(*SearchSystemInstancesOutput), !p.HasNextPage()) {
2831			break
2832		}
2833	}
2834
2835	return p.Err()
2836}
2837
2838const opSearchSystemTemplates = "SearchSystemTemplates"
2839
2840// SearchSystemTemplatesRequest generates a "aws/request.Request" representing the
2841// client's request for the SearchSystemTemplates operation. The "output" return
2842// value will be populated with the request's response once the request completes
2843// successfully.
2844//
2845// Use "Send" method on the returned Request to send the API call to the service.
2846// the "output" return value is not valid until after Send returns without error.
2847//
2848// See SearchSystemTemplates for more information on using the SearchSystemTemplates
2849// API call, and error handling.
2850//
2851// This method is useful when you want to inject custom logic or configuration
2852// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2853//
2854//
2855//    // Example sending a request using the SearchSystemTemplatesRequest method.
2856//    req, resp := client.SearchSystemTemplatesRequest(params)
2857//
2858//    err := req.Send()
2859//    if err == nil { // resp is now filled
2860//        fmt.Println(resp)
2861//    }
2862//
2863// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchSystemTemplates
2864func (c *IoTThingsGraph) SearchSystemTemplatesRequest(input *SearchSystemTemplatesInput) (req *request.Request, output *SearchSystemTemplatesOutput) {
2865	op := &request.Operation{
2866		Name:       opSearchSystemTemplates,
2867		HTTPMethod: "POST",
2868		HTTPPath:   "/",
2869		Paginator: &request.Paginator{
2870			InputTokens:     []string{"nextToken"},
2871			OutputTokens:    []string{"nextToken"},
2872			LimitToken:      "maxResults",
2873			TruncationToken: "",
2874		},
2875	}
2876
2877	if input == nil {
2878		input = &SearchSystemTemplatesInput{}
2879	}
2880
2881	output = &SearchSystemTemplatesOutput{}
2882	req = c.newRequest(op, input, output)
2883	return
2884}
2885
2886// SearchSystemTemplates API operation for AWS IoT Things Graph.
2887//
2888// Searches for summary information about systems in the user's account. You
2889// can filter by the ID of a workflow to return only systems that use the specified
2890// workflow.
2891//
2892// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2893// with awserr.Error's Code and Message methods to get detailed information about
2894// the error.
2895//
2896// See the AWS API reference guide for AWS IoT Things Graph's
2897// API operation SearchSystemTemplates for usage and error information.
2898//
2899// Returned Error Types:
2900//   * InvalidRequestException
2901//
2902//   * ThrottlingException
2903//
2904//   * InternalFailureException
2905//
2906// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchSystemTemplates
2907func (c *IoTThingsGraph) SearchSystemTemplates(input *SearchSystemTemplatesInput) (*SearchSystemTemplatesOutput, error) {
2908	req, out := c.SearchSystemTemplatesRequest(input)
2909	return out, req.Send()
2910}
2911
2912// SearchSystemTemplatesWithContext is the same as SearchSystemTemplates with the addition of
2913// the ability to pass a context and additional request options.
2914//
2915// See SearchSystemTemplates for details on how to use this API operation.
2916//
2917// The context must be non-nil and will be used for request cancellation. If
2918// the context is nil a panic will occur. In the future the SDK may create
2919// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2920// for more information on using Contexts.
2921func (c *IoTThingsGraph) SearchSystemTemplatesWithContext(ctx aws.Context, input *SearchSystemTemplatesInput, opts ...request.Option) (*SearchSystemTemplatesOutput, error) {
2922	req, out := c.SearchSystemTemplatesRequest(input)
2923	req.SetContext(ctx)
2924	req.ApplyOptions(opts...)
2925	return out, req.Send()
2926}
2927
2928// SearchSystemTemplatesPages iterates over the pages of a SearchSystemTemplates operation,
2929// calling the "fn" function with the response data for each page. To stop
2930// iterating, return false from the fn function.
2931//
2932// See SearchSystemTemplates method for more information on how to use this operation.
2933//
2934// Note: This operation can generate multiple requests to a service.
2935//
2936//    // Example iterating over at most 3 pages of a SearchSystemTemplates operation.
2937//    pageNum := 0
2938//    err := client.SearchSystemTemplatesPages(params,
2939//        func(page *iotthingsgraph.SearchSystemTemplatesOutput, lastPage bool) bool {
2940//            pageNum++
2941//            fmt.Println(page)
2942//            return pageNum <= 3
2943//        })
2944//
2945func (c *IoTThingsGraph) SearchSystemTemplatesPages(input *SearchSystemTemplatesInput, fn func(*SearchSystemTemplatesOutput, bool) bool) error {
2946	return c.SearchSystemTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
2947}
2948
2949// SearchSystemTemplatesPagesWithContext same as SearchSystemTemplatesPages except
2950// it takes a Context and allows setting request options on the pages.
2951//
2952// The context must be non-nil and will be used for request cancellation. If
2953// the context is nil a panic will occur. In the future the SDK may create
2954// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2955// for more information on using Contexts.
2956func (c *IoTThingsGraph) SearchSystemTemplatesPagesWithContext(ctx aws.Context, input *SearchSystemTemplatesInput, fn func(*SearchSystemTemplatesOutput, bool) bool, opts ...request.Option) error {
2957	p := request.Pagination{
2958		NewRequest: func() (*request.Request, error) {
2959			var inCpy *SearchSystemTemplatesInput
2960			if input != nil {
2961				tmp := *input
2962				inCpy = &tmp
2963			}
2964			req, _ := c.SearchSystemTemplatesRequest(inCpy)
2965			req.SetContext(ctx)
2966			req.ApplyOptions(opts...)
2967			return req, nil
2968		},
2969	}
2970
2971	for p.Next() {
2972		if !fn(p.Page().(*SearchSystemTemplatesOutput), !p.HasNextPage()) {
2973			break
2974		}
2975	}
2976
2977	return p.Err()
2978}
2979
2980const opSearchThings = "SearchThings"
2981
2982// SearchThingsRequest generates a "aws/request.Request" representing the
2983// client's request for the SearchThings operation. The "output" return
2984// value will be populated with the request's response once the request completes
2985// successfully.
2986//
2987// Use "Send" method on the returned Request to send the API call to the service.
2988// the "output" return value is not valid until after Send returns without error.
2989//
2990// See SearchThings for more information on using the SearchThings
2991// API call, and error handling.
2992//
2993// This method is useful when you want to inject custom logic or configuration
2994// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2995//
2996//
2997//    // Example sending a request using the SearchThingsRequest method.
2998//    req, resp := client.SearchThingsRequest(params)
2999//
3000//    err := req.Send()
3001//    if err == nil { // resp is now filled
3002//        fmt.Println(resp)
3003//    }
3004//
3005// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchThings
3006func (c *IoTThingsGraph) SearchThingsRequest(input *SearchThingsInput) (req *request.Request, output *SearchThingsOutput) {
3007	op := &request.Operation{
3008		Name:       opSearchThings,
3009		HTTPMethod: "POST",
3010		HTTPPath:   "/",
3011		Paginator: &request.Paginator{
3012			InputTokens:     []string{"nextToken"},
3013			OutputTokens:    []string{"nextToken"},
3014			LimitToken:      "maxResults",
3015			TruncationToken: "",
3016		},
3017	}
3018
3019	if input == nil {
3020		input = &SearchThingsInput{}
3021	}
3022
3023	output = &SearchThingsOutput{}
3024	req = c.newRequest(op, input, output)
3025	return
3026}
3027
3028// SearchThings API operation for AWS IoT Things Graph.
3029//
3030// Searches for things associated with the specified entity. You can search
3031// by both device and device model.
3032//
3033// For example, if two different devices, camera1 and camera2, implement the
3034// camera device model, the user can associate thing1 to camera1 and thing2
3035// to camera2. SearchThings(camera2) will return only thing2, but SearchThings(camera)
3036// will return both thing1 and thing2.
3037//
3038// This action searches for exact matches and doesn't perform partial text matching.
3039//
3040// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3041// with awserr.Error's Code and Message methods to get detailed information about
3042// the error.
3043//
3044// See the AWS API reference guide for AWS IoT Things Graph's
3045// API operation SearchThings for usage and error information.
3046//
3047// Returned Error Types:
3048//   * InvalidRequestException
3049//
3050//   * ResourceNotFoundException
3051//
3052//   * InternalFailureException
3053//
3054//   * ThrottlingException
3055//
3056// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/SearchThings
3057func (c *IoTThingsGraph) SearchThings(input *SearchThingsInput) (*SearchThingsOutput, error) {
3058	req, out := c.SearchThingsRequest(input)
3059	return out, req.Send()
3060}
3061
3062// SearchThingsWithContext is the same as SearchThings with the addition of
3063// the ability to pass a context and additional request options.
3064//
3065// See SearchThings for details on how to use this API operation.
3066//
3067// The context must be non-nil and will be used for request cancellation. If
3068// the context is nil a panic will occur. In the future the SDK may create
3069// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3070// for more information on using Contexts.
3071func (c *IoTThingsGraph) SearchThingsWithContext(ctx aws.Context, input *SearchThingsInput, opts ...request.Option) (*SearchThingsOutput, error) {
3072	req, out := c.SearchThingsRequest(input)
3073	req.SetContext(ctx)
3074	req.ApplyOptions(opts...)
3075	return out, req.Send()
3076}
3077
3078// SearchThingsPages iterates over the pages of a SearchThings operation,
3079// calling the "fn" function with the response data for each page. To stop
3080// iterating, return false from the fn function.
3081//
3082// See SearchThings method for more information on how to use this operation.
3083//
3084// Note: This operation can generate multiple requests to a service.
3085//
3086//    // Example iterating over at most 3 pages of a SearchThings operation.
3087//    pageNum := 0
3088//    err := client.SearchThingsPages(params,
3089//        func(page *iotthingsgraph.SearchThingsOutput, lastPage bool) bool {
3090//            pageNum++
3091//            fmt.Println(page)
3092//            return pageNum <= 3
3093//        })
3094//
3095func (c *IoTThingsGraph) SearchThingsPages(input *SearchThingsInput, fn func(*SearchThingsOutput, bool) bool) error {
3096	return c.SearchThingsPagesWithContext(aws.BackgroundContext(), input, fn)
3097}
3098
3099// SearchThingsPagesWithContext same as SearchThingsPages except
3100// it takes a Context and allows setting request options on the pages.
3101//
3102// The context must be non-nil and will be used for request cancellation. If
3103// the context is nil a panic will occur. In the future the SDK may create
3104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3105// for more information on using Contexts.
3106func (c *IoTThingsGraph) SearchThingsPagesWithContext(ctx aws.Context, input *SearchThingsInput, fn func(*SearchThingsOutput, bool) bool, opts ...request.Option) error {
3107	p := request.Pagination{
3108		NewRequest: func() (*request.Request, error) {
3109			var inCpy *SearchThingsInput
3110			if input != nil {
3111				tmp := *input
3112				inCpy = &tmp
3113			}
3114			req, _ := c.SearchThingsRequest(inCpy)
3115			req.SetContext(ctx)
3116			req.ApplyOptions(opts...)
3117			return req, nil
3118		},
3119	}
3120
3121	for p.Next() {
3122		if !fn(p.Page().(*SearchThingsOutput), !p.HasNextPage()) {
3123			break
3124		}
3125	}
3126
3127	return p.Err()
3128}
3129
3130const opTagResource = "TagResource"
3131
3132// TagResourceRequest generates a "aws/request.Request" representing the
3133// client's request for the TagResource operation. The "output" return
3134// value will be populated with the request's response once the request completes
3135// successfully.
3136//
3137// Use "Send" method on the returned Request to send the API call to the service.
3138// the "output" return value is not valid until after Send returns without error.
3139//
3140// See TagResource for more information on using the TagResource
3141// API call, and error handling.
3142//
3143// This method is useful when you want to inject custom logic or configuration
3144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3145//
3146//
3147//    // Example sending a request using the TagResourceRequest method.
3148//    req, resp := client.TagResourceRequest(params)
3149//
3150//    err := req.Send()
3151//    if err == nil { // resp is now filled
3152//        fmt.Println(resp)
3153//    }
3154//
3155// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/TagResource
3156func (c *IoTThingsGraph) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
3157	op := &request.Operation{
3158		Name:       opTagResource,
3159		HTTPMethod: "POST",
3160		HTTPPath:   "/",
3161	}
3162
3163	if input == nil {
3164		input = &TagResourceInput{}
3165	}
3166
3167	output = &TagResourceOutput{}
3168	req = c.newRequest(op, input, output)
3169	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3170	return
3171}
3172
3173// TagResource API operation for AWS IoT Things Graph.
3174//
3175// Creates a tag for the specified resource.
3176//
3177// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3178// with awserr.Error's Code and Message methods to get detailed information about
3179// the error.
3180//
3181// See the AWS API reference guide for AWS IoT Things Graph's
3182// API operation TagResource for usage and error information.
3183//
3184// Returned Error Types:
3185//   * InvalidRequestException
3186//
3187//   * ResourceAlreadyExistsException
3188//
3189//   * ThrottlingException
3190//
3191//   * InternalFailureException
3192//
3193// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/TagResource
3194func (c *IoTThingsGraph) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3195	req, out := c.TagResourceRequest(input)
3196	return out, req.Send()
3197}
3198
3199// TagResourceWithContext is the same as TagResource with the addition of
3200// the ability to pass a context and additional request options.
3201//
3202// See TagResource for details on how to use this API operation.
3203//
3204// The context must be non-nil and will be used for request cancellation. If
3205// the context is nil a panic will occur. In the future the SDK may create
3206// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3207// for more information on using Contexts.
3208func (c *IoTThingsGraph) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
3209	req, out := c.TagResourceRequest(input)
3210	req.SetContext(ctx)
3211	req.ApplyOptions(opts...)
3212	return out, req.Send()
3213}
3214
3215const opUndeploySystemInstance = "UndeploySystemInstance"
3216
3217// UndeploySystemInstanceRequest generates a "aws/request.Request" representing the
3218// client's request for the UndeploySystemInstance operation. The "output" return
3219// value will be populated with the request's response once the request completes
3220// successfully.
3221//
3222// Use "Send" method on the returned Request to send the API call to the service.
3223// the "output" return value is not valid until after Send returns without error.
3224//
3225// See UndeploySystemInstance for more information on using the UndeploySystemInstance
3226// API call, and error handling.
3227//
3228// This method is useful when you want to inject custom logic or configuration
3229// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3230//
3231//
3232//    // Example sending a request using the UndeploySystemInstanceRequest method.
3233//    req, resp := client.UndeploySystemInstanceRequest(params)
3234//
3235//    err := req.Send()
3236//    if err == nil { // resp is now filled
3237//        fmt.Println(resp)
3238//    }
3239//
3240// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UndeploySystemInstance
3241func (c *IoTThingsGraph) UndeploySystemInstanceRequest(input *UndeploySystemInstanceInput) (req *request.Request, output *UndeploySystemInstanceOutput) {
3242	op := &request.Operation{
3243		Name:       opUndeploySystemInstance,
3244		HTTPMethod: "POST",
3245		HTTPPath:   "/",
3246	}
3247
3248	if input == nil {
3249		input = &UndeploySystemInstanceInput{}
3250	}
3251
3252	output = &UndeploySystemInstanceOutput{}
3253	req = c.newRequest(op, input, output)
3254	return
3255}
3256
3257// UndeploySystemInstance API operation for AWS IoT Things Graph.
3258//
3259// Removes a system instance from its target (Cloud or Greengrass).
3260//
3261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3262// with awserr.Error's Code and Message methods to get detailed information about
3263// the error.
3264//
3265// See the AWS API reference guide for AWS IoT Things Graph's
3266// API operation UndeploySystemInstance for usage and error information.
3267//
3268// Returned Error Types:
3269//   * InvalidRequestException
3270//
3271//   * ThrottlingException
3272//
3273//   * InternalFailureException
3274//
3275//   * ResourceNotFoundException
3276//
3277//   * ResourceInUseException
3278//
3279// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UndeploySystemInstance
3280func (c *IoTThingsGraph) UndeploySystemInstance(input *UndeploySystemInstanceInput) (*UndeploySystemInstanceOutput, error) {
3281	req, out := c.UndeploySystemInstanceRequest(input)
3282	return out, req.Send()
3283}
3284
3285// UndeploySystemInstanceWithContext is the same as UndeploySystemInstance with the addition of
3286// the ability to pass a context and additional request options.
3287//
3288// See UndeploySystemInstance for details on how to use this API operation.
3289//
3290// The context must be non-nil and will be used for request cancellation. If
3291// the context is nil a panic will occur. In the future the SDK may create
3292// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3293// for more information on using Contexts.
3294func (c *IoTThingsGraph) UndeploySystemInstanceWithContext(ctx aws.Context, input *UndeploySystemInstanceInput, opts ...request.Option) (*UndeploySystemInstanceOutput, error) {
3295	req, out := c.UndeploySystemInstanceRequest(input)
3296	req.SetContext(ctx)
3297	req.ApplyOptions(opts...)
3298	return out, req.Send()
3299}
3300
3301const opUntagResource = "UntagResource"
3302
3303// UntagResourceRequest generates a "aws/request.Request" representing the
3304// client's request for the UntagResource operation. The "output" return
3305// value will be populated with the request's response once the request completes
3306// successfully.
3307//
3308// Use "Send" method on the returned Request to send the API call to the service.
3309// the "output" return value is not valid until after Send returns without error.
3310//
3311// See UntagResource for more information on using the UntagResource
3312// API call, and error handling.
3313//
3314// This method is useful when you want to inject custom logic or configuration
3315// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3316//
3317//
3318//    // Example sending a request using the UntagResourceRequest method.
3319//    req, resp := client.UntagResourceRequest(params)
3320//
3321//    err := req.Send()
3322//    if err == nil { // resp is now filled
3323//        fmt.Println(resp)
3324//    }
3325//
3326// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UntagResource
3327func (c *IoTThingsGraph) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
3328	op := &request.Operation{
3329		Name:       opUntagResource,
3330		HTTPMethod: "POST",
3331		HTTPPath:   "/",
3332	}
3333
3334	if input == nil {
3335		input = &UntagResourceInput{}
3336	}
3337
3338	output = &UntagResourceOutput{}
3339	req = c.newRequest(op, input, output)
3340	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3341	return
3342}
3343
3344// UntagResource API operation for AWS IoT Things Graph.
3345//
3346// Removes a tag from the specified resource.
3347//
3348// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3349// with awserr.Error's Code and Message methods to get detailed information about
3350// the error.
3351//
3352// See the AWS API reference guide for AWS IoT Things Graph's
3353// API operation UntagResource for usage and error information.
3354//
3355// Returned Error Types:
3356//   * InvalidRequestException
3357//
3358//   * ResourceAlreadyExistsException
3359//
3360//   * ThrottlingException
3361//
3362//   * InternalFailureException
3363//
3364// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UntagResource
3365func (c *IoTThingsGraph) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
3366	req, out := c.UntagResourceRequest(input)
3367	return out, req.Send()
3368}
3369
3370// UntagResourceWithContext is the same as UntagResource with the addition of
3371// the ability to pass a context and additional request options.
3372//
3373// See UntagResource for details on how to use this API operation.
3374//
3375// The context must be non-nil and will be used for request cancellation. If
3376// the context is nil a panic will occur. In the future the SDK may create
3377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3378// for more information on using Contexts.
3379func (c *IoTThingsGraph) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
3380	req, out := c.UntagResourceRequest(input)
3381	req.SetContext(ctx)
3382	req.ApplyOptions(opts...)
3383	return out, req.Send()
3384}
3385
3386const opUpdateFlowTemplate = "UpdateFlowTemplate"
3387
3388// UpdateFlowTemplateRequest generates a "aws/request.Request" representing the
3389// client's request for the UpdateFlowTemplate operation. The "output" return
3390// value will be populated with the request's response once the request completes
3391// successfully.
3392//
3393// Use "Send" method on the returned Request to send the API call to the service.
3394// the "output" return value is not valid until after Send returns without error.
3395//
3396// See UpdateFlowTemplate for more information on using the UpdateFlowTemplate
3397// API call, and error handling.
3398//
3399// This method is useful when you want to inject custom logic or configuration
3400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3401//
3402//
3403//    // Example sending a request using the UpdateFlowTemplateRequest method.
3404//    req, resp := client.UpdateFlowTemplateRequest(params)
3405//
3406//    err := req.Send()
3407//    if err == nil { // resp is now filled
3408//        fmt.Println(resp)
3409//    }
3410//
3411// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UpdateFlowTemplate
3412func (c *IoTThingsGraph) UpdateFlowTemplateRequest(input *UpdateFlowTemplateInput) (req *request.Request, output *UpdateFlowTemplateOutput) {
3413	op := &request.Operation{
3414		Name:       opUpdateFlowTemplate,
3415		HTTPMethod: "POST",
3416		HTTPPath:   "/",
3417	}
3418
3419	if input == nil {
3420		input = &UpdateFlowTemplateInput{}
3421	}
3422
3423	output = &UpdateFlowTemplateOutput{}
3424	req = c.newRequest(op, input, output)
3425	return
3426}
3427
3428// UpdateFlowTemplate API operation for AWS IoT Things Graph.
3429//
3430// Updates the specified workflow. All deployed systems and system instances
3431// that use the workflow will see the changes in the flow when it is redeployed.
3432// If you don't want this behavior, copy the workflow (creating a new workflow
3433// with a different ID), and update the copy. The workflow can contain only
3434// entities in the specified namespace.
3435//
3436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3437// with awserr.Error's Code and Message methods to get detailed information about
3438// the error.
3439//
3440// See the AWS API reference guide for AWS IoT Things Graph's
3441// API operation UpdateFlowTemplate for usage and error information.
3442//
3443// Returned Error Types:
3444//   * InvalidRequestException
3445//
3446//   * ResourceNotFoundException
3447//
3448//   * ThrottlingException
3449//
3450//   * InternalFailureException
3451//
3452// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UpdateFlowTemplate
3453func (c *IoTThingsGraph) UpdateFlowTemplate(input *UpdateFlowTemplateInput) (*UpdateFlowTemplateOutput, error) {
3454	req, out := c.UpdateFlowTemplateRequest(input)
3455	return out, req.Send()
3456}
3457
3458// UpdateFlowTemplateWithContext is the same as UpdateFlowTemplate with the addition of
3459// the ability to pass a context and additional request options.
3460//
3461// See UpdateFlowTemplate for details on how to use this API operation.
3462//
3463// The context must be non-nil and will be used for request cancellation. If
3464// the context is nil a panic will occur. In the future the SDK may create
3465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3466// for more information on using Contexts.
3467func (c *IoTThingsGraph) UpdateFlowTemplateWithContext(ctx aws.Context, input *UpdateFlowTemplateInput, opts ...request.Option) (*UpdateFlowTemplateOutput, error) {
3468	req, out := c.UpdateFlowTemplateRequest(input)
3469	req.SetContext(ctx)
3470	req.ApplyOptions(opts...)
3471	return out, req.Send()
3472}
3473
3474const opUpdateSystemTemplate = "UpdateSystemTemplate"
3475
3476// UpdateSystemTemplateRequest generates a "aws/request.Request" representing the
3477// client's request for the UpdateSystemTemplate operation. The "output" return
3478// value will be populated with the request's response once the request completes
3479// successfully.
3480//
3481// Use "Send" method on the returned Request to send the API call to the service.
3482// the "output" return value is not valid until after Send returns without error.
3483//
3484// See UpdateSystemTemplate for more information on using the UpdateSystemTemplate
3485// API call, and error handling.
3486//
3487// This method is useful when you want to inject custom logic or configuration
3488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3489//
3490//
3491//    // Example sending a request using the UpdateSystemTemplateRequest method.
3492//    req, resp := client.UpdateSystemTemplateRequest(params)
3493//
3494//    err := req.Send()
3495//    if err == nil { // resp is now filled
3496//        fmt.Println(resp)
3497//    }
3498//
3499// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UpdateSystemTemplate
3500func (c *IoTThingsGraph) UpdateSystemTemplateRequest(input *UpdateSystemTemplateInput) (req *request.Request, output *UpdateSystemTemplateOutput) {
3501	op := &request.Operation{
3502		Name:       opUpdateSystemTemplate,
3503		HTTPMethod: "POST",
3504		HTTPPath:   "/",
3505	}
3506
3507	if input == nil {
3508		input = &UpdateSystemTemplateInput{}
3509	}
3510
3511	output = &UpdateSystemTemplateOutput{}
3512	req = c.newRequest(op, input, output)
3513	return
3514}
3515
3516// UpdateSystemTemplate API operation for AWS IoT Things Graph.
3517//
3518// Updates the specified system. You don't need to run this action after updating
3519// a workflow. Any deployment that uses the system will see the changes in the
3520// system when it is redeployed.
3521//
3522// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3523// with awserr.Error's Code and Message methods to get detailed information about
3524// the error.
3525//
3526// See the AWS API reference guide for AWS IoT Things Graph's
3527// API operation UpdateSystemTemplate for usage and error information.
3528//
3529// Returned Error Types:
3530//   * InvalidRequestException
3531//
3532//   * ResourceNotFoundException
3533//
3534//   * ThrottlingException
3535//
3536//   * InternalFailureException
3537//
3538// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UpdateSystemTemplate
3539func (c *IoTThingsGraph) UpdateSystemTemplate(input *UpdateSystemTemplateInput) (*UpdateSystemTemplateOutput, error) {
3540	req, out := c.UpdateSystemTemplateRequest(input)
3541	return out, req.Send()
3542}
3543
3544// UpdateSystemTemplateWithContext is the same as UpdateSystemTemplate with the addition of
3545// the ability to pass a context and additional request options.
3546//
3547// See UpdateSystemTemplate for details on how to use this API operation.
3548//
3549// The context must be non-nil and will be used for request cancellation. If
3550// the context is nil a panic will occur. In the future the SDK may create
3551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3552// for more information on using Contexts.
3553func (c *IoTThingsGraph) UpdateSystemTemplateWithContext(ctx aws.Context, input *UpdateSystemTemplateInput, opts ...request.Option) (*UpdateSystemTemplateOutput, error) {
3554	req, out := c.UpdateSystemTemplateRequest(input)
3555	req.SetContext(ctx)
3556	req.ApplyOptions(opts...)
3557	return out, req.Send()
3558}
3559
3560const opUploadEntityDefinitions = "UploadEntityDefinitions"
3561
3562// UploadEntityDefinitionsRequest generates a "aws/request.Request" representing the
3563// client's request for the UploadEntityDefinitions operation. The "output" return
3564// value will be populated with the request's response once the request completes
3565// successfully.
3566//
3567// Use "Send" method on the returned Request to send the API call to the service.
3568// the "output" return value is not valid until after Send returns without error.
3569//
3570// See UploadEntityDefinitions for more information on using the UploadEntityDefinitions
3571// API call, and error handling.
3572//
3573// This method is useful when you want to inject custom logic or configuration
3574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3575//
3576//
3577//    // Example sending a request using the UploadEntityDefinitionsRequest method.
3578//    req, resp := client.UploadEntityDefinitionsRequest(params)
3579//
3580//    err := req.Send()
3581//    if err == nil { // resp is now filled
3582//        fmt.Println(resp)
3583//    }
3584//
3585// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UploadEntityDefinitions
3586func (c *IoTThingsGraph) UploadEntityDefinitionsRequest(input *UploadEntityDefinitionsInput) (req *request.Request, output *UploadEntityDefinitionsOutput) {
3587	op := &request.Operation{
3588		Name:       opUploadEntityDefinitions,
3589		HTTPMethod: "POST",
3590		HTTPPath:   "/",
3591	}
3592
3593	if input == nil {
3594		input = &UploadEntityDefinitionsInput{}
3595	}
3596
3597	output = &UploadEntityDefinitionsOutput{}
3598	req = c.newRequest(op, input, output)
3599	return
3600}
3601
3602// UploadEntityDefinitions API operation for AWS IoT Things Graph.
3603//
3604// Asynchronously uploads one or more entity definitions to the user's namespace.
3605// The document parameter is required if syncWithPublicNamespace and deleteExistingEntites
3606// are false. If the syncWithPublicNamespace parameter is set to true, the user's
3607// namespace will synchronize with the latest version of the public namespace.
3608// If deprecateExistingEntities is set to true, all entities in the latest version
3609// will be deleted before the new DefinitionDocument is uploaded.
3610//
3611// When a user uploads entity definitions for the first time, the service creates
3612// a new namespace for the user. The new namespace tracks the public namespace.
3613// Currently users can have only one namespace. The namespace version increments
3614// whenever a user uploads entity definitions that are backwards-incompatible
3615// and whenever a user sets the syncWithPublicNamespace parameter or the deprecateExistingEntities
3616// parameter to true.
3617//
3618// The IDs for all of the entities should be in URN format. Each entity must
3619// be in the user's namespace. Users can't create entities in the public namespace,
3620// but entity definitions can refer to entities in the public namespace.
3621//
3622// Valid entities are Device, DeviceModel, Service, Capability, State, Action,
3623// Event, Property, Mapping, Enum.
3624//
3625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3626// with awserr.Error's Code and Message methods to get detailed information about
3627// the error.
3628//
3629// See the AWS API reference guide for AWS IoT Things Graph's
3630// API operation UploadEntityDefinitions for usage and error information.
3631//
3632// Returned Error Types:
3633//   * InvalidRequestException
3634//
3635//   * InternalFailureException
3636//
3637//   * ThrottlingException
3638//
3639// See also, https://docs.aws.amazon.com/goto/WebAPI/iotthingsgraph-2018-09-06/UploadEntityDefinitions
3640func (c *IoTThingsGraph) UploadEntityDefinitions(input *UploadEntityDefinitionsInput) (*UploadEntityDefinitionsOutput, error) {
3641	req, out := c.UploadEntityDefinitionsRequest(input)
3642	return out, req.Send()
3643}
3644
3645// UploadEntityDefinitionsWithContext is the same as UploadEntityDefinitions with the addition of
3646// the ability to pass a context and additional request options.
3647//
3648// See UploadEntityDefinitions for details on how to use this API operation.
3649//
3650// The context must be non-nil and will be used for request cancellation. If
3651// the context is nil a panic will occur. In the future the SDK may create
3652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3653// for more information on using Contexts.
3654func (c *IoTThingsGraph) UploadEntityDefinitionsWithContext(ctx aws.Context, input *UploadEntityDefinitionsInput, opts ...request.Option) (*UploadEntityDefinitionsOutput, error) {
3655	req, out := c.UploadEntityDefinitionsRequest(input)
3656	req.SetContext(ctx)
3657	req.ApplyOptions(opts...)
3658	return out, req.Send()
3659}
3660
3661type AssociateEntityToThingInput struct {
3662	_ struct{} `type:"structure"`
3663
3664	// The ID of the device to be associated with the thing.
3665	//
3666	// The ID should be in the following format.
3667	//
3668	// urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME
3669	//
3670	// EntityId is a required field
3671	EntityId *string `locationName:"entityId" type:"string" required:"true"`
3672
3673	// The version of the user's namespace. Defaults to the latest version of the
3674	// user's namespace.
3675	NamespaceVersion *int64 `locationName:"namespaceVersion" type:"long"`
3676
3677	// The name of the thing to which the entity is to be associated.
3678	//
3679	// ThingName is a required field
3680	ThingName *string `locationName:"thingName" min:"1" type:"string" required:"true"`
3681}
3682
3683// String returns the string representation
3684func (s AssociateEntityToThingInput) String() string {
3685	return awsutil.Prettify(s)
3686}
3687
3688// GoString returns the string representation
3689func (s AssociateEntityToThingInput) GoString() string {
3690	return s.String()
3691}
3692
3693// Validate inspects the fields of the type to determine if they are valid.
3694func (s *AssociateEntityToThingInput) Validate() error {
3695	invalidParams := request.ErrInvalidParams{Context: "AssociateEntityToThingInput"}
3696	if s.EntityId == nil {
3697		invalidParams.Add(request.NewErrParamRequired("EntityId"))
3698	}
3699	if s.ThingName == nil {
3700		invalidParams.Add(request.NewErrParamRequired("ThingName"))
3701	}
3702	if s.ThingName != nil && len(*s.ThingName) < 1 {
3703		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
3704	}
3705
3706	if invalidParams.Len() > 0 {
3707		return invalidParams
3708	}
3709	return nil
3710}
3711
3712// SetEntityId sets the EntityId field's value.
3713func (s *AssociateEntityToThingInput) SetEntityId(v string) *AssociateEntityToThingInput {
3714	s.EntityId = &v
3715	return s
3716}
3717
3718// SetNamespaceVersion sets the NamespaceVersion field's value.
3719func (s *AssociateEntityToThingInput) SetNamespaceVersion(v int64) *AssociateEntityToThingInput {
3720	s.NamespaceVersion = &v
3721	return s
3722}
3723
3724// SetThingName sets the ThingName field's value.
3725func (s *AssociateEntityToThingInput) SetThingName(v string) *AssociateEntityToThingInput {
3726	s.ThingName = &v
3727	return s
3728}
3729
3730type AssociateEntityToThingOutput struct {
3731	_ struct{} `type:"structure"`
3732}
3733
3734// String returns the string representation
3735func (s AssociateEntityToThingOutput) String() string {
3736	return awsutil.Prettify(s)
3737}
3738
3739// GoString returns the string representation
3740func (s AssociateEntityToThingOutput) GoString() string {
3741	return s.String()
3742}
3743
3744type CreateFlowTemplateInput struct {
3745	_ struct{} `type:"structure"`
3746
3747	// The namespace version in which the workflow is to be created.
3748	//
3749	// If no value is specified, the latest version is used by default.
3750	CompatibleNamespaceVersion *int64 `locationName:"compatibleNamespaceVersion" type:"long"`
3751
3752	// The workflow DefinitionDocument.
3753	//
3754	// Definition is a required field
3755	Definition *DefinitionDocument `locationName:"definition" type:"structure" required:"true"`
3756}
3757
3758// String returns the string representation
3759func (s CreateFlowTemplateInput) String() string {
3760	return awsutil.Prettify(s)
3761}
3762
3763// GoString returns the string representation
3764func (s CreateFlowTemplateInput) GoString() string {
3765	return s.String()
3766}
3767
3768// Validate inspects the fields of the type to determine if they are valid.
3769func (s *CreateFlowTemplateInput) Validate() error {
3770	invalidParams := request.ErrInvalidParams{Context: "CreateFlowTemplateInput"}
3771	if s.Definition == nil {
3772		invalidParams.Add(request.NewErrParamRequired("Definition"))
3773	}
3774	if s.Definition != nil {
3775		if err := s.Definition.Validate(); err != nil {
3776			invalidParams.AddNested("Definition", err.(request.ErrInvalidParams))
3777		}
3778	}
3779
3780	if invalidParams.Len() > 0 {
3781		return invalidParams
3782	}
3783	return nil
3784}
3785
3786// SetCompatibleNamespaceVersion sets the CompatibleNamespaceVersion field's value.
3787func (s *CreateFlowTemplateInput) SetCompatibleNamespaceVersion(v int64) *CreateFlowTemplateInput {
3788	s.CompatibleNamespaceVersion = &v
3789	return s
3790}
3791
3792// SetDefinition sets the Definition field's value.
3793func (s *CreateFlowTemplateInput) SetDefinition(v *DefinitionDocument) *CreateFlowTemplateInput {
3794	s.Definition = v
3795	return s
3796}
3797
3798type CreateFlowTemplateOutput struct {
3799	_ struct{} `type:"structure"`
3800
3801	// The summary object that describes the created workflow.
3802	Summary *FlowTemplateSummary `locationName:"summary" type:"structure"`
3803}
3804
3805// String returns the string representation
3806func (s CreateFlowTemplateOutput) String() string {
3807	return awsutil.Prettify(s)
3808}
3809
3810// GoString returns the string representation
3811func (s CreateFlowTemplateOutput) GoString() string {
3812	return s.String()
3813}
3814
3815// SetSummary sets the Summary field's value.
3816func (s *CreateFlowTemplateOutput) SetSummary(v *FlowTemplateSummary) *CreateFlowTemplateOutput {
3817	s.Summary = v
3818	return s
3819}
3820
3821type CreateSystemInstanceInput struct {
3822	_ struct{} `type:"structure"`
3823
3824	// A document that defines an entity.
3825	//
3826	// Definition is a required field
3827	Definition *DefinitionDocument `locationName:"definition" type:"structure" required:"true"`
3828
3829	// The ARN of the IAM role that AWS IoT Things Graph will assume when it executes
3830	// the flow. This role must have read and write access to AWS Lambda and AWS
3831	// IoT and any other AWS services that the flow uses when it executes. This
3832	// value is required if the value of the target parameter is CLOUD.
3833	FlowActionsRoleArn *string `locationName:"flowActionsRoleArn" min:"20" type:"string"`
3834
3835	// The name of the Greengrass group where the system instance will be deployed.
3836	// This value is required if the value of the target parameter is GREENGRASS.
3837	GreengrassGroupName *string `locationName:"greengrassGroupName" type:"string"`
3838
3839	// An object that specifies whether cloud metrics are collected in a deployment
3840	// and, if so, what role is used to collect metrics.
3841	MetricsConfiguration *MetricsConfiguration `locationName:"metricsConfiguration" type:"structure"`
3842
3843	// The name of the Amazon Simple Storage Service bucket that will be used to
3844	// store and deploy the system instance's resource file. This value is required
3845	// if the value of the target parameter is GREENGRASS.
3846	S3BucketName *string `locationName:"s3BucketName" type:"string"`
3847
3848	// Metadata, consisting of key-value pairs, that can be used to categorize your
3849	// system instances.
3850	Tags []*Tag `locationName:"tags" type:"list"`
3851
3852	// The target type of the deployment. Valid values are GREENGRASS and CLOUD.
3853	//
3854	// Target is a required field
3855	Target *string `locationName:"target" type:"string" required:"true" enum:"DeploymentTarget"`
3856}
3857
3858// String returns the string representation
3859func (s CreateSystemInstanceInput) String() string {
3860	return awsutil.Prettify(s)
3861}
3862
3863// GoString returns the string representation
3864func (s CreateSystemInstanceInput) GoString() string {
3865	return s.String()
3866}
3867
3868// Validate inspects the fields of the type to determine if they are valid.
3869func (s *CreateSystemInstanceInput) Validate() error {
3870	invalidParams := request.ErrInvalidParams{Context: "CreateSystemInstanceInput"}
3871	if s.Definition == nil {
3872		invalidParams.Add(request.NewErrParamRequired("Definition"))
3873	}
3874	if s.FlowActionsRoleArn != nil && len(*s.FlowActionsRoleArn) < 20 {
3875		invalidParams.Add(request.NewErrParamMinLen("FlowActionsRoleArn", 20))
3876	}
3877	if s.Target == nil {
3878		invalidParams.Add(request.NewErrParamRequired("Target"))
3879	}
3880	if s.Definition != nil {
3881		if err := s.Definition.Validate(); err != nil {
3882			invalidParams.AddNested("Definition", err.(request.ErrInvalidParams))
3883		}
3884	}
3885	if s.MetricsConfiguration != nil {
3886		if err := s.MetricsConfiguration.Validate(); err != nil {
3887			invalidParams.AddNested("MetricsConfiguration", err.(request.ErrInvalidParams))
3888		}
3889	}
3890	if s.Tags != nil {
3891		for i, v := range s.Tags {
3892			if v == nil {
3893				continue
3894			}
3895			if err := v.Validate(); err != nil {
3896				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3897			}
3898		}
3899	}
3900
3901	if invalidParams.Len() > 0 {
3902		return invalidParams
3903	}
3904	return nil
3905}
3906
3907// SetDefinition sets the Definition field's value.
3908func (s *CreateSystemInstanceInput) SetDefinition(v *DefinitionDocument) *CreateSystemInstanceInput {
3909	s.Definition = v
3910	return s
3911}
3912
3913// SetFlowActionsRoleArn sets the FlowActionsRoleArn field's value.
3914func (s *CreateSystemInstanceInput) SetFlowActionsRoleArn(v string) *CreateSystemInstanceInput {
3915	s.FlowActionsRoleArn = &v
3916	return s
3917}
3918
3919// SetGreengrassGroupName sets the GreengrassGroupName field's value.
3920func (s *CreateSystemInstanceInput) SetGreengrassGroupName(v string) *CreateSystemInstanceInput {
3921	s.GreengrassGroupName = &v
3922	return s
3923}
3924
3925// SetMetricsConfiguration sets the MetricsConfiguration field's value.
3926func (s *CreateSystemInstanceInput) SetMetricsConfiguration(v *MetricsConfiguration) *CreateSystemInstanceInput {
3927	s.MetricsConfiguration = v
3928	return s
3929}
3930
3931// SetS3BucketName sets the S3BucketName field's value.
3932func (s *CreateSystemInstanceInput) SetS3BucketName(v string) *CreateSystemInstanceInput {
3933	s.S3BucketName = &v
3934	return s
3935}
3936
3937// SetTags sets the Tags field's value.
3938func (s *CreateSystemInstanceInput) SetTags(v []*Tag) *CreateSystemInstanceInput {
3939	s.Tags = v
3940	return s
3941}
3942
3943// SetTarget sets the Target field's value.
3944func (s *CreateSystemInstanceInput) SetTarget(v string) *CreateSystemInstanceInput {
3945	s.Target = &v
3946	return s
3947}
3948
3949type CreateSystemInstanceOutput struct {
3950	_ struct{} `type:"structure"`
3951
3952	// The summary object that describes the new system instance.
3953	Summary *SystemInstanceSummary `locationName:"summary" type:"structure"`
3954}
3955
3956// String returns the string representation
3957func (s CreateSystemInstanceOutput) String() string {
3958	return awsutil.Prettify(s)
3959}
3960
3961// GoString returns the string representation
3962func (s CreateSystemInstanceOutput) GoString() string {
3963	return s.String()
3964}
3965
3966// SetSummary sets the Summary field's value.
3967func (s *CreateSystemInstanceOutput) SetSummary(v *SystemInstanceSummary) *CreateSystemInstanceOutput {
3968	s.Summary = v
3969	return s
3970}
3971
3972type CreateSystemTemplateInput struct {
3973	_ struct{} `type:"structure"`
3974
3975	// The namespace version in which the system is to be created.
3976	//
3977	// If no value is specified, the latest version is used by default.
3978	CompatibleNamespaceVersion *int64 `locationName:"compatibleNamespaceVersion" type:"long"`
3979
3980	// The DefinitionDocument used to create the system.
3981	//
3982	// Definition is a required field
3983	Definition *DefinitionDocument `locationName:"definition" type:"structure" required:"true"`
3984}
3985
3986// String returns the string representation
3987func (s CreateSystemTemplateInput) String() string {
3988	return awsutil.Prettify(s)
3989}
3990
3991// GoString returns the string representation
3992func (s CreateSystemTemplateInput) GoString() string {
3993	return s.String()
3994}
3995
3996// Validate inspects the fields of the type to determine if they are valid.
3997func (s *CreateSystemTemplateInput) Validate() error {
3998	invalidParams := request.ErrInvalidParams{Context: "CreateSystemTemplateInput"}
3999	if s.Definition == nil {
4000		invalidParams.Add(request.NewErrParamRequired("Definition"))
4001	}
4002	if s.Definition != nil {
4003		if err := s.Definition.Validate(); err != nil {
4004			invalidParams.AddNested("Definition", err.(request.ErrInvalidParams))
4005		}
4006	}
4007
4008	if invalidParams.Len() > 0 {
4009		return invalidParams
4010	}
4011	return nil
4012}
4013
4014// SetCompatibleNamespaceVersion sets the CompatibleNamespaceVersion field's value.
4015func (s *CreateSystemTemplateInput) SetCompatibleNamespaceVersion(v int64) *CreateSystemTemplateInput {
4016	s.CompatibleNamespaceVersion = &v
4017	return s
4018}
4019
4020// SetDefinition sets the Definition field's value.
4021func (s *CreateSystemTemplateInput) SetDefinition(v *DefinitionDocument) *CreateSystemTemplateInput {
4022	s.Definition = v
4023	return s
4024}
4025
4026type CreateSystemTemplateOutput struct {
4027	_ struct{} `type:"structure"`
4028
4029	// The summary object that describes the created system.
4030	Summary *SystemTemplateSummary `locationName:"summary" type:"structure"`
4031}
4032
4033// String returns the string representation
4034func (s CreateSystemTemplateOutput) String() string {
4035	return awsutil.Prettify(s)
4036}
4037
4038// GoString returns the string representation
4039func (s CreateSystemTemplateOutput) GoString() string {
4040	return s.String()
4041}
4042
4043// SetSummary sets the Summary field's value.
4044func (s *CreateSystemTemplateOutput) SetSummary(v *SystemTemplateSummary) *CreateSystemTemplateOutput {
4045	s.Summary = v
4046	return s
4047}
4048
4049// A document that defines an entity.
4050type DefinitionDocument struct {
4051	_ struct{} `type:"structure"`
4052
4053	// The language used to define the entity. GRAPHQL is the only valid value.
4054	//
4055	// Language is a required field
4056	Language *string `locationName:"language" type:"string" required:"true" enum:"DefinitionLanguage"`
4057
4058	// The GraphQL text that defines the entity.
4059	//
4060	// Text is a required field
4061	Text *string `locationName:"text" type:"string" required:"true"`
4062}
4063
4064// String returns the string representation
4065func (s DefinitionDocument) String() string {
4066	return awsutil.Prettify(s)
4067}
4068
4069// GoString returns the string representation
4070func (s DefinitionDocument) GoString() string {
4071	return s.String()
4072}
4073
4074// Validate inspects the fields of the type to determine if they are valid.
4075func (s *DefinitionDocument) Validate() error {
4076	invalidParams := request.ErrInvalidParams{Context: "DefinitionDocument"}
4077	if s.Language == nil {
4078		invalidParams.Add(request.NewErrParamRequired("Language"))
4079	}
4080	if s.Text == nil {
4081		invalidParams.Add(request.NewErrParamRequired("Text"))
4082	}
4083
4084	if invalidParams.Len() > 0 {
4085		return invalidParams
4086	}
4087	return nil
4088}
4089
4090// SetLanguage sets the Language field's value.
4091func (s *DefinitionDocument) SetLanguage(v string) *DefinitionDocument {
4092	s.Language = &v
4093	return s
4094}
4095
4096// SetText sets the Text field's value.
4097func (s *DefinitionDocument) SetText(v string) *DefinitionDocument {
4098	s.Text = &v
4099	return s
4100}
4101
4102type DeleteFlowTemplateInput struct {
4103	_ struct{} `type:"structure"`
4104
4105	// The ID of the workflow to be deleted.
4106	//
4107	// The ID should be in the following format.
4108	//
4109	// urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME
4110	//
4111	// Id is a required field
4112	Id *string `locationName:"id" type:"string" required:"true"`
4113}
4114
4115// String returns the string representation
4116func (s DeleteFlowTemplateInput) String() string {
4117	return awsutil.Prettify(s)
4118}
4119
4120// GoString returns the string representation
4121func (s DeleteFlowTemplateInput) GoString() string {
4122	return s.String()
4123}
4124
4125// Validate inspects the fields of the type to determine if they are valid.
4126func (s *DeleteFlowTemplateInput) Validate() error {
4127	invalidParams := request.ErrInvalidParams{Context: "DeleteFlowTemplateInput"}
4128	if s.Id == nil {
4129		invalidParams.Add(request.NewErrParamRequired("Id"))
4130	}
4131
4132	if invalidParams.Len() > 0 {
4133		return invalidParams
4134	}
4135	return nil
4136}
4137
4138// SetId sets the Id field's value.
4139func (s *DeleteFlowTemplateInput) SetId(v string) *DeleteFlowTemplateInput {
4140	s.Id = &v
4141	return s
4142}
4143
4144type DeleteFlowTemplateOutput struct {
4145	_ struct{} `type:"structure"`
4146}
4147
4148// String returns the string representation
4149func (s DeleteFlowTemplateOutput) String() string {
4150	return awsutil.Prettify(s)
4151}
4152
4153// GoString returns the string representation
4154func (s DeleteFlowTemplateOutput) GoString() string {
4155	return s.String()
4156}
4157
4158type DeleteNamespaceInput struct {
4159	_ struct{} `type:"structure"`
4160}
4161
4162// String returns the string representation
4163func (s DeleteNamespaceInput) String() string {
4164	return awsutil.Prettify(s)
4165}
4166
4167// GoString returns the string representation
4168func (s DeleteNamespaceInput) GoString() string {
4169	return s.String()
4170}
4171
4172type DeleteNamespaceOutput struct {
4173	_ struct{} `type:"structure"`
4174
4175	// The ARN of the namespace to be deleted.
4176	NamespaceArn *string `locationName:"namespaceArn" type:"string"`
4177
4178	// The name of the namespace to be deleted.
4179	NamespaceName *string `locationName:"namespaceName" type:"string"`
4180}
4181
4182// String returns the string representation
4183func (s DeleteNamespaceOutput) String() string {
4184	return awsutil.Prettify(s)
4185}
4186
4187// GoString returns the string representation
4188func (s DeleteNamespaceOutput) GoString() string {
4189	return s.String()
4190}
4191
4192// SetNamespaceArn sets the NamespaceArn field's value.
4193func (s *DeleteNamespaceOutput) SetNamespaceArn(v string) *DeleteNamespaceOutput {
4194	s.NamespaceArn = &v
4195	return s
4196}
4197
4198// SetNamespaceName sets the NamespaceName field's value.
4199func (s *DeleteNamespaceOutput) SetNamespaceName(v string) *DeleteNamespaceOutput {
4200	s.NamespaceName = &v
4201	return s
4202}
4203
4204type DeleteSystemInstanceInput struct {
4205	_ struct{} `type:"structure"`
4206
4207	// The ID of the system instance to be deleted.
4208	Id *string `locationName:"id" type:"string"`
4209}
4210
4211// String returns the string representation
4212func (s DeleteSystemInstanceInput) String() string {
4213	return awsutil.Prettify(s)
4214}
4215
4216// GoString returns the string representation
4217func (s DeleteSystemInstanceInput) GoString() string {
4218	return s.String()
4219}
4220
4221// SetId sets the Id field's value.
4222func (s *DeleteSystemInstanceInput) SetId(v string) *DeleteSystemInstanceInput {
4223	s.Id = &v
4224	return s
4225}
4226
4227type DeleteSystemInstanceOutput struct {
4228	_ struct{} `type:"structure"`
4229}
4230
4231// String returns the string representation
4232func (s DeleteSystemInstanceOutput) String() string {
4233	return awsutil.Prettify(s)
4234}
4235
4236// GoString returns the string representation
4237func (s DeleteSystemInstanceOutput) GoString() string {
4238	return s.String()
4239}
4240
4241type DeleteSystemTemplateInput struct {
4242	_ struct{} `type:"structure"`
4243
4244	// The ID of the system to be deleted.
4245	//
4246	// The ID should be in the following format.
4247	//
4248	// urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME
4249	//
4250	// Id is a required field
4251	Id *string `locationName:"id" type:"string" required:"true"`
4252}
4253
4254// String returns the string representation
4255func (s DeleteSystemTemplateInput) String() string {
4256	return awsutil.Prettify(s)
4257}
4258
4259// GoString returns the string representation
4260func (s DeleteSystemTemplateInput) GoString() string {
4261	return s.String()
4262}
4263
4264// Validate inspects the fields of the type to determine if they are valid.
4265func (s *DeleteSystemTemplateInput) Validate() error {
4266	invalidParams := request.ErrInvalidParams{Context: "DeleteSystemTemplateInput"}
4267	if s.Id == nil {
4268		invalidParams.Add(request.NewErrParamRequired("Id"))
4269	}
4270
4271	if invalidParams.Len() > 0 {
4272		return invalidParams
4273	}
4274	return nil
4275}
4276
4277// SetId sets the Id field's value.
4278func (s *DeleteSystemTemplateInput) SetId(v string) *DeleteSystemTemplateInput {
4279	s.Id = &v
4280	return s
4281}
4282
4283type DeleteSystemTemplateOutput struct {
4284	_ struct{} `type:"structure"`
4285}
4286
4287// String returns the string representation
4288func (s DeleteSystemTemplateOutput) String() string {
4289	return awsutil.Prettify(s)
4290}
4291
4292// GoString returns the string representation
4293func (s DeleteSystemTemplateOutput) GoString() string {
4294	return s.String()
4295}
4296
4297// An object that contains the ID and revision number of a workflow or system
4298// that is part of a deployment.
4299type DependencyRevision struct {
4300	_ struct{} `type:"structure"`
4301
4302	// The ID of the workflow or system.
4303	Id *string `locationName:"id" type:"string"`
4304
4305	// The revision number of the workflow or system.
4306	RevisionNumber *int64 `locationName:"revisionNumber" type:"long"`
4307}
4308
4309// String returns the string representation
4310func (s DependencyRevision) String() string {
4311	return awsutil.Prettify(s)
4312}
4313
4314// GoString returns the string representation
4315func (s DependencyRevision) GoString() string {
4316	return s.String()
4317}
4318
4319// SetId sets the Id field's value.
4320func (s *DependencyRevision) SetId(v string) *DependencyRevision {
4321	s.Id = &v
4322	return s
4323}
4324
4325// SetRevisionNumber sets the RevisionNumber field's value.
4326func (s *DependencyRevision) SetRevisionNumber(v int64) *DependencyRevision {
4327	s.RevisionNumber = &v
4328	return s
4329}
4330
4331type DeploySystemInstanceInput struct {
4332	_ struct{} `type:"structure"`
4333
4334	// The ID of the system instance. This value is returned by the CreateSystemInstance
4335	// action.
4336	//
4337	// The ID should be in the following format.
4338	//
4339	// urn:tdm:REGION/ACCOUNT ID/default:deployment:DEPLOYMENTNAME
4340	Id *string `locationName:"id" type:"string"`
4341}
4342
4343// String returns the string representation
4344func (s DeploySystemInstanceInput) String() string {
4345	return awsutil.Prettify(s)
4346}
4347
4348// GoString returns the string representation
4349func (s DeploySystemInstanceInput) GoString() string {
4350	return s.String()
4351}
4352
4353// SetId sets the Id field's value.
4354func (s *DeploySystemInstanceInput) SetId(v string) *DeploySystemInstanceInput {
4355	s.Id = &v
4356	return s
4357}
4358
4359type DeploySystemInstanceOutput struct {
4360	_ struct{} `type:"structure"`
4361
4362	// The ID of the Greengrass deployment used to deploy the system instance.
4363	GreengrassDeploymentId *string `locationName:"greengrassDeploymentId" type:"string"`
4364
4365	// An object that contains summary information about a system instance that
4366	// was deployed.
4367	//
4368	// Summary is a required field
4369	Summary *SystemInstanceSummary `locationName:"summary" type:"structure" required:"true"`
4370}
4371
4372// String returns the string representation
4373func (s DeploySystemInstanceOutput) String() string {
4374	return awsutil.Prettify(s)
4375}
4376
4377// GoString returns the string representation
4378func (s DeploySystemInstanceOutput) GoString() string {
4379	return s.String()
4380}
4381
4382// SetGreengrassDeploymentId sets the GreengrassDeploymentId field's value.
4383func (s *DeploySystemInstanceOutput) SetGreengrassDeploymentId(v string) *DeploySystemInstanceOutput {
4384	s.GreengrassDeploymentId = &v
4385	return s
4386}
4387
4388// SetSummary sets the Summary field's value.
4389func (s *DeploySystemInstanceOutput) SetSummary(v *SystemInstanceSummary) *DeploySystemInstanceOutput {
4390	s.Summary = v
4391	return s
4392}
4393
4394type DeprecateFlowTemplateInput struct {
4395	_ struct{} `type:"structure"`
4396
4397	// The ID of the workflow to be deleted.
4398	//
4399	// The ID should be in the following format.
4400	//
4401	// urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME
4402	//
4403	// Id is a required field
4404	Id *string `locationName:"id" type:"string" required:"true"`
4405}
4406
4407// String returns the string representation
4408func (s DeprecateFlowTemplateInput) String() string {
4409	return awsutil.Prettify(s)
4410}
4411
4412// GoString returns the string representation
4413func (s DeprecateFlowTemplateInput) GoString() string {
4414	return s.String()
4415}
4416
4417// Validate inspects the fields of the type to determine if they are valid.
4418func (s *DeprecateFlowTemplateInput) Validate() error {
4419	invalidParams := request.ErrInvalidParams{Context: "DeprecateFlowTemplateInput"}
4420	if s.Id == nil {
4421		invalidParams.Add(request.NewErrParamRequired("Id"))
4422	}
4423
4424	if invalidParams.Len() > 0 {
4425		return invalidParams
4426	}
4427	return nil
4428}
4429
4430// SetId sets the Id field's value.
4431func (s *DeprecateFlowTemplateInput) SetId(v string) *DeprecateFlowTemplateInput {
4432	s.Id = &v
4433	return s
4434}
4435
4436type DeprecateFlowTemplateOutput struct {
4437	_ struct{} `type:"structure"`
4438}
4439
4440// String returns the string representation
4441func (s DeprecateFlowTemplateOutput) String() string {
4442	return awsutil.Prettify(s)
4443}
4444
4445// GoString returns the string representation
4446func (s DeprecateFlowTemplateOutput) GoString() string {
4447	return s.String()
4448}
4449
4450type DeprecateSystemTemplateInput struct {
4451	_ struct{} `type:"structure"`
4452
4453	// The ID of the system to delete.
4454	//
4455	// The ID should be in the following format.
4456	//
4457	// urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME
4458	//
4459	// Id is a required field
4460	Id *string `locationName:"id" type:"string" required:"true"`
4461}
4462
4463// String returns the string representation
4464func (s DeprecateSystemTemplateInput) String() string {
4465	return awsutil.Prettify(s)
4466}
4467
4468// GoString returns the string representation
4469func (s DeprecateSystemTemplateInput) GoString() string {
4470	return s.String()
4471}
4472
4473// Validate inspects the fields of the type to determine if they are valid.
4474func (s *DeprecateSystemTemplateInput) Validate() error {
4475	invalidParams := request.ErrInvalidParams{Context: "DeprecateSystemTemplateInput"}
4476	if s.Id == nil {
4477		invalidParams.Add(request.NewErrParamRequired("Id"))
4478	}
4479
4480	if invalidParams.Len() > 0 {
4481		return invalidParams
4482	}
4483	return nil
4484}
4485
4486// SetId sets the Id field's value.
4487func (s *DeprecateSystemTemplateInput) SetId(v string) *DeprecateSystemTemplateInput {
4488	s.Id = &v
4489	return s
4490}
4491
4492type DeprecateSystemTemplateOutput struct {
4493	_ struct{} `type:"structure"`
4494}
4495
4496// String returns the string representation
4497func (s DeprecateSystemTemplateOutput) String() string {
4498	return awsutil.Prettify(s)
4499}
4500
4501// GoString returns the string representation
4502func (s DeprecateSystemTemplateOutput) GoString() string {
4503	return s.String()
4504}
4505
4506type DescribeNamespaceInput struct {
4507	_ struct{} `type:"structure"`
4508
4509	// The name of the user's namespace. Set this to aws to get the public namespace.
4510	NamespaceName *string `locationName:"namespaceName" type:"string"`
4511}
4512
4513// String returns the string representation
4514func (s DescribeNamespaceInput) String() string {
4515	return awsutil.Prettify(s)
4516}
4517
4518// GoString returns the string representation
4519func (s DescribeNamespaceInput) GoString() string {
4520	return s.String()
4521}
4522
4523// SetNamespaceName sets the NamespaceName field's value.
4524func (s *DescribeNamespaceInput) SetNamespaceName(v string) *DescribeNamespaceInput {
4525	s.NamespaceName = &v
4526	return s
4527}
4528
4529type DescribeNamespaceOutput struct {
4530	_ struct{} `type:"structure"`
4531
4532	// The ARN of the namespace.
4533	NamespaceArn *string `locationName:"namespaceArn" type:"string"`
4534
4535	// The name of the namespace.
4536	NamespaceName *string `locationName:"namespaceName" type:"string"`
4537
4538	// The version of the user's namespace to describe.
4539	NamespaceVersion *int64 `locationName:"namespaceVersion" type:"long"`
4540
4541	// The name of the public namespace that the latest namespace version is tracking.
4542	TrackingNamespaceName *string `locationName:"trackingNamespaceName" type:"string"`
4543
4544	// The version of the public namespace that the latest version is tracking.
4545	TrackingNamespaceVersion *int64 `locationName:"trackingNamespaceVersion" type:"long"`
4546}
4547
4548// String returns the string representation
4549func (s DescribeNamespaceOutput) String() string {
4550	return awsutil.Prettify(s)
4551}
4552
4553// GoString returns the string representation
4554func (s DescribeNamespaceOutput) GoString() string {
4555	return s.String()
4556}
4557
4558// SetNamespaceArn sets the NamespaceArn field's value.
4559func (s *DescribeNamespaceOutput) SetNamespaceArn(v string) *DescribeNamespaceOutput {
4560	s.NamespaceArn = &v
4561	return s
4562}
4563
4564// SetNamespaceName sets the NamespaceName field's value.
4565func (s *DescribeNamespaceOutput) SetNamespaceName(v string) *DescribeNamespaceOutput {
4566	s.NamespaceName = &v
4567	return s
4568}
4569
4570// SetNamespaceVersion sets the NamespaceVersion field's value.
4571func (s *DescribeNamespaceOutput) SetNamespaceVersion(v int64) *DescribeNamespaceOutput {
4572	s.NamespaceVersion = &v
4573	return s
4574}
4575
4576// SetTrackingNamespaceName sets the TrackingNamespaceName field's value.
4577func (s *DescribeNamespaceOutput) SetTrackingNamespaceName(v string) *DescribeNamespaceOutput {
4578	s.TrackingNamespaceName = &v
4579	return s
4580}
4581
4582// SetTrackingNamespaceVersion sets the TrackingNamespaceVersion field's value.
4583func (s *DescribeNamespaceOutput) SetTrackingNamespaceVersion(v int64) *DescribeNamespaceOutput {
4584	s.TrackingNamespaceVersion = &v
4585	return s
4586}
4587
4588type DissociateEntityFromThingInput struct {
4589	_ struct{} `type:"structure"`
4590
4591	// The entity type from which to disassociate the thing.
4592	//
4593	// EntityType is a required field
4594	EntityType *string `locationName:"entityType" type:"string" required:"true" enum:"EntityType"`
4595
4596	// The name of the thing to disassociate.
4597	//
4598	// ThingName is a required field
4599	ThingName *string `locationName:"thingName" min:"1" type:"string" required:"true"`
4600}
4601
4602// String returns the string representation
4603func (s DissociateEntityFromThingInput) String() string {
4604	return awsutil.Prettify(s)
4605}
4606
4607// GoString returns the string representation
4608func (s DissociateEntityFromThingInput) GoString() string {
4609	return s.String()
4610}
4611
4612// Validate inspects the fields of the type to determine if they are valid.
4613func (s *DissociateEntityFromThingInput) Validate() error {
4614	invalidParams := request.ErrInvalidParams{Context: "DissociateEntityFromThingInput"}
4615	if s.EntityType == nil {
4616		invalidParams.Add(request.NewErrParamRequired("EntityType"))
4617	}
4618	if s.ThingName == nil {
4619		invalidParams.Add(request.NewErrParamRequired("ThingName"))
4620	}
4621	if s.ThingName != nil && len(*s.ThingName) < 1 {
4622		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
4623	}
4624
4625	if invalidParams.Len() > 0 {
4626		return invalidParams
4627	}
4628	return nil
4629}
4630
4631// SetEntityType sets the EntityType field's value.
4632func (s *DissociateEntityFromThingInput) SetEntityType(v string) *DissociateEntityFromThingInput {
4633	s.EntityType = &v
4634	return s
4635}
4636
4637// SetThingName sets the ThingName field's value.
4638func (s *DissociateEntityFromThingInput) SetThingName(v string) *DissociateEntityFromThingInput {
4639	s.ThingName = &v
4640	return s
4641}
4642
4643type DissociateEntityFromThingOutput struct {
4644	_ struct{} `type:"structure"`
4645}
4646
4647// String returns the string representation
4648func (s DissociateEntityFromThingOutput) String() string {
4649	return awsutil.Prettify(s)
4650}
4651
4652// GoString returns the string representation
4653func (s DissociateEntityFromThingOutput) GoString() string {
4654	return s.String()
4655}
4656
4657// Describes the properties of an entity.
4658type EntityDescription struct {
4659	_ struct{} `type:"structure"`
4660
4661	// The entity ARN.
4662	Arn *string `locationName:"arn" type:"string"`
4663
4664	// The time at which the entity was created.
4665	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
4666
4667	// The definition document of the entity.
4668	Definition *DefinitionDocument `locationName:"definition" type:"structure"`
4669
4670	// The entity ID.
4671	Id *string `locationName:"id" type:"string"`
4672
4673	// The entity type.
4674	Type *string `locationName:"type" type:"string" enum:"EntityType"`
4675}
4676
4677// String returns the string representation
4678func (s EntityDescription) String() string {
4679	return awsutil.Prettify(s)
4680}
4681
4682// GoString returns the string representation
4683func (s EntityDescription) GoString() string {
4684	return s.String()
4685}
4686
4687// SetArn sets the Arn field's value.
4688func (s *EntityDescription) SetArn(v string) *EntityDescription {
4689	s.Arn = &v
4690	return s
4691}
4692
4693// SetCreatedAt sets the CreatedAt field's value.
4694func (s *EntityDescription) SetCreatedAt(v time.Time) *EntityDescription {
4695	s.CreatedAt = &v
4696	return s
4697}
4698
4699// SetDefinition sets the Definition field's value.
4700func (s *EntityDescription) SetDefinition(v *DefinitionDocument) *EntityDescription {
4701	s.Definition = v
4702	return s
4703}
4704
4705// SetId sets the Id field's value.
4706func (s *EntityDescription) SetId(v string) *EntityDescription {
4707	s.Id = &v
4708	return s
4709}
4710
4711// SetType sets the Type field's value.
4712func (s *EntityDescription) SetType(v string) *EntityDescription {
4713	s.Type = &v
4714	return s
4715}
4716
4717// An object that filters an entity search. Multiple filters function as OR
4718// criteria in the search. For example a search that includes a NAMESPACE and
4719// a REFERENCED_ENTITY_ID filter searches for entities in the specified namespace
4720// that use the entity specified by the value of REFERENCED_ENTITY_ID.
4721type EntityFilter struct {
4722	_ struct{} `type:"structure"`
4723
4724	// The name of the entity search filter field. REFERENCED_ENTITY_ID filters
4725	// on entities that are used by the entity in the result set. For example, you
4726	// can filter on the ID of a property that is used in a state.
4727	Name *string `locationName:"name" type:"string" enum:"EntityFilterName"`
4728
4729	// An array of string values for the search filter field. Multiple values function
4730	// as AND criteria in the search.
4731	Value []*string `locationName:"value" type:"list"`
4732}
4733
4734// String returns the string representation
4735func (s EntityFilter) String() string {
4736	return awsutil.Prettify(s)
4737}
4738
4739// GoString returns the string representation
4740func (s EntityFilter) GoString() string {
4741	return s.String()
4742}
4743
4744// SetName sets the Name field's value.
4745func (s *EntityFilter) SetName(v string) *EntityFilter {
4746	s.Name = &v
4747	return s
4748}
4749
4750// SetValue sets the Value field's value.
4751func (s *EntityFilter) SetValue(v []*string) *EntityFilter {
4752	s.Value = v
4753	return s
4754}
4755
4756// An object that contains information about a flow event.
4757type FlowExecutionMessage struct {
4758	_ struct{} `type:"structure"`
4759
4760	// The type of flow event .
4761	EventType *string `locationName:"eventType" type:"string" enum:"FlowExecutionEventType"`
4762
4763	// The unique identifier of the message.
4764	MessageId *string `locationName:"messageId" type:"string"`
4765
4766	// A string containing information about the flow event.
4767	Payload *string `locationName:"payload" type:"string"`
4768
4769	// The date and time when the message was last updated.
4770	Timestamp *time.Time `locationName:"timestamp" type:"timestamp"`
4771}
4772
4773// String returns the string representation
4774func (s FlowExecutionMessage) String() string {
4775	return awsutil.Prettify(s)
4776}
4777
4778// GoString returns the string representation
4779func (s FlowExecutionMessage) GoString() string {
4780	return s.String()
4781}
4782
4783// SetEventType sets the EventType field's value.
4784func (s *FlowExecutionMessage) SetEventType(v string) *FlowExecutionMessage {
4785	s.EventType = &v
4786	return s
4787}
4788
4789// SetMessageId sets the MessageId field's value.
4790func (s *FlowExecutionMessage) SetMessageId(v string) *FlowExecutionMessage {
4791	s.MessageId = &v
4792	return s
4793}
4794
4795// SetPayload sets the Payload field's value.
4796func (s *FlowExecutionMessage) SetPayload(v string) *FlowExecutionMessage {
4797	s.Payload = &v
4798	return s
4799}
4800
4801// SetTimestamp sets the Timestamp field's value.
4802func (s *FlowExecutionMessage) SetTimestamp(v time.Time) *FlowExecutionMessage {
4803	s.Timestamp = &v
4804	return s
4805}
4806
4807// An object that contains summary information about a flow execution.
4808type FlowExecutionSummary struct {
4809	_ struct{} `type:"structure"`
4810
4811	// The date and time when the flow execution summary was created.
4812	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
4813
4814	// The ID of the flow execution.
4815	FlowExecutionId *string `locationName:"flowExecutionId" type:"string"`
4816
4817	// The ID of the flow.
4818	FlowTemplateId *string `locationName:"flowTemplateId" type:"string"`
4819
4820	// The current status of the flow execution.
4821	Status *string `locationName:"status" type:"string" enum:"FlowExecutionStatus"`
4822
4823	// The ID of the system instance that contains the flow.
4824	SystemInstanceId *string `locationName:"systemInstanceId" type:"string"`
4825
4826	// The date and time when the flow execution summary was last updated.
4827	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
4828}
4829
4830// String returns the string representation
4831func (s FlowExecutionSummary) String() string {
4832	return awsutil.Prettify(s)
4833}
4834
4835// GoString returns the string representation
4836func (s FlowExecutionSummary) GoString() string {
4837	return s.String()
4838}
4839
4840// SetCreatedAt sets the CreatedAt field's value.
4841func (s *FlowExecutionSummary) SetCreatedAt(v time.Time) *FlowExecutionSummary {
4842	s.CreatedAt = &v
4843	return s
4844}
4845
4846// SetFlowExecutionId sets the FlowExecutionId field's value.
4847func (s *FlowExecutionSummary) SetFlowExecutionId(v string) *FlowExecutionSummary {
4848	s.FlowExecutionId = &v
4849	return s
4850}
4851
4852// SetFlowTemplateId sets the FlowTemplateId field's value.
4853func (s *FlowExecutionSummary) SetFlowTemplateId(v string) *FlowExecutionSummary {
4854	s.FlowTemplateId = &v
4855	return s
4856}
4857
4858// SetStatus sets the Status field's value.
4859func (s *FlowExecutionSummary) SetStatus(v string) *FlowExecutionSummary {
4860	s.Status = &v
4861	return s
4862}
4863
4864// SetSystemInstanceId sets the SystemInstanceId field's value.
4865func (s *FlowExecutionSummary) SetSystemInstanceId(v string) *FlowExecutionSummary {
4866	s.SystemInstanceId = &v
4867	return s
4868}
4869
4870// SetUpdatedAt sets the UpdatedAt field's value.
4871func (s *FlowExecutionSummary) SetUpdatedAt(v time.Time) *FlowExecutionSummary {
4872	s.UpdatedAt = &v
4873	return s
4874}
4875
4876// An object that contains a workflow's definition and summary information.
4877type FlowTemplateDescription struct {
4878	_ struct{} `type:"structure"`
4879
4880	// A workflow's definition document.
4881	Definition *DefinitionDocument `locationName:"definition" type:"structure"`
4882
4883	// An object that contains summary information about a workflow.
4884	Summary *FlowTemplateSummary `locationName:"summary" type:"structure"`
4885
4886	// The version of the user's namespace against which the workflow was validated.
4887	// Use this value in your system instance.
4888	ValidatedNamespaceVersion *int64 `locationName:"validatedNamespaceVersion" type:"long"`
4889}
4890
4891// String returns the string representation
4892func (s FlowTemplateDescription) String() string {
4893	return awsutil.Prettify(s)
4894}
4895
4896// GoString returns the string representation
4897func (s FlowTemplateDescription) GoString() string {
4898	return s.String()
4899}
4900
4901// SetDefinition sets the Definition field's value.
4902func (s *FlowTemplateDescription) SetDefinition(v *DefinitionDocument) *FlowTemplateDescription {
4903	s.Definition = v
4904	return s
4905}
4906
4907// SetSummary sets the Summary field's value.
4908func (s *FlowTemplateDescription) SetSummary(v *FlowTemplateSummary) *FlowTemplateDescription {
4909	s.Summary = v
4910	return s
4911}
4912
4913// SetValidatedNamespaceVersion sets the ValidatedNamespaceVersion field's value.
4914func (s *FlowTemplateDescription) SetValidatedNamespaceVersion(v int64) *FlowTemplateDescription {
4915	s.ValidatedNamespaceVersion = &v
4916	return s
4917}
4918
4919// An object that filters a workflow search.
4920type FlowTemplateFilter struct {
4921	_ struct{} `type:"structure"`
4922
4923	// The name of the search filter field.
4924	//
4925	// Name is a required field
4926	Name *string `locationName:"name" type:"string" required:"true" enum:"FlowTemplateFilterName"`
4927
4928	// An array of string values for the search filter field. Multiple values function
4929	// as AND criteria in the search.
4930	//
4931	// Value is a required field
4932	Value []*string `locationName:"value" type:"list" required:"true"`
4933}
4934
4935// String returns the string representation
4936func (s FlowTemplateFilter) String() string {
4937	return awsutil.Prettify(s)
4938}
4939
4940// GoString returns the string representation
4941func (s FlowTemplateFilter) GoString() string {
4942	return s.String()
4943}
4944
4945// Validate inspects the fields of the type to determine if they are valid.
4946func (s *FlowTemplateFilter) Validate() error {
4947	invalidParams := request.ErrInvalidParams{Context: "FlowTemplateFilter"}
4948	if s.Name == nil {
4949		invalidParams.Add(request.NewErrParamRequired("Name"))
4950	}
4951	if s.Value == nil {
4952		invalidParams.Add(request.NewErrParamRequired("Value"))
4953	}
4954
4955	if invalidParams.Len() > 0 {
4956		return invalidParams
4957	}
4958	return nil
4959}
4960
4961// SetName sets the Name field's value.
4962func (s *FlowTemplateFilter) SetName(v string) *FlowTemplateFilter {
4963	s.Name = &v
4964	return s
4965}
4966
4967// SetValue sets the Value field's value.
4968func (s *FlowTemplateFilter) SetValue(v []*string) *FlowTemplateFilter {
4969	s.Value = v
4970	return s
4971}
4972
4973// An object that contains summary information about a workflow.
4974type FlowTemplateSummary struct {
4975	_ struct{} `type:"structure"`
4976
4977	// The ARN of the workflow.
4978	Arn *string `locationName:"arn" type:"string"`
4979
4980	// The date when the workflow was created.
4981	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
4982
4983	// The ID of the workflow.
4984	Id *string `locationName:"id" type:"string"`
4985
4986	// The revision number of the workflow.
4987	RevisionNumber *int64 `locationName:"revisionNumber" type:"long"`
4988}
4989
4990// String returns the string representation
4991func (s FlowTemplateSummary) String() string {
4992	return awsutil.Prettify(s)
4993}
4994
4995// GoString returns the string representation
4996func (s FlowTemplateSummary) GoString() string {
4997	return s.String()
4998}
4999
5000// SetArn sets the Arn field's value.
5001func (s *FlowTemplateSummary) SetArn(v string) *FlowTemplateSummary {
5002	s.Arn = &v
5003	return s
5004}
5005
5006// SetCreatedAt sets the CreatedAt field's value.
5007func (s *FlowTemplateSummary) SetCreatedAt(v time.Time) *FlowTemplateSummary {
5008	s.CreatedAt = &v
5009	return s
5010}
5011
5012// SetId sets the Id field's value.
5013func (s *FlowTemplateSummary) SetId(v string) *FlowTemplateSummary {
5014	s.Id = &v
5015	return s
5016}
5017
5018// SetRevisionNumber sets the RevisionNumber field's value.
5019func (s *FlowTemplateSummary) SetRevisionNumber(v int64) *FlowTemplateSummary {
5020	s.RevisionNumber = &v
5021	return s
5022}
5023
5024type GetEntitiesInput struct {
5025	_ struct{} `type:"structure"`
5026
5027	// An array of entity IDs.
5028	//
5029	// The IDs should be in the following format.
5030	//
5031	// urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME
5032	//
5033	// Ids is a required field
5034	Ids []*string `locationName:"ids" type:"list" required:"true"`
5035
5036	// The version of the user's namespace. Defaults to the latest version of the
5037	// user's namespace.
5038	NamespaceVersion *int64 `locationName:"namespaceVersion" type:"long"`
5039}
5040
5041// String returns the string representation
5042func (s GetEntitiesInput) String() string {
5043	return awsutil.Prettify(s)
5044}
5045
5046// GoString returns the string representation
5047func (s GetEntitiesInput) GoString() string {
5048	return s.String()
5049}
5050
5051// Validate inspects the fields of the type to determine if they are valid.
5052func (s *GetEntitiesInput) Validate() error {
5053	invalidParams := request.ErrInvalidParams{Context: "GetEntitiesInput"}
5054	if s.Ids == nil {
5055		invalidParams.Add(request.NewErrParamRequired("Ids"))
5056	}
5057
5058	if invalidParams.Len() > 0 {
5059		return invalidParams
5060	}
5061	return nil
5062}
5063
5064// SetIds sets the Ids field's value.
5065func (s *GetEntitiesInput) SetIds(v []*string) *GetEntitiesInput {
5066	s.Ids = v
5067	return s
5068}
5069
5070// SetNamespaceVersion sets the NamespaceVersion field's value.
5071func (s *GetEntitiesInput) SetNamespaceVersion(v int64) *GetEntitiesInput {
5072	s.NamespaceVersion = &v
5073	return s
5074}
5075
5076type GetEntitiesOutput struct {
5077	_ struct{} `type:"structure"`
5078
5079	// An array of descriptions for the specified entities.
5080	Descriptions []*EntityDescription `locationName:"descriptions" type:"list"`
5081}
5082
5083// String returns the string representation
5084func (s GetEntitiesOutput) String() string {
5085	return awsutil.Prettify(s)
5086}
5087
5088// GoString returns the string representation
5089func (s GetEntitiesOutput) GoString() string {
5090	return s.String()
5091}
5092
5093// SetDescriptions sets the Descriptions field's value.
5094func (s *GetEntitiesOutput) SetDescriptions(v []*EntityDescription) *GetEntitiesOutput {
5095	s.Descriptions = v
5096	return s
5097}
5098
5099type GetFlowTemplateInput struct {
5100	_ struct{} `type:"structure"`
5101
5102	// The ID of the workflow.
5103	//
5104	// The ID should be in the following format.
5105	//
5106	// urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME
5107	//
5108	// Id is a required field
5109	Id *string `locationName:"id" type:"string" required:"true"`
5110
5111	// The number of the workflow revision to retrieve.
5112	RevisionNumber *int64 `locationName:"revisionNumber" type:"long"`
5113}
5114
5115// String returns the string representation
5116func (s GetFlowTemplateInput) String() string {
5117	return awsutil.Prettify(s)
5118}
5119
5120// GoString returns the string representation
5121func (s GetFlowTemplateInput) GoString() string {
5122	return s.String()
5123}
5124
5125// Validate inspects the fields of the type to determine if they are valid.
5126func (s *GetFlowTemplateInput) Validate() error {
5127	invalidParams := request.ErrInvalidParams{Context: "GetFlowTemplateInput"}
5128	if s.Id == nil {
5129		invalidParams.Add(request.NewErrParamRequired("Id"))
5130	}
5131
5132	if invalidParams.Len() > 0 {
5133		return invalidParams
5134	}
5135	return nil
5136}
5137
5138// SetId sets the Id field's value.
5139func (s *GetFlowTemplateInput) SetId(v string) *GetFlowTemplateInput {
5140	s.Id = &v
5141	return s
5142}
5143
5144// SetRevisionNumber sets the RevisionNumber field's value.
5145func (s *GetFlowTemplateInput) SetRevisionNumber(v int64) *GetFlowTemplateInput {
5146	s.RevisionNumber = &v
5147	return s
5148}
5149
5150type GetFlowTemplateOutput struct {
5151	_ struct{} `type:"structure"`
5152
5153	// The object that describes the specified workflow.
5154	Description *FlowTemplateDescription `locationName:"description" type:"structure"`
5155}
5156
5157// String returns the string representation
5158func (s GetFlowTemplateOutput) String() string {
5159	return awsutil.Prettify(s)
5160}
5161
5162// GoString returns the string representation
5163func (s GetFlowTemplateOutput) GoString() string {
5164	return s.String()
5165}
5166
5167// SetDescription sets the Description field's value.
5168func (s *GetFlowTemplateOutput) SetDescription(v *FlowTemplateDescription) *GetFlowTemplateOutput {
5169	s.Description = v
5170	return s
5171}
5172
5173type GetFlowTemplateRevisionsInput struct {
5174	_ struct{} `type:"structure"`
5175
5176	// The ID of the workflow.
5177	//
5178	// The ID should be in the following format.
5179	//
5180	// urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME
5181	//
5182	// Id is a required field
5183	Id *string `locationName:"id" type:"string" required:"true"`
5184
5185	// The maximum number of results to return in the response.
5186	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
5187
5188	// The string that specifies the next page of results. Use this when you're
5189	// paginating results.
5190	NextToken *string `locationName:"nextToken" type:"string"`
5191}
5192
5193// String returns the string representation
5194func (s GetFlowTemplateRevisionsInput) String() string {
5195	return awsutil.Prettify(s)
5196}
5197
5198// GoString returns the string representation
5199func (s GetFlowTemplateRevisionsInput) GoString() string {
5200	return s.String()
5201}
5202
5203// Validate inspects the fields of the type to determine if they are valid.
5204func (s *GetFlowTemplateRevisionsInput) Validate() error {
5205	invalidParams := request.ErrInvalidParams{Context: "GetFlowTemplateRevisionsInput"}
5206	if s.Id == nil {
5207		invalidParams.Add(request.NewErrParamRequired("Id"))
5208	}
5209	if s.MaxResults != nil && *s.MaxResults < 1 {
5210		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5211	}
5212
5213	if invalidParams.Len() > 0 {
5214		return invalidParams
5215	}
5216	return nil
5217}
5218
5219// SetId sets the Id field's value.
5220func (s *GetFlowTemplateRevisionsInput) SetId(v string) *GetFlowTemplateRevisionsInput {
5221	s.Id = &v
5222	return s
5223}
5224
5225// SetMaxResults sets the MaxResults field's value.
5226func (s *GetFlowTemplateRevisionsInput) SetMaxResults(v int64) *GetFlowTemplateRevisionsInput {
5227	s.MaxResults = &v
5228	return s
5229}
5230
5231// SetNextToken sets the NextToken field's value.
5232func (s *GetFlowTemplateRevisionsInput) SetNextToken(v string) *GetFlowTemplateRevisionsInput {
5233	s.NextToken = &v
5234	return s
5235}
5236
5237type GetFlowTemplateRevisionsOutput struct {
5238	_ struct{} `type:"structure"`
5239
5240	// The string to specify as nextToken when you request the next page of results.
5241	NextToken *string `locationName:"nextToken" type:"string"`
5242
5243	// An array of objects that provide summary data about each revision.
5244	Summaries []*FlowTemplateSummary `locationName:"summaries" type:"list"`
5245}
5246
5247// String returns the string representation
5248func (s GetFlowTemplateRevisionsOutput) String() string {
5249	return awsutil.Prettify(s)
5250}
5251
5252// GoString returns the string representation
5253func (s GetFlowTemplateRevisionsOutput) GoString() string {
5254	return s.String()
5255}
5256
5257// SetNextToken sets the NextToken field's value.
5258func (s *GetFlowTemplateRevisionsOutput) SetNextToken(v string) *GetFlowTemplateRevisionsOutput {
5259	s.NextToken = &v
5260	return s
5261}
5262
5263// SetSummaries sets the Summaries field's value.
5264func (s *GetFlowTemplateRevisionsOutput) SetSummaries(v []*FlowTemplateSummary) *GetFlowTemplateRevisionsOutput {
5265	s.Summaries = v
5266	return s
5267}
5268
5269type GetNamespaceDeletionStatusInput struct {
5270	_ struct{} `type:"structure"`
5271}
5272
5273// String returns the string representation
5274func (s GetNamespaceDeletionStatusInput) String() string {
5275	return awsutil.Prettify(s)
5276}
5277
5278// GoString returns the string representation
5279func (s GetNamespaceDeletionStatusInput) GoString() string {
5280	return s.String()
5281}
5282
5283type GetNamespaceDeletionStatusOutput struct {
5284	_ struct{} `type:"structure"`
5285
5286	// An error code returned by the namespace deletion task.
5287	ErrorCode *string `locationName:"errorCode" type:"string" enum:"NamespaceDeletionStatusErrorCodes"`
5288
5289	// An error code returned by the namespace deletion task.
5290	ErrorMessage *string `locationName:"errorMessage" type:"string"`
5291
5292	// The ARN of the namespace that is being deleted.
5293	NamespaceArn *string `locationName:"namespaceArn" type:"string"`
5294
5295	// The name of the namespace that is being deleted.
5296	NamespaceName *string `locationName:"namespaceName" type:"string"`
5297
5298	// The status of the deletion request.
5299	Status *string `locationName:"status" type:"string" enum:"NamespaceDeletionStatus"`
5300}
5301
5302// String returns the string representation
5303func (s GetNamespaceDeletionStatusOutput) String() string {
5304	return awsutil.Prettify(s)
5305}
5306
5307// GoString returns the string representation
5308func (s GetNamespaceDeletionStatusOutput) GoString() string {
5309	return s.String()
5310}
5311
5312// SetErrorCode sets the ErrorCode field's value.
5313func (s *GetNamespaceDeletionStatusOutput) SetErrorCode(v string) *GetNamespaceDeletionStatusOutput {
5314	s.ErrorCode = &v
5315	return s
5316}
5317
5318// SetErrorMessage sets the ErrorMessage field's value.
5319func (s *GetNamespaceDeletionStatusOutput) SetErrorMessage(v string) *GetNamespaceDeletionStatusOutput {
5320	s.ErrorMessage = &v
5321	return s
5322}
5323
5324// SetNamespaceArn sets the NamespaceArn field's value.
5325func (s *GetNamespaceDeletionStatusOutput) SetNamespaceArn(v string) *GetNamespaceDeletionStatusOutput {
5326	s.NamespaceArn = &v
5327	return s
5328}
5329
5330// SetNamespaceName sets the NamespaceName field's value.
5331func (s *GetNamespaceDeletionStatusOutput) SetNamespaceName(v string) *GetNamespaceDeletionStatusOutput {
5332	s.NamespaceName = &v
5333	return s
5334}
5335
5336// SetStatus sets the Status field's value.
5337func (s *GetNamespaceDeletionStatusOutput) SetStatus(v string) *GetNamespaceDeletionStatusOutput {
5338	s.Status = &v
5339	return s
5340}
5341
5342type GetSystemInstanceInput struct {
5343	_ struct{} `type:"structure"`
5344
5345	// The ID of the system deployment instance. This value is returned by CreateSystemInstance.
5346	//
5347	// The ID should be in the following format.
5348	//
5349	// urn:tdm:REGION/ACCOUNT ID/default:deployment:DEPLOYMENTNAME
5350	//
5351	// Id is a required field
5352	Id *string `locationName:"id" type:"string" required:"true"`
5353}
5354
5355// String returns the string representation
5356func (s GetSystemInstanceInput) String() string {
5357	return awsutil.Prettify(s)
5358}
5359
5360// GoString returns the string representation
5361func (s GetSystemInstanceInput) GoString() string {
5362	return s.String()
5363}
5364
5365// Validate inspects the fields of the type to determine if they are valid.
5366func (s *GetSystemInstanceInput) Validate() error {
5367	invalidParams := request.ErrInvalidParams{Context: "GetSystemInstanceInput"}
5368	if s.Id == nil {
5369		invalidParams.Add(request.NewErrParamRequired("Id"))
5370	}
5371
5372	if invalidParams.Len() > 0 {
5373		return invalidParams
5374	}
5375	return nil
5376}
5377
5378// SetId sets the Id field's value.
5379func (s *GetSystemInstanceInput) SetId(v string) *GetSystemInstanceInput {
5380	s.Id = &v
5381	return s
5382}
5383
5384type GetSystemInstanceOutput struct {
5385	_ struct{} `type:"structure"`
5386
5387	// An object that describes the system instance.
5388	Description *SystemInstanceDescription `locationName:"description" type:"structure"`
5389}
5390
5391// String returns the string representation
5392func (s GetSystemInstanceOutput) String() string {
5393	return awsutil.Prettify(s)
5394}
5395
5396// GoString returns the string representation
5397func (s GetSystemInstanceOutput) GoString() string {
5398	return s.String()
5399}
5400
5401// SetDescription sets the Description field's value.
5402func (s *GetSystemInstanceOutput) SetDescription(v *SystemInstanceDescription) *GetSystemInstanceOutput {
5403	s.Description = v
5404	return s
5405}
5406
5407type GetSystemTemplateInput struct {
5408	_ struct{} `type:"structure"`
5409
5410	// The ID of the system to get. This ID must be in the user's namespace.
5411	//
5412	// The ID should be in the following format.
5413	//
5414	// urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME
5415	//
5416	// Id is a required field
5417	Id *string `locationName:"id" type:"string" required:"true"`
5418
5419	// The number that specifies the revision of the system to get.
5420	RevisionNumber *int64 `locationName:"revisionNumber" type:"long"`
5421}
5422
5423// String returns the string representation
5424func (s GetSystemTemplateInput) String() string {
5425	return awsutil.Prettify(s)
5426}
5427
5428// GoString returns the string representation
5429func (s GetSystemTemplateInput) GoString() string {
5430	return s.String()
5431}
5432
5433// Validate inspects the fields of the type to determine if they are valid.
5434func (s *GetSystemTemplateInput) Validate() error {
5435	invalidParams := request.ErrInvalidParams{Context: "GetSystemTemplateInput"}
5436	if s.Id == nil {
5437		invalidParams.Add(request.NewErrParamRequired("Id"))
5438	}
5439
5440	if invalidParams.Len() > 0 {
5441		return invalidParams
5442	}
5443	return nil
5444}
5445
5446// SetId sets the Id field's value.
5447func (s *GetSystemTemplateInput) SetId(v string) *GetSystemTemplateInput {
5448	s.Id = &v
5449	return s
5450}
5451
5452// SetRevisionNumber sets the RevisionNumber field's value.
5453func (s *GetSystemTemplateInput) SetRevisionNumber(v int64) *GetSystemTemplateInput {
5454	s.RevisionNumber = &v
5455	return s
5456}
5457
5458type GetSystemTemplateOutput struct {
5459	_ struct{} `type:"structure"`
5460
5461	// An object that contains summary data about the system.
5462	Description *SystemTemplateDescription `locationName:"description" type:"structure"`
5463}
5464
5465// String returns the string representation
5466func (s GetSystemTemplateOutput) String() string {
5467	return awsutil.Prettify(s)
5468}
5469
5470// GoString returns the string representation
5471func (s GetSystemTemplateOutput) GoString() string {
5472	return s.String()
5473}
5474
5475// SetDescription sets the Description field's value.
5476func (s *GetSystemTemplateOutput) SetDescription(v *SystemTemplateDescription) *GetSystemTemplateOutput {
5477	s.Description = v
5478	return s
5479}
5480
5481type GetSystemTemplateRevisionsInput struct {
5482	_ struct{} `type:"structure"`
5483
5484	// The ID of the system template.
5485	//
5486	// The ID should be in the following format.
5487	//
5488	// urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME
5489	//
5490	// Id is a required field
5491	Id *string `locationName:"id" type:"string" required:"true"`
5492
5493	// The maximum number of results to return in the response.
5494	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
5495
5496	// The string that specifies the next page of results. Use this when you're
5497	// paginating results.
5498	NextToken *string `locationName:"nextToken" type:"string"`
5499}
5500
5501// String returns the string representation
5502func (s GetSystemTemplateRevisionsInput) String() string {
5503	return awsutil.Prettify(s)
5504}
5505
5506// GoString returns the string representation
5507func (s GetSystemTemplateRevisionsInput) GoString() string {
5508	return s.String()
5509}
5510
5511// Validate inspects the fields of the type to determine if they are valid.
5512func (s *GetSystemTemplateRevisionsInput) Validate() error {
5513	invalidParams := request.ErrInvalidParams{Context: "GetSystemTemplateRevisionsInput"}
5514	if s.Id == nil {
5515		invalidParams.Add(request.NewErrParamRequired("Id"))
5516	}
5517	if s.MaxResults != nil && *s.MaxResults < 1 {
5518		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5519	}
5520
5521	if invalidParams.Len() > 0 {
5522		return invalidParams
5523	}
5524	return nil
5525}
5526
5527// SetId sets the Id field's value.
5528func (s *GetSystemTemplateRevisionsInput) SetId(v string) *GetSystemTemplateRevisionsInput {
5529	s.Id = &v
5530	return s
5531}
5532
5533// SetMaxResults sets the MaxResults field's value.
5534func (s *GetSystemTemplateRevisionsInput) SetMaxResults(v int64) *GetSystemTemplateRevisionsInput {
5535	s.MaxResults = &v
5536	return s
5537}
5538
5539// SetNextToken sets the NextToken field's value.
5540func (s *GetSystemTemplateRevisionsInput) SetNextToken(v string) *GetSystemTemplateRevisionsInput {
5541	s.NextToken = &v
5542	return s
5543}
5544
5545type GetSystemTemplateRevisionsOutput struct {
5546	_ struct{} `type:"structure"`
5547
5548	// The string to specify as nextToken when you request the next page of results.
5549	NextToken *string `locationName:"nextToken" type:"string"`
5550
5551	// An array of objects that contain summary data about the system template revisions.
5552	Summaries []*SystemTemplateSummary `locationName:"summaries" type:"list"`
5553}
5554
5555// String returns the string representation
5556func (s GetSystemTemplateRevisionsOutput) String() string {
5557	return awsutil.Prettify(s)
5558}
5559
5560// GoString returns the string representation
5561func (s GetSystemTemplateRevisionsOutput) GoString() string {
5562	return s.String()
5563}
5564
5565// SetNextToken sets the NextToken field's value.
5566func (s *GetSystemTemplateRevisionsOutput) SetNextToken(v string) *GetSystemTemplateRevisionsOutput {
5567	s.NextToken = &v
5568	return s
5569}
5570
5571// SetSummaries sets the Summaries field's value.
5572func (s *GetSystemTemplateRevisionsOutput) SetSummaries(v []*SystemTemplateSummary) *GetSystemTemplateRevisionsOutput {
5573	s.Summaries = v
5574	return s
5575}
5576
5577type GetUploadStatusInput struct {
5578	_ struct{} `type:"structure"`
5579
5580	// The ID of the upload. This value is returned by the UploadEntityDefinitions
5581	// action.
5582	//
5583	// UploadId is a required field
5584	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`
5585}
5586
5587// String returns the string representation
5588func (s GetUploadStatusInput) String() string {
5589	return awsutil.Prettify(s)
5590}
5591
5592// GoString returns the string representation
5593func (s GetUploadStatusInput) GoString() string {
5594	return s.String()
5595}
5596
5597// Validate inspects the fields of the type to determine if they are valid.
5598func (s *GetUploadStatusInput) Validate() error {
5599	invalidParams := request.ErrInvalidParams{Context: "GetUploadStatusInput"}
5600	if s.UploadId == nil {
5601		invalidParams.Add(request.NewErrParamRequired("UploadId"))
5602	}
5603	if s.UploadId != nil && len(*s.UploadId) < 1 {
5604		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
5605	}
5606
5607	if invalidParams.Len() > 0 {
5608		return invalidParams
5609	}
5610	return nil
5611}
5612
5613// SetUploadId sets the UploadId field's value.
5614func (s *GetUploadStatusInput) SetUploadId(v string) *GetUploadStatusInput {
5615	s.UploadId = &v
5616	return s
5617}
5618
5619type GetUploadStatusOutput struct {
5620	_ struct{} `type:"structure"`
5621
5622	// The date at which the upload was created.
5623	//
5624	// CreatedDate is a required field
5625	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" required:"true"`
5626
5627	// The reason for an upload failure.
5628	FailureReason []*string `locationName:"failureReason" type:"list"`
5629
5630	// The ARN of the upload.
5631	NamespaceArn *string `locationName:"namespaceArn" type:"string"`
5632
5633	// The name of the upload's namespace.
5634	NamespaceName *string `locationName:"namespaceName" type:"string"`
5635
5636	// The version of the user's namespace. Defaults to the latest version of the
5637	// user's namespace.
5638	NamespaceVersion *int64 `locationName:"namespaceVersion" type:"long"`
5639
5640	// The ID of the upload.
5641	//
5642	// UploadId is a required field
5643	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`
5644
5645	// The status of the upload. The initial status is IN_PROGRESS. The response
5646	// show all validation failures if the upload fails.
5647	//
5648	// UploadStatus is a required field
5649	UploadStatus *string `locationName:"uploadStatus" type:"string" required:"true" enum:"UploadStatus"`
5650}
5651
5652// String returns the string representation
5653func (s GetUploadStatusOutput) String() string {
5654	return awsutil.Prettify(s)
5655}
5656
5657// GoString returns the string representation
5658func (s GetUploadStatusOutput) GoString() string {
5659	return s.String()
5660}
5661
5662// SetCreatedDate sets the CreatedDate field's value.
5663func (s *GetUploadStatusOutput) SetCreatedDate(v time.Time) *GetUploadStatusOutput {
5664	s.CreatedDate = &v
5665	return s
5666}
5667
5668// SetFailureReason sets the FailureReason field's value.
5669func (s *GetUploadStatusOutput) SetFailureReason(v []*string) *GetUploadStatusOutput {
5670	s.FailureReason = v
5671	return s
5672}
5673
5674// SetNamespaceArn sets the NamespaceArn field's value.
5675func (s *GetUploadStatusOutput) SetNamespaceArn(v string) *GetUploadStatusOutput {
5676	s.NamespaceArn = &v
5677	return s
5678}
5679
5680// SetNamespaceName sets the NamespaceName field's value.
5681func (s *GetUploadStatusOutput) SetNamespaceName(v string) *GetUploadStatusOutput {
5682	s.NamespaceName = &v
5683	return s
5684}
5685
5686// SetNamespaceVersion sets the NamespaceVersion field's value.
5687func (s *GetUploadStatusOutput) SetNamespaceVersion(v int64) *GetUploadStatusOutput {
5688	s.NamespaceVersion = &v
5689	return s
5690}
5691
5692// SetUploadId sets the UploadId field's value.
5693func (s *GetUploadStatusOutput) SetUploadId(v string) *GetUploadStatusOutput {
5694	s.UploadId = &v
5695	return s
5696}
5697
5698// SetUploadStatus sets the UploadStatus field's value.
5699func (s *GetUploadStatusOutput) SetUploadStatus(v string) *GetUploadStatusOutput {
5700	s.UploadStatus = &v
5701	return s
5702}
5703
5704type InternalFailureException struct {
5705	_            struct{}                  `type:"structure"`
5706	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5707
5708	Message_ *string `locationName:"message" type:"string"`
5709}
5710
5711// String returns the string representation
5712func (s InternalFailureException) String() string {
5713	return awsutil.Prettify(s)
5714}
5715
5716// GoString returns the string representation
5717func (s InternalFailureException) GoString() string {
5718	return s.String()
5719}
5720
5721func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
5722	return &InternalFailureException{
5723		RespMetadata: v,
5724	}
5725}
5726
5727// Code returns the exception type name.
5728func (s *InternalFailureException) Code() string {
5729	return "InternalFailureException"
5730}
5731
5732// Message returns the exception's message.
5733func (s *InternalFailureException) Message() string {
5734	if s.Message_ != nil {
5735		return *s.Message_
5736	}
5737	return ""
5738}
5739
5740// OrigErr always returns nil, satisfies awserr.Error interface.
5741func (s *InternalFailureException) OrigErr() error {
5742	return nil
5743}
5744
5745func (s *InternalFailureException) Error() string {
5746	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5747}
5748
5749// Status code returns the HTTP status code for the request's response error.
5750func (s *InternalFailureException) StatusCode() int {
5751	return s.RespMetadata.StatusCode
5752}
5753
5754// RequestID returns the service's response RequestID for request.
5755func (s *InternalFailureException) RequestID() string {
5756	return s.RespMetadata.RequestID
5757}
5758
5759type InvalidRequestException struct {
5760	_            struct{}                  `type:"structure"`
5761	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5762
5763	Message_ *string `locationName:"message" type:"string"`
5764}
5765
5766// String returns the string representation
5767func (s InvalidRequestException) String() string {
5768	return awsutil.Prettify(s)
5769}
5770
5771// GoString returns the string representation
5772func (s InvalidRequestException) GoString() string {
5773	return s.String()
5774}
5775
5776func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
5777	return &InvalidRequestException{
5778		RespMetadata: v,
5779	}
5780}
5781
5782// Code returns the exception type name.
5783func (s *InvalidRequestException) Code() string {
5784	return "InvalidRequestException"
5785}
5786
5787// Message returns the exception's message.
5788func (s *InvalidRequestException) Message() string {
5789	if s.Message_ != nil {
5790		return *s.Message_
5791	}
5792	return ""
5793}
5794
5795// OrigErr always returns nil, satisfies awserr.Error interface.
5796func (s *InvalidRequestException) OrigErr() error {
5797	return nil
5798}
5799
5800func (s *InvalidRequestException) Error() string {
5801	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5802}
5803
5804// Status code returns the HTTP status code for the request's response error.
5805func (s *InvalidRequestException) StatusCode() int {
5806	return s.RespMetadata.StatusCode
5807}
5808
5809// RequestID returns the service's response RequestID for request.
5810func (s *InvalidRequestException) RequestID() string {
5811	return s.RespMetadata.RequestID
5812}
5813
5814type LimitExceededException struct {
5815	_            struct{}                  `type:"structure"`
5816	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5817
5818	Message_ *string `locationName:"message" type:"string"`
5819}
5820
5821// String returns the string representation
5822func (s LimitExceededException) String() string {
5823	return awsutil.Prettify(s)
5824}
5825
5826// GoString returns the string representation
5827func (s LimitExceededException) GoString() string {
5828	return s.String()
5829}
5830
5831func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
5832	return &LimitExceededException{
5833		RespMetadata: v,
5834	}
5835}
5836
5837// Code returns the exception type name.
5838func (s *LimitExceededException) Code() string {
5839	return "LimitExceededException"
5840}
5841
5842// Message returns the exception's message.
5843func (s *LimitExceededException) Message() string {
5844	if s.Message_ != nil {
5845		return *s.Message_
5846	}
5847	return ""
5848}
5849
5850// OrigErr always returns nil, satisfies awserr.Error interface.
5851func (s *LimitExceededException) OrigErr() error {
5852	return nil
5853}
5854
5855func (s *LimitExceededException) Error() string {
5856	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5857}
5858
5859// Status code returns the HTTP status code for the request's response error.
5860func (s *LimitExceededException) StatusCode() int {
5861	return s.RespMetadata.StatusCode
5862}
5863
5864// RequestID returns the service's response RequestID for request.
5865func (s *LimitExceededException) RequestID() string {
5866	return s.RespMetadata.RequestID
5867}
5868
5869type ListFlowExecutionMessagesInput struct {
5870	_ struct{} `type:"structure"`
5871
5872	// The ID of the flow execution.
5873	//
5874	// FlowExecutionId is a required field
5875	FlowExecutionId *string `locationName:"flowExecutionId" type:"string" required:"true"`
5876
5877	// The maximum number of results to return in the response.
5878	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
5879
5880	// The string that specifies the next page of results. Use this when you're
5881	// paginating results.
5882	NextToken *string `locationName:"nextToken" type:"string"`
5883}
5884
5885// String returns the string representation
5886func (s ListFlowExecutionMessagesInput) String() string {
5887	return awsutil.Prettify(s)
5888}
5889
5890// GoString returns the string representation
5891func (s ListFlowExecutionMessagesInput) GoString() string {
5892	return s.String()
5893}
5894
5895// Validate inspects the fields of the type to determine if they are valid.
5896func (s *ListFlowExecutionMessagesInput) Validate() error {
5897	invalidParams := request.ErrInvalidParams{Context: "ListFlowExecutionMessagesInput"}
5898	if s.FlowExecutionId == nil {
5899		invalidParams.Add(request.NewErrParamRequired("FlowExecutionId"))
5900	}
5901	if s.MaxResults != nil && *s.MaxResults < 1 {
5902		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5903	}
5904
5905	if invalidParams.Len() > 0 {
5906		return invalidParams
5907	}
5908	return nil
5909}
5910
5911// SetFlowExecutionId sets the FlowExecutionId field's value.
5912func (s *ListFlowExecutionMessagesInput) SetFlowExecutionId(v string) *ListFlowExecutionMessagesInput {
5913	s.FlowExecutionId = &v
5914	return s
5915}
5916
5917// SetMaxResults sets the MaxResults field's value.
5918func (s *ListFlowExecutionMessagesInput) SetMaxResults(v int64) *ListFlowExecutionMessagesInput {
5919	s.MaxResults = &v
5920	return s
5921}
5922
5923// SetNextToken sets the NextToken field's value.
5924func (s *ListFlowExecutionMessagesInput) SetNextToken(v string) *ListFlowExecutionMessagesInput {
5925	s.NextToken = &v
5926	return s
5927}
5928
5929type ListFlowExecutionMessagesOutput struct {
5930	_ struct{} `type:"structure"`
5931
5932	// A list of objects that contain information about events in the specified
5933	// flow execution.
5934	Messages []*FlowExecutionMessage `locationName:"messages" type:"list"`
5935
5936	// The string to specify as nextToken when you request the next page of results.
5937	NextToken *string `locationName:"nextToken" type:"string"`
5938}
5939
5940// String returns the string representation
5941func (s ListFlowExecutionMessagesOutput) String() string {
5942	return awsutil.Prettify(s)
5943}
5944
5945// GoString returns the string representation
5946func (s ListFlowExecutionMessagesOutput) GoString() string {
5947	return s.String()
5948}
5949
5950// SetMessages sets the Messages field's value.
5951func (s *ListFlowExecutionMessagesOutput) SetMessages(v []*FlowExecutionMessage) *ListFlowExecutionMessagesOutput {
5952	s.Messages = v
5953	return s
5954}
5955
5956// SetNextToken sets the NextToken field's value.
5957func (s *ListFlowExecutionMessagesOutput) SetNextToken(v string) *ListFlowExecutionMessagesOutput {
5958	s.NextToken = &v
5959	return s
5960}
5961
5962type ListTagsForResourceInput struct {
5963	_ struct{} `type:"structure"`
5964
5965	// The maximum number of tags to return.
5966	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
5967
5968	// The token that specifies the next page of results to return.
5969	NextToken *string `locationName:"nextToken" type:"string"`
5970
5971	// The Amazon Resource Name (ARN) of the resource whose tags are to be returned.
5972	//
5973	// ResourceArn is a required field
5974	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`
5975}
5976
5977// String returns the string representation
5978func (s ListTagsForResourceInput) String() string {
5979	return awsutil.Prettify(s)
5980}
5981
5982// GoString returns the string representation
5983func (s ListTagsForResourceInput) GoString() string {
5984	return s.String()
5985}
5986
5987// Validate inspects the fields of the type to determine if they are valid.
5988func (s *ListTagsForResourceInput) Validate() error {
5989	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5990	if s.MaxResults != nil && *s.MaxResults < 1 {
5991		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5992	}
5993	if s.ResourceArn == nil {
5994		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5995	}
5996	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5997		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5998	}
5999
6000	if invalidParams.Len() > 0 {
6001		return invalidParams
6002	}
6003	return nil
6004}
6005
6006// SetMaxResults sets the MaxResults field's value.
6007func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
6008	s.MaxResults = &v
6009	return s
6010}
6011
6012// SetNextToken sets the NextToken field's value.
6013func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
6014	s.NextToken = &v
6015	return s
6016}
6017
6018// SetResourceArn sets the ResourceArn field's value.
6019func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
6020	s.ResourceArn = &v
6021	return s
6022}
6023
6024type ListTagsForResourceOutput struct {
6025	_ struct{} `type:"structure"`
6026
6027	// The token that specifies the next page of results to return.
6028	NextToken *string `locationName:"nextToken" type:"string"`
6029
6030	// List of tags returned by the ListTagsForResource operation.
6031	Tags []*Tag `locationName:"tags" type:"list"`
6032}
6033
6034// String returns the string representation
6035func (s ListTagsForResourceOutput) String() string {
6036	return awsutil.Prettify(s)
6037}
6038
6039// GoString returns the string representation
6040func (s ListTagsForResourceOutput) GoString() string {
6041	return s.String()
6042}
6043
6044// SetNextToken sets the NextToken field's value.
6045func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
6046	s.NextToken = &v
6047	return s
6048}
6049
6050// SetTags sets the Tags field's value.
6051func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
6052	s.Tags = v
6053	return s
6054}
6055
6056// An object that specifies whether cloud metrics are collected in a deployment
6057// and, if so, what role is used to collect metrics.
6058type MetricsConfiguration struct {
6059	_ struct{} `type:"structure"`
6060
6061	// A Boolean that specifies whether cloud metrics are collected.
6062	CloudMetricEnabled *bool `locationName:"cloudMetricEnabled" type:"boolean"`
6063
6064	// The ARN of the role that is used to collect cloud metrics.
6065	MetricRuleRoleArn *string `locationName:"metricRuleRoleArn" min:"20" type:"string"`
6066}
6067
6068// String returns the string representation
6069func (s MetricsConfiguration) String() string {
6070	return awsutil.Prettify(s)
6071}
6072
6073// GoString returns the string representation
6074func (s MetricsConfiguration) GoString() string {
6075	return s.String()
6076}
6077
6078// Validate inspects the fields of the type to determine if they are valid.
6079func (s *MetricsConfiguration) Validate() error {
6080	invalidParams := request.ErrInvalidParams{Context: "MetricsConfiguration"}
6081	if s.MetricRuleRoleArn != nil && len(*s.MetricRuleRoleArn) < 20 {
6082		invalidParams.Add(request.NewErrParamMinLen("MetricRuleRoleArn", 20))
6083	}
6084
6085	if invalidParams.Len() > 0 {
6086		return invalidParams
6087	}
6088	return nil
6089}
6090
6091// SetCloudMetricEnabled sets the CloudMetricEnabled field's value.
6092func (s *MetricsConfiguration) SetCloudMetricEnabled(v bool) *MetricsConfiguration {
6093	s.CloudMetricEnabled = &v
6094	return s
6095}
6096
6097// SetMetricRuleRoleArn sets the MetricRuleRoleArn field's value.
6098func (s *MetricsConfiguration) SetMetricRuleRoleArn(v string) *MetricsConfiguration {
6099	s.MetricRuleRoleArn = &v
6100	return s
6101}
6102
6103type ResourceAlreadyExistsException struct {
6104	_            struct{}                  `type:"structure"`
6105	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6106
6107	Message_ *string `locationName:"message" type:"string"`
6108}
6109
6110// String returns the string representation
6111func (s ResourceAlreadyExistsException) String() string {
6112	return awsutil.Prettify(s)
6113}
6114
6115// GoString returns the string representation
6116func (s ResourceAlreadyExistsException) GoString() string {
6117	return s.String()
6118}
6119
6120func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
6121	return &ResourceAlreadyExistsException{
6122		RespMetadata: v,
6123	}
6124}
6125
6126// Code returns the exception type name.
6127func (s *ResourceAlreadyExistsException) Code() string {
6128	return "ResourceAlreadyExistsException"
6129}
6130
6131// Message returns the exception's message.
6132func (s *ResourceAlreadyExistsException) Message() string {
6133	if s.Message_ != nil {
6134		return *s.Message_
6135	}
6136	return ""
6137}
6138
6139// OrigErr always returns nil, satisfies awserr.Error interface.
6140func (s *ResourceAlreadyExistsException) OrigErr() error {
6141	return nil
6142}
6143
6144func (s *ResourceAlreadyExistsException) Error() string {
6145	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6146}
6147
6148// Status code returns the HTTP status code for the request's response error.
6149func (s *ResourceAlreadyExistsException) StatusCode() int {
6150	return s.RespMetadata.StatusCode
6151}
6152
6153// RequestID returns the service's response RequestID for request.
6154func (s *ResourceAlreadyExistsException) RequestID() string {
6155	return s.RespMetadata.RequestID
6156}
6157
6158type ResourceInUseException struct {
6159	_            struct{}                  `type:"structure"`
6160	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6161
6162	Message_ *string `locationName:"message" type:"string"`
6163}
6164
6165// String returns the string representation
6166func (s ResourceInUseException) String() string {
6167	return awsutil.Prettify(s)
6168}
6169
6170// GoString returns the string representation
6171func (s ResourceInUseException) GoString() string {
6172	return s.String()
6173}
6174
6175func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
6176	return &ResourceInUseException{
6177		RespMetadata: v,
6178	}
6179}
6180
6181// Code returns the exception type name.
6182func (s *ResourceInUseException) Code() string {
6183	return "ResourceInUseException"
6184}
6185
6186// Message returns the exception's message.
6187func (s *ResourceInUseException) Message() string {
6188	if s.Message_ != nil {
6189		return *s.Message_
6190	}
6191	return ""
6192}
6193
6194// OrigErr always returns nil, satisfies awserr.Error interface.
6195func (s *ResourceInUseException) OrigErr() error {
6196	return nil
6197}
6198
6199func (s *ResourceInUseException) Error() string {
6200	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6201}
6202
6203// Status code returns the HTTP status code for the request's response error.
6204func (s *ResourceInUseException) StatusCode() int {
6205	return s.RespMetadata.StatusCode
6206}
6207
6208// RequestID returns the service's response RequestID for request.
6209func (s *ResourceInUseException) RequestID() string {
6210	return s.RespMetadata.RequestID
6211}
6212
6213type ResourceNotFoundException struct {
6214	_            struct{}                  `type:"structure"`
6215	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6216
6217	Message_ *string `locationName:"message" type:"string"`
6218}
6219
6220// String returns the string representation
6221func (s ResourceNotFoundException) String() string {
6222	return awsutil.Prettify(s)
6223}
6224
6225// GoString returns the string representation
6226func (s ResourceNotFoundException) GoString() string {
6227	return s.String()
6228}
6229
6230func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6231	return &ResourceNotFoundException{
6232		RespMetadata: v,
6233	}
6234}
6235
6236// Code returns the exception type name.
6237func (s *ResourceNotFoundException) Code() string {
6238	return "ResourceNotFoundException"
6239}
6240
6241// Message returns the exception's message.
6242func (s *ResourceNotFoundException) Message() string {
6243	if s.Message_ != nil {
6244		return *s.Message_
6245	}
6246	return ""
6247}
6248
6249// OrigErr always returns nil, satisfies awserr.Error interface.
6250func (s *ResourceNotFoundException) OrigErr() error {
6251	return nil
6252}
6253
6254func (s *ResourceNotFoundException) Error() string {
6255	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6256}
6257
6258// Status code returns the HTTP status code for the request's response error.
6259func (s *ResourceNotFoundException) StatusCode() int {
6260	return s.RespMetadata.StatusCode
6261}
6262
6263// RequestID returns the service's response RequestID for request.
6264func (s *ResourceNotFoundException) RequestID() string {
6265	return s.RespMetadata.RequestID
6266}
6267
6268type SearchEntitiesInput struct {
6269	_ struct{} `type:"structure"`
6270
6271	// The entity types for which to search.
6272	//
6273	// EntityTypes is a required field
6274	EntityTypes []*string `locationName:"entityTypes" type:"list" required:"true"`
6275
6276	// Optional filter to apply to the search. Valid filters are NAME NAMESPACE,
6277	// SEMANTIC_TYPE_PATH and REFERENCED_ENTITY_ID. REFERENCED_ENTITY_ID filters
6278	// on entities that are used by the entity in the result set. For example, you
6279	// can filter on the ID of a property that is used in a state.
6280	//
6281	// Multiple filters function as OR criteria in the query. Multiple values passed
6282	// inside the filter function as AND criteria.
6283	Filters []*EntityFilter `locationName:"filters" type:"list"`
6284
6285	// The maximum number of results to return in the response.
6286	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
6287
6288	// The version of the user's namespace. Defaults to the latest version of the
6289	// user's namespace.
6290	NamespaceVersion *int64 `locationName:"namespaceVersion" type:"long"`
6291
6292	// The string that specifies the next page of results. Use this when you're
6293	// paginating results.
6294	NextToken *string `locationName:"nextToken" type:"string"`
6295}
6296
6297// String returns the string representation
6298func (s SearchEntitiesInput) String() string {
6299	return awsutil.Prettify(s)
6300}
6301
6302// GoString returns the string representation
6303func (s SearchEntitiesInput) GoString() string {
6304	return s.String()
6305}
6306
6307// Validate inspects the fields of the type to determine if they are valid.
6308func (s *SearchEntitiesInput) Validate() error {
6309	invalidParams := request.ErrInvalidParams{Context: "SearchEntitiesInput"}
6310	if s.EntityTypes == nil {
6311		invalidParams.Add(request.NewErrParamRequired("EntityTypes"))
6312	}
6313	if s.MaxResults != nil && *s.MaxResults < 1 {
6314		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6315	}
6316
6317	if invalidParams.Len() > 0 {
6318		return invalidParams
6319	}
6320	return nil
6321}
6322
6323// SetEntityTypes sets the EntityTypes field's value.
6324func (s *SearchEntitiesInput) SetEntityTypes(v []*string) *SearchEntitiesInput {
6325	s.EntityTypes = v
6326	return s
6327}
6328
6329// SetFilters sets the Filters field's value.
6330func (s *SearchEntitiesInput) SetFilters(v []*EntityFilter) *SearchEntitiesInput {
6331	s.Filters = v
6332	return s
6333}
6334
6335// SetMaxResults sets the MaxResults field's value.
6336func (s *SearchEntitiesInput) SetMaxResults(v int64) *SearchEntitiesInput {
6337	s.MaxResults = &v
6338	return s
6339}
6340
6341// SetNamespaceVersion sets the NamespaceVersion field's value.
6342func (s *SearchEntitiesInput) SetNamespaceVersion(v int64) *SearchEntitiesInput {
6343	s.NamespaceVersion = &v
6344	return s
6345}
6346
6347// SetNextToken sets the NextToken field's value.
6348func (s *SearchEntitiesInput) SetNextToken(v string) *SearchEntitiesInput {
6349	s.NextToken = &v
6350	return s
6351}
6352
6353type SearchEntitiesOutput struct {
6354	_ struct{} `type:"structure"`
6355
6356	// An array of descriptions for each entity returned in the search result.
6357	Descriptions []*EntityDescription `locationName:"descriptions" type:"list"`
6358
6359	// The string to specify as nextToken when you request the next page of results.
6360	NextToken *string `locationName:"nextToken" type:"string"`
6361}
6362
6363// String returns the string representation
6364func (s SearchEntitiesOutput) String() string {
6365	return awsutil.Prettify(s)
6366}
6367
6368// GoString returns the string representation
6369func (s SearchEntitiesOutput) GoString() string {
6370	return s.String()
6371}
6372
6373// SetDescriptions sets the Descriptions field's value.
6374func (s *SearchEntitiesOutput) SetDescriptions(v []*EntityDescription) *SearchEntitiesOutput {
6375	s.Descriptions = v
6376	return s
6377}
6378
6379// SetNextToken sets the NextToken field's value.
6380func (s *SearchEntitiesOutput) SetNextToken(v string) *SearchEntitiesOutput {
6381	s.NextToken = &v
6382	return s
6383}
6384
6385type SearchFlowExecutionsInput struct {
6386	_ struct{} `type:"structure"`
6387
6388	// The date and time of the latest flow execution to return.
6389	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
6390
6391	// The ID of a flow execution.
6392	FlowExecutionId *string `locationName:"flowExecutionId" type:"string"`
6393
6394	// The maximum number of results to return in the response.
6395	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
6396
6397	// The string that specifies the next page of results. Use this when you're
6398	// paginating results.
6399	NextToken *string `locationName:"nextToken" type:"string"`
6400
6401	// The date and time of the earliest flow execution to return.
6402	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
6403
6404	// The ID of the system instance that contains the flow.
6405	//
6406	// SystemInstanceId is a required field
6407	SystemInstanceId *string `locationName:"systemInstanceId" type:"string" required:"true"`
6408}
6409
6410// String returns the string representation
6411func (s SearchFlowExecutionsInput) String() string {
6412	return awsutil.Prettify(s)
6413}
6414
6415// GoString returns the string representation
6416func (s SearchFlowExecutionsInput) GoString() string {
6417	return s.String()
6418}
6419
6420// Validate inspects the fields of the type to determine if they are valid.
6421func (s *SearchFlowExecutionsInput) Validate() error {
6422	invalidParams := request.ErrInvalidParams{Context: "SearchFlowExecutionsInput"}
6423	if s.MaxResults != nil && *s.MaxResults < 1 {
6424		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6425	}
6426	if s.SystemInstanceId == nil {
6427		invalidParams.Add(request.NewErrParamRequired("SystemInstanceId"))
6428	}
6429
6430	if invalidParams.Len() > 0 {
6431		return invalidParams
6432	}
6433	return nil
6434}
6435
6436// SetEndTime sets the EndTime field's value.
6437func (s *SearchFlowExecutionsInput) SetEndTime(v time.Time) *SearchFlowExecutionsInput {
6438	s.EndTime = &v
6439	return s
6440}
6441
6442// SetFlowExecutionId sets the FlowExecutionId field's value.
6443func (s *SearchFlowExecutionsInput) SetFlowExecutionId(v string) *SearchFlowExecutionsInput {
6444	s.FlowExecutionId = &v
6445	return s
6446}
6447
6448// SetMaxResults sets the MaxResults field's value.
6449func (s *SearchFlowExecutionsInput) SetMaxResults(v int64) *SearchFlowExecutionsInput {
6450	s.MaxResults = &v
6451	return s
6452}
6453
6454// SetNextToken sets the NextToken field's value.
6455func (s *SearchFlowExecutionsInput) SetNextToken(v string) *SearchFlowExecutionsInput {
6456	s.NextToken = &v
6457	return s
6458}
6459
6460// SetStartTime sets the StartTime field's value.
6461func (s *SearchFlowExecutionsInput) SetStartTime(v time.Time) *SearchFlowExecutionsInput {
6462	s.StartTime = &v
6463	return s
6464}
6465
6466// SetSystemInstanceId sets the SystemInstanceId field's value.
6467func (s *SearchFlowExecutionsInput) SetSystemInstanceId(v string) *SearchFlowExecutionsInput {
6468	s.SystemInstanceId = &v
6469	return s
6470}
6471
6472type SearchFlowExecutionsOutput struct {
6473	_ struct{} `type:"structure"`
6474
6475	// The string to specify as nextToken when you request the next page of results.
6476	NextToken *string `locationName:"nextToken" type:"string"`
6477
6478	// An array of objects that contain summary information about each workflow
6479	// execution in the result set.
6480	Summaries []*FlowExecutionSummary `locationName:"summaries" type:"list"`
6481}
6482
6483// String returns the string representation
6484func (s SearchFlowExecutionsOutput) String() string {
6485	return awsutil.Prettify(s)
6486}
6487
6488// GoString returns the string representation
6489func (s SearchFlowExecutionsOutput) GoString() string {
6490	return s.String()
6491}
6492
6493// SetNextToken sets the NextToken field's value.
6494func (s *SearchFlowExecutionsOutput) SetNextToken(v string) *SearchFlowExecutionsOutput {
6495	s.NextToken = &v
6496	return s
6497}
6498
6499// SetSummaries sets the Summaries field's value.
6500func (s *SearchFlowExecutionsOutput) SetSummaries(v []*FlowExecutionSummary) *SearchFlowExecutionsOutput {
6501	s.Summaries = v
6502	return s
6503}
6504
6505type SearchFlowTemplatesInput struct {
6506	_ struct{} `type:"structure"`
6507
6508	// An array of objects that limit the result set. The only valid filter is DEVICE_MODEL_ID.
6509	Filters []*FlowTemplateFilter `locationName:"filters" type:"list"`
6510
6511	// The maximum number of results to return in the response.
6512	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
6513
6514	// The string that specifies the next page of results. Use this when you're
6515	// paginating results.
6516	NextToken *string `locationName:"nextToken" type:"string"`
6517}
6518
6519// String returns the string representation
6520func (s SearchFlowTemplatesInput) String() string {
6521	return awsutil.Prettify(s)
6522}
6523
6524// GoString returns the string representation
6525func (s SearchFlowTemplatesInput) GoString() string {
6526	return s.String()
6527}
6528
6529// Validate inspects the fields of the type to determine if they are valid.
6530func (s *SearchFlowTemplatesInput) Validate() error {
6531	invalidParams := request.ErrInvalidParams{Context: "SearchFlowTemplatesInput"}
6532	if s.MaxResults != nil && *s.MaxResults < 1 {
6533		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6534	}
6535	if s.Filters != nil {
6536		for i, v := range s.Filters {
6537			if v == nil {
6538				continue
6539			}
6540			if err := v.Validate(); err != nil {
6541				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
6542			}
6543		}
6544	}
6545
6546	if invalidParams.Len() > 0 {
6547		return invalidParams
6548	}
6549	return nil
6550}
6551
6552// SetFilters sets the Filters field's value.
6553func (s *SearchFlowTemplatesInput) SetFilters(v []*FlowTemplateFilter) *SearchFlowTemplatesInput {
6554	s.Filters = v
6555	return s
6556}
6557
6558// SetMaxResults sets the MaxResults field's value.
6559func (s *SearchFlowTemplatesInput) SetMaxResults(v int64) *SearchFlowTemplatesInput {
6560	s.MaxResults = &v
6561	return s
6562}
6563
6564// SetNextToken sets the NextToken field's value.
6565func (s *SearchFlowTemplatesInput) SetNextToken(v string) *SearchFlowTemplatesInput {
6566	s.NextToken = &v
6567	return s
6568}
6569
6570type SearchFlowTemplatesOutput struct {
6571	_ struct{} `type:"structure"`
6572
6573	// The string to specify as nextToken when you request the next page of results.
6574	NextToken *string `locationName:"nextToken" type:"string"`
6575
6576	// An array of objects that contain summary information about each workflow
6577	// in the result set.
6578	Summaries []*FlowTemplateSummary `locationName:"summaries" type:"list"`
6579}
6580
6581// String returns the string representation
6582func (s SearchFlowTemplatesOutput) String() string {
6583	return awsutil.Prettify(s)
6584}
6585
6586// GoString returns the string representation
6587func (s SearchFlowTemplatesOutput) GoString() string {
6588	return s.String()
6589}
6590
6591// SetNextToken sets the NextToken field's value.
6592func (s *SearchFlowTemplatesOutput) SetNextToken(v string) *SearchFlowTemplatesOutput {
6593	s.NextToken = &v
6594	return s
6595}
6596
6597// SetSummaries sets the Summaries field's value.
6598func (s *SearchFlowTemplatesOutput) SetSummaries(v []*FlowTemplateSummary) *SearchFlowTemplatesOutput {
6599	s.Summaries = v
6600	return s
6601}
6602
6603type SearchSystemInstancesInput struct {
6604	_ struct{} `type:"structure"`
6605
6606	// Optional filter to apply to the search. Valid filters are SYSTEM_TEMPLATE_ID,
6607	// STATUS, and GREENGRASS_GROUP_NAME.
6608	//
6609	// Multiple filters function as OR criteria in the query. Multiple values passed
6610	// inside the filter function as AND criteria.
6611	Filters []*SystemInstanceFilter `locationName:"filters" type:"list"`
6612
6613	// The maximum number of results to return in the response.
6614	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
6615
6616	// The string that specifies the next page of results. Use this when you're
6617	// paginating results.
6618	NextToken *string `locationName:"nextToken" type:"string"`
6619}
6620
6621// String returns the string representation
6622func (s SearchSystemInstancesInput) String() string {
6623	return awsutil.Prettify(s)
6624}
6625
6626// GoString returns the string representation
6627func (s SearchSystemInstancesInput) GoString() string {
6628	return s.String()
6629}
6630
6631// Validate inspects the fields of the type to determine if they are valid.
6632func (s *SearchSystemInstancesInput) Validate() error {
6633	invalidParams := request.ErrInvalidParams{Context: "SearchSystemInstancesInput"}
6634	if s.MaxResults != nil && *s.MaxResults < 1 {
6635		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6636	}
6637
6638	if invalidParams.Len() > 0 {
6639		return invalidParams
6640	}
6641	return nil
6642}
6643
6644// SetFilters sets the Filters field's value.
6645func (s *SearchSystemInstancesInput) SetFilters(v []*SystemInstanceFilter) *SearchSystemInstancesInput {
6646	s.Filters = v
6647	return s
6648}
6649
6650// SetMaxResults sets the MaxResults field's value.
6651func (s *SearchSystemInstancesInput) SetMaxResults(v int64) *SearchSystemInstancesInput {
6652	s.MaxResults = &v
6653	return s
6654}
6655
6656// SetNextToken sets the NextToken field's value.
6657func (s *SearchSystemInstancesInput) SetNextToken(v string) *SearchSystemInstancesInput {
6658	s.NextToken = &v
6659	return s
6660}
6661
6662type SearchSystemInstancesOutput struct {
6663	_ struct{} `type:"structure"`
6664
6665	// The string to specify as nextToken when you request the next page of results.
6666	NextToken *string `locationName:"nextToken" type:"string"`
6667
6668	// An array of objects that contain summary data abour the system instances
6669	// in the result set.
6670	Summaries []*SystemInstanceSummary `locationName:"summaries" type:"list"`
6671}
6672
6673// String returns the string representation
6674func (s SearchSystemInstancesOutput) String() string {
6675	return awsutil.Prettify(s)
6676}
6677
6678// GoString returns the string representation
6679func (s SearchSystemInstancesOutput) GoString() string {
6680	return s.String()
6681}
6682
6683// SetNextToken sets the NextToken field's value.
6684func (s *SearchSystemInstancesOutput) SetNextToken(v string) *SearchSystemInstancesOutput {
6685	s.NextToken = &v
6686	return s
6687}
6688
6689// SetSummaries sets the Summaries field's value.
6690func (s *SearchSystemInstancesOutput) SetSummaries(v []*SystemInstanceSummary) *SearchSystemInstancesOutput {
6691	s.Summaries = v
6692	return s
6693}
6694
6695type SearchSystemTemplatesInput struct {
6696	_ struct{} `type:"structure"`
6697
6698	// An array of filters that limit the result set. The only valid filter is FLOW_TEMPLATE_ID.
6699	Filters []*SystemTemplateFilter `locationName:"filters" type:"list"`
6700
6701	// The maximum number of results to return in the response.
6702	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
6703
6704	// The string that specifies the next page of results. Use this when you're
6705	// paginating results.
6706	NextToken *string `locationName:"nextToken" type:"string"`
6707}
6708
6709// String returns the string representation
6710func (s SearchSystemTemplatesInput) String() string {
6711	return awsutil.Prettify(s)
6712}
6713
6714// GoString returns the string representation
6715func (s SearchSystemTemplatesInput) GoString() string {
6716	return s.String()
6717}
6718
6719// Validate inspects the fields of the type to determine if they are valid.
6720func (s *SearchSystemTemplatesInput) Validate() error {
6721	invalidParams := request.ErrInvalidParams{Context: "SearchSystemTemplatesInput"}
6722	if s.MaxResults != nil && *s.MaxResults < 1 {
6723		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6724	}
6725	if s.Filters != nil {
6726		for i, v := range s.Filters {
6727			if v == nil {
6728				continue
6729			}
6730			if err := v.Validate(); err != nil {
6731				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
6732			}
6733		}
6734	}
6735
6736	if invalidParams.Len() > 0 {
6737		return invalidParams
6738	}
6739	return nil
6740}
6741
6742// SetFilters sets the Filters field's value.
6743func (s *SearchSystemTemplatesInput) SetFilters(v []*SystemTemplateFilter) *SearchSystemTemplatesInput {
6744	s.Filters = v
6745	return s
6746}
6747
6748// SetMaxResults sets the MaxResults field's value.
6749func (s *SearchSystemTemplatesInput) SetMaxResults(v int64) *SearchSystemTemplatesInput {
6750	s.MaxResults = &v
6751	return s
6752}
6753
6754// SetNextToken sets the NextToken field's value.
6755func (s *SearchSystemTemplatesInput) SetNextToken(v string) *SearchSystemTemplatesInput {
6756	s.NextToken = &v
6757	return s
6758}
6759
6760type SearchSystemTemplatesOutput struct {
6761	_ struct{} `type:"structure"`
6762
6763	// The string to specify as nextToken when you request the next page of results.
6764	NextToken *string `locationName:"nextToken" type:"string"`
6765
6766	// An array of objects that contain summary information about each system deployment
6767	// in the result set.
6768	Summaries []*SystemTemplateSummary `locationName:"summaries" type:"list"`
6769}
6770
6771// String returns the string representation
6772func (s SearchSystemTemplatesOutput) String() string {
6773	return awsutil.Prettify(s)
6774}
6775
6776// GoString returns the string representation
6777func (s SearchSystemTemplatesOutput) GoString() string {
6778	return s.String()
6779}
6780
6781// SetNextToken sets the NextToken field's value.
6782func (s *SearchSystemTemplatesOutput) SetNextToken(v string) *SearchSystemTemplatesOutput {
6783	s.NextToken = &v
6784	return s
6785}
6786
6787// SetSummaries sets the Summaries field's value.
6788func (s *SearchSystemTemplatesOutput) SetSummaries(v []*SystemTemplateSummary) *SearchSystemTemplatesOutput {
6789	s.Summaries = v
6790	return s
6791}
6792
6793type SearchThingsInput struct {
6794	_ struct{} `type:"structure"`
6795
6796	// The ID of the entity to which the things are associated.
6797	//
6798	// The IDs should be in the following format.
6799	//
6800	// urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME
6801	//
6802	// EntityId is a required field
6803	EntityId *string `locationName:"entityId" type:"string" required:"true"`
6804
6805	// The maximum number of results to return in the response.
6806	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
6807
6808	// The version of the user's namespace. Defaults to the latest version of the
6809	// user's namespace.
6810	NamespaceVersion *int64 `locationName:"namespaceVersion" type:"long"`
6811
6812	// The string that specifies the next page of results. Use this when you're
6813	// paginating results.
6814	NextToken *string `locationName:"nextToken" type:"string"`
6815}
6816
6817// String returns the string representation
6818func (s SearchThingsInput) String() string {
6819	return awsutil.Prettify(s)
6820}
6821
6822// GoString returns the string representation
6823func (s SearchThingsInput) GoString() string {
6824	return s.String()
6825}
6826
6827// Validate inspects the fields of the type to determine if they are valid.
6828func (s *SearchThingsInput) Validate() error {
6829	invalidParams := request.ErrInvalidParams{Context: "SearchThingsInput"}
6830	if s.EntityId == nil {
6831		invalidParams.Add(request.NewErrParamRequired("EntityId"))
6832	}
6833	if s.MaxResults != nil && *s.MaxResults < 1 {
6834		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6835	}
6836
6837	if invalidParams.Len() > 0 {
6838		return invalidParams
6839	}
6840	return nil
6841}
6842
6843// SetEntityId sets the EntityId field's value.
6844func (s *SearchThingsInput) SetEntityId(v string) *SearchThingsInput {
6845	s.EntityId = &v
6846	return s
6847}
6848
6849// SetMaxResults sets the MaxResults field's value.
6850func (s *SearchThingsInput) SetMaxResults(v int64) *SearchThingsInput {
6851	s.MaxResults = &v
6852	return s
6853}
6854
6855// SetNamespaceVersion sets the NamespaceVersion field's value.
6856func (s *SearchThingsInput) SetNamespaceVersion(v int64) *SearchThingsInput {
6857	s.NamespaceVersion = &v
6858	return s
6859}
6860
6861// SetNextToken sets the NextToken field's value.
6862func (s *SearchThingsInput) SetNextToken(v string) *SearchThingsInput {
6863	s.NextToken = &v
6864	return s
6865}
6866
6867type SearchThingsOutput struct {
6868	_ struct{} `type:"structure"`
6869
6870	// The string to specify as nextToken when you request the next page of results.
6871	NextToken *string `locationName:"nextToken" type:"string"`
6872
6873	// An array of things in the result set.
6874	Things []*Thing `locationName:"things" type:"list"`
6875}
6876
6877// String returns the string representation
6878func (s SearchThingsOutput) String() string {
6879	return awsutil.Prettify(s)
6880}
6881
6882// GoString returns the string representation
6883func (s SearchThingsOutput) GoString() string {
6884	return s.String()
6885}
6886
6887// SetNextToken sets the NextToken field's value.
6888func (s *SearchThingsOutput) SetNextToken(v string) *SearchThingsOutput {
6889	s.NextToken = &v
6890	return s
6891}
6892
6893// SetThings sets the Things field's value.
6894func (s *SearchThingsOutput) SetThings(v []*Thing) *SearchThingsOutput {
6895	s.Things = v
6896	return s
6897}
6898
6899// An object that contains a system instance definition and summary information.
6900type SystemInstanceDescription struct {
6901	_ struct{} `type:"structure"`
6902
6903	// A document that defines an entity.
6904	Definition *DefinitionDocument `locationName:"definition" type:"structure"`
6905
6906	// The AWS Identity and Access Management (IAM) role that AWS IoT Things Graph
6907	// assumes during flow execution in a cloud deployment. This role must have
6908	// read and write permissionss to AWS Lambda and AWS IoT and to any other AWS
6909	// services that the flow uses.
6910	FlowActionsRoleArn *string `locationName:"flowActionsRoleArn" min:"20" type:"string"`
6911
6912	// An object that specifies whether cloud metrics are collected in a deployment
6913	// and, if so, what role is used to collect metrics.
6914	MetricsConfiguration *MetricsConfiguration `locationName:"metricsConfiguration" type:"structure"`
6915
6916	// The Amazon Simple Storage Service bucket where information about a system
6917	// instance is stored.
6918	S3BucketName *string `locationName:"s3BucketName" type:"string"`
6919
6920	// An object that contains summary information about a system instance.
6921	Summary *SystemInstanceSummary `locationName:"summary" type:"structure"`
6922
6923	// A list of objects that contain all of the IDs and revision numbers of workflows
6924	// and systems that are used in a system instance.
6925	ValidatedDependencyRevisions []*DependencyRevision `locationName:"validatedDependencyRevisions" type:"list"`
6926
6927	// The version of the user's namespace against which the system instance was
6928	// validated.
6929	ValidatedNamespaceVersion *int64 `locationName:"validatedNamespaceVersion" type:"long"`
6930}
6931
6932// String returns the string representation
6933func (s SystemInstanceDescription) String() string {
6934	return awsutil.Prettify(s)
6935}
6936
6937// GoString returns the string representation
6938func (s SystemInstanceDescription) GoString() string {
6939	return s.String()
6940}
6941
6942// SetDefinition sets the Definition field's value.
6943func (s *SystemInstanceDescription) SetDefinition(v *DefinitionDocument) *SystemInstanceDescription {
6944	s.Definition = v
6945	return s
6946}
6947
6948// SetFlowActionsRoleArn sets the FlowActionsRoleArn field's value.
6949func (s *SystemInstanceDescription) SetFlowActionsRoleArn(v string) *SystemInstanceDescription {
6950	s.FlowActionsRoleArn = &v
6951	return s
6952}
6953
6954// SetMetricsConfiguration sets the MetricsConfiguration field's value.
6955func (s *SystemInstanceDescription) SetMetricsConfiguration(v *MetricsConfiguration) *SystemInstanceDescription {
6956	s.MetricsConfiguration = v
6957	return s
6958}
6959
6960// SetS3BucketName sets the S3BucketName field's value.
6961func (s *SystemInstanceDescription) SetS3BucketName(v string) *SystemInstanceDescription {
6962	s.S3BucketName = &v
6963	return s
6964}
6965
6966// SetSummary sets the Summary field's value.
6967func (s *SystemInstanceDescription) SetSummary(v *SystemInstanceSummary) *SystemInstanceDescription {
6968	s.Summary = v
6969	return s
6970}
6971
6972// SetValidatedDependencyRevisions sets the ValidatedDependencyRevisions field's value.
6973func (s *SystemInstanceDescription) SetValidatedDependencyRevisions(v []*DependencyRevision) *SystemInstanceDescription {
6974	s.ValidatedDependencyRevisions = v
6975	return s
6976}
6977
6978// SetValidatedNamespaceVersion sets the ValidatedNamespaceVersion field's value.
6979func (s *SystemInstanceDescription) SetValidatedNamespaceVersion(v int64) *SystemInstanceDescription {
6980	s.ValidatedNamespaceVersion = &v
6981	return s
6982}
6983
6984// An object that filters a system instance search. Multiple filters function
6985// as OR criteria in the search. For example a search that includes a GREENGRASS_GROUP_NAME
6986// and a STATUS filter searches for system instances in the specified Greengrass
6987// group that have the specified status.
6988type SystemInstanceFilter struct {
6989	_ struct{} `type:"structure"`
6990
6991	// The name of the search filter field.
6992	Name *string `locationName:"name" type:"string" enum:"SystemInstanceFilterName"`
6993
6994	// An array of string values for the search filter field. Multiple values function
6995	// as AND criteria in the search.
6996	Value []*string `locationName:"value" type:"list"`
6997}
6998
6999// String returns the string representation
7000func (s SystemInstanceFilter) String() string {
7001	return awsutil.Prettify(s)
7002}
7003
7004// GoString returns the string representation
7005func (s SystemInstanceFilter) GoString() string {
7006	return s.String()
7007}
7008
7009// SetName sets the Name field's value.
7010func (s *SystemInstanceFilter) SetName(v string) *SystemInstanceFilter {
7011	s.Name = &v
7012	return s
7013}
7014
7015// SetValue sets the Value field's value.
7016func (s *SystemInstanceFilter) SetValue(v []*string) *SystemInstanceFilter {
7017	s.Value = v
7018	return s
7019}
7020
7021// An object that contains summary information about a system instance.
7022type SystemInstanceSummary struct {
7023	_ struct{} `type:"structure"`
7024
7025	// The ARN of the system instance.
7026	Arn *string `locationName:"arn" type:"string"`
7027
7028	// The date when the system instance was created.
7029	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
7030
7031	// The ID of the Greengrass group where the system instance is deployed.
7032	GreengrassGroupId *string `locationName:"greengrassGroupId" type:"string"`
7033
7034	// The ID of the Greengrass group where the system instance is deployed.
7035	GreengrassGroupName *string `locationName:"greengrassGroupName" type:"string"`
7036
7037	// The version of the Greengrass group where the system instance is deployed.
7038	GreengrassGroupVersionId *string `locationName:"greengrassGroupVersionId" type:"string"`
7039
7040	// The ID of the system instance.
7041	Id *string `locationName:"id" type:"string"`
7042
7043	// The status of the system instance.
7044	Status *string `locationName:"status" type:"string" enum:"SystemInstanceDeploymentStatus"`
7045
7046	// The target of the system instance.
7047	Target *string `locationName:"target" type:"string" enum:"DeploymentTarget"`
7048
7049	// The date and time when the system instance was last updated.
7050	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
7051}
7052
7053// String returns the string representation
7054func (s SystemInstanceSummary) String() string {
7055	return awsutil.Prettify(s)
7056}
7057
7058// GoString returns the string representation
7059func (s SystemInstanceSummary) GoString() string {
7060	return s.String()
7061}
7062
7063// SetArn sets the Arn field's value.
7064func (s *SystemInstanceSummary) SetArn(v string) *SystemInstanceSummary {
7065	s.Arn = &v
7066	return s
7067}
7068
7069// SetCreatedAt sets the CreatedAt field's value.
7070func (s *SystemInstanceSummary) SetCreatedAt(v time.Time) *SystemInstanceSummary {
7071	s.CreatedAt = &v
7072	return s
7073}
7074
7075// SetGreengrassGroupId sets the GreengrassGroupId field's value.
7076func (s *SystemInstanceSummary) SetGreengrassGroupId(v string) *SystemInstanceSummary {
7077	s.GreengrassGroupId = &v
7078	return s
7079}
7080
7081// SetGreengrassGroupName sets the GreengrassGroupName field's value.
7082func (s *SystemInstanceSummary) SetGreengrassGroupName(v string) *SystemInstanceSummary {
7083	s.GreengrassGroupName = &v
7084	return s
7085}
7086
7087// SetGreengrassGroupVersionId sets the GreengrassGroupVersionId field's value.
7088func (s *SystemInstanceSummary) SetGreengrassGroupVersionId(v string) *SystemInstanceSummary {
7089	s.GreengrassGroupVersionId = &v
7090	return s
7091}
7092
7093// SetId sets the Id field's value.
7094func (s *SystemInstanceSummary) SetId(v string) *SystemInstanceSummary {
7095	s.Id = &v
7096	return s
7097}
7098
7099// SetStatus sets the Status field's value.
7100func (s *SystemInstanceSummary) SetStatus(v string) *SystemInstanceSummary {
7101	s.Status = &v
7102	return s
7103}
7104
7105// SetTarget sets the Target field's value.
7106func (s *SystemInstanceSummary) SetTarget(v string) *SystemInstanceSummary {
7107	s.Target = &v
7108	return s
7109}
7110
7111// SetUpdatedAt sets the UpdatedAt field's value.
7112func (s *SystemInstanceSummary) SetUpdatedAt(v time.Time) *SystemInstanceSummary {
7113	s.UpdatedAt = &v
7114	return s
7115}
7116
7117// An object that contains a system's definition document and summary information.
7118type SystemTemplateDescription struct {
7119	_ struct{} `type:"structure"`
7120
7121	// The definition document of a system.
7122	Definition *DefinitionDocument `locationName:"definition" type:"structure"`
7123
7124	// An object that contains summary information about a system.
7125	Summary *SystemTemplateSummary `locationName:"summary" type:"structure"`
7126
7127	// The namespace version against which the system was validated. Use this value
7128	// in your system instance.
7129	ValidatedNamespaceVersion *int64 `locationName:"validatedNamespaceVersion" type:"long"`
7130}
7131
7132// String returns the string representation
7133func (s SystemTemplateDescription) String() string {
7134	return awsutil.Prettify(s)
7135}
7136
7137// GoString returns the string representation
7138func (s SystemTemplateDescription) GoString() string {
7139	return s.String()
7140}
7141
7142// SetDefinition sets the Definition field's value.
7143func (s *SystemTemplateDescription) SetDefinition(v *DefinitionDocument) *SystemTemplateDescription {
7144	s.Definition = v
7145	return s
7146}
7147
7148// SetSummary sets the Summary field's value.
7149func (s *SystemTemplateDescription) SetSummary(v *SystemTemplateSummary) *SystemTemplateDescription {
7150	s.Summary = v
7151	return s
7152}
7153
7154// SetValidatedNamespaceVersion sets the ValidatedNamespaceVersion field's value.
7155func (s *SystemTemplateDescription) SetValidatedNamespaceVersion(v int64) *SystemTemplateDescription {
7156	s.ValidatedNamespaceVersion = &v
7157	return s
7158}
7159
7160// An object that filters a system search.
7161type SystemTemplateFilter struct {
7162	_ struct{} `type:"structure"`
7163
7164	// The name of the system search filter field.
7165	//
7166	// Name is a required field
7167	Name *string `locationName:"name" type:"string" required:"true" enum:"SystemTemplateFilterName"`
7168
7169	// An array of string values for the search filter field. Multiple values function
7170	// as AND criteria in the search.
7171	//
7172	// Value is a required field
7173	Value []*string `locationName:"value" type:"list" required:"true"`
7174}
7175
7176// String returns the string representation
7177func (s SystemTemplateFilter) String() string {
7178	return awsutil.Prettify(s)
7179}
7180
7181// GoString returns the string representation
7182func (s SystemTemplateFilter) GoString() string {
7183	return s.String()
7184}
7185
7186// Validate inspects the fields of the type to determine if they are valid.
7187func (s *SystemTemplateFilter) Validate() error {
7188	invalidParams := request.ErrInvalidParams{Context: "SystemTemplateFilter"}
7189	if s.Name == nil {
7190		invalidParams.Add(request.NewErrParamRequired("Name"))
7191	}
7192	if s.Value == nil {
7193		invalidParams.Add(request.NewErrParamRequired("Value"))
7194	}
7195
7196	if invalidParams.Len() > 0 {
7197		return invalidParams
7198	}
7199	return nil
7200}
7201
7202// SetName sets the Name field's value.
7203func (s *SystemTemplateFilter) SetName(v string) *SystemTemplateFilter {
7204	s.Name = &v
7205	return s
7206}
7207
7208// SetValue sets the Value field's value.
7209func (s *SystemTemplateFilter) SetValue(v []*string) *SystemTemplateFilter {
7210	s.Value = v
7211	return s
7212}
7213
7214// An object that contains information about a system.
7215type SystemTemplateSummary struct {
7216	_ struct{} `type:"structure"`
7217
7218	// The ARN of the system.
7219	Arn *string `locationName:"arn" type:"string"`
7220
7221	// The date when the system was created.
7222	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
7223
7224	// The ID of the system.
7225	Id *string `locationName:"id" type:"string"`
7226
7227	// The revision number of the system.
7228	RevisionNumber *int64 `locationName:"revisionNumber" type:"long"`
7229}
7230
7231// String returns the string representation
7232func (s SystemTemplateSummary) String() string {
7233	return awsutil.Prettify(s)
7234}
7235
7236// GoString returns the string representation
7237func (s SystemTemplateSummary) GoString() string {
7238	return s.String()
7239}
7240
7241// SetArn sets the Arn field's value.
7242func (s *SystemTemplateSummary) SetArn(v string) *SystemTemplateSummary {
7243	s.Arn = &v
7244	return s
7245}
7246
7247// SetCreatedAt sets the CreatedAt field's value.
7248func (s *SystemTemplateSummary) SetCreatedAt(v time.Time) *SystemTemplateSummary {
7249	s.CreatedAt = &v
7250	return s
7251}
7252
7253// SetId sets the Id field's value.
7254func (s *SystemTemplateSummary) SetId(v string) *SystemTemplateSummary {
7255	s.Id = &v
7256	return s
7257}
7258
7259// SetRevisionNumber sets the RevisionNumber field's value.
7260func (s *SystemTemplateSummary) SetRevisionNumber(v int64) *SystemTemplateSummary {
7261	s.RevisionNumber = &v
7262	return s
7263}
7264
7265// Metadata assigned to an AWS IoT Things Graph resource consisting of a key-value
7266// pair.
7267type Tag struct {
7268	_ struct{} `type:"structure"`
7269
7270	// The required name of the tag. The string value can be from 1 to 128 Unicode
7271	// characters in length.
7272	//
7273	// Key is a required field
7274	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
7275
7276	// The optional value of the tag. The string value can be from 1 to 256 Unicode
7277	// characters in length.
7278	//
7279	// Value is a required field
7280	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
7281}
7282
7283// String returns the string representation
7284func (s Tag) String() string {
7285	return awsutil.Prettify(s)
7286}
7287
7288// GoString returns the string representation
7289func (s Tag) GoString() string {
7290	return s.String()
7291}
7292
7293// Validate inspects the fields of the type to determine if they are valid.
7294func (s *Tag) Validate() error {
7295	invalidParams := request.ErrInvalidParams{Context: "Tag"}
7296	if s.Key == nil {
7297		invalidParams.Add(request.NewErrParamRequired("Key"))
7298	}
7299	if s.Key != nil && len(*s.Key) < 1 {
7300		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7301	}
7302	if s.Value == nil {
7303		invalidParams.Add(request.NewErrParamRequired("Value"))
7304	}
7305	if s.Value != nil && len(*s.Value) < 1 {
7306		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
7307	}
7308
7309	if invalidParams.Len() > 0 {
7310		return invalidParams
7311	}
7312	return nil
7313}
7314
7315// SetKey sets the Key field's value.
7316func (s *Tag) SetKey(v string) *Tag {
7317	s.Key = &v
7318	return s
7319}
7320
7321// SetValue sets the Value field's value.
7322func (s *Tag) SetValue(v string) *Tag {
7323	s.Value = &v
7324	return s
7325}
7326
7327type TagResourceInput struct {
7328	_ struct{} `type:"structure"`
7329
7330	// The Amazon Resource Name (ARN) of the resource whose tags are returned.
7331	//
7332	// ResourceArn is a required field
7333	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`
7334
7335	// A list of tags to add to the resource.>
7336	//
7337	// Tags is a required field
7338	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
7339}
7340
7341// String returns the string representation
7342func (s TagResourceInput) String() string {
7343	return awsutil.Prettify(s)
7344}
7345
7346// GoString returns the string representation
7347func (s TagResourceInput) GoString() string {
7348	return s.String()
7349}
7350
7351// Validate inspects the fields of the type to determine if they are valid.
7352func (s *TagResourceInput) Validate() error {
7353	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
7354	if s.ResourceArn == nil {
7355		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7356	}
7357	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
7358		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
7359	}
7360	if s.Tags == nil {
7361		invalidParams.Add(request.NewErrParamRequired("Tags"))
7362	}
7363	if s.Tags != nil {
7364		for i, v := range s.Tags {
7365			if v == nil {
7366				continue
7367			}
7368			if err := v.Validate(); err != nil {
7369				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7370			}
7371		}
7372	}
7373
7374	if invalidParams.Len() > 0 {
7375		return invalidParams
7376	}
7377	return nil
7378}
7379
7380// SetResourceArn sets the ResourceArn field's value.
7381func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
7382	s.ResourceArn = &v
7383	return s
7384}
7385
7386// SetTags sets the Tags field's value.
7387func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
7388	s.Tags = v
7389	return s
7390}
7391
7392type TagResourceOutput struct {
7393	_ struct{} `type:"structure"`
7394}
7395
7396// String returns the string representation
7397func (s TagResourceOutput) String() string {
7398	return awsutil.Prettify(s)
7399}
7400
7401// GoString returns the string representation
7402func (s TagResourceOutput) GoString() string {
7403	return s.String()
7404}
7405
7406// An AWS IoT thing.
7407type Thing struct {
7408	_ struct{} `type:"structure"`
7409
7410	// The ARN of the thing.
7411	ThingArn *string `locationName:"thingArn" type:"string"`
7412
7413	// The name of the thing.
7414	ThingName *string `locationName:"thingName" min:"1" type:"string"`
7415}
7416
7417// String returns the string representation
7418func (s Thing) String() string {
7419	return awsutil.Prettify(s)
7420}
7421
7422// GoString returns the string representation
7423func (s Thing) GoString() string {
7424	return s.String()
7425}
7426
7427// SetThingArn sets the ThingArn field's value.
7428func (s *Thing) SetThingArn(v string) *Thing {
7429	s.ThingArn = &v
7430	return s
7431}
7432
7433// SetThingName sets the ThingName field's value.
7434func (s *Thing) SetThingName(v string) *Thing {
7435	s.ThingName = &v
7436	return s
7437}
7438
7439type ThrottlingException struct {
7440	_            struct{}                  `type:"structure"`
7441	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7442
7443	Message_ *string `locationName:"message" type:"string"`
7444}
7445
7446// String returns the string representation
7447func (s ThrottlingException) String() string {
7448	return awsutil.Prettify(s)
7449}
7450
7451// GoString returns the string representation
7452func (s ThrottlingException) GoString() string {
7453	return s.String()
7454}
7455
7456func newErrorThrottlingException(v protocol.ResponseMetadata) error {
7457	return &ThrottlingException{
7458		RespMetadata: v,
7459	}
7460}
7461
7462// Code returns the exception type name.
7463func (s *ThrottlingException) Code() string {
7464	return "ThrottlingException"
7465}
7466
7467// Message returns the exception's message.
7468func (s *ThrottlingException) Message() string {
7469	if s.Message_ != nil {
7470		return *s.Message_
7471	}
7472	return ""
7473}
7474
7475// OrigErr always returns nil, satisfies awserr.Error interface.
7476func (s *ThrottlingException) OrigErr() error {
7477	return nil
7478}
7479
7480func (s *ThrottlingException) Error() string {
7481	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7482}
7483
7484// Status code returns the HTTP status code for the request's response error.
7485func (s *ThrottlingException) StatusCode() int {
7486	return s.RespMetadata.StatusCode
7487}
7488
7489// RequestID returns the service's response RequestID for request.
7490func (s *ThrottlingException) RequestID() string {
7491	return s.RespMetadata.RequestID
7492}
7493
7494type UndeploySystemInstanceInput struct {
7495	_ struct{} `type:"structure"`
7496
7497	// The ID of the system instance to remove from its target.
7498	Id *string `locationName:"id" type:"string"`
7499}
7500
7501// String returns the string representation
7502func (s UndeploySystemInstanceInput) String() string {
7503	return awsutil.Prettify(s)
7504}
7505
7506// GoString returns the string representation
7507func (s UndeploySystemInstanceInput) GoString() string {
7508	return s.String()
7509}
7510
7511// SetId sets the Id field's value.
7512func (s *UndeploySystemInstanceInput) SetId(v string) *UndeploySystemInstanceInput {
7513	s.Id = &v
7514	return s
7515}
7516
7517type UndeploySystemInstanceOutput struct {
7518	_ struct{} `type:"structure"`
7519
7520	// An object that contains summary information about the system instance that
7521	// was removed from its target.
7522	Summary *SystemInstanceSummary `locationName:"summary" type:"structure"`
7523}
7524
7525// String returns the string representation
7526func (s UndeploySystemInstanceOutput) String() string {
7527	return awsutil.Prettify(s)
7528}
7529
7530// GoString returns the string representation
7531func (s UndeploySystemInstanceOutput) GoString() string {
7532	return s.String()
7533}
7534
7535// SetSummary sets the Summary field's value.
7536func (s *UndeploySystemInstanceOutput) SetSummary(v *SystemInstanceSummary) *UndeploySystemInstanceOutput {
7537	s.Summary = v
7538	return s
7539}
7540
7541type UntagResourceInput struct {
7542	_ struct{} `type:"structure"`
7543
7544	// The Amazon Resource Name (ARN) of the resource whose tags are to be removed.
7545	//
7546	// ResourceArn is a required field
7547	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`
7548
7549	// A list of tag key names to remove from the resource. You don't specify the
7550	// value. Both the key and its associated value are removed.
7551	//
7552	// This parameter to the API requires a JSON text string argument. For information
7553	// on how to format a JSON parameter for the various command line tool environments,
7554	// see Using JSON for Parameters (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html#cli-using-param-json)
7555	// in the AWS CLI User Guide.
7556	//
7557	// TagKeys is a required field
7558	TagKeys []*string `locationName:"tagKeys" min:"1" type:"list" required:"true"`
7559}
7560
7561// String returns the string representation
7562func (s UntagResourceInput) String() string {
7563	return awsutil.Prettify(s)
7564}
7565
7566// GoString returns the string representation
7567func (s UntagResourceInput) GoString() string {
7568	return s.String()
7569}
7570
7571// Validate inspects the fields of the type to determine if they are valid.
7572func (s *UntagResourceInput) Validate() error {
7573	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
7574	if s.ResourceArn == nil {
7575		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7576	}
7577	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
7578		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
7579	}
7580	if s.TagKeys == nil {
7581		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
7582	}
7583	if s.TagKeys != nil && len(s.TagKeys) < 1 {
7584		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
7585	}
7586
7587	if invalidParams.Len() > 0 {
7588		return invalidParams
7589	}
7590	return nil
7591}
7592
7593// SetResourceArn sets the ResourceArn field's value.
7594func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
7595	s.ResourceArn = &v
7596	return s
7597}
7598
7599// SetTagKeys sets the TagKeys field's value.
7600func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
7601	s.TagKeys = v
7602	return s
7603}
7604
7605type UntagResourceOutput struct {
7606	_ struct{} `type:"structure"`
7607}
7608
7609// String returns the string representation
7610func (s UntagResourceOutput) String() string {
7611	return awsutil.Prettify(s)
7612}
7613
7614// GoString returns the string representation
7615func (s UntagResourceOutput) GoString() string {
7616	return s.String()
7617}
7618
7619type UpdateFlowTemplateInput struct {
7620	_ struct{} `type:"structure"`
7621
7622	// The version of the user's namespace.
7623	//
7624	// If no value is specified, the latest version is used by default. Use the
7625	// GetFlowTemplateRevisions if you want to find earlier revisions of the flow
7626	// to update.
7627	CompatibleNamespaceVersion *int64 `locationName:"compatibleNamespaceVersion" type:"long"`
7628
7629	// The DefinitionDocument that contains the updated workflow definition.
7630	//
7631	// Definition is a required field
7632	Definition *DefinitionDocument `locationName:"definition" type:"structure" required:"true"`
7633
7634	// The ID of the workflow to be updated.
7635	//
7636	// The ID should be in the following format.
7637	//
7638	// urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME
7639	//
7640	// Id is a required field
7641	Id *string `locationName:"id" type:"string" required:"true"`
7642}
7643
7644// String returns the string representation
7645func (s UpdateFlowTemplateInput) String() string {
7646	return awsutil.Prettify(s)
7647}
7648
7649// GoString returns the string representation
7650func (s UpdateFlowTemplateInput) GoString() string {
7651	return s.String()
7652}
7653
7654// Validate inspects the fields of the type to determine if they are valid.
7655func (s *UpdateFlowTemplateInput) Validate() error {
7656	invalidParams := request.ErrInvalidParams{Context: "UpdateFlowTemplateInput"}
7657	if s.Definition == nil {
7658		invalidParams.Add(request.NewErrParamRequired("Definition"))
7659	}
7660	if s.Id == nil {
7661		invalidParams.Add(request.NewErrParamRequired("Id"))
7662	}
7663	if s.Definition != nil {
7664		if err := s.Definition.Validate(); err != nil {
7665			invalidParams.AddNested("Definition", err.(request.ErrInvalidParams))
7666		}
7667	}
7668
7669	if invalidParams.Len() > 0 {
7670		return invalidParams
7671	}
7672	return nil
7673}
7674
7675// SetCompatibleNamespaceVersion sets the CompatibleNamespaceVersion field's value.
7676func (s *UpdateFlowTemplateInput) SetCompatibleNamespaceVersion(v int64) *UpdateFlowTemplateInput {
7677	s.CompatibleNamespaceVersion = &v
7678	return s
7679}
7680
7681// SetDefinition sets the Definition field's value.
7682func (s *UpdateFlowTemplateInput) SetDefinition(v *DefinitionDocument) *UpdateFlowTemplateInput {
7683	s.Definition = v
7684	return s
7685}
7686
7687// SetId sets the Id field's value.
7688func (s *UpdateFlowTemplateInput) SetId(v string) *UpdateFlowTemplateInput {
7689	s.Id = &v
7690	return s
7691}
7692
7693type UpdateFlowTemplateOutput struct {
7694	_ struct{} `type:"structure"`
7695
7696	// An object containing summary information about the updated workflow.
7697	Summary *FlowTemplateSummary `locationName:"summary" type:"structure"`
7698}
7699
7700// String returns the string representation
7701func (s UpdateFlowTemplateOutput) String() string {
7702	return awsutil.Prettify(s)
7703}
7704
7705// GoString returns the string representation
7706func (s UpdateFlowTemplateOutput) GoString() string {
7707	return s.String()
7708}
7709
7710// SetSummary sets the Summary field's value.
7711func (s *UpdateFlowTemplateOutput) SetSummary(v *FlowTemplateSummary) *UpdateFlowTemplateOutput {
7712	s.Summary = v
7713	return s
7714}
7715
7716type UpdateSystemTemplateInput struct {
7717	_ struct{} `type:"structure"`
7718
7719	// The version of the user's namespace. Defaults to the latest version of the
7720	// user's namespace.
7721	//
7722	// If no value is specified, the latest version is used by default.
7723	CompatibleNamespaceVersion *int64 `locationName:"compatibleNamespaceVersion" type:"long"`
7724
7725	// The DefinitionDocument that contains the updated system definition.
7726	//
7727	// Definition is a required field
7728	Definition *DefinitionDocument `locationName:"definition" type:"structure" required:"true"`
7729
7730	// The ID of the system to be updated.
7731	//
7732	// The ID should be in the following format.
7733	//
7734	// urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME
7735	//
7736	// Id is a required field
7737	Id *string `locationName:"id" type:"string" required:"true"`
7738}
7739
7740// String returns the string representation
7741func (s UpdateSystemTemplateInput) String() string {
7742	return awsutil.Prettify(s)
7743}
7744
7745// GoString returns the string representation
7746func (s UpdateSystemTemplateInput) GoString() string {
7747	return s.String()
7748}
7749
7750// Validate inspects the fields of the type to determine if they are valid.
7751func (s *UpdateSystemTemplateInput) Validate() error {
7752	invalidParams := request.ErrInvalidParams{Context: "UpdateSystemTemplateInput"}
7753	if s.Definition == nil {
7754		invalidParams.Add(request.NewErrParamRequired("Definition"))
7755	}
7756	if s.Id == nil {
7757		invalidParams.Add(request.NewErrParamRequired("Id"))
7758	}
7759	if s.Definition != nil {
7760		if err := s.Definition.Validate(); err != nil {
7761			invalidParams.AddNested("Definition", err.(request.ErrInvalidParams))
7762		}
7763	}
7764
7765	if invalidParams.Len() > 0 {
7766		return invalidParams
7767	}
7768	return nil
7769}
7770
7771// SetCompatibleNamespaceVersion sets the CompatibleNamespaceVersion field's value.
7772func (s *UpdateSystemTemplateInput) SetCompatibleNamespaceVersion(v int64) *UpdateSystemTemplateInput {
7773	s.CompatibleNamespaceVersion = &v
7774	return s
7775}
7776
7777// SetDefinition sets the Definition field's value.
7778func (s *UpdateSystemTemplateInput) SetDefinition(v *DefinitionDocument) *UpdateSystemTemplateInput {
7779	s.Definition = v
7780	return s
7781}
7782
7783// SetId sets the Id field's value.
7784func (s *UpdateSystemTemplateInput) SetId(v string) *UpdateSystemTemplateInput {
7785	s.Id = &v
7786	return s
7787}
7788
7789type UpdateSystemTemplateOutput struct {
7790	_ struct{} `type:"structure"`
7791
7792	// An object containing summary information about the updated system.
7793	Summary *SystemTemplateSummary `locationName:"summary" type:"structure"`
7794}
7795
7796// String returns the string representation
7797func (s UpdateSystemTemplateOutput) String() string {
7798	return awsutil.Prettify(s)
7799}
7800
7801// GoString returns the string representation
7802func (s UpdateSystemTemplateOutput) GoString() string {
7803	return s.String()
7804}
7805
7806// SetSummary sets the Summary field's value.
7807func (s *UpdateSystemTemplateOutput) SetSummary(v *SystemTemplateSummary) *UpdateSystemTemplateOutput {
7808	s.Summary = v
7809	return s
7810}
7811
7812type UploadEntityDefinitionsInput struct {
7813	_ struct{} `type:"structure"`
7814
7815	// A Boolean that specifies whether to deprecate all entities in the latest
7816	// version before uploading the new DefinitionDocument. If set to true, the
7817	// upload will create a new namespace version.
7818	DeprecateExistingEntities *bool `locationName:"deprecateExistingEntities" type:"boolean"`
7819
7820	// The DefinitionDocument that defines the updated entities.
7821	Document *DefinitionDocument `locationName:"document" type:"structure"`
7822
7823	// A Boolean that specifies whether to synchronize with the latest version of
7824	// the public namespace. If set to true, the upload will create a new namespace
7825	// version.
7826	SyncWithPublicNamespace *bool `locationName:"syncWithPublicNamespace" type:"boolean"`
7827}
7828
7829// String returns the string representation
7830func (s UploadEntityDefinitionsInput) String() string {
7831	return awsutil.Prettify(s)
7832}
7833
7834// GoString returns the string representation
7835func (s UploadEntityDefinitionsInput) GoString() string {
7836	return s.String()
7837}
7838
7839// Validate inspects the fields of the type to determine if they are valid.
7840func (s *UploadEntityDefinitionsInput) Validate() error {
7841	invalidParams := request.ErrInvalidParams{Context: "UploadEntityDefinitionsInput"}
7842	if s.Document != nil {
7843		if err := s.Document.Validate(); err != nil {
7844			invalidParams.AddNested("Document", err.(request.ErrInvalidParams))
7845		}
7846	}
7847
7848	if invalidParams.Len() > 0 {
7849		return invalidParams
7850	}
7851	return nil
7852}
7853
7854// SetDeprecateExistingEntities sets the DeprecateExistingEntities field's value.
7855func (s *UploadEntityDefinitionsInput) SetDeprecateExistingEntities(v bool) *UploadEntityDefinitionsInput {
7856	s.DeprecateExistingEntities = &v
7857	return s
7858}
7859
7860// SetDocument sets the Document field's value.
7861func (s *UploadEntityDefinitionsInput) SetDocument(v *DefinitionDocument) *UploadEntityDefinitionsInput {
7862	s.Document = v
7863	return s
7864}
7865
7866// SetSyncWithPublicNamespace sets the SyncWithPublicNamespace field's value.
7867func (s *UploadEntityDefinitionsInput) SetSyncWithPublicNamespace(v bool) *UploadEntityDefinitionsInput {
7868	s.SyncWithPublicNamespace = &v
7869	return s
7870}
7871
7872type UploadEntityDefinitionsOutput struct {
7873	_ struct{} `type:"structure"`
7874
7875	// The ID that specifies the upload action. You can use this to track the status
7876	// of the upload.
7877	//
7878	// UploadId is a required field
7879	UploadId *string `locationName:"uploadId" min:"1" type:"string" required:"true"`
7880}
7881
7882// String returns the string representation
7883func (s UploadEntityDefinitionsOutput) String() string {
7884	return awsutil.Prettify(s)
7885}
7886
7887// GoString returns the string representation
7888func (s UploadEntityDefinitionsOutput) GoString() string {
7889	return s.String()
7890}
7891
7892// SetUploadId sets the UploadId field's value.
7893func (s *UploadEntityDefinitionsOutput) SetUploadId(v string) *UploadEntityDefinitionsOutput {
7894	s.UploadId = &v
7895	return s
7896}
7897
7898const (
7899	// DefinitionLanguageGraphql is a DefinitionLanguage enum value
7900	DefinitionLanguageGraphql = "GRAPHQL"
7901)
7902
7903// DefinitionLanguage_Values returns all elements of the DefinitionLanguage enum
7904func DefinitionLanguage_Values() []string {
7905	return []string{
7906		DefinitionLanguageGraphql,
7907	}
7908}
7909
7910const (
7911	// DeploymentTargetGreengrass is a DeploymentTarget enum value
7912	DeploymentTargetGreengrass = "GREENGRASS"
7913
7914	// DeploymentTargetCloud is a DeploymentTarget enum value
7915	DeploymentTargetCloud = "CLOUD"
7916)
7917
7918// DeploymentTarget_Values returns all elements of the DeploymentTarget enum
7919func DeploymentTarget_Values() []string {
7920	return []string{
7921		DeploymentTargetGreengrass,
7922		DeploymentTargetCloud,
7923	}
7924}
7925
7926const (
7927	// EntityFilterNameName is a EntityFilterName enum value
7928	EntityFilterNameName = "NAME"
7929
7930	// EntityFilterNameNamespace is a EntityFilterName enum value
7931	EntityFilterNameNamespace = "NAMESPACE"
7932
7933	// EntityFilterNameSemanticTypePath is a EntityFilterName enum value
7934	EntityFilterNameSemanticTypePath = "SEMANTIC_TYPE_PATH"
7935
7936	// EntityFilterNameReferencedEntityId is a EntityFilterName enum value
7937	EntityFilterNameReferencedEntityId = "REFERENCED_ENTITY_ID"
7938)
7939
7940// EntityFilterName_Values returns all elements of the EntityFilterName enum
7941func EntityFilterName_Values() []string {
7942	return []string{
7943		EntityFilterNameName,
7944		EntityFilterNameNamespace,
7945		EntityFilterNameSemanticTypePath,
7946		EntityFilterNameReferencedEntityId,
7947	}
7948}
7949
7950const (
7951	// EntityTypeDevice is a EntityType enum value
7952	EntityTypeDevice = "DEVICE"
7953
7954	// EntityTypeService is a EntityType enum value
7955	EntityTypeService = "SERVICE"
7956
7957	// EntityTypeDeviceModel is a EntityType enum value
7958	EntityTypeDeviceModel = "DEVICE_MODEL"
7959
7960	// EntityTypeCapability is a EntityType enum value
7961	EntityTypeCapability = "CAPABILITY"
7962
7963	// EntityTypeState is a EntityType enum value
7964	EntityTypeState = "STATE"
7965
7966	// EntityTypeAction is a EntityType enum value
7967	EntityTypeAction = "ACTION"
7968
7969	// EntityTypeEvent is a EntityType enum value
7970	EntityTypeEvent = "EVENT"
7971
7972	// EntityTypeProperty is a EntityType enum value
7973	EntityTypeProperty = "PROPERTY"
7974
7975	// EntityTypeMapping is a EntityType enum value
7976	EntityTypeMapping = "MAPPING"
7977
7978	// EntityTypeEnum is a EntityType enum value
7979	EntityTypeEnum = "ENUM"
7980)
7981
7982// EntityType_Values returns all elements of the EntityType enum
7983func EntityType_Values() []string {
7984	return []string{
7985		EntityTypeDevice,
7986		EntityTypeService,
7987		EntityTypeDeviceModel,
7988		EntityTypeCapability,
7989		EntityTypeState,
7990		EntityTypeAction,
7991		EntityTypeEvent,
7992		EntityTypeProperty,
7993		EntityTypeMapping,
7994		EntityTypeEnum,
7995	}
7996}
7997
7998const (
7999	// FlowExecutionEventTypeExecutionStarted is a FlowExecutionEventType enum value
8000	FlowExecutionEventTypeExecutionStarted = "EXECUTION_STARTED"
8001
8002	// FlowExecutionEventTypeExecutionFailed is a FlowExecutionEventType enum value
8003	FlowExecutionEventTypeExecutionFailed = "EXECUTION_FAILED"
8004
8005	// FlowExecutionEventTypeExecutionAborted is a FlowExecutionEventType enum value
8006	FlowExecutionEventTypeExecutionAborted = "EXECUTION_ABORTED"
8007
8008	// FlowExecutionEventTypeExecutionSucceeded is a FlowExecutionEventType enum value
8009	FlowExecutionEventTypeExecutionSucceeded = "EXECUTION_SUCCEEDED"
8010
8011	// FlowExecutionEventTypeStepStarted is a FlowExecutionEventType enum value
8012	FlowExecutionEventTypeStepStarted = "STEP_STARTED"
8013
8014	// FlowExecutionEventTypeStepFailed is a FlowExecutionEventType enum value
8015	FlowExecutionEventTypeStepFailed = "STEP_FAILED"
8016
8017	// FlowExecutionEventTypeStepSucceeded is a FlowExecutionEventType enum value
8018	FlowExecutionEventTypeStepSucceeded = "STEP_SUCCEEDED"
8019
8020	// FlowExecutionEventTypeActivityScheduled is a FlowExecutionEventType enum value
8021	FlowExecutionEventTypeActivityScheduled = "ACTIVITY_SCHEDULED"
8022
8023	// FlowExecutionEventTypeActivityStarted is a FlowExecutionEventType enum value
8024	FlowExecutionEventTypeActivityStarted = "ACTIVITY_STARTED"
8025
8026	// FlowExecutionEventTypeActivityFailed is a FlowExecutionEventType enum value
8027	FlowExecutionEventTypeActivityFailed = "ACTIVITY_FAILED"
8028
8029	// FlowExecutionEventTypeActivitySucceeded is a FlowExecutionEventType enum value
8030	FlowExecutionEventTypeActivitySucceeded = "ACTIVITY_SUCCEEDED"
8031
8032	// FlowExecutionEventTypeStartFlowExecutionTask is a FlowExecutionEventType enum value
8033	FlowExecutionEventTypeStartFlowExecutionTask = "START_FLOW_EXECUTION_TASK"
8034
8035	// FlowExecutionEventTypeScheduleNextReadyStepsTask is a FlowExecutionEventType enum value
8036	FlowExecutionEventTypeScheduleNextReadyStepsTask = "SCHEDULE_NEXT_READY_STEPS_TASK"
8037
8038	// FlowExecutionEventTypeThingActionTask is a FlowExecutionEventType enum value
8039	FlowExecutionEventTypeThingActionTask = "THING_ACTION_TASK"
8040
8041	// FlowExecutionEventTypeThingActionTaskFailed is a FlowExecutionEventType enum value
8042	FlowExecutionEventTypeThingActionTaskFailed = "THING_ACTION_TASK_FAILED"
8043
8044	// FlowExecutionEventTypeThingActionTaskSucceeded is a FlowExecutionEventType enum value
8045	FlowExecutionEventTypeThingActionTaskSucceeded = "THING_ACTION_TASK_SUCCEEDED"
8046
8047	// FlowExecutionEventTypeAcknowledgeTaskMessage is a FlowExecutionEventType enum value
8048	FlowExecutionEventTypeAcknowledgeTaskMessage = "ACKNOWLEDGE_TASK_MESSAGE"
8049)
8050
8051// FlowExecutionEventType_Values returns all elements of the FlowExecutionEventType enum
8052func FlowExecutionEventType_Values() []string {
8053	return []string{
8054		FlowExecutionEventTypeExecutionStarted,
8055		FlowExecutionEventTypeExecutionFailed,
8056		FlowExecutionEventTypeExecutionAborted,
8057		FlowExecutionEventTypeExecutionSucceeded,
8058		FlowExecutionEventTypeStepStarted,
8059		FlowExecutionEventTypeStepFailed,
8060		FlowExecutionEventTypeStepSucceeded,
8061		FlowExecutionEventTypeActivityScheduled,
8062		FlowExecutionEventTypeActivityStarted,
8063		FlowExecutionEventTypeActivityFailed,
8064		FlowExecutionEventTypeActivitySucceeded,
8065		FlowExecutionEventTypeStartFlowExecutionTask,
8066		FlowExecutionEventTypeScheduleNextReadyStepsTask,
8067		FlowExecutionEventTypeThingActionTask,
8068		FlowExecutionEventTypeThingActionTaskFailed,
8069		FlowExecutionEventTypeThingActionTaskSucceeded,
8070		FlowExecutionEventTypeAcknowledgeTaskMessage,
8071	}
8072}
8073
8074const (
8075	// FlowExecutionStatusRunning is a FlowExecutionStatus enum value
8076	FlowExecutionStatusRunning = "RUNNING"
8077
8078	// FlowExecutionStatusAborted is a FlowExecutionStatus enum value
8079	FlowExecutionStatusAborted = "ABORTED"
8080
8081	// FlowExecutionStatusSucceeded is a FlowExecutionStatus enum value
8082	FlowExecutionStatusSucceeded = "SUCCEEDED"
8083
8084	// FlowExecutionStatusFailed is a FlowExecutionStatus enum value
8085	FlowExecutionStatusFailed = "FAILED"
8086)
8087
8088// FlowExecutionStatus_Values returns all elements of the FlowExecutionStatus enum
8089func FlowExecutionStatus_Values() []string {
8090	return []string{
8091		FlowExecutionStatusRunning,
8092		FlowExecutionStatusAborted,
8093		FlowExecutionStatusSucceeded,
8094		FlowExecutionStatusFailed,
8095	}
8096}
8097
8098const (
8099	// FlowTemplateFilterNameDeviceModelId is a FlowTemplateFilterName enum value
8100	FlowTemplateFilterNameDeviceModelId = "DEVICE_MODEL_ID"
8101)
8102
8103// FlowTemplateFilterName_Values returns all elements of the FlowTemplateFilterName enum
8104func FlowTemplateFilterName_Values() []string {
8105	return []string{
8106		FlowTemplateFilterNameDeviceModelId,
8107	}
8108}
8109
8110const (
8111	// NamespaceDeletionStatusInProgress is a NamespaceDeletionStatus enum value
8112	NamespaceDeletionStatusInProgress = "IN_PROGRESS"
8113
8114	// NamespaceDeletionStatusSucceeded is a NamespaceDeletionStatus enum value
8115	NamespaceDeletionStatusSucceeded = "SUCCEEDED"
8116
8117	// NamespaceDeletionStatusFailed is a NamespaceDeletionStatus enum value
8118	NamespaceDeletionStatusFailed = "FAILED"
8119)
8120
8121// NamespaceDeletionStatus_Values returns all elements of the NamespaceDeletionStatus enum
8122func NamespaceDeletionStatus_Values() []string {
8123	return []string{
8124		NamespaceDeletionStatusInProgress,
8125		NamespaceDeletionStatusSucceeded,
8126		NamespaceDeletionStatusFailed,
8127	}
8128}
8129
8130const (
8131	// NamespaceDeletionStatusErrorCodesValidationFailed is a NamespaceDeletionStatusErrorCodes enum value
8132	NamespaceDeletionStatusErrorCodesValidationFailed = "VALIDATION_FAILED"
8133)
8134
8135// NamespaceDeletionStatusErrorCodes_Values returns all elements of the NamespaceDeletionStatusErrorCodes enum
8136func NamespaceDeletionStatusErrorCodes_Values() []string {
8137	return []string{
8138		NamespaceDeletionStatusErrorCodesValidationFailed,
8139	}
8140}
8141
8142const (
8143	// SystemInstanceDeploymentStatusNotDeployed is a SystemInstanceDeploymentStatus enum value
8144	SystemInstanceDeploymentStatusNotDeployed = "NOT_DEPLOYED"
8145
8146	// SystemInstanceDeploymentStatusBootstrap is a SystemInstanceDeploymentStatus enum value
8147	SystemInstanceDeploymentStatusBootstrap = "BOOTSTRAP"
8148
8149	// SystemInstanceDeploymentStatusDeployInProgress is a SystemInstanceDeploymentStatus enum value
8150	SystemInstanceDeploymentStatusDeployInProgress = "DEPLOY_IN_PROGRESS"
8151
8152	// SystemInstanceDeploymentStatusDeployedInTarget is a SystemInstanceDeploymentStatus enum value
8153	SystemInstanceDeploymentStatusDeployedInTarget = "DEPLOYED_IN_TARGET"
8154
8155	// SystemInstanceDeploymentStatusUndeployInProgress is a SystemInstanceDeploymentStatus enum value
8156	SystemInstanceDeploymentStatusUndeployInProgress = "UNDEPLOY_IN_PROGRESS"
8157
8158	// SystemInstanceDeploymentStatusFailed is a SystemInstanceDeploymentStatus enum value
8159	SystemInstanceDeploymentStatusFailed = "FAILED"
8160
8161	// SystemInstanceDeploymentStatusPendingDelete is a SystemInstanceDeploymentStatus enum value
8162	SystemInstanceDeploymentStatusPendingDelete = "PENDING_DELETE"
8163
8164	// SystemInstanceDeploymentStatusDeletedInTarget is a SystemInstanceDeploymentStatus enum value
8165	SystemInstanceDeploymentStatusDeletedInTarget = "DELETED_IN_TARGET"
8166)
8167
8168// SystemInstanceDeploymentStatus_Values returns all elements of the SystemInstanceDeploymentStatus enum
8169func SystemInstanceDeploymentStatus_Values() []string {
8170	return []string{
8171		SystemInstanceDeploymentStatusNotDeployed,
8172		SystemInstanceDeploymentStatusBootstrap,
8173		SystemInstanceDeploymentStatusDeployInProgress,
8174		SystemInstanceDeploymentStatusDeployedInTarget,
8175		SystemInstanceDeploymentStatusUndeployInProgress,
8176		SystemInstanceDeploymentStatusFailed,
8177		SystemInstanceDeploymentStatusPendingDelete,
8178		SystemInstanceDeploymentStatusDeletedInTarget,
8179	}
8180}
8181
8182const (
8183	// SystemInstanceFilterNameSystemTemplateId is a SystemInstanceFilterName enum value
8184	SystemInstanceFilterNameSystemTemplateId = "SYSTEM_TEMPLATE_ID"
8185
8186	// SystemInstanceFilterNameStatus is a SystemInstanceFilterName enum value
8187	SystemInstanceFilterNameStatus = "STATUS"
8188
8189	// SystemInstanceFilterNameGreengrassGroupName is a SystemInstanceFilterName enum value
8190	SystemInstanceFilterNameGreengrassGroupName = "GREENGRASS_GROUP_NAME"
8191)
8192
8193// SystemInstanceFilterName_Values returns all elements of the SystemInstanceFilterName enum
8194func SystemInstanceFilterName_Values() []string {
8195	return []string{
8196		SystemInstanceFilterNameSystemTemplateId,
8197		SystemInstanceFilterNameStatus,
8198		SystemInstanceFilterNameGreengrassGroupName,
8199	}
8200}
8201
8202const (
8203	// SystemTemplateFilterNameFlowTemplateId is a SystemTemplateFilterName enum value
8204	SystemTemplateFilterNameFlowTemplateId = "FLOW_TEMPLATE_ID"
8205)
8206
8207// SystemTemplateFilterName_Values returns all elements of the SystemTemplateFilterName enum
8208func SystemTemplateFilterName_Values() []string {
8209	return []string{
8210		SystemTemplateFilterNameFlowTemplateId,
8211	}
8212}
8213
8214const (
8215	// UploadStatusInProgress is a UploadStatus enum value
8216	UploadStatusInProgress = "IN_PROGRESS"
8217
8218	// UploadStatusSucceeded is a UploadStatus enum value
8219	UploadStatusSucceeded = "SUCCEEDED"
8220
8221	// UploadStatusFailed is a UploadStatus enum value
8222	UploadStatusFailed = "FAILED"
8223)
8224
8225// UploadStatus_Values returns all elements of the UploadStatus enum
8226func UploadStatus_Values() []string {
8227	return []string{
8228		UploadStatusInProgress,
8229		UploadStatusSucceeded,
8230		UploadStatusFailed,
8231	}
8232}
8233