1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package ecs
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 opCreateCluster = "CreateCluster"
17
18// CreateClusterRequest generates a "aws/request.Request" representing the
19// client's request for the CreateCluster 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 CreateCluster for more information on using the CreateCluster
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 CreateClusterRequest method.
34//    req, resp := client.CreateClusterRequest(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/ecs-2014-11-13/CreateCluster
42func (c *ECS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
43	op := &request.Operation{
44		Name:       opCreateCluster,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateClusterInput{}
51	}
52
53	output = &CreateClusterOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateCluster API operation for Amazon EC2 Container Service.
59//
60// Creates a new Amazon ECS cluster. By default, your account receives a default
61// cluster when you launch your first container instance. However, you can create
62// your own cluster with a unique name with the CreateCluster action.
63//
64// When you call the CreateCluster API operation, Amazon ECS attempts to create
65// the service-linked role for your account so that required resources in other
66// AWS services can be managed on your behalf. However, if the IAM user that
67// makes the call does not have permissions to create the service-linked role,
68// it is not created. For more information, see Using Service-Linked Roles for
69// Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
70// in the Amazon Elastic Container Service Developer Guide.
71//
72// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
73// with awserr.Error's Code and Message methods to get detailed information about
74// the error.
75//
76// See the AWS API reference guide for Amazon EC2 Container Service's
77// API operation CreateCluster for usage and error information.
78//
79// Returned Error Codes:
80//   * ErrCodeServerException "ServerException"
81//   These errors are usually caused by a server issue.
82//
83//   * ErrCodeClientException "ClientException"
84//   These errors are usually caused by a client action, such as using an action
85//   or resource on behalf of a user that doesn't have permissions to use the
86//   action or resource, or specifying an identifier that is not valid.
87//
88//   * ErrCodeInvalidParameterException "InvalidParameterException"
89//   The specified parameter is invalid. Review the available parameters for the
90//   API request.
91//
92// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
93func (c *ECS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
94	req, out := c.CreateClusterRequest(input)
95	return out, req.Send()
96}
97
98// CreateClusterWithContext is the same as CreateCluster with the addition of
99// the ability to pass a context and additional request options.
100//
101// See CreateCluster for details on how to use this API operation.
102//
103// The context must be non-nil and will be used for request cancellation. If
104// the context is nil a panic will occur. In the future the SDK may create
105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
106// for more information on using Contexts.
107func (c *ECS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
108	req, out := c.CreateClusterRequest(input)
109	req.SetContext(ctx)
110	req.ApplyOptions(opts...)
111	return out, req.Send()
112}
113
114const opCreateService = "CreateService"
115
116// CreateServiceRequest generates a "aws/request.Request" representing the
117// client's request for the CreateService operation. The "output" return
118// value will be populated with the request's response once the request completes
119// successfully.
120//
121// Use "Send" method on the returned Request to send the API call to the service.
122// the "output" return value is not valid until after Send returns without error.
123//
124// See CreateService for more information on using the CreateService
125// API call, and error handling.
126//
127// This method is useful when you want to inject custom logic or configuration
128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
129//
130//
131//    // Example sending a request using the CreateServiceRequest method.
132//    req, resp := client.CreateServiceRequest(params)
133//
134//    err := req.Send()
135//    if err == nil { // resp is now filled
136//        fmt.Println(resp)
137//    }
138//
139// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
140func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
141	op := &request.Operation{
142		Name:       opCreateService,
143		HTTPMethod: "POST",
144		HTTPPath:   "/",
145	}
146
147	if input == nil {
148		input = &CreateServiceInput{}
149	}
150
151	output = &CreateServiceOutput{}
152	req = c.newRequest(op, input, output)
153	return
154}
155
156// CreateService API operation for Amazon EC2 Container Service.
157//
158// Runs and maintains a desired number of tasks from a specified task definition.
159// If the number of tasks running in a service drops below the desiredCount,
160// Amazon ECS runs another copy of the task in the specified cluster. To update
161// an existing service, see UpdateService.
162//
163// In addition to maintaining the desired count of tasks in your service, you
164// can optionally run your service behind one or more load balancers. The load
165// balancers distribute traffic across the tasks that are associated with the
166// service. For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
167// in the Amazon Elastic Container Service Developer Guide.
168//
169// Tasks for services that do not use a load balancer are considered healthy
170// if they're in the RUNNING state. Tasks for services that do use a load balancer
171// are considered healthy if they're in the RUNNING state and the container
172// instance that they're hosted on is reported as healthy by the load balancer.
173//
174// There are two service scheduler strategies available:
175//
176//    * REPLICA - The replica scheduling strategy places and maintains the desired
177//    number of tasks across your cluster. By default, the service scheduler
178//    spreads tasks across Availability Zones. You can use task placement strategies
179//    and constraints to customize task placement decisions. For more information,
180//    see Service Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
181//    in the Amazon Elastic Container Service Developer Guide.
182//
183//    * DAEMON - The daemon scheduling strategy deploys exactly one task on
184//    each active container instance that meets all of the task placement constraints
185//    that you specify in your cluster. When using this strategy, you don't
186//    need to specify a desired number of tasks, a task placement strategy,
187//    or use Service Auto Scaling policies. For more information, see Service
188//    Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
189//    in the Amazon Elastic Container Service Developer Guide.
190//
191// You can optionally specify a deployment configuration for your service. The
192// deployment is triggered by changing properties, such as the task definition
193// or the desired count of a service, with an UpdateService operation. The default
194// value for a replica service for minimumHealthyPercent is 100%. The default
195// value for a daemon service for minimumHealthyPercent is 0%.
196//
197// If a service is using the ECS deployment controller, the minimum healthy
198// percent represents a lower limit on the number of tasks in a service that
199// must remain in the RUNNING state during a deployment, as a percentage of
200// the desired number of tasks (rounded up to the nearest integer), and while
201// any container instances are in the DRAINING state if the service contains
202// tasks using the EC2 launch type. This parameter enables you to deploy without
203// using additional cluster capacity. For example, if your service has a desired
204// number of four tasks and a minimum healthy percent of 50%, the scheduler
205// might stop two existing tasks to free up cluster capacity before starting
206// two new tasks. Tasks for services that do not use a load balancer are considered
207// healthy if they're in the RUNNING state. Tasks for services that do use a
208// load balancer are considered healthy if they're in the RUNNING state and
209// they're reported as healthy by the load balancer. The default value for minimum
210// healthy percent is 100%.
211//
212// If a service is using the ECS deployment controller, the maximum percent
213// parameter represents an upper limit on the number of tasks in a service that
214// are allowed in the RUNNING or PENDING state during a deployment, as a percentage
215// of the desired number of tasks (rounded down to the nearest integer), and
216// while any container instances are in the DRAINING state if the service contains
217// tasks using the EC2 launch type. This parameter enables you to define the
218// deployment batch size. For example, if your service has a desired number
219// of four tasks and a maximum percent value of 200%, the scheduler may start
220// four new tasks before stopping the four older tasks (provided that the cluster
221// resources required to do this are available). The default value for maximum
222// percent is 200%.
223//
224// If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller
225// types and tasks that use the EC2 launch type, the minimum healthy percent
226// and maximum percent values are used only to define the lower and upper limit
227// on the number of the tasks in the service that remain in the RUNNING state
228// while the container instances are in the DRAINING state. If the tasks in
229// the service use the Fargate launch type, the minimum healthy percent and
230// maximum percent values aren't used, although they're currently visible when
231// describing your service.
232//
233// When creating a service that uses the EXTERNAL deployment controller, you
234// can specify only parameters that aren't controlled at the task set level.
235// The only required parameter is the service name. You control your services
236// using the CreateTaskSet operation. For more information, see Amazon ECS Deployment
237// Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
238// in the Amazon Elastic Container Service Developer Guide.
239//
240// When the service scheduler launches new tasks, it determines task placement
241// in your cluster using the following logic:
242//
243//    * Determine which of the container instances in your cluster can support
244//    your service's task definition (for example, they have the required CPU,
245//    memory, ports, and container instance attributes).
246//
247//    * By default, the service scheduler attempts to balance tasks across Availability
248//    Zones in this manner (although you can choose a different placement strategy)
249//    with the placementStrategy parameter): Sort the valid container instances,
250//    giving priority to instances that have the fewest number of running tasks
251//    for this service in their respective Availability Zone. For example, if
252//    zone A has one running service task and zones B and C each have zero,
253//    valid container instances in either zone B or C are considered optimal
254//    for placement. Place the new service task on a valid container instance
255//    in an optimal Availability Zone (based on the previous steps), favoring
256//    container instances with the fewest number of running tasks for this service.
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 Amazon EC2 Container Service's
263// API operation CreateService for usage and error information.
264//
265// Returned Error Codes:
266//   * ErrCodeServerException "ServerException"
267//   These errors are usually caused by a server issue.
268//
269//   * ErrCodeClientException "ClientException"
270//   These errors are usually caused by a client action, such as using an action
271//   or resource on behalf of a user that doesn't have permissions to use the
272//   action or resource, or specifying an identifier that is not valid.
273//
274//   * ErrCodeInvalidParameterException "InvalidParameterException"
275//   The specified parameter is invalid. Review the available parameters for the
276//   API request.
277//
278//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
279//   The specified cluster could not be found. You can view your available clusters
280//   with ListClusters. Amazon ECS clusters are Region-specific.
281//
282//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
283//   The specified task is not supported in this Region.
284//
285//   * ErrCodePlatformUnknownException "PlatformUnknownException"
286//   The specified platform version does not exist.
287//
288//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
289//   The specified platform version does not satisfy the task definition's required
290//   capabilities.
291//
292//   * ErrCodeAccessDeniedException "AccessDeniedException"
293//   You do not have authorization to perform the requested action.
294//
295// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
296func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
297	req, out := c.CreateServiceRequest(input)
298	return out, req.Send()
299}
300
301// CreateServiceWithContext is the same as CreateService with the addition of
302// the ability to pass a context and additional request options.
303//
304// See CreateService for details on how to use this API operation.
305//
306// The context must be non-nil and will be used for request cancellation. If
307// the context is nil a panic will occur. In the future the SDK may create
308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
309// for more information on using Contexts.
310func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
311	req, out := c.CreateServiceRequest(input)
312	req.SetContext(ctx)
313	req.ApplyOptions(opts...)
314	return out, req.Send()
315}
316
317const opCreateTaskSet = "CreateTaskSet"
318
319// CreateTaskSetRequest generates a "aws/request.Request" representing the
320// client's request for the CreateTaskSet operation. The "output" return
321// value will be populated with the request's response once the request completes
322// successfully.
323//
324// Use "Send" method on the returned Request to send the API call to the service.
325// the "output" return value is not valid until after Send returns without error.
326//
327// See CreateTaskSet for more information on using the CreateTaskSet
328// API call, and error handling.
329//
330// This method is useful when you want to inject custom logic or configuration
331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
332//
333//
334//    // Example sending a request using the CreateTaskSetRequest method.
335//    req, resp := client.CreateTaskSetRequest(params)
336//
337//    err := req.Send()
338//    if err == nil { // resp is now filled
339//        fmt.Println(resp)
340//    }
341//
342// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
343func (c *ECS) CreateTaskSetRequest(input *CreateTaskSetInput) (req *request.Request, output *CreateTaskSetOutput) {
344	op := &request.Operation{
345		Name:       opCreateTaskSet,
346		HTTPMethod: "POST",
347		HTTPPath:   "/",
348	}
349
350	if input == nil {
351		input = &CreateTaskSetInput{}
352	}
353
354	output = &CreateTaskSetOutput{}
355	req = c.newRequest(op, input, output)
356	return
357}
358
359// CreateTaskSet API operation for Amazon EC2 Container Service.
360//
361// Create a task set in the specified cluster and service. This is used when
362// a service uses the EXTERNAL deployment controller type. For more information,
363// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
364// in the Amazon Elastic Container Service Developer Guide.
365//
366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
367// with awserr.Error's Code and Message methods to get detailed information about
368// the error.
369//
370// See the AWS API reference guide for Amazon EC2 Container Service's
371// API operation CreateTaskSet for usage and error information.
372//
373// Returned Error Codes:
374//   * ErrCodeServerException "ServerException"
375//   These errors are usually caused by a server issue.
376//
377//   * ErrCodeClientException "ClientException"
378//   These errors are usually caused by a client action, such as using an action
379//   or resource on behalf of a user that doesn't have permissions to use the
380//   action or resource, or specifying an identifier that is not valid.
381//
382//   * ErrCodeInvalidParameterException "InvalidParameterException"
383//   The specified parameter is invalid. Review the available parameters for the
384//   API request.
385//
386//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
387//   The specified cluster could not be found. You can view your available clusters
388//   with ListClusters. Amazon ECS clusters are Region-specific.
389//
390//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
391//   The specified task is not supported in this Region.
392//
393//   * ErrCodePlatformUnknownException "PlatformUnknownException"
394//   The specified platform version does not exist.
395//
396//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
397//   The specified platform version does not satisfy the task definition's required
398//   capabilities.
399//
400//   * ErrCodeAccessDeniedException "AccessDeniedException"
401//   You do not have authorization to perform the requested action.
402//
403//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
404//   The specified service could not be found. You can view your available services
405//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
406//
407//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
408//   The specified service is not active. You can't update a service that is inactive.
409//   If you have previously deleted a service, you can re-create it with CreateService.
410//
411// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
412func (c *ECS) CreateTaskSet(input *CreateTaskSetInput) (*CreateTaskSetOutput, error) {
413	req, out := c.CreateTaskSetRequest(input)
414	return out, req.Send()
415}
416
417// CreateTaskSetWithContext is the same as CreateTaskSet with the addition of
418// the ability to pass a context and additional request options.
419//
420// See CreateTaskSet for details on how to use this API operation.
421//
422// The context must be non-nil and will be used for request cancellation. If
423// the context is nil a panic will occur. In the future the SDK may create
424// sub-contexts for http.Requests. See https://golang.org/pkg/context/
425// for more information on using Contexts.
426func (c *ECS) CreateTaskSetWithContext(ctx aws.Context, input *CreateTaskSetInput, opts ...request.Option) (*CreateTaskSetOutput, error) {
427	req, out := c.CreateTaskSetRequest(input)
428	req.SetContext(ctx)
429	req.ApplyOptions(opts...)
430	return out, req.Send()
431}
432
433const opDeleteAccountSetting = "DeleteAccountSetting"
434
435// DeleteAccountSettingRequest generates a "aws/request.Request" representing the
436// client's request for the DeleteAccountSetting operation. The "output" return
437// value will be populated with the request's response once the request completes
438// successfully.
439//
440// Use "Send" method on the returned Request to send the API call to the service.
441// the "output" return value is not valid until after Send returns without error.
442//
443// See DeleteAccountSetting for more information on using the DeleteAccountSetting
444// API call, and error handling.
445//
446// This method is useful when you want to inject custom logic or configuration
447// into the SDK's request lifecycle. Such as custom headers, or retry logic.
448//
449//
450//    // Example sending a request using the DeleteAccountSettingRequest method.
451//    req, resp := client.DeleteAccountSettingRequest(params)
452//
453//    err := req.Send()
454//    if err == nil { // resp is now filled
455//        fmt.Println(resp)
456//    }
457//
458// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
459func (c *ECS) DeleteAccountSettingRequest(input *DeleteAccountSettingInput) (req *request.Request, output *DeleteAccountSettingOutput) {
460	op := &request.Operation{
461		Name:       opDeleteAccountSetting,
462		HTTPMethod: "POST",
463		HTTPPath:   "/",
464	}
465
466	if input == nil {
467		input = &DeleteAccountSettingInput{}
468	}
469
470	output = &DeleteAccountSettingOutput{}
471	req = c.newRequest(op, input, output)
472	return
473}
474
475// DeleteAccountSetting API operation for Amazon EC2 Container Service.
476//
477// Disables an account setting for a specified IAM user, IAM role, or the root
478// user for an account.
479//
480// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
481// with awserr.Error's Code and Message methods to get detailed information about
482// the error.
483//
484// See the AWS API reference guide for Amazon EC2 Container Service's
485// API operation DeleteAccountSetting for usage and error information.
486//
487// Returned Error Codes:
488//   * ErrCodeServerException "ServerException"
489//   These errors are usually caused by a server issue.
490//
491//   * ErrCodeClientException "ClientException"
492//   These errors are usually caused by a client action, such as using an action
493//   or resource on behalf of a user that doesn't have permissions to use the
494//   action or resource, or specifying an identifier that is not valid.
495//
496//   * ErrCodeInvalidParameterException "InvalidParameterException"
497//   The specified parameter is invalid. Review the available parameters for the
498//   API request.
499//
500// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
501func (c *ECS) DeleteAccountSetting(input *DeleteAccountSettingInput) (*DeleteAccountSettingOutput, error) {
502	req, out := c.DeleteAccountSettingRequest(input)
503	return out, req.Send()
504}
505
506// DeleteAccountSettingWithContext is the same as DeleteAccountSetting with the addition of
507// the ability to pass a context and additional request options.
508//
509// See DeleteAccountSetting for details on how to use this API operation.
510//
511// The context must be non-nil and will be used for request cancellation. If
512// the context is nil a panic will occur. In the future the SDK may create
513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
514// for more information on using Contexts.
515func (c *ECS) DeleteAccountSettingWithContext(ctx aws.Context, input *DeleteAccountSettingInput, opts ...request.Option) (*DeleteAccountSettingOutput, error) {
516	req, out := c.DeleteAccountSettingRequest(input)
517	req.SetContext(ctx)
518	req.ApplyOptions(opts...)
519	return out, req.Send()
520}
521
522const opDeleteAttributes = "DeleteAttributes"
523
524// DeleteAttributesRequest generates a "aws/request.Request" representing the
525// client's request for the DeleteAttributes operation. The "output" return
526// value will be populated with the request's response once the request completes
527// successfully.
528//
529// Use "Send" method on the returned Request to send the API call to the service.
530// the "output" return value is not valid until after Send returns without error.
531//
532// See DeleteAttributes for more information on using the DeleteAttributes
533// API call, and error handling.
534//
535// This method is useful when you want to inject custom logic or configuration
536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
537//
538//
539//    // Example sending a request using the DeleteAttributesRequest method.
540//    req, resp := client.DeleteAttributesRequest(params)
541//
542//    err := req.Send()
543//    if err == nil { // resp is now filled
544//        fmt.Println(resp)
545//    }
546//
547// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
548func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
549	op := &request.Operation{
550		Name:       opDeleteAttributes,
551		HTTPMethod: "POST",
552		HTTPPath:   "/",
553	}
554
555	if input == nil {
556		input = &DeleteAttributesInput{}
557	}
558
559	output = &DeleteAttributesOutput{}
560	req = c.newRequest(op, input, output)
561	return
562}
563
564// DeleteAttributes API operation for Amazon EC2 Container Service.
565//
566// Deletes one or more custom attributes from an Amazon ECS resource.
567//
568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
569// with awserr.Error's Code and Message methods to get detailed information about
570// the error.
571//
572// See the AWS API reference guide for Amazon EC2 Container Service's
573// API operation DeleteAttributes for usage and error information.
574//
575// Returned Error Codes:
576//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
577//   The specified cluster could not be found. You can view your available clusters
578//   with ListClusters. Amazon ECS clusters are Region-specific.
579//
580//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
581//   The specified target could not be found. You can view your available container
582//   instances with ListContainerInstances. Amazon ECS container instances are
583//   cluster-specific and Region-specific.
584//
585//   * ErrCodeInvalidParameterException "InvalidParameterException"
586//   The specified parameter is invalid. Review the available parameters for the
587//   API request.
588//
589// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
590func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
591	req, out := c.DeleteAttributesRequest(input)
592	return out, req.Send()
593}
594
595// DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
596// the ability to pass a context and additional request options.
597//
598// See DeleteAttributes for details on how to use this API operation.
599//
600// The context must be non-nil and will be used for request cancellation. If
601// the context is nil a panic will occur. In the future the SDK may create
602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
603// for more information on using Contexts.
604func (c *ECS) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
605	req, out := c.DeleteAttributesRequest(input)
606	req.SetContext(ctx)
607	req.ApplyOptions(opts...)
608	return out, req.Send()
609}
610
611const opDeleteCluster = "DeleteCluster"
612
613// DeleteClusterRequest generates a "aws/request.Request" representing the
614// client's request for the DeleteCluster operation. The "output" return
615// value will be populated with the request's response once the request completes
616// successfully.
617//
618// Use "Send" method on the returned Request to send the API call to the service.
619// the "output" return value is not valid until after Send returns without error.
620//
621// See DeleteCluster for more information on using the DeleteCluster
622// API call, and error handling.
623//
624// This method is useful when you want to inject custom logic or configuration
625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
626//
627//
628//    // Example sending a request using the DeleteClusterRequest method.
629//    req, resp := client.DeleteClusterRequest(params)
630//
631//    err := req.Send()
632//    if err == nil { // resp is now filled
633//        fmt.Println(resp)
634//    }
635//
636// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
637func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
638	op := &request.Operation{
639		Name:       opDeleteCluster,
640		HTTPMethod: "POST",
641		HTTPPath:   "/",
642	}
643
644	if input == nil {
645		input = &DeleteClusterInput{}
646	}
647
648	output = &DeleteClusterOutput{}
649	req = c.newRequest(op, input, output)
650	return
651}
652
653// DeleteCluster API operation for Amazon EC2 Container Service.
654//
655// Deletes the specified cluster. You must deregister all container instances
656// from this cluster before you may delete it. You can list the container instances
657// in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.
658//
659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
660// with awserr.Error's Code and Message methods to get detailed information about
661// the error.
662//
663// See the AWS API reference guide for Amazon EC2 Container Service's
664// API operation DeleteCluster for usage and error information.
665//
666// Returned Error Codes:
667//   * ErrCodeServerException "ServerException"
668//   These errors are usually caused by a server issue.
669//
670//   * ErrCodeClientException "ClientException"
671//   These errors are usually caused by a client action, such as using an action
672//   or resource on behalf of a user that doesn't have permissions to use the
673//   action or resource, or specifying an identifier that is not valid.
674//
675//   * ErrCodeInvalidParameterException "InvalidParameterException"
676//   The specified parameter is invalid. Review the available parameters for the
677//   API request.
678//
679//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
680//   The specified cluster could not be found. You can view your available clusters
681//   with ListClusters. Amazon ECS clusters are Region-specific.
682//
683//   * ErrCodeClusterContainsContainerInstancesException "ClusterContainsContainerInstancesException"
684//   You cannot delete a cluster that has registered container instances. First,
685//   deregister the container instances before you can delete the cluster. For
686//   more information, see DeregisterContainerInstance.
687//
688//   * ErrCodeClusterContainsServicesException "ClusterContainsServicesException"
689//   You cannot delete a cluster that contains services. First, update the service
690//   to reduce its desired task count to 0 and then delete the service. For more
691//   information, see UpdateService and DeleteService.
692//
693//   * ErrCodeClusterContainsTasksException "ClusterContainsTasksException"
694//   You cannot delete a cluster that has active tasks.
695//
696// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
697func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
698	req, out := c.DeleteClusterRequest(input)
699	return out, req.Send()
700}
701
702// DeleteClusterWithContext is the same as DeleteCluster with the addition of
703// the ability to pass a context and additional request options.
704//
705// See DeleteCluster for details on how to use this API operation.
706//
707// The context must be non-nil and will be used for request cancellation. If
708// the context is nil a panic will occur. In the future the SDK may create
709// sub-contexts for http.Requests. See https://golang.org/pkg/context/
710// for more information on using Contexts.
711func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
712	req, out := c.DeleteClusterRequest(input)
713	req.SetContext(ctx)
714	req.ApplyOptions(opts...)
715	return out, req.Send()
716}
717
718const opDeleteService = "DeleteService"
719
720// DeleteServiceRequest generates a "aws/request.Request" representing the
721// client's request for the DeleteService operation. The "output" return
722// value will be populated with the request's response once the request completes
723// successfully.
724//
725// Use "Send" method on the returned Request to send the API call to the service.
726// the "output" return value is not valid until after Send returns without error.
727//
728// See DeleteService for more information on using the DeleteService
729// API call, and error handling.
730//
731// This method is useful when you want to inject custom logic or configuration
732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
733//
734//
735//    // Example sending a request using the DeleteServiceRequest method.
736//    req, resp := client.DeleteServiceRequest(params)
737//
738//    err := req.Send()
739//    if err == nil { // resp is now filled
740//        fmt.Println(resp)
741//    }
742//
743// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
744func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
745	op := &request.Operation{
746		Name:       opDeleteService,
747		HTTPMethod: "POST",
748		HTTPPath:   "/",
749	}
750
751	if input == nil {
752		input = &DeleteServiceInput{}
753	}
754
755	output = &DeleteServiceOutput{}
756	req = c.newRequest(op, input, output)
757	return
758}
759
760// DeleteService API operation for Amazon EC2 Container Service.
761//
762// Deletes a specified service within a cluster. You can delete a service if
763// you have no running tasks in it and the desired task count is zero. If the
764// service is actively maintaining tasks, you cannot delete it, and you must
765// update the service to a desired task count of zero. For more information,
766// see UpdateService.
767//
768// When you delete a service, if there are still running tasks that require
769// cleanup, the service status moves from ACTIVE to DRAINING, and the service
770// is no longer visible in the console or in the ListServices API operation.
771// After all tasks have transitioned to either STOPPING or STOPPED status, the
772// service status moves from DRAINING to INACTIVE. Services in the DRAINING
773// or INACTIVE status can still be viewed with the DescribeServices API operation.
774// However, in the future, INACTIVE services may be cleaned up and purged from
775// Amazon ECS record keeping, and DescribeServices calls on those services return
776// a ServiceNotFoundException error.
777//
778// If you attempt to create a new service with the same name as an existing
779// service in either ACTIVE or DRAINING status, you receive an error.
780//
781// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
782// with awserr.Error's Code and Message methods to get detailed information about
783// the error.
784//
785// See the AWS API reference guide for Amazon EC2 Container Service's
786// API operation DeleteService for usage and error information.
787//
788// Returned Error Codes:
789//   * ErrCodeServerException "ServerException"
790//   These errors are usually caused by a server issue.
791//
792//   * ErrCodeClientException "ClientException"
793//   These errors are usually caused by a client action, such as using an action
794//   or resource on behalf of a user that doesn't have permissions to use the
795//   action or resource, or specifying an identifier that is not valid.
796//
797//   * ErrCodeInvalidParameterException "InvalidParameterException"
798//   The specified parameter is invalid. Review the available parameters for the
799//   API request.
800//
801//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
802//   The specified cluster could not be found. You can view your available clusters
803//   with ListClusters. Amazon ECS clusters are Region-specific.
804//
805//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
806//   The specified service could not be found. You can view your available services
807//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
808//
809// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
810func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
811	req, out := c.DeleteServiceRequest(input)
812	return out, req.Send()
813}
814
815// DeleteServiceWithContext is the same as DeleteService with the addition of
816// the ability to pass a context and additional request options.
817//
818// See DeleteService for details on how to use this API operation.
819//
820// The context must be non-nil and will be used for request cancellation. If
821// the context is nil a panic will occur. In the future the SDK may create
822// sub-contexts for http.Requests. See https://golang.org/pkg/context/
823// for more information on using Contexts.
824func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
825	req, out := c.DeleteServiceRequest(input)
826	req.SetContext(ctx)
827	req.ApplyOptions(opts...)
828	return out, req.Send()
829}
830
831const opDeleteTaskSet = "DeleteTaskSet"
832
833// DeleteTaskSetRequest generates a "aws/request.Request" representing the
834// client's request for the DeleteTaskSet operation. The "output" return
835// value will be populated with the request's response once the request completes
836// successfully.
837//
838// Use "Send" method on the returned Request to send the API call to the service.
839// the "output" return value is not valid until after Send returns without error.
840//
841// See DeleteTaskSet for more information on using the DeleteTaskSet
842// API call, and error handling.
843//
844// This method is useful when you want to inject custom logic or configuration
845// into the SDK's request lifecycle. Such as custom headers, or retry logic.
846//
847//
848//    // Example sending a request using the DeleteTaskSetRequest method.
849//    req, resp := client.DeleteTaskSetRequest(params)
850//
851//    err := req.Send()
852//    if err == nil { // resp is now filled
853//        fmt.Println(resp)
854//    }
855//
856// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
857func (c *ECS) DeleteTaskSetRequest(input *DeleteTaskSetInput) (req *request.Request, output *DeleteTaskSetOutput) {
858	op := &request.Operation{
859		Name:       opDeleteTaskSet,
860		HTTPMethod: "POST",
861		HTTPPath:   "/",
862	}
863
864	if input == nil {
865		input = &DeleteTaskSetInput{}
866	}
867
868	output = &DeleteTaskSetOutput{}
869	req = c.newRequest(op, input, output)
870	return
871}
872
873// DeleteTaskSet API operation for Amazon EC2 Container Service.
874//
875// Deletes a specified task set within a service. This is used when a service
876// uses the EXTERNAL deployment controller type. For more information, see Amazon
877// ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
878// in the Amazon Elastic Container Service Developer Guide.
879//
880// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
881// with awserr.Error's Code and Message methods to get detailed information about
882// the error.
883//
884// See the AWS API reference guide for Amazon EC2 Container Service's
885// API operation DeleteTaskSet for usage and error information.
886//
887// Returned Error Codes:
888//   * ErrCodeServerException "ServerException"
889//   These errors are usually caused by a server issue.
890//
891//   * ErrCodeClientException "ClientException"
892//   These errors are usually caused by a client action, such as using an action
893//   or resource on behalf of a user that doesn't have permissions to use the
894//   action or resource, or specifying an identifier that is not valid.
895//
896//   * ErrCodeInvalidParameterException "InvalidParameterException"
897//   The specified parameter is invalid. Review the available parameters for the
898//   API request.
899//
900//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
901//   The specified cluster could not be found. You can view your available clusters
902//   with ListClusters. Amazon ECS clusters are Region-specific.
903//
904//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
905//   The specified task is not supported in this Region.
906//
907//   * ErrCodeAccessDeniedException "AccessDeniedException"
908//   You do not have authorization to perform the requested action.
909//
910//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
911//   The specified service could not be found. You can view your available services
912//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
913//
914//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
915//   The specified service is not active. You can't update a service that is inactive.
916//   If you have previously deleted a service, you can re-create it with CreateService.
917//
918//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
919//   The specified task set could not be found. You can view your available container
920//   instances with DescribeTaskSets. Task sets are specific to each cluster,
921//   service and Region.
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
924func (c *ECS) DeleteTaskSet(input *DeleteTaskSetInput) (*DeleteTaskSetOutput, error) {
925	req, out := c.DeleteTaskSetRequest(input)
926	return out, req.Send()
927}
928
929// DeleteTaskSetWithContext is the same as DeleteTaskSet with the addition of
930// the ability to pass a context and additional request options.
931//
932// See DeleteTaskSet for details on how to use this API operation.
933//
934// The context must be non-nil and will be used for request cancellation. If
935// the context is nil a panic will occur. In the future the SDK may create
936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
937// for more information on using Contexts.
938func (c *ECS) DeleteTaskSetWithContext(ctx aws.Context, input *DeleteTaskSetInput, opts ...request.Option) (*DeleteTaskSetOutput, error) {
939	req, out := c.DeleteTaskSetRequest(input)
940	req.SetContext(ctx)
941	req.ApplyOptions(opts...)
942	return out, req.Send()
943}
944
945const opDeregisterContainerInstance = "DeregisterContainerInstance"
946
947// DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
948// client's request for the DeregisterContainerInstance operation. The "output" return
949// value will be populated with the request's response once the request completes
950// successfully.
951//
952// Use "Send" method on the returned Request to send the API call to the service.
953// the "output" return value is not valid until after Send returns without error.
954//
955// See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
956// API call, and error handling.
957//
958// This method is useful when you want to inject custom logic or configuration
959// into the SDK's request lifecycle. Such as custom headers, or retry logic.
960//
961//
962//    // Example sending a request using the DeregisterContainerInstanceRequest method.
963//    req, resp := client.DeregisterContainerInstanceRequest(params)
964//
965//    err := req.Send()
966//    if err == nil { // resp is now filled
967//        fmt.Println(resp)
968//    }
969//
970// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
971func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
972	op := &request.Operation{
973		Name:       opDeregisterContainerInstance,
974		HTTPMethod: "POST",
975		HTTPPath:   "/",
976	}
977
978	if input == nil {
979		input = &DeregisterContainerInstanceInput{}
980	}
981
982	output = &DeregisterContainerInstanceOutput{}
983	req = c.newRequest(op, input, output)
984	return
985}
986
987// DeregisterContainerInstance API operation for Amazon EC2 Container Service.
988//
989// Deregisters an Amazon ECS container instance from the specified cluster.
990// This instance is no longer available to run tasks.
991//
992// If you intend to use the container instance for some other purpose after
993// deregistration, you should stop all of the tasks running on the container
994// instance before deregistration. That prevents any orphaned tasks from consuming
995// resources.
996//
997// Deregistering a container instance removes the instance from a cluster, but
998// it does not terminate the EC2 instance. If you are finished using the instance,
999// be sure to terminate it in the Amazon EC2 console to stop billing.
1000//
1001// If you terminate a running container instance, Amazon ECS automatically deregisters
1002// the instance from your cluster (stopped container instances or instances
1003// with disconnected agents are not automatically deregistered when terminated).
1004//
1005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1006// with awserr.Error's Code and Message methods to get detailed information about
1007// the error.
1008//
1009// See the AWS API reference guide for Amazon EC2 Container Service's
1010// API operation DeregisterContainerInstance for usage and error information.
1011//
1012// Returned Error Codes:
1013//   * ErrCodeServerException "ServerException"
1014//   These errors are usually caused by a server issue.
1015//
1016//   * ErrCodeClientException "ClientException"
1017//   These errors are usually caused by a client action, such as using an action
1018//   or resource on behalf of a user that doesn't have permissions to use the
1019//   action or resource, or specifying an identifier that is not valid.
1020//
1021//   * ErrCodeInvalidParameterException "InvalidParameterException"
1022//   The specified parameter is invalid. Review the available parameters for the
1023//   API request.
1024//
1025//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1026//   The specified cluster could not be found. You can view your available clusters
1027//   with ListClusters. Amazon ECS clusters are Region-specific.
1028//
1029// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1030func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
1031	req, out := c.DeregisterContainerInstanceRequest(input)
1032	return out, req.Send()
1033}
1034
1035// DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
1036// the ability to pass a context and additional request options.
1037//
1038// See DeregisterContainerInstance for details on how to use this API operation.
1039//
1040// The context must be non-nil and will be used for request cancellation. If
1041// the context is nil a panic will occur. In the future the SDK may create
1042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1043// for more information on using Contexts.
1044func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
1045	req, out := c.DeregisterContainerInstanceRequest(input)
1046	req.SetContext(ctx)
1047	req.ApplyOptions(opts...)
1048	return out, req.Send()
1049}
1050
1051const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
1052
1053// DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
1054// client's request for the DeregisterTaskDefinition operation. The "output" return
1055// value will be populated with the request's response once the request completes
1056// successfully.
1057//
1058// Use "Send" method on the returned Request to send the API call to the service.
1059// the "output" return value is not valid until after Send returns without error.
1060//
1061// See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
1062// API call, and error handling.
1063//
1064// This method is useful when you want to inject custom logic or configuration
1065// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1066//
1067//
1068//    // Example sending a request using the DeregisterTaskDefinitionRequest method.
1069//    req, resp := client.DeregisterTaskDefinitionRequest(params)
1070//
1071//    err := req.Send()
1072//    if err == nil { // resp is now filled
1073//        fmt.Println(resp)
1074//    }
1075//
1076// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1077func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
1078	op := &request.Operation{
1079		Name:       opDeregisterTaskDefinition,
1080		HTTPMethod: "POST",
1081		HTTPPath:   "/",
1082	}
1083
1084	if input == nil {
1085		input = &DeregisterTaskDefinitionInput{}
1086	}
1087
1088	output = &DeregisterTaskDefinitionOutput{}
1089	req = c.newRequest(op, input, output)
1090	return
1091}
1092
1093// DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
1094//
1095// Deregisters the specified task definition by family and revision. Upon deregistration,
1096// the task definition is marked as INACTIVE. Existing tasks and services that
1097// reference an INACTIVE task definition continue to run without disruption.
1098// Existing services that reference an INACTIVE task definition can still scale
1099// up or down by modifying the service's desired count.
1100//
1101// You cannot use an INACTIVE task definition to run new tasks or create new
1102// services, and you cannot update an existing service to reference an INACTIVE
1103// task definition. However, there may be up to a 10-minute window following
1104// deregistration where these restrictions have not yet taken effect.
1105//
1106// At this time, INACTIVE task definitions remain discoverable in your account
1107// indefinitely. However, this behavior is subject to change in the future,
1108// so you should not rely on INACTIVE task definitions persisting beyond the
1109// lifecycle of any associated tasks and services.
1110//
1111// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1112// with awserr.Error's Code and Message methods to get detailed information about
1113// the error.
1114//
1115// See the AWS API reference guide for Amazon EC2 Container Service's
1116// API operation DeregisterTaskDefinition for usage and error information.
1117//
1118// Returned Error Codes:
1119//   * ErrCodeServerException "ServerException"
1120//   These errors are usually caused by a server issue.
1121//
1122//   * ErrCodeClientException "ClientException"
1123//   These errors are usually caused by a client action, such as using an action
1124//   or resource on behalf of a user that doesn't have permissions to use the
1125//   action or resource, or specifying an identifier that is not valid.
1126//
1127//   * ErrCodeInvalidParameterException "InvalidParameterException"
1128//   The specified parameter is invalid. Review the available parameters for the
1129//   API request.
1130//
1131// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1132func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
1133	req, out := c.DeregisterTaskDefinitionRequest(input)
1134	return out, req.Send()
1135}
1136
1137// DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
1138// the ability to pass a context and additional request options.
1139//
1140// See DeregisterTaskDefinition for details on how to use this API operation.
1141//
1142// The context must be non-nil and will be used for request cancellation. If
1143// the context is nil a panic will occur. In the future the SDK may create
1144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1145// for more information on using Contexts.
1146func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
1147	req, out := c.DeregisterTaskDefinitionRequest(input)
1148	req.SetContext(ctx)
1149	req.ApplyOptions(opts...)
1150	return out, req.Send()
1151}
1152
1153const opDescribeClusters = "DescribeClusters"
1154
1155// DescribeClustersRequest generates a "aws/request.Request" representing the
1156// client's request for the DescribeClusters operation. The "output" return
1157// value will be populated with the request's response once the request completes
1158// successfully.
1159//
1160// Use "Send" method on the returned Request to send the API call to the service.
1161// the "output" return value is not valid until after Send returns without error.
1162//
1163// See DescribeClusters for more information on using the DescribeClusters
1164// API call, and error handling.
1165//
1166// This method is useful when you want to inject custom logic or configuration
1167// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1168//
1169//
1170//    // Example sending a request using the DescribeClustersRequest method.
1171//    req, resp := client.DescribeClustersRequest(params)
1172//
1173//    err := req.Send()
1174//    if err == nil { // resp is now filled
1175//        fmt.Println(resp)
1176//    }
1177//
1178// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1179func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
1180	op := &request.Operation{
1181		Name:       opDescribeClusters,
1182		HTTPMethod: "POST",
1183		HTTPPath:   "/",
1184	}
1185
1186	if input == nil {
1187		input = &DescribeClustersInput{}
1188	}
1189
1190	output = &DescribeClustersOutput{}
1191	req = c.newRequest(op, input, output)
1192	return
1193}
1194
1195// DescribeClusters API operation for Amazon EC2 Container Service.
1196//
1197// Describes one or more of your clusters.
1198//
1199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1200// with awserr.Error's Code and Message methods to get detailed information about
1201// the error.
1202//
1203// See the AWS API reference guide for Amazon EC2 Container Service's
1204// API operation DescribeClusters for usage and error information.
1205//
1206// Returned Error Codes:
1207//   * ErrCodeServerException "ServerException"
1208//   These errors are usually caused by a server issue.
1209//
1210//   * ErrCodeClientException "ClientException"
1211//   These errors are usually caused by a client action, such as using an action
1212//   or resource on behalf of a user that doesn't have permissions to use the
1213//   action or resource, or specifying an identifier that is not valid.
1214//
1215//   * ErrCodeInvalidParameterException "InvalidParameterException"
1216//   The specified parameter is invalid. Review the available parameters for the
1217//   API request.
1218//
1219// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1220func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
1221	req, out := c.DescribeClustersRequest(input)
1222	return out, req.Send()
1223}
1224
1225// DescribeClustersWithContext is the same as DescribeClusters with the addition of
1226// the ability to pass a context and additional request options.
1227//
1228// See DescribeClusters for details on how to use this API operation.
1229//
1230// The context must be non-nil and will be used for request cancellation. If
1231// the context is nil a panic will occur. In the future the SDK may create
1232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1233// for more information on using Contexts.
1234func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
1235	req, out := c.DescribeClustersRequest(input)
1236	req.SetContext(ctx)
1237	req.ApplyOptions(opts...)
1238	return out, req.Send()
1239}
1240
1241const opDescribeContainerInstances = "DescribeContainerInstances"
1242
1243// DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
1244// client's request for the DescribeContainerInstances operation. The "output" return
1245// value will be populated with the request's response once the request completes
1246// successfully.
1247//
1248// Use "Send" method on the returned Request to send the API call to the service.
1249// the "output" return value is not valid until after Send returns without error.
1250//
1251// See DescribeContainerInstances for more information on using the DescribeContainerInstances
1252// API call, and error handling.
1253//
1254// This method is useful when you want to inject custom logic or configuration
1255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1256//
1257//
1258//    // Example sending a request using the DescribeContainerInstancesRequest method.
1259//    req, resp := client.DescribeContainerInstancesRequest(params)
1260//
1261//    err := req.Send()
1262//    if err == nil { // resp is now filled
1263//        fmt.Println(resp)
1264//    }
1265//
1266// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1267func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
1268	op := &request.Operation{
1269		Name:       opDescribeContainerInstances,
1270		HTTPMethod: "POST",
1271		HTTPPath:   "/",
1272	}
1273
1274	if input == nil {
1275		input = &DescribeContainerInstancesInput{}
1276	}
1277
1278	output = &DescribeContainerInstancesOutput{}
1279	req = c.newRequest(op, input, output)
1280	return
1281}
1282
1283// DescribeContainerInstances API operation for Amazon EC2 Container Service.
1284//
1285// Describes Amazon Elastic Container Service container instances. Returns metadata
1286// about registered and remaining resources on each container instance requested.
1287//
1288// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1289// with awserr.Error's Code and Message methods to get detailed information about
1290// the error.
1291//
1292// See the AWS API reference guide for Amazon EC2 Container Service's
1293// API operation DescribeContainerInstances for usage and error information.
1294//
1295// Returned Error Codes:
1296//   * ErrCodeServerException "ServerException"
1297//   These errors are usually caused by a server issue.
1298//
1299//   * ErrCodeClientException "ClientException"
1300//   These errors are usually caused by a client action, such as using an action
1301//   or resource on behalf of a user that doesn't have permissions to use the
1302//   action or resource, or specifying an identifier that is not valid.
1303//
1304//   * ErrCodeInvalidParameterException "InvalidParameterException"
1305//   The specified parameter is invalid. Review the available parameters for the
1306//   API request.
1307//
1308//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1309//   The specified cluster could not be found. You can view your available clusters
1310//   with ListClusters. Amazon ECS clusters are Region-specific.
1311//
1312// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1313func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
1314	req, out := c.DescribeContainerInstancesRequest(input)
1315	return out, req.Send()
1316}
1317
1318// DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
1319// the ability to pass a context and additional request options.
1320//
1321// See DescribeContainerInstances for details on how to use this API operation.
1322//
1323// The context must be non-nil and will be used for request cancellation. If
1324// the context is nil a panic will occur. In the future the SDK may create
1325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1326// for more information on using Contexts.
1327func (c *ECS) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
1328	req, out := c.DescribeContainerInstancesRequest(input)
1329	req.SetContext(ctx)
1330	req.ApplyOptions(opts...)
1331	return out, req.Send()
1332}
1333
1334const opDescribeServices = "DescribeServices"
1335
1336// DescribeServicesRequest generates a "aws/request.Request" representing the
1337// client's request for the DescribeServices operation. The "output" return
1338// value will be populated with the request's response once the request completes
1339// successfully.
1340//
1341// Use "Send" method on the returned Request to send the API call to the service.
1342// the "output" return value is not valid until after Send returns without error.
1343//
1344// See DescribeServices for more information on using the DescribeServices
1345// API call, and error handling.
1346//
1347// This method is useful when you want to inject custom logic or configuration
1348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1349//
1350//
1351//    // Example sending a request using the DescribeServicesRequest method.
1352//    req, resp := client.DescribeServicesRequest(params)
1353//
1354//    err := req.Send()
1355//    if err == nil { // resp is now filled
1356//        fmt.Println(resp)
1357//    }
1358//
1359// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1360func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
1361	op := &request.Operation{
1362		Name:       opDescribeServices,
1363		HTTPMethod: "POST",
1364		HTTPPath:   "/",
1365	}
1366
1367	if input == nil {
1368		input = &DescribeServicesInput{}
1369	}
1370
1371	output = &DescribeServicesOutput{}
1372	req = c.newRequest(op, input, output)
1373	return
1374}
1375
1376// DescribeServices API operation for Amazon EC2 Container Service.
1377//
1378// Describes the specified services running in your cluster.
1379//
1380// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1381// with awserr.Error's Code and Message methods to get detailed information about
1382// the error.
1383//
1384// See the AWS API reference guide for Amazon EC2 Container Service's
1385// API operation DescribeServices for usage and error information.
1386//
1387// Returned Error Codes:
1388//   * ErrCodeServerException "ServerException"
1389//   These errors are usually caused by a server issue.
1390//
1391//   * ErrCodeClientException "ClientException"
1392//   These errors are usually caused by a client action, such as using an action
1393//   or resource on behalf of a user that doesn't have permissions to use the
1394//   action or resource, or specifying an identifier that is not valid.
1395//
1396//   * ErrCodeInvalidParameterException "InvalidParameterException"
1397//   The specified parameter is invalid. Review the available parameters for the
1398//   API request.
1399//
1400//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1401//   The specified cluster could not be found. You can view your available clusters
1402//   with ListClusters. Amazon ECS clusters are Region-specific.
1403//
1404// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1405func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
1406	req, out := c.DescribeServicesRequest(input)
1407	return out, req.Send()
1408}
1409
1410// DescribeServicesWithContext is the same as DescribeServices with the addition of
1411// the ability to pass a context and additional request options.
1412//
1413// See DescribeServices for details on how to use this API operation.
1414//
1415// The context must be non-nil and will be used for request cancellation. If
1416// the context is nil a panic will occur. In the future the SDK may create
1417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1418// for more information on using Contexts.
1419func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
1420	req, out := c.DescribeServicesRequest(input)
1421	req.SetContext(ctx)
1422	req.ApplyOptions(opts...)
1423	return out, req.Send()
1424}
1425
1426const opDescribeTaskDefinition = "DescribeTaskDefinition"
1427
1428// DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
1429// client's request for the DescribeTaskDefinition operation. The "output" return
1430// value will be populated with the request's response once the request completes
1431// successfully.
1432//
1433// Use "Send" method on the returned Request to send the API call to the service.
1434// the "output" return value is not valid until after Send returns without error.
1435//
1436// See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
1437// API call, and error handling.
1438//
1439// This method is useful when you want to inject custom logic or configuration
1440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1441//
1442//
1443//    // Example sending a request using the DescribeTaskDefinitionRequest method.
1444//    req, resp := client.DescribeTaskDefinitionRequest(params)
1445//
1446//    err := req.Send()
1447//    if err == nil { // resp is now filled
1448//        fmt.Println(resp)
1449//    }
1450//
1451// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1452func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
1453	op := &request.Operation{
1454		Name:       opDescribeTaskDefinition,
1455		HTTPMethod: "POST",
1456		HTTPPath:   "/",
1457	}
1458
1459	if input == nil {
1460		input = &DescribeTaskDefinitionInput{}
1461	}
1462
1463	output = &DescribeTaskDefinitionOutput{}
1464	req = c.newRequest(op, input, output)
1465	return
1466}
1467
1468// DescribeTaskDefinition API operation for Amazon EC2 Container Service.
1469//
1470// Describes a task definition. You can specify a family and revision to find
1471// information about a specific task definition, or you can simply specify the
1472// family to find the latest ACTIVE revision in that family.
1473//
1474// You can only describe INACTIVE task definitions while an active task or service
1475// references them.
1476//
1477// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1478// with awserr.Error's Code and Message methods to get detailed information about
1479// the error.
1480//
1481// See the AWS API reference guide for Amazon EC2 Container Service's
1482// API operation DescribeTaskDefinition for usage and error information.
1483//
1484// Returned Error Codes:
1485//   * ErrCodeServerException "ServerException"
1486//   These errors are usually caused by a server issue.
1487//
1488//   * ErrCodeClientException "ClientException"
1489//   These errors are usually caused by a client action, such as using an action
1490//   or resource on behalf of a user that doesn't have permissions to use the
1491//   action or resource, or specifying an identifier that is not valid.
1492//
1493//   * ErrCodeInvalidParameterException "InvalidParameterException"
1494//   The specified parameter is invalid. Review the available parameters for the
1495//   API request.
1496//
1497// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1498func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
1499	req, out := c.DescribeTaskDefinitionRequest(input)
1500	return out, req.Send()
1501}
1502
1503// DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
1504// the ability to pass a context and additional request options.
1505//
1506// See DescribeTaskDefinition for details on how to use this API operation.
1507//
1508// The context must be non-nil and will be used for request cancellation. If
1509// the context is nil a panic will occur. In the future the SDK may create
1510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1511// for more information on using Contexts.
1512func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
1513	req, out := c.DescribeTaskDefinitionRequest(input)
1514	req.SetContext(ctx)
1515	req.ApplyOptions(opts...)
1516	return out, req.Send()
1517}
1518
1519const opDescribeTaskSets = "DescribeTaskSets"
1520
1521// DescribeTaskSetsRequest generates a "aws/request.Request" representing the
1522// client's request for the DescribeTaskSets operation. The "output" return
1523// value will be populated with the request's response once the request completes
1524// successfully.
1525//
1526// Use "Send" method on the returned Request to send the API call to the service.
1527// the "output" return value is not valid until after Send returns without error.
1528//
1529// See DescribeTaskSets for more information on using the DescribeTaskSets
1530// API call, and error handling.
1531//
1532// This method is useful when you want to inject custom logic or configuration
1533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1534//
1535//
1536//    // Example sending a request using the DescribeTaskSetsRequest method.
1537//    req, resp := client.DescribeTaskSetsRequest(params)
1538//
1539//    err := req.Send()
1540//    if err == nil { // resp is now filled
1541//        fmt.Println(resp)
1542//    }
1543//
1544// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1545func (c *ECS) DescribeTaskSetsRequest(input *DescribeTaskSetsInput) (req *request.Request, output *DescribeTaskSetsOutput) {
1546	op := &request.Operation{
1547		Name:       opDescribeTaskSets,
1548		HTTPMethod: "POST",
1549		HTTPPath:   "/",
1550	}
1551
1552	if input == nil {
1553		input = &DescribeTaskSetsInput{}
1554	}
1555
1556	output = &DescribeTaskSetsOutput{}
1557	req = c.newRequest(op, input, output)
1558	return
1559}
1560
1561// DescribeTaskSets API operation for Amazon EC2 Container Service.
1562//
1563// Describes the task sets in the specified cluster and service. This is used
1564// when a service uses the EXTERNAL deployment controller type. For more information,
1565// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1566// in the Amazon Elastic Container Service Developer Guide.
1567//
1568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1569// with awserr.Error's Code and Message methods to get detailed information about
1570// the error.
1571//
1572// See the AWS API reference guide for Amazon EC2 Container Service's
1573// API operation DescribeTaskSets for usage and error information.
1574//
1575// Returned Error Codes:
1576//   * ErrCodeServerException "ServerException"
1577//   These errors are usually caused by a server issue.
1578//
1579//   * ErrCodeClientException "ClientException"
1580//   These errors are usually caused by a client action, such as using an action
1581//   or resource on behalf of a user that doesn't have permissions to use the
1582//   action or resource, or specifying an identifier that is not valid.
1583//
1584//   * ErrCodeInvalidParameterException "InvalidParameterException"
1585//   The specified parameter is invalid. Review the available parameters for the
1586//   API request.
1587//
1588//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1589//   The specified cluster could not be found. You can view your available clusters
1590//   with ListClusters. Amazon ECS clusters are Region-specific.
1591//
1592//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
1593//   The specified task is not supported in this Region.
1594//
1595//   * ErrCodeAccessDeniedException "AccessDeniedException"
1596//   You do not have authorization to perform the requested action.
1597//
1598//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
1599//   The specified service could not be found. You can view your available services
1600//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1601//
1602//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
1603//   The specified service is not active. You can't update a service that is inactive.
1604//   If you have previously deleted a service, you can re-create it with CreateService.
1605//
1606// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1607func (c *ECS) DescribeTaskSets(input *DescribeTaskSetsInput) (*DescribeTaskSetsOutput, error) {
1608	req, out := c.DescribeTaskSetsRequest(input)
1609	return out, req.Send()
1610}
1611
1612// DescribeTaskSetsWithContext is the same as DescribeTaskSets with the addition of
1613// the ability to pass a context and additional request options.
1614//
1615// See DescribeTaskSets for details on how to use this API operation.
1616//
1617// The context must be non-nil and will be used for request cancellation. If
1618// the context is nil a panic will occur. In the future the SDK may create
1619// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1620// for more information on using Contexts.
1621func (c *ECS) DescribeTaskSetsWithContext(ctx aws.Context, input *DescribeTaskSetsInput, opts ...request.Option) (*DescribeTaskSetsOutput, error) {
1622	req, out := c.DescribeTaskSetsRequest(input)
1623	req.SetContext(ctx)
1624	req.ApplyOptions(opts...)
1625	return out, req.Send()
1626}
1627
1628const opDescribeTasks = "DescribeTasks"
1629
1630// DescribeTasksRequest generates a "aws/request.Request" representing the
1631// client's request for the DescribeTasks operation. The "output" return
1632// value will be populated with the request's response once the request completes
1633// successfully.
1634//
1635// Use "Send" method on the returned Request to send the API call to the service.
1636// the "output" return value is not valid until after Send returns without error.
1637//
1638// See DescribeTasks for more information on using the DescribeTasks
1639// API call, and error handling.
1640//
1641// This method is useful when you want to inject custom logic or configuration
1642// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1643//
1644//
1645//    // Example sending a request using the DescribeTasksRequest method.
1646//    req, resp := client.DescribeTasksRequest(params)
1647//
1648//    err := req.Send()
1649//    if err == nil { // resp is now filled
1650//        fmt.Println(resp)
1651//    }
1652//
1653// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1654func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
1655	op := &request.Operation{
1656		Name:       opDescribeTasks,
1657		HTTPMethod: "POST",
1658		HTTPPath:   "/",
1659	}
1660
1661	if input == nil {
1662		input = &DescribeTasksInput{}
1663	}
1664
1665	output = &DescribeTasksOutput{}
1666	req = c.newRequest(op, input, output)
1667	return
1668}
1669
1670// DescribeTasks API operation for Amazon EC2 Container Service.
1671//
1672// Describes a specified task or tasks.
1673//
1674// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1675// with awserr.Error's Code and Message methods to get detailed information about
1676// the error.
1677//
1678// See the AWS API reference guide for Amazon EC2 Container Service's
1679// API operation DescribeTasks for usage and error information.
1680//
1681// Returned Error Codes:
1682//   * ErrCodeServerException "ServerException"
1683//   These errors are usually caused by a server issue.
1684//
1685//   * ErrCodeClientException "ClientException"
1686//   These errors are usually caused by a client action, such as using an action
1687//   or resource on behalf of a user that doesn't have permissions to use the
1688//   action or resource, or specifying an identifier that is not valid.
1689//
1690//   * ErrCodeInvalidParameterException "InvalidParameterException"
1691//   The specified parameter is invalid. Review the available parameters for the
1692//   API request.
1693//
1694//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1695//   The specified cluster could not be found. You can view your available clusters
1696//   with ListClusters. Amazon ECS clusters are Region-specific.
1697//
1698// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1699func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
1700	req, out := c.DescribeTasksRequest(input)
1701	return out, req.Send()
1702}
1703
1704// DescribeTasksWithContext is the same as DescribeTasks with the addition of
1705// the ability to pass a context and additional request options.
1706//
1707// See DescribeTasks for details on how to use this API operation.
1708//
1709// The context must be non-nil and will be used for request cancellation. If
1710// the context is nil a panic will occur. In the future the SDK may create
1711// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1712// for more information on using Contexts.
1713func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
1714	req, out := c.DescribeTasksRequest(input)
1715	req.SetContext(ctx)
1716	req.ApplyOptions(opts...)
1717	return out, req.Send()
1718}
1719
1720const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
1721
1722// DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
1723// client's request for the DiscoverPollEndpoint operation. The "output" return
1724// value will be populated with the request's response once the request completes
1725// successfully.
1726//
1727// Use "Send" method on the returned Request to send the API call to the service.
1728// the "output" return value is not valid until after Send returns without error.
1729//
1730// See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
1731// API call, and error handling.
1732//
1733// This method is useful when you want to inject custom logic or configuration
1734// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1735//
1736//
1737//    // Example sending a request using the DiscoverPollEndpointRequest method.
1738//    req, resp := client.DiscoverPollEndpointRequest(params)
1739//
1740//    err := req.Send()
1741//    if err == nil { // resp is now filled
1742//        fmt.Println(resp)
1743//    }
1744//
1745// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1746func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
1747	op := &request.Operation{
1748		Name:       opDiscoverPollEndpoint,
1749		HTTPMethod: "POST",
1750		HTTPPath:   "/",
1751	}
1752
1753	if input == nil {
1754		input = &DiscoverPollEndpointInput{}
1755	}
1756
1757	output = &DiscoverPollEndpointOutput{}
1758	req = c.newRequest(op, input, output)
1759	return
1760}
1761
1762// DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
1763//
1764//
1765// This action is only used by the Amazon ECS agent, and it is not intended
1766// for use outside of the agent.
1767//
1768// Returns an endpoint for the Amazon ECS agent to poll for updates.
1769//
1770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1771// with awserr.Error's Code and Message methods to get detailed information about
1772// the error.
1773//
1774// See the AWS API reference guide for Amazon EC2 Container Service's
1775// API operation DiscoverPollEndpoint for usage and error information.
1776//
1777// Returned Error Codes:
1778//   * ErrCodeServerException "ServerException"
1779//   These errors are usually caused by a server issue.
1780//
1781//   * ErrCodeClientException "ClientException"
1782//   These errors are usually caused by a client action, such as using an action
1783//   or resource on behalf of a user that doesn't have permissions to use the
1784//   action or resource, or specifying an identifier that is not valid.
1785//
1786// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1787func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
1788	req, out := c.DiscoverPollEndpointRequest(input)
1789	return out, req.Send()
1790}
1791
1792// DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
1793// the ability to pass a context and additional request options.
1794//
1795// See DiscoverPollEndpoint for details on how to use this API operation.
1796//
1797// The context must be non-nil and will be used for request cancellation. If
1798// the context is nil a panic will occur. In the future the SDK may create
1799// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1800// for more information on using Contexts.
1801func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
1802	req, out := c.DiscoverPollEndpointRequest(input)
1803	req.SetContext(ctx)
1804	req.ApplyOptions(opts...)
1805	return out, req.Send()
1806}
1807
1808const opListAccountSettings = "ListAccountSettings"
1809
1810// ListAccountSettingsRequest generates a "aws/request.Request" representing the
1811// client's request for the ListAccountSettings operation. The "output" return
1812// value will be populated with the request's response once the request completes
1813// successfully.
1814//
1815// Use "Send" method on the returned Request to send the API call to the service.
1816// the "output" return value is not valid until after Send returns without error.
1817//
1818// See ListAccountSettings for more information on using the ListAccountSettings
1819// API call, and error handling.
1820//
1821// This method is useful when you want to inject custom logic or configuration
1822// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1823//
1824//
1825//    // Example sending a request using the ListAccountSettingsRequest method.
1826//    req, resp := client.ListAccountSettingsRequest(params)
1827//
1828//    err := req.Send()
1829//    if err == nil { // resp is now filled
1830//        fmt.Println(resp)
1831//    }
1832//
1833// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
1834func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
1835	op := &request.Operation{
1836		Name:       opListAccountSettings,
1837		HTTPMethod: "POST",
1838		HTTPPath:   "/",
1839	}
1840
1841	if input == nil {
1842		input = &ListAccountSettingsInput{}
1843	}
1844
1845	output = &ListAccountSettingsOutput{}
1846	req = c.newRequest(op, input, output)
1847	return
1848}
1849
1850// ListAccountSettings API operation for Amazon EC2 Container Service.
1851//
1852// Lists the account settings for a specified principal.
1853//
1854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1855// with awserr.Error's Code and Message methods to get detailed information about
1856// the error.
1857//
1858// See the AWS API reference guide for Amazon EC2 Container Service's
1859// API operation ListAccountSettings for usage and error information.
1860//
1861// Returned Error Codes:
1862//   * ErrCodeServerException "ServerException"
1863//   These errors are usually caused by a server issue.
1864//
1865//   * ErrCodeClientException "ClientException"
1866//   These errors are usually caused by a client action, such as using an action
1867//   or resource on behalf of a user that doesn't have permissions to use the
1868//   action or resource, or specifying an identifier that is not valid.
1869//
1870//   * ErrCodeInvalidParameterException "InvalidParameterException"
1871//   The specified parameter is invalid. Review the available parameters for the
1872//   API request.
1873//
1874// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
1875func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
1876	req, out := c.ListAccountSettingsRequest(input)
1877	return out, req.Send()
1878}
1879
1880// ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
1881// the ability to pass a context and additional request options.
1882//
1883// See ListAccountSettings for details on how to use this API operation.
1884//
1885// The context must be non-nil and will be used for request cancellation. If
1886// the context is nil a panic will occur. In the future the SDK may create
1887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1888// for more information on using Contexts.
1889func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
1890	req, out := c.ListAccountSettingsRequest(input)
1891	req.SetContext(ctx)
1892	req.ApplyOptions(opts...)
1893	return out, req.Send()
1894}
1895
1896const opListAttributes = "ListAttributes"
1897
1898// ListAttributesRequest generates a "aws/request.Request" representing the
1899// client's request for the ListAttributes operation. The "output" return
1900// value will be populated with the request's response once the request completes
1901// successfully.
1902//
1903// Use "Send" method on the returned Request to send the API call to the service.
1904// the "output" return value is not valid until after Send returns without error.
1905//
1906// See ListAttributes for more information on using the ListAttributes
1907// API call, and error handling.
1908//
1909// This method is useful when you want to inject custom logic or configuration
1910// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1911//
1912//
1913//    // Example sending a request using the ListAttributesRequest method.
1914//    req, resp := client.ListAttributesRequest(params)
1915//
1916//    err := req.Send()
1917//    if err == nil { // resp is now filled
1918//        fmt.Println(resp)
1919//    }
1920//
1921// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
1922func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
1923	op := &request.Operation{
1924		Name:       opListAttributes,
1925		HTTPMethod: "POST",
1926		HTTPPath:   "/",
1927	}
1928
1929	if input == nil {
1930		input = &ListAttributesInput{}
1931	}
1932
1933	output = &ListAttributesOutput{}
1934	req = c.newRequest(op, input, output)
1935	return
1936}
1937
1938// ListAttributes API operation for Amazon EC2 Container Service.
1939//
1940// Lists the attributes for Amazon ECS resources within a specified target type
1941// and cluster. When you specify a target type and cluster, ListAttributes returns
1942// a list of attribute objects, one for each attribute on each resource. You
1943// can filter the list of results to a single attribute name to only return
1944// results that have that name. You can also filter the results by attribute
1945// name and value, for example, to see which container instances in a cluster
1946// are running a Linux AMI (ecs.os-type=linux).
1947//
1948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1949// with awserr.Error's Code and Message methods to get detailed information about
1950// the error.
1951//
1952// See the AWS API reference guide for Amazon EC2 Container Service's
1953// API operation ListAttributes for usage and error information.
1954//
1955// Returned Error Codes:
1956//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1957//   The specified cluster could not be found. You can view your available clusters
1958//   with ListClusters. Amazon ECS clusters are Region-specific.
1959//
1960//   * ErrCodeInvalidParameterException "InvalidParameterException"
1961//   The specified parameter is invalid. Review the available parameters for the
1962//   API request.
1963//
1964// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
1965func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
1966	req, out := c.ListAttributesRequest(input)
1967	return out, req.Send()
1968}
1969
1970// ListAttributesWithContext is the same as ListAttributes with the addition of
1971// the ability to pass a context and additional request options.
1972//
1973// See ListAttributes for details on how to use this API operation.
1974//
1975// The context must be non-nil and will be used for request cancellation. If
1976// the context is nil a panic will occur. In the future the SDK may create
1977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1978// for more information on using Contexts.
1979func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
1980	req, out := c.ListAttributesRequest(input)
1981	req.SetContext(ctx)
1982	req.ApplyOptions(opts...)
1983	return out, req.Send()
1984}
1985
1986const opListClusters = "ListClusters"
1987
1988// ListClustersRequest generates a "aws/request.Request" representing the
1989// client's request for the ListClusters operation. The "output" return
1990// value will be populated with the request's response once the request completes
1991// successfully.
1992//
1993// Use "Send" method on the returned Request to send the API call to the service.
1994// the "output" return value is not valid until after Send returns without error.
1995//
1996// See ListClusters for more information on using the ListClusters
1997// API call, and error handling.
1998//
1999// This method is useful when you want to inject custom logic or configuration
2000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2001//
2002//
2003//    // Example sending a request using the ListClustersRequest method.
2004//    req, resp := client.ListClustersRequest(params)
2005//
2006//    err := req.Send()
2007//    if err == nil { // resp is now filled
2008//        fmt.Println(resp)
2009//    }
2010//
2011// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2012func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2013	op := &request.Operation{
2014		Name:       opListClusters,
2015		HTTPMethod: "POST",
2016		HTTPPath:   "/",
2017		Paginator: &request.Paginator{
2018			InputTokens:     []string{"nextToken"},
2019			OutputTokens:    []string{"nextToken"},
2020			LimitToken:      "maxResults",
2021			TruncationToken: "",
2022		},
2023	}
2024
2025	if input == nil {
2026		input = &ListClustersInput{}
2027	}
2028
2029	output = &ListClustersOutput{}
2030	req = c.newRequest(op, input, output)
2031	return
2032}
2033
2034// ListClusters API operation for Amazon EC2 Container Service.
2035//
2036// Returns a list of existing clusters.
2037//
2038// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2039// with awserr.Error's Code and Message methods to get detailed information about
2040// the error.
2041//
2042// See the AWS API reference guide for Amazon EC2 Container Service's
2043// API operation ListClusters for usage and error information.
2044//
2045// Returned Error Codes:
2046//   * ErrCodeServerException "ServerException"
2047//   These errors are usually caused by a server issue.
2048//
2049//   * ErrCodeClientException "ClientException"
2050//   These errors are usually caused by a client action, such as using an action
2051//   or resource on behalf of a user that doesn't have permissions to use the
2052//   action or resource, or specifying an identifier that is not valid.
2053//
2054//   * ErrCodeInvalidParameterException "InvalidParameterException"
2055//   The specified parameter is invalid. Review the available parameters for the
2056//   API request.
2057//
2058// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2059func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2060	req, out := c.ListClustersRequest(input)
2061	return out, req.Send()
2062}
2063
2064// ListClustersWithContext is the same as ListClusters with the addition of
2065// the ability to pass a context and additional request options.
2066//
2067// See ListClusters for details on how to use this API operation.
2068//
2069// The context must be non-nil and will be used for request cancellation. If
2070// the context is nil a panic will occur. In the future the SDK may create
2071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2072// for more information on using Contexts.
2073func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2074	req, out := c.ListClustersRequest(input)
2075	req.SetContext(ctx)
2076	req.ApplyOptions(opts...)
2077	return out, req.Send()
2078}
2079
2080// ListClustersPages iterates over the pages of a ListClusters operation,
2081// calling the "fn" function with the response data for each page. To stop
2082// iterating, return false from the fn function.
2083//
2084// See ListClusters method for more information on how to use this operation.
2085//
2086// Note: This operation can generate multiple requests to a service.
2087//
2088//    // Example iterating over at most 3 pages of a ListClusters operation.
2089//    pageNum := 0
2090//    err := client.ListClustersPages(params,
2091//        func(page *ecs.ListClustersOutput, lastPage bool) bool {
2092//            pageNum++
2093//            fmt.Println(page)
2094//            return pageNum <= 3
2095//        })
2096//
2097func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2098	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2099}
2100
2101// ListClustersPagesWithContext same as ListClustersPages except
2102// it takes a Context and allows setting request options on the pages.
2103//
2104// The context must be non-nil and will be used for request cancellation. If
2105// the context is nil a panic will occur. In the future the SDK may create
2106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2107// for more information on using Contexts.
2108func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2109	p := request.Pagination{
2110		NewRequest: func() (*request.Request, error) {
2111			var inCpy *ListClustersInput
2112			if input != nil {
2113				tmp := *input
2114				inCpy = &tmp
2115			}
2116			req, _ := c.ListClustersRequest(inCpy)
2117			req.SetContext(ctx)
2118			req.ApplyOptions(opts...)
2119			return req, nil
2120		},
2121	}
2122
2123	cont := true
2124	for p.Next() && cont {
2125		cont = fn(p.Page().(*ListClustersOutput), !p.HasNextPage())
2126	}
2127	return p.Err()
2128}
2129
2130const opListContainerInstances = "ListContainerInstances"
2131
2132// ListContainerInstancesRequest generates a "aws/request.Request" representing the
2133// client's request for the ListContainerInstances operation. The "output" return
2134// value will be populated with the request's response once the request completes
2135// successfully.
2136//
2137// Use "Send" method on the returned Request to send the API call to the service.
2138// the "output" return value is not valid until after Send returns without error.
2139//
2140// See ListContainerInstances for more information on using the ListContainerInstances
2141// API call, and error handling.
2142//
2143// This method is useful when you want to inject custom logic or configuration
2144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2145//
2146//
2147//    // Example sending a request using the ListContainerInstancesRequest method.
2148//    req, resp := client.ListContainerInstancesRequest(params)
2149//
2150//    err := req.Send()
2151//    if err == nil { // resp is now filled
2152//        fmt.Println(resp)
2153//    }
2154//
2155// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2156func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
2157	op := &request.Operation{
2158		Name:       opListContainerInstances,
2159		HTTPMethod: "POST",
2160		HTTPPath:   "/",
2161		Paginator: &request.Paginator{
2162			InputTokens:     []string{"nextToken"},
2163			OutputTokens:    []string{"nextToken"},
2164			LimitToken:      "maxResults",
2165			TruncationToken: "",
2166		},
2167	}
2168
2169	if input == nil {
2170		input = &ListContainerInstancesInput{}
2171	}
2172
2173	output = &ListContainerInstancesOutput{}
2174	req = c.newRequest(op, input, output)
2175	return
2176}
2177
2178// ListContainerInstances API operation for Amazon EC2 Container Service.
2179//
2180// Returns a list of container instances in a specified cluster. You can filter
2181// the results of a ListContainerInstances operation with cluster query language
2182// statements inside the filter parameter. For more information, see Cluster
2183// Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
2184// in the Amazon Elastic Container Service Developer Guide.
2185//
2186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2187// with awserr.Error's Code and Message methods to get detailed information about
2188// the error.
2189//
2190// See the AWS API reference guide for Amazon EC2 Container Service's
2191// API operation ListContainerInstances for usage and error information.
2192//
2193// Returned Error Codes:
2194//   * ErrCodeServerException "ServerException"
2195//   These errors are usually caused by a server issue.
2196//
2197//   * ErrCodeClientException "ClientException"
2198//   These errors are usually caused by a client action, such as using an action
2199//   or resource on behalf of a user that doesn't have permissions to use the
2200//   action or resource, or specifying an identifier that is not valid.
2201//
2202//   * ErrCodeInvalidParameterException "InvalidParameterException"
2203//   The specified parameter is invalid. Review the available parameters for the
2204//   API request.
2205//
2206//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2207//   The specified cluster could not be found. You can view your available clusters
2208//   with ListClusters. Amazon ECS clusters are Region-specific.
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2211func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
2212	req, out := c.ListContainerInstancesRequest(input)
2213	return out, req.Send()
2214}
2215
2216// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
2217// the ability to pass a context and additional request options.
2218//
2219// See ListContainerInstances for details on how to use this API operation.
2220//
2221// The context must be non-nil and will be used for request cancellation. If
2222// the context is nil a panic will occur. In the future the SDK may create
2223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2224// for more information on using Contexts.
2225func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
2226	req, out := c.ListContainerInstancesRequest(input)
2227	req.SetContext(ctx)
2228	req.ApplyOptions(opts...)
2229	return out, req.Send()
2230}
2231
2232// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
2233// calling the "fn" function with the response data for each page. To stop
2234// iterating, return false from the fn function.
2235//
2236// See ListContainerInstances method for more information on how to use this operation.
2237//
2238// Note: This operation can generate multiple requests to a service.
2239//
2240//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
2241//    pageNum := 0
2242//    err := client.ListContainerInstancesPages(params,
2243//        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
2244//            pageNum++
2245//            fmt.Println(page)
2246//            return pageNum <= 3
2247//        })
2248//
2249func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
2250	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2251}
2252
2253// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
2254// it takes a Context and allows setting request options on the pages.
2255//
2256// The context must be non-nil and will be used for request cancellation. If
2257// the context is nil a panic will occur. In the future the SDK may create
2258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2259// for more information on using Contexts.
2260func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
2261	p := request.Pagination{
2262		NewRequest: func() (*request.Request, error) {
2263			var inCpy *ListContainerInstancesInput
2264			if input != nil {
2265				tmp := *input
2266				inCpy = &tmp
2267			}
2268			req, _ := c.ListContainerInstancesRequest(inCpy)
2269			req.SetContext(ctx)
2270			req.ApplyOptions(opts...)
2271			return req, nil
2272		},
2273	}
2274
2275	cont := true
2276	for p.Next() && cont {
2277		cont = fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage())
2278	}
2279	return p.Err()
2280}
2281
2282const opListServices = "ListServices"
2283
2284// ListServicesRequest generates a "aws/request.Request" representing the
2285// client's request for the ListServices operation. The "output" return
2286// value will be populated with the request's response once the request completes
2287// successfully.
2288//
2289// Use "Send" method on the returned Request to send the API call to the service.
2290// the "output" return value is not valid until after Send returns without error.
2291//
2292// See ListServices for more information on using the ListServices
2293// API call, and error handling.
2294//
2295// This method is useful when you want to inject custom logic or configuration
2296// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2297//
2298//
2299//    // Example sending a request using the ListServicesRequest method.
2300//    req, resp := client.ListServicesRequest(params)
2301//
2302//    err := req.Send()
2303//    if err == nil { // resp is now filled
2304//        fmt.Println(resp)
2305//    }
2306//
2307// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2308func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
2309	op := &request.Operation{
2310		Name:       opListServices,
2311		HTTPMethod: "POST",
2312		HTTPPath:   "/",
2313		Paginator: &request.Paginator{
2314			InputTokens:     []string{"nextToken"},
2315			OutputTokens:    []string{"nextToken"},
2316			LimitToken:      "maxResults",
2317			TruncationToken: "",
2318		},
2319	}
2320
2321	if input == nil {
2322		input = &ListServicesInput{}
2323	}
2324
2325	output = &ListServicesOutput{}
2326	req = c.newRequest(op, input, output)
2327	return
2328}
2329
2330// ListServices API operation for Amazon EC2 Container Service.
2331//
2332// Lists the services that are running in a specified cluster.
2333//
2334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2335// with awserr.Error's Code and Message methods to get detailed information about
2336// the error.
2337//
2338// See the AWS API reference guide for Amazon EC2 Container Service's
2339// API operation ListServices for usage and error information.
2340//
2341// Returned Error Codes:
2342//   * ErrCodeServerException "ServerException"
2343//   These errors are usually caused by a server issue.
2344//
2345//   * ErrCodeClientException "ClientException"
2346//   These errors are usually caused by a client action, such as using an action
2347//   or resource on behalf of a user that doesn't have permissions to use the
2348//   action or resource, or specifying an identifier that is not valid.
2349//
2350//   * ErrCodeInvalidParameterException "InvalidParameterException"
2351//   The specified parameter is invalid. Review the available parameters for the
2352//   API request.
2353//
2354//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2355//   The specified cluster could not be found. You can view your available clusters
2356//   with ListClusters. Amazon ECS clusters are Region-specific.
2357//
2358// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2359func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
2360	req, out := c.ListServicesRequest(input)
2361	return out, req.Send()
2362}
2363
2364// ListServicesWithContext is the same as ListServices with the addition of
2365// the ability to pass a context and additional request options.
2366//
2367// See ListServices for details on how to use this API operation.
2368//
2369// The context must be non-nil and will be used for request cancellation. If
2370// the context is nil a panic will occur. In the future the SDK may create
2371// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2372// for more information on using Contexts.
2373func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
2374	req, out := c.ListServicesRequest(input)
2375	req.SetContext(ctx)
2376	req.ApplyOptions(opts...)
2377	return out, req.Send()
2378}
2379
2380// ListServicesPages iterates over the pages of a ListServices operation,
2381// calling the "fn" function with the response data for each page. To stop
2382// iterating, return false from the fn function.
2383//
2384// See ListServices method for more information on how to use this operation.
2385//
2386// Note: This operation can generate multiple requests to a service.
2387//
2388//    // Example iterating over at most 3 pages of a ListServices operation.
2389//    pageNum := 0
2390//    err := client.ListServicesPages(params,
2391//        func(page *ecs.ListServicesOutput, lastPage bool) bool {
2392//            pageNum++
2393//            fmt.Println(page)
2394//            return pageNum <= 3
2395//        })
2396//
2397func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
2398	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2399}
2400
2401// ListServicesPagesWithContext same as ListServicesPages except
2402// it takes a Context and allows setting request options on the pages.
2403//
2404// The context must be non-nil and will be used for request cancellation. If
2405// the context is nil a panic will occur. In the future the SDK may create
2406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2407// for more information on using Contexts.
2408func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
2409	p := request.Pagination{
2410		NewRequest: func() (*request.Request, error) {
2411			var inCpy *ListServicesInput
2412			if input != nil {
2413				tmp := *input
2414				inCpy = &tmp
2415			}
2416			req, _ := c.ListServicesRequest(inCpy)
2417			req.SetContext(ctx)
2418			req.ApplyOptions(opts...)
2419			return req, nil
2420		},
2421	}
2422
2423	cont := true
2424	for p.Next() && cont {
2425		cont = fn(p.Page().(*ListServicesOutput), !p.HasNextPage())
2426	}
2427	return p.Err()
2428}
2429
2430const opListTagsForResource = "ListTagsForResource"
2431
2432// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2433// client's request for the ListTagsForResource operation. The "output" return
2434// value will be populated with the request's response once the request completes
2435// successfully.
2436//
2437// Use "Send" method on the returned Request to send the API call to the service.
2438// the "output" return value is not valid until after Send returns without error.
2439//
2440// See ListTagsForResource for more information on using the ListTagsForResource
2441// API call, and error handling.
2442//
2443// This method is useful when you want to inject custom logic or configuration
2444// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2445//
2446//
2447//    // Example sending a request using the ListTagsForResourceRequest method.
2448//    req, resp := client.ListTagsForResourceRequest(params)
2449//
2450//    err := req.Send()
2451//    if err == nil { // resp is now filled
2452//        fmt.Println(resp)
2453//    }
2454//
2455// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2456func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2457	op := &request.Operation{
2458		Name:       opListTagsForResource,
2459		HTTPMethod: "POST",
2460		HTTPPath:   "/",
2461	}
2462
2463	if input == nil {
2464		input = &ListTagsForResourceInput{}
2465	}
2466
2467	output = &ListTagsForResourceOutput{}
2468	req = c.newRequest(op, input, output)
2469	return
2470}
2471
2472// ListTagsForResource API operation for Amazon EC2 Container Service.
2473//
2474// List the tags for an Amazon ECS resource.
2475//
2476// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2477// with awserr.Error's Code and Message methods to get detailed information about
2478// the error.
2479//
2480// See the AWS API reference guide for Amazon EC2 Container Service's
2481// API operation ListTagsForResource for usage and error information.
2482//
2483// Returned Error Codes:
2484//   * ErrCodeServerException "ServerException"
2485//   These errors are usually caused by a server issue.
2486//
2487//   * ErrCodeClientException "ClientException"
2488//   These errors are usually caused by a client action, such as using an action
2489//   or resource on behalf of a user that doesn't have permissions to use the
2490//   action or resource, or specifying an identifier that is not valid.
2491//
2492//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2493//   The specified cluster could not be found. You can view your available clusters
2494//   with ListClusters. Amazon ECS clusters are Region-specific.
2495//
2496//   * ErrCodeInvalidParameterException "InvalidParameterException"
2497//   The specified parameter is invalid. Review the available parameters for the
2498//   API request.
2499//
2500// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2501func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2502	req, out := c.ListTagsForResourceRequest(input)
2503	return out, req.Send()
2504}
2505
2506// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2507// the ability to pass a context and additional request options.
2508//
2509// See ListTagsForResource for details on how to use this API operation.
2510//
2511// The context must be non-nil and will be used for request cancellation. If
2512// the context is nil a panic will occur. In the future the SDK may create
2513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2514// for more information on using Contexts.
2515func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2516	req, out := c.ListTagsForResourceRequest(input)
2517	req.SetContext(ctx)
2518	req.ApplyOptions(opts...)
2519	return out, req.Send()
2520}
2521
2522const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
2523
2524// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
2525// client's request for the ListTaskDefinitionFamilies operation. The "output" return
2526// value will be populated with the request's response once the request completes
2527// successfully.
2528//
2529// Use "Send" method on the returned Request to send the API call to the service.
2530// the "output" return value is not valid until after Send returns without error.
2531//
2532// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
2533// API call, and error handling.
2534//
2535// This method is useful when you want to inject custom logic or configuration
2536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2537//
2538//
2539//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
2540//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
2541//
2542//    err := req.Send()
2543//    if err == nil { // resp is now filled
2544//        fmt.Println(resp)
2545//    }
2546//
2547// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2548func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
2549	op := &request.Operation{
2550		Name:       opListTaskDefinitionFamilies,
2551		HTTPMethod: "POST",
2552		HTTPPath:   "/",
2553		Paginator: &request.Paginator{
2554			InputTokens:     []string{"nextToken"},
2555			OutputTokens:    []string{"nextToken"},
2556			LimitToken:      "maxResults",
2557			TruncationToken: "",
2558		},
2559	}
2560
2561	if input == nil {
2562		input = &ListTaskDefinitionFamiliesInput{}
2563	}
2564
2565	output = &ListTaskDefinitionFamiliesOutput{}
2566	req = c.newRequest(op, input, output)
2567	return
2568}
2569
2570// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
2571//
2572// Returns a list of task definition families that are registered to your account
2573// (which may include task definition families that no longer have any ACTIVE
2574// task definition revisions).
2575//
2576// You can filter out task definition families that do not contain any ACTIVE
2577// task definition revisions by setting the status parameter to ACTIVE. You
2578// can also filter the results with the familyPrefix parameter.
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for Amazon EC2 Container Service's
2585// API operation ListTaskDefinitionFamilies for usage and error information.
2586//
2587// Returned Error Codes:
2588//   * ErrCodeServerException "ServerException"
2589//   These errors are usually caused by a server issue.
2590//
2591//   * ErrCodeClientException "ClientException"
2592//   These errors are usually caused by a client action, such as using an action
2593//   or resource on behalf of a user that doesn't have permissions to use the
2594//   action or resource, or specifying an identifier that is not valid.
2595//
2596//   * ErrCodeInvalidParameterException "InvalidParameterException"
2597//   The specified parameter is invalid. Review the available parameters for the
2598//   API request.
2599//
2600// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2601func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
2602	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2603	return out, req.Send()
2604}
2605
2606// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
2607// the ability to pass a context and additional request options.
2608//
2609// See ListTaskDefinitionFamilies for details on how to use this API operation.
2610//
2611// The context must be non-nil and will be used for request cancellation. If
2612// the context is nil a panic will occur. In the future the SDK may create
2613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2614// for more information on using Contexts.
2615func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
2616	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2617	req.SetContext(ctx)
2618	req.ApplyOptions(opts...)
2619	return out, req.Send()
2620}
2621
2622// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
2623// calling the "fn" function with the response data for each page. To stop
2624// iterating, return false from the fn function.
2625//
2626// See ListTaskDefinitionFamilies method for more information on how to use this operation.
2627//
2628// Note: This operation can generate multiple requests to a service.
2629//
2630//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
2631//    pageNum := 0
2632//    err := client.ListTaskDefinitionFamiliesPages(params,
2633//        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
2634//            pageNum++
2635//            fmt.Println(page)
2636//            return pageNum <= 3
2637//        })
2638//
2639func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
2640	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
2641}
2642
2643// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
2644// it takes a Context and allows setting request options on the pages.
2645//
2646// The context must be non-nil and will be used for request cancellation. If
2647// the context is nil a panic will occur. In the future the SDK may create
2648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2649// for more information on using Contexts.
2650func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
2651	p := request.Pagination{
2652		NewRequest: func() (*request.Request, error) {
2653			var inCpy *ListTaskDefinitionFamiliesInput
2654			if input != nil {
2655				tmp := *input
2656				inCpy = &tmp
2657			}
2658			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
2659			req.SetContext(ctx)
2660			req.ApplyOptions(opts...)
2661			return req, nil
2662		},
2663	}
2664
2665	cont := true
2666	for p.Next() && cont {
2667		cont = fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage())
2668	}
2669	return p.Err()
2670}
2671
2672const opListTaskDefinitions = "ListTaskDefinitions"
2673
2674// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
2675// client's request for the ListTaskDefinitions operation. The "output" return
2676// value will be populated with the request's response once the request completes
2677// successfully.
2678//
2679// Use "Send" method on the returned Request to send the API call to the service.
2680// the "output" return value is not valid until after Send returns without error.
2681//
2682// See ListTaskDefinitions for more information on using the ListTaskDefinitions
2683// API call, and error handling.
2684//
2685// This method is useful when you want to inject custom logic or configuration
2686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2687//
2688//
2689//    // Example sending a request using the ListTaskDefinitionsRequest method.
2690//    req, resp := client.ListTaskDefinitionsRequest(params)
2691//
2692//    err := req.Send()
2693//    if err == nil { // resp is now filled
2694//        fmt.Println(resp)
2695//    }
2696//
2697// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
2698func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
2699	op := &request.Operation{
2700		Name:       opListTaskDefinitions,
2701		HTTPMethod: "POST",
2702		HTTPPath:   "/",
2703		Paginator: &request.Paginator{
2704			InputTokens:     []string{"nextToken"},
2705			OutputTokens:    []string{"nextToken"},
2706			LimitToken:      "maxResults",
2707			TruncationToken: "",
2708		},
2709	}
2710
2711	if input == nil {
2712		input = &ListTaskDefinitionsInput{}
2713	}
2714
2715	output = &ListTaskDefinitionsOutput{}
2716	req = c.newRequest(op, input, output)
2717	return
2718}
2719
2720// ListTaskDefinitions API operation for Amazon EC2 Container Service.
2721//
2722// Returns a list of task definitions that are registered to your account. You
2723// can filter the results by family name with the familyPrefix parameter or
2724// by status with the status parameter.
2725//
2726// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2727// with awserr.Error's Code and Message methods to get detailed information about
2728// the error.
2729//
2730// See the AWS API reference guide for Amazon EC2 Container Service's
2731// API operation ListTaskDefinitions for usage and error information.
2732//
2733// Returned Error Codes:
2734//   * ErrCodeServerException "ServerException"
2735//   These errors are usually caused by a server issue.
2736//
2737//   * ErrCodeClientException "ClientException"
2738//   These errors are usually caused by a client action, such as using an action
2739//   or resource on behalf of a user that doesn't have permissions to use the
2740//   action or resource, or specifying an identifier that is not valid.
2741//
2742//   * ErrCodeInvalidParameterException "InvalidParameterException"
2743//   The specified parameter is invalid. Review the available parameters for the
2744//   API request.
2745//
2746// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
2747func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
2748	req, out := c.ListTaskDefinitionsRequest(input)
2749	return out, req.Send()
2750}
2751
2752// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
2753// the ability to pass a context and additional request options.
2754//
2755// See ListTaskDefinitions for details on how to use this API operation.
2756//
2757// The context must be non-nil and will be used for request cancellation. If
2758// the context is nil a panic will occur. In the future the SDK may create
2759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2760// for more information on using Contexts.
2761func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
2762	req, out := c.ListTaskDefinitionsRequest(input)
2763	req.SetContext(ctx)
2764	req.ApplyOptions(opts...)
2765	return out, req.Send()
2766}
2767
2768// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
2769// calling the "fn" function with the response data for each page. To stop
2770// iterating, return false from the fn function.
2771//
2772// See ListTaskDefinitions method for more information on how to use this operation.
2773//
2774// Note: This operation can generate multiple requests to a service.
2775//
2776//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
2777//    pageNum := 0
2778//    err := client.ListTaskDefinitionsPages(params,
2779//        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
2780//            pageNum++
2781//            fmt.Println(page)
2782//            return pageNum <= 3
2783//        })
2784//
2785func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
2786	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
2787}
2788
2789// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
2790// it takes a Context and allows setting request options on the pages.
2791//
2792// The context must be non-nil and will be used for request cancellation. If
2793// the context is nil a panic will occur. In the future the SDK may create
2794// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2795// for more information on using Contexts.
2796func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
2797	p := request.Pagination{
2798		NewRequest: func() (*request.Request, error) {
2799			var inCpy *ListTaskDefinitionsInput
2800			if input != nil {
2801				tmp := *input
2802				inCpy = &tmp
2803			}
2804			req, _ := c.ListTaskDefinitionsRequest(inCpy)
2805			req.SetContext(ctx)
2806			req.ApplyOptions(opts...)
2807			return req, nil
2808		},
2809	}
2810
2811	cont := true
2812	for p.Next() && cont {
2813		cont = fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage())
2814	}
2815	return p.Err()
2816}
2817
2818const opListTasks = "ListTasks"
2819
2820// ListTasksRequest generates a "aws/request.Request" representing the
2821// client's request for the ListTasks operation. The "output" return
2822// value will be populated with the request's response once the request completes
2823// successfully.
2824//
2825// Use "Send" method on the returned Request to send the API call to the service.
2826// the "output" return value is not valid until after Send returns without error.
2827//
2828// See ListTasks for more information on using the ListTasks
2829// API call, and error handling.
2830//
2831// This method is useful when you want to inject custom logic or configuration
2832// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2833//
2834//
2835//    // Example sending a request using the ListTasksRequest method.
2836//    req, resp := client.ListTasksRequest(params)
2837//
2838//    err := req.Send()
2839//    if err == nil { // resp is now filled
2840//        fmt.Println(resp)
2841//    }
2842//
2843// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
2844func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
2845	op := &request.Operation{
2846		Name:       opListTasks,
2847		HTTPMethod: "POST",
2848		HTTPPath:   "/",
2849		Paginator: &request.Paginator{
2850			InputTokens:     []string{"nextToken"},
2851			OutputTokens:    []string{"nextToken"},
2852			LimitToken:      "maxResults",
2853			TruncationToken: "",
2854		},
2855	}
2856
2857	if input == nil {
2858		input = &ListTasksInput{}
2859	}
2860
2861	output = &ListTasksOutput{}
2862	req = c.newRequest(op, input, output)
2863	return
2864}
2865
2866// ListTasks API operation for Amazon EC2 Container Service.
2867//
2868// Returns a list of tasks for a specified cluster. You can filter the results
2869// by family name, by a particular container instance, or by the desired status
2870// of the task with the family, containerInstance, and desiredStatus parameters.
2871//
2872// Recently stopped tasks might appear in the returned results. Currently, stopped
2873// tasks appear in the returned results for at least one hour.
2874//
2875// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2876// with awserr.Error's Code and Message methods to get detailed information about
2877// the error.
2878//
2879// See the AWS API reference guide for Amazon EC2 Container Service's
2880// API operation ListTasks for usage and error information.
2881//
2882// Returned Error Codes:
2883//   * ErrCodeServerException "ServerException"
2884//   These errors are usually caused by a server issue.
2885//
2886//   * ErrCodeClientException "ClientException"
2887//   These errors are usually caused by a client action, such as using an action
2888//   or resource on behalf of a user that doesn't have permissions to use the
2889//   action or resource, or specifying an identifier that is not valid.
2890//
2891//   * ErrCodeInvalidParameterException "InvalidParameterException"
2892//   The specified parameter is invalid. Review the available parameters for the
2893//   API request.
2894//
2895//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2896//   The specified cluster could not be found. You can view your available clusters
2897//   with ListClusters. Amazon ECS clusters are Region-specific.
2898//
2899//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
2900//   The specified service could not be found. You can view your available services
2901//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
2902//
2903// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
2904func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
2905	req, out := c.ListTasksRequest(input)
2906	return out, req.Send()
2907}
2908
2909// ListTasksWithContext is the same as ListTasks with the addition of
2910// the ability to pass a context and additional request options.
2911//
2912// See ListTasks for details on how to use this API operation.
2913//
2914// The context must be non-nil and will be used for request cancellation. If
2915// the context is nil a panic will occur. In the future the SDK may create
2916// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2917// for more information on using Contexts.
2918func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
2919	req, out := c.ListTasksRequest(input)
2920	req.SetContext(ctx)
2921	req.ApplyOptions(opts...)
2922	return out, req.Send()
2923}
2924
2925// ListTasksPages iterates over the pages of a ListTasks operation,
2926// calling the "fn" function with the response data for each page. To stop
2927// iterating, return false from the fn function.
2928//
2929// See ListTasks method for more information on how to use this operation.
2930//
2931// Note: This operation can generate multiple requests to a service.
2932//
2933//    // Example iterating over at most 3 pages of a ListTasks operation.
2934//    pageNum := 0
2935//    err := client.ListTasksPages(params,
2936//        func(page *ecs.ListTasksOutput, lastPage bool) bool {
2937//            pageNum++
2938//            fmt.Println(page)
2939//            return pageNum <= 3
2940//        })
2941//
2942func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
2943	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
2944}
2945
2946// ListTasksPagesWithContext same as ListTasksPages except
2947// it takes a Context and allows setting request options on the pages.
2948//
2949// The context must be non-nil and will be used for request cancellation. If
2950// the context is nil a panic will occur. In the future the SDK may create
2951// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2952// for more information on using Contexts.
2953func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
2954	p := request.Pagination{
2955		NewRequest: func() (*request.Request, error) {
2956			var inCpy *ListTasksInput
2957			if input != nil {
2958				tmp := *input
2959				inCpy = &tmp
2960			}
2961			req, _ := c.ListTasksRequest(inCpy)
2962			req.SetContext(ctx)
2963			req.ApplyOptions(opts...)
2964			return req, nil
2965		},
2966	}
2967
2968	cont := true
2969	for p.Next() && cont {
2970		cont = fn(p.Page().(*ListTasksOutput), !p.HasNextPage())
2971	}
2972	return p.Err()
2973}
2974
2975const opPutAccountSetting = "PutAccountSetting"
2976
2977// PutAccountSettingRequest generates a "aws/request.Request" representing the
2978// client's request for the PutAccountSetting operation. The "output" return
2979// value will be populated with the request's response once the request completes
2980// successfully.
2981//
2982// Use "Send" method on the returned Request to send the API call to the service.
2983// the "output" return value is not valid until after Send returns without error.
2984//
2985// See PutAccountSetting for more information on using the PutAccountSetting
2986// API call, and error handling.
2987//
2988// This method is useful when you want to inject custom logic or configuration
2989// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2990//
2991//
2992//    // Example sending a request using the PutAccountSettingRequest method.
2993//    req, resp := client.PutAccountSettingRequest(params)
2994//
2995//    err := req.Send()
2996//    if err == nil { // resp is now filled
2997//        fmt.Println(resp)
2998//    }
2999//
3000// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3001func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
3002	op := &request.Operation{
3003		Name:       opPutAccountSetting,
3004		HTTPMethod: "POST",
3005		HTTPPath:   "/",
3006	}
3007
3008	if input == nil {
3009		input = &PutAccountSettingInput{}
3010	}
3011
3012	output = &PutAccountSettingOutput{}
3013	req = c.newRequest(op, input, output)
3014	return
3015}
3016
3017// PutAccountSetting API operation for Amazon EC2 Container Service.
3018//
3019// Modifies an account setting. Account settings are set on a per-Region basis.
3020//
3021// If you change the account setting for the root user, the default settings
3022// for all of the IAM users and roles for which no individual account setting
3023// has been specified are reset. For more information, see Account Settings
3024// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
3025// in the Amazon Elastic Container Service Developer Guide.
3026//
3027// When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
3028// are specified, the Amazon Resource Name (ARN) and resource ID format of the
3029// resource type for a specified IAM user, IAM role, or the root user for an
3030// account is affected. The opt-in and opt-out account setting must be set for
3031// each Amazon ECS resource separately. The ARN and resource ID format of a
3032// resource will be defined by the opt-in status of the IAM user or role that
3033// created the resource. You must enable this setting to use Amazon ECS features
3034// such as resource tagging.
3035//
3036// When awsvpcTrunking is specified, the elastic network interface (ENI) limit
3037// for any new container instances that support the feature is changed. If awsvpcTrunking
3038// is enabled, any new container instances that support the feature are launched
3039// have the increased ENI limits available to them. For more information, see
3040// Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
3041// in the Amazon Elastic Container Service Developer Guide.
3042//
3043// When containerInsights is specified, the default setting indicating whether
3044// CloudWatch Container Insights is enabled for your clusters is changed. If
3045// containerInsights is enabled, any new clusters that are created will have
3046// Container Insights enabled unless you disable it during cluster creation.
3047// For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
3048// in the Amazon Elastic Container Service Developer Guide.
3049//
3050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3051// with awserr.Error's Code and Message methods to get detailed information about
3052// the error.
3053//
3054// See the AWS API reference guide for Amazon EC2 Container Service's
3055// API operation PutAccountSetting for usage and error information.
3056//
3057// Returned Error Codes:
3058//   * ErrCodeServerException "ServerException"
3059//   These errors are usually caused by a server issue.
3060//
3061//   * ErrCodeClientException "ClientException"
3062//   These errors are usually caused by a client action, such as using an action
3063//   or resource on behalf of a user that doesn't have permissions to use the
3064//   action or resource, or specifying an identifier that is not valid.
3065//
3066//   * ErrCodeInvalidParameterException "InvalidParameterException"
3067//   The specified parameter is invalid. Review the available parameters for the
3068//   API request.
3069//
3070// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3071func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
3072	req, out := c.PutAccountSettingRequest(input)
3073	return out, req.Send()
3074}
3075
3076// PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
3077// the ability to pass a context and additional request options.
3078//
3079// See PutAccountSetting for details on how to use this API operation.
3080//
3081// The context must be non-nil and will be used for request cancellation. If
3082// the context is nil a panic will occur. In the future the SDK may create
3083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3084// for more information on using Contexts.
3085func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
3086	req, out := c.PutAccountSettingRequest(input)
3087	req.SetContext(ctx)
3088	req.ApplyOptions(opts...)
3089	return out, req.Send()
3090}
3091
3092const opPutAccountSettingDefault = "PutAccountSettingDefault"
3093
3094// PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
3095// client's request for the PutAccountSettingDefault operation. The "output" return
3096// value will be populated with the request's response once the request completes
3097// successfully.
3098//
3099// Use "Send" method on the returned Request to send the API call to the service.
3100// the "output" return value is not valid until after Send returns without error.
3101//
3102// See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
3103// API call, and error handling.
3104//
3105// This method is useful when you want to inject custom logic or configuration
3106// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3107//
3108//
3109//    // Example sending a request using the PutAccountSettingDefaultRequest method.
3110//    req, resp := client.PutAccountSettingDefaultRequest(params)
3111//
3112//    err := req.Send()
3113//    if err == nil { // resp is now filled
3114//        fmt.Println(resp)
3115//    }
3116//
3117// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3118func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
3119	op := &request.Operation{
3120		Name:       opPutAccountSettingDefault,
3121		HTTPMethod: "POST",
3122		HTTPPath:   "/",
3123	}
3124
3125	if input == nil {
3126		input = &PutAccountSettingDefaultInput{}
3127	}
3128
3129	output = &PutAccountSettingDefaultOutput{}
3130	req = c.newRequest(op, input, output)
3131	return
3132}
3133
3134// PutAccountSettingDefault API operation for Amazon EC2 Container Service.
3135//
3136// Modifies an account setting for all IAM users on an account for whom no individual
3137// account setting has been specified. Account settings are set on a per-Region
3138// basis.
3139//
3140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3141// with awserr.Error's Code and Message methods to get detailed information about
3142// the error.
3143//
3144// See the AWS API reference guide for Amazon EC2 Container Service's
3145// API operation PutAccountSettingDefault for usage and error information.
3146//
3147// Returned Error Codes:
3148//   * ErrCodeServerException "ServerException"
3149//   These errors are usually caused by a server issue.
3150//
3151//   * ErrCodeClientException "ClientException"
3152//   These errors are usually caused by a client action, such as using an action
3153//   or resource on behalf of a user that doesn't have permissions to use the
3154//   action or resource, or specifying an identifier that is not valid.
3155//
3156//   * ErrCodeInvalidParameterException "InvalidParameterException"
3157//   The specified parameter is invalid. Review the available parameters for the
3158//   API request.
3159//
3160// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3161func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
3162	req, out := c.PutAccountSettingDefaultRequest(input)
3163	return out, req.Send()
3164}
3165
3166// PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
3167// the ability to pass a context and additional request options.
3168//
3169// See PutAccountSettingDefault for details on how to use this API operation.
3170//
3171// The context must be non-nil and will be used for request cancellation. If
3172// the context is nil a panic will occur. In the future the SDK may create
3173// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3174// for more information on using Contexts.
3175func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
3176	req, out := c.PutAccountSettingDefaultRequest(input)
3177	req.SetContext(ctx)
3178	req.ApplyOptions(opts...)
3179	return out, req.Send()
3180}
3181
3182const opPutAttributes = "PutAttributes"
3183
3184// PutAttributesRequest generates a "aws/request.Request" representing the
3185// client's request for the PutAttributes operation. The "output" return
3186// value will be populated with the request's response once the request completes
3187// successfully.
3188//
3189// Use "Send" method on the returned Request to send the API call to the service.
3190// the "output" return value is not valid until after Send returns without error.
3191//
3192// See PutAttributes for more information on using the PutAttributes
3193// API call, and error handling.
3194//
3195// This method is useful when you want to inject custom logic or configuration
3196// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3197//
3198//
3199//    // Example sending a request using the PutAttributesRequest method.
3200//    req, resp := client.PutAttributesRequest(params)
3201//
3202//    err := req.Send()
3203//    if err == nil { // resp is now filled
3204//        fmt.Println(resp)
3205//    }
3206//
3207// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3208func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
3209	op := &request.Operation{
3210		Name:       opPutAttributes,
3211		HTTPMethod: "POST",
3212		HTTPPath:   "/",
3213	}
3214
3215	if input == nil {
3216		input = &PutAttributesInput{}
3217	}
3218
3219	output = &PutAttributesOutput{}
3220	req = c.newRequest(op, input, output)
3221	return
3222}
3223
3224// PutAttributes API operation for Amazon EC2 Container Service.
3225//
3226// Create or update an attribute on an Amazon ECS resource. If the attribute
3227// does not exist, it is created. If the attribute exists, its value is replaced
3228// with the specified value. To delete an attribute, use DeleteAttributes. For
3229// more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3230// in the Amazon Elastic Container Service Developer Guide.
3231//
3232// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3233// with awserr.Error's Code and Message methods to get detailed information about
3234// the error.
3235//
3236// See the AWS API reference guide for Amazon EC2 Container Service's
3237// API operation PutAttributes for usage and error information.
3238//
3239// Returned Error Codes:
3240//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3241//   The specified cluster could not be found. You can view your available clusters
3242//   with ListClusters. Amazon ECS clusters are Region-specific.
3243//
3244//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
3245//   The specified target could not be found. You can view your available container
3246//   instances with ListContainerInstances. Amazon ECS container instances are
3247//   cluster-specific and Region-specific.
3248//
3249//   * ErrCodeAttributeLimitExceededException "AttributeLimitExceededException"
3250//   You can apply up to 10 custom attributes per resource. You can view the attributes
3251//   of a resource with ListAttributes. You can remove existing attributes on
3252//   a resource with DeleteAttributes.
3253//
3254//   * ErrCodeInvalidParameterException "InvalidParameterException"
3255//   The specified parameter is invalid. Review the available parameters for the
3256//   API request.
3257//
3258// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3259func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
3260	req, out := c.PutAttributesRequest(input)
3261	return out, req.Send()
3262}
3263
3264// PutAttributesWithContext is the same as PutAttributes with the addition of
3265// the ability to pass a context and additional request options.
3266//
3267// See PutAttributes for details on how to use this API operation.
3268//
3269// The context must be non-nil and will be used for request cancellation. If
3270// the context is nil a panic will occur. In the future the SDK may create
3271// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3272// for more information on using Contexts.
3273func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
3274	req, out := c.PutAttributesRequest(input)
3275	req.SetContext(ctx)
3276	req.ApplyOptions(opts...)
3277	return out, req.Send()
3278}
3279
3280const opRegisterContainerInstance = "RegisterContainerInstance"
3281
3282// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
3283// client's request for the RegisterContainerInstance operation. The "output" return
3284// value will be populated with the request's response once the request completes
3285// successfully.
3286//
3287// Use "Send" method on the returned Request to send the API call to the service.
3288// the "output" return value is not valid until after Send returns without error.
3289//
3290// See RegisterContainerInstance for more information on using the RegisterContainerInstance
3291// API call, and error handling.
3292//
3293// This method is useful when you want to inject custom logic or configuration
3294// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3295//
3296//
3297//    // Example sending a request using the RegisterContainerInstanceRequest method.
3298//    req, resp := client.RegisterContainerInstanceRequest(params)
3299//
3300//    err := req.Send()
3301//    if err == nil { // resp is now filled
3302//        fmt.Println(resp)
3303//    }
3304//
3305// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3306func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
3307	op := &request.Operation{
3308		Name:       opRegisterContainerInstance,
3309		HTTPMethod: "POST",
3310		HTTPPath:   "/",
3311	}
3312
3313	if input == nil {
3314		input = &RegisterContainerInstanceInput{}
3315	}
3316
3317	output = &RegisterContainerInstanceOutput{}
3318	req = c.newRequest(op, input, output)
3319	return
3320}
3321
3322// RegisterContainerInstance API operation for Amazon EC2 Container Service.
3323//
3324//
3325// This action is only used by the Amazon ECS agent, and it is not intended
3326// for use outside of the agent.
3327//
3328// Registers an EC2 instance into the specified cluster. This instance becomes
3329// available to place containers on.
3330//
3331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3332// with awserr.Error's Code and Message methods to get detailed information about
3333// the error.
3334//
3335// See the AWS API reference guide for Amazon EC2 Container Service's
3336// API operation RegisterContainerInstance for usage and error information.
3337//
3338// Returned Error Codes:
3339//   * ErrCodeServerException "ServerException"
3340//   These errors are usually caused by a server issue.
3341//
3342//   * ErrCodeClientException "ClientException"
3343//   These errors are usually caused by a client action, such as using an action
3344//   or resource on behalf of a user that doesn't have permissions to use the
3345//   action or resource, or specifying an identifier that is not valid.
3346//
3347//   * ErrCodeInvalidParameterException "InvalidParameterException"
3348//   The specified parameter is invalid. Review the available parameters for the
3349//   API request.
3350//
3351// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3352func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
3353	req, out := c.RegisterContainerInstanceRequest(input)
3354	return out, req.Send()
3355}
3356
3357// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
3358// the ability to pass a context and additional request options.
3359//
3360// See RegisterContainerInstance for details on how to use this API operation.
3361//
3362// The context must be non-nil and will be used for request cancellation. If
3363// the context is nil a panic will occur. In the future the SDK may create
3364// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3365// for more information on using Contexts.
3366func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
3367	req, out := c.RegisterContainerInstanceRequest(input)
3368	req.SetContext(ctx)
3369	req.ApplyOptions(opts...)
3370	return out, req.Send()
3371}
3372
3373const opRegisterTaskDefinition = "RegisterTaskDefinition"
3374
3375// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
3376// client's request for the RegisterTaskDefinition operation. The "output" return
3377// value will be populated with the request's response once the request completes
3378// successfully.
3379//
3380// Use "Send" method on the returned Request to send the API call to the service.
3381// the "output" return value is not valid until after Send returns without error.
3382//
3383// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
3384// API call, and error handling.
3385//
3386// This method is useful when you want to inject custom logic or configuration
3387// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3388//
3389//
3390//    // Example sending a request using the RegisterTaskDefinitionRequest method.
3391//    req, resp := client.RegisterTaskDefinitionRequest(params)
3392//
3393//    err := req.Send()
3394//    if err == nil { // resp is now filled
3395//        fmt.Println(resp)
3396//    }
3397//
3398// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3399func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
3400	op := &request.Operation{
3401		Name:       opRegisterTaskDefinition,
3402		HTTPMethod: "POST",
3403		HTTPPath:   "/",
3404	}
3405
3406	if input == nil {
3407		input = &RegisterTaskDefinitionInput{}
3408	}
3409
3410	output = &RegisterTaskDefinitionOutput{}
3411	req = c.newRequest(op, input, output)
3412	return
3413}
3414
3415// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
3416//
3417// Registers a new task definition from the supplied family and containerDefinitions.
3418// Optionally, you can add data volumes to your containers with the volumes
3419// parameter. For more information about task definition parameters and defaults,
3420// see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
3421// in the Amazon Elastic Container Service Developer Guide.
3422//
3423// You can specify an IAM role for your task with the taskRoleArn parameter.
3424// When you specify an IAM role for a task, its containers can then use the
3425// latest versions of the AWS CLI or SDKs to make API requests to the AWS services
3426// that are specified in the IAM policy associated with the role. For more information,
3427// see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
3428// in the Amazon Elastic Container Service Developer Guide.
3429//
3430// You can specify a Docker networking mode for the containers in your task
3431// definition with the networkMode parameter. The available network modes correspond
3432// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
3433// in the Docker run reference. If you specify the awsvpc network mode, the
3434// task is allocated an elastic network interface, and you must specify a NetworkConfiguration
3435// when you create a service or run a task with the task definition. For more
3436// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
3437// in the Amazon Elastic Container Service Developer Guide.
3438//
3439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3440// with awserr.Error's Code and Message methods to get detailed information about
3441// the error.
3442//
3443// See the AWS API reference guide for Amazon EC2 Container Service's
3444// API operation RegisterTaskDefinition for usage and error information.
3445//
3446// Returned Error Codes:
3447//   * ErrCodeServerException "ServerException"
3448//   These errors are usually caused by a server issue.
3449//
3450//   * ErrCodeClientException "ClientException"
3451//   These errors are usually caused by a client action, such as using an action
3452//   or resource on behalf of a user that doesn't have permissions to use the
3453//   action or resource, or specifying an identifier that is not valid.
3454//
3455//   * ErrCodeInvalidParameterException "InvalidParameterException"
3456//   The specified parameter is invalid. Review the available parameters for the
3457//   API request.
3458//
3459// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3460func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
3461	req, out := c.RegisterTaskDefinitionRequest(input)
3462	return out, req.Send()
3463}
3464
3465// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
3466// the ability to pass a context and additional request options.
3467//
3468// See RegisterTaskDefinition for details on how to use this API operation.
3469//
3470// The context must be non-nil and will be used for request cancellation. If
3471// the context is nil a panic will occur. In the future the SDK may create
3472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3473// for more information on using Contexts.
3474func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
3475	req, out := c.RegisterTaskDefinitionRequest(input)
3476	req.SetContext(ctx)
3477	req.ApplyOptions(opts...)
3478	return out, req.Send()
3479}
3480
3481const opRunTask = "RunTask"
3482
3483// RunTaskRequest generates a "aws/request.Request" representing the
3484// client's request for the RunTask operation. The "output" return
3485// value will be populated with the request's response once the request completes
3486// successfully.
3487//
3488// Use "Send" method on the returned Request to send the API call to the service.
3489// the "output" return value is not valid until after Send returns without error.
3490//
3491// See RunTask for more information on using the RunTask
3492// API call, and error handling.
3493//
3494// This method is useful when you want to inject custom logic or configuration
3495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3496//
3497//
3498//    // Example sending a request using the RunTaskRequest method.
3499//    req, resp := client.RunTaskRequest(params)
3500//
3501//    err := req.Send()
3502//    if err == nil { // resp is now filled
3503//        fmt.Println(resp)
3504//    }
3505//
3506// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
3507func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
3508	op := &request.Operation{
3509		Name:       opRunTask,
3510		HTTPMethod: "POST",
3511		HTTPPath:   "/",
3512	}
3513
3514	if input == nil {
3515		input = &RunTaskInput{}
3516	}
3517
3518	output = &RunTaskOutput{}
3519	req = c.newRequest(op, input, output)
3520	return
3521}
3522
3523// RunTask API operation for Amazon EC2 Container Service.
3524//
3525// Starts a new task using the specified task definition.
3526//
3527// You can allow Amazon ECS to place tasks for you, or you can customize how
3528// Amazon ECS places tasks using placement constraints and placement strategies.
3529// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
3530// in the Amazon Elastic Container Service Developer Guide.
3531//
3532// Alternatively, you can use StartTask to use your own scheduler or place tasks
3533// manually on specific container instances.
3534//
3535// The Amazon ECS API follows an eventual consistency model, due to the distributed
3536// nature of the system supporting the API. This means that the result of an
3537// API command you run that affects your Amazon ECS resources might not be immediately
3538// visible to all subsequent commands you run. Keep this in mind when you carry
3539// out an API command that immediately follows a previous API command.
3540//
3541// To manage eventual consistency, you can do the following:
3542//
3543//    * Confirm the state of the resource before you run a command to modify
3544//    it. Run the DescribeTasks command using an exponential backoff algorithm
3545//    to ensure that you allow enough time for the previous command to propagate
3546//    through the system. To do this, run the DescribeTasks command repeatedly,
3547//    starting with a couple of seconds of wait time and increasing gradually
3548//    up to five minutes of wait time.
3549//
3550//    * Add wait time between subsequent commands, even if the DescribeTasks
3551//    command returns an accurate response. Apply an exponential backoff algorithm
3552//    starting with a couple of seconds of wait time, and increase gradually
3553//    up to about five minutes of wait time.
3554//
3555// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3556// with awserr.Error's Code and Message methods to get detailed information about
3557// the error.
3558//
3559// See the AWS API reference guide for Amazon EC2 Container Service's
3560// API operation RunTask for usage and error information.
3561//
3562// Returned Error Codes:
3563//   * ErrCodeServerException "ServerException"
3564//   These errors are usually caused by a server issue.
3565//
3566//   * ErrCodeClientException "ClientException"
3567//   These errors are usually caused by a client action, such as using an action
3568//   or resource on behalf of a user that doesn't have permissions to use the
3569//   action or resource, or specifying an identifier that is not valid.
3570//
3571//   * ErrCodeInvalidParameterException "InvalidParameterException"
3572//   The specified parameter is invalid. Review the available parameters for the
3573//   API request.
3574//
3575//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3576//   The specified cluster could not be found. You can view your available clusters
3577//   with ListClusters. Amazon ECS clusters are Region-specific.
3578//
3579//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
3580//   The specified task is not supported in this Region.
3581//
3582//   * ErrCodePlatformUnknownException "PlatformUnknownException"
3583//   The specified platform version does not exist.
3584//
3585//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
3586//   The specified platform version does not satisfy the task definition's required
3587//   capabilities.
3588//
3589//   * ErrCodeAccessDeniedException "AccessDeniedException"
3590//   You do not have authorization to perform the requested action.
3591//
3592//   * ErrCodeBlockedException "BlockedException"
3593//   Your AWS account has been blocked. For more information, contact AWS Support
3594//   (http://aws.amazon.com/contact-us/).
3595//
3596// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
3597func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
3598	req, out := c.RunTaskRequest(input)
3599	return out, req.Send()
3600}
3601
3602// RunTaskWithContext is the same as RunTask with the addition of
3603// the ability to pass a context and additional request options.
3604//
3605// See RunTask for details on how to use this API operation.
3606//
3607// The context must be non-nil and will be used for request cancellation. If
3608// the context is nil a panic will occur. In the future the SDK may create
3609// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3610// for more information on using Contexts.
3611func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
3612	req, out := c.RunTaskRequest(input)
3613	req.SetContext(ctx)
3614	req.ApplyOptions(opts...)
3615	return out, req.Send()
3616}
3617
3618const opStartTask = "StartTask"
3619
3620// StartTaskRequest generates a "aws/request.Request" representing the
3621// client's request for the StartTask operation. The "output" return
3622// value will be populated with the request's response once the request completes
3623// successfully.
3624//
3625// Use "Send" method on the returned Request to send the API call to the service.
3626// the "output" return value is not valid until after Send returns without error.
3627//
3628// See StartTask for more information on using the StartTask
3629// API call, and error handling.
3630//
3631// This method is useful when you want to inject custom logic or configuration
3632// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3633//
3634//
3635//    // Example sending a request using the StartTaskRequest method.
3636//    req, resp := client.StartTaskRequest(params)
3637//
3638//    err := req.Send()
3639//    if err == nil { // resp is now filled
3640//        fmt.Println(resp)
3641//    }
3642//
3643// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
3644func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
3645	op := &request.Operation{
3646		Name:       opStartTask,
3647		HTTPMethod: "POST",
3648		HTTPPath:   "/",
3649	}
3650
3651	if input == nil {
3652		input = &StartTaskInput{}
3653	}
3654
3655	output = &StartTaskOutput{}
3656	req = c.newRequest(op, input, output)
3657	return
3658}
3659
3660// StartTask API operation for Amazon EC2 Container Service.
3661//
3662// Starts a new task from the specified task definition on the specified container
3663// instance or instances.
3664//
3665// Alternatively, you can use RunTask to place tasks for you. For more information,
3666// see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
3667// in the Amazon Elastic Container Service Developer Guide.
3668//
3669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3670// with awserr.Error's Code and Message methods to get detailed information about
3671// the error.
3672//
3673// See the AWS API reference guide for Amazon EC2 Container Service's
3674// API operation StartTask for usage and error information.
3675//
3676// Returned Error Codes:
3677//   * ErrCodeServerException "ServerException"
3678//   These errors are usually caused by a server issue.
3679//
3680//   * ErrCodeClientException "ClientException"
3681//   These errors are usually caused by a client action, such as using an action
3682//   or resource on behalf of a user that doesn't have permissions to use the
3683//   action or resource, or specifying an identifier that is not valid.
3684//
3685//   * ErrCodeInvalidParameterException "InvalidParameterException"
3686//   The specified parameter is invalid. Review the available parameters for the
3687//   API request.
3688//
3689//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3690//   The specified cluster could not be found. You can view your available clusters
3691//   with ListClusters. Amazon ECS clusters are Region-specific.
3692//
3693// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
3694func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
3695	req, out := c.StartTaskRequest(input)
3696	return out, req.Send()
3697}
3698
3699// StartTaskWithContext is the same as StartTask with the addition of
3700// the ability to pass a context and additional request options.
3701//
3702// See StartTask for details on how to use this API operation.
3703//
3704// The context must be non-nil and will be used for request cancellation. If
3705// the context is nil a panic will occur. In the future the SDK may create
3706// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3707// for more information on using Contexts.
3708func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
3709	req, out := c.StartTaskRequest(input)
3710	req.SetContext(ctx)
3711	req.ApplyOptions(opts...)
3712	return out, req.Send()
3713}
3714
3715const opStopTask = "StopTask"
3716
3717// StopTaskRequest generates a "aws/request.Request" representing the
3718// client's request for the StopTask operation. The "output" return
3719// value will be populated with the request's response once the request completes
3720// successfully.
3721//
3722// Use "Send" method on the returned Request to send the API call to the service.
3723// the "output" return value is not valid until after Send returns without error.
3724//
3725// See StopTask for more information on using the StopTask
3726// API call, and error handling.
3727//
3728// This method is useful when you want to inject custom logic or configuration
3729// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3730//
3731//
3732//    // Example sending a request using the StopTaskRequest method.
3733//    req, resp := client.StopTaskRequest(params)
3734//
3735//    err := req.Send()
3736//    if err == nil { // resp is now filled
3737//        fmt.Println(resp)
3738//    }
3739//
3740// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
3741func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
3742	op := &request.Operation{
3743		Name:       opStopTask,
3744		HTTPMethod: "POST",
3745		HTTPPath:   "/",
3746	}
3747
3748	if input == nil {
3749		input = &StopTaskInput{}
3750	}
3751
3752	output = &StopTaskOutput{}
3753	req = c.newRequest(op, input, output)
3754	return
3755}
3756
3757// StopTask API operation for Amazon EC2 Container Service.
3758//
3759// Stops a running task. Any tags associated with the task will be deleted.
3760//
3761// When StopTask is called on a task, the equivalent of docker stop is issued
3762// to the containers running in the task. This results in a SIGTERM value and
3763// a default 30-second timeout, after which the SIGKILL value is sent and the
3764// containers are forcibly stopped. If the container handles the SIGTERM value
3765// gracefully and exits within 30 seconds from receiving it, no SIGKILL value
3766// is sent.
3767//
3768// The default 30-second timeout can be configured on the Amazon ECS container
3769// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
3770// see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
3771// in the Amazon Elastic Container Service Developer Guide.
3772//
3773// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3774// with awserr.Error's Code and Message methods to get detailed information about
3775// the error.
3776//
3777// See the AWS API reference guide for Amazon EC2 Container Service's
3778// API operation StopTask for usage and error information.
3779//
3780// Returned Error Codes:
3781//   * ErrCodeServerException "ServerException"
3782//   These errors are usually caused by a server issue.
3783//
3784//   * ErrCodeClientException "ClientException"
3785//   These errors are usually caused by a client action, such as using an action
3786//   or resource on behalf of a user that doesn't have permissions to use the
3787//   action or resource, or specifying an identifier that is not valid.
3788//
3789//   * ErrCodeInvalidParameterException "InvalidParameterException"
3790//   The specified parameter is invalid. Review the available parameters for the
3791//   API request.
3792//
3793//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3794//   The specified cluster could not be found. You can view your available clusters
3795//   with ListClusters. Amazon ECS clusters are Region-specific.
3796//
3797// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
3798func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
3799	req, out := c.StopTaskRequest(input)
3800	return out, req.Send()
3801}
3802
3803// StopTaskWithContext is the same as StopTask with the addition of
3804// the ability to pass a context and additional request options.
3805//
3806// See StopTask for details on how to use this API operation.
3807//
3808// The context must be non-nil and will be used for request cancellation. If
3809// the context is nil a panic will occur. In the future the SDK may create
3810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3811// for more information on using Contexts.
3812func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
3813	req, out := c.StopTaskRequest(input)
3814	req.SetContext(ctx)
3815	req.ApplyOptions(opts...)
3816	return out, req.Send()
3817}
3818
3819const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
3820
3821// SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
3822// client's request for the SubmitAttachmentStateChanges operation. The "output" return
3823// value will be populated with the request's response once the request completes
3824// successfully.
3825//
3826// Use "Send" method on the returned Request to send the API call to the service.
3827// the "output" return value is not valid until after Send returns without error.
3828//
3829// See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
3830// API call, and error handling.
3831//
3832// This method is useful when you want to inject custom logic or configuration
3833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3834//
3835//
3836//    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
3837//    req, resp := client.SubmitAttachmentStateChangesRequest(params)
3838//
3839//    err := req.Send()
3840//    if err == nil { // resp is now filled
3841//        fmt.Println(resp)
3842//    }
3843//
3844// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
3845func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
3846	op := &request.Operation{
3847		Name:       opSubmitAttachmentStateChanges,
3848		HTTPMethod: "POST",
3849		HTTPPath:   "/",
3850	}
3851
3852	if input == nil {
3853		input = &SubmitAttachmentStateChangesInput{}
3854	}
3855
3856	output = &SubmitAttachmentStateChangesOutput{}
3857	req = c.newRequest(op, input, output)
3858	return
3859}
3860
3861// SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
3862//
3863//
3864// This action is only used by the Amazon ECS agent, and it is not intended
3865// for use outside of the agent.
3866//
3867// Sent to acknowledge that an attachment changed states.
3868//
3869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3870// with awserr.Error's Code and Message methods to get detailed information about
3871// the error.
3872//
3873// See the AWS API reference guide for Amazon EC2 Container Service's
3874// API operation SubmitAttachmentStateChanges for usage and error information.
3875//
3876// Returned Error Codes:
3877//   * ErrCodeServerException "ServerException"
3878//   These errors are usually caused by a server issue.
3879//
3880//   * ErrCodeClientException "ClientException"
3881//   These errors are usually caused by a client action, such as using an action
3882//   or resource on behalf of a user that doesn't have permissions to use the
3883//   action or resource, or specifying an identifier that is not valid.
3884//
3885//   * ErrCodeAccessDeniedException "AccessDeniedException"
3886//   You do not have authorization to perform the requested action.
3887//
3888//   * ErrCodeInvalidParameterException "InvalidParameterException"
3889//   The specified parameter is invalid. Review the available parameters for the
3890//   API request.
3891//
3892// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
3893func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
3894	req, out := c.SubmitAttachmentStateChangesRequest(input)
3895	return out, req.Send()
3896}
3897
3898// SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
3899// the ability to pass a context and additional request options.
3900//
3901// See SubmitAttachmentStateChanges for details on how to use this API operation.
3902//
3903// The context must be non-nil and will be used for request cancellation. If
3904// the context is nil a panic will occur. In the future the SDK may create
3905// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3906// for more information on using Contexts.
3907func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
3908	req, out := c.SubmitAttachmentStateChangesRequest(input)
3909	req.SetContext(ctx)
3910	req.ApplyOptions(opts...)
3911	return out, req.Send()
3912}
3913
3914const opSubmitContainerStateChange = "SubmitContainerStateChange"
3915
3916// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
3917// client's request for the SubmitContainerStateChange operation. The "output" return
3918// value will be populated with the request's response once the request completes
3919// successfully.
3920//
3921// Use "Send" method on the returned Request to send the API call to the service.
3922// the "output" return value is not valid until after Send returns without error.
3923//
3924// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
3925// API call, and error handling.
3926//
3927// This method is useful when you want to inject custom logic or configuration
3928// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3929//
3930//
3931//    // Example sending a request using the SubmitContainerStateChangeRequest method.
3932//    req, resp := client.SubmitContainerStateChangeRequest(params)
3933//
3934//    err := req.Send()
3935//    if err == nil { // resp is now filled
3936//        fmt.Println(resp)
3937//    }
3938//
3939// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
3940func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
3941	op := &request.Operation{
3942		Name:       opSubmitContainerStateChange,
3943		HTTPMethod: "POST",
3944		HTTPPath:   "/",
3945	}
3946
3947	if input == nil {
3948		input = &SubmitContainerStateChangeInput{}
3949	}
3950
3951	output = &SubmitContainerStateChangeOutput{}
3952	req = c.newRequest(op, input, output)
3953	return
3954}
3955
3956// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
3957//
3958//
3959// This action is only used by the Amazon ECS agent, and it is not intended
3960// for use outside of the agent.
3961//
3962// Sent to acknowledge that a container changed states.
3963//
3964// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3965// with awserr.Error's Code and Message methods to get detailed information about
3966// the error.
3967//
3968// See the AWS API reference guide for Amazon EC2 Container Service's
3969// API operation SubmitContainerStateChange for usage and error information.
3970//
3971// Returned Error Codes:
3972//   * ErrCodeServerException "ServerException"
3973//   These errors are usually caused by a server issue.
3974//
3975//   * ErrCodeClientException "ClientException"
3976//   These errors are usually caused by a client action, such as using an action
3977//   or resource on behalf of a user that doesn't have permissions to use the
3978//   action or resource, or specifying an identifier that is not valid.
3979//
3980//   * ErrCodeAccessDeniedException "AccessDeniedException"
3981//   You do not have authorization to perform the requested action.
3982//
3983// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
3984func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
3985	req, out := c.SubmitContainerStateChangeRequest(input)
3986	return out, req.Send()
3987}
3988
3989// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
3990// the ability to pass a context and additional request options.
3991//
3992// See SubmitContainerStateChange for details on how to use this API operation.
3993//
3994// The context must be non-nil and will be used for request cancellation. If
3995// the context is nil a panic will occur. In the future the SDK may create
3996// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3997// for more information on using Contexts.
3998func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
3999	req, out := c.SubmitContainerStateChangeRequest(input)
4000	req.SetContext(ctx)
4001	req.ApplyOptions(opts...)
4002	return out, req.Send()
4003}
4004
4005const opSubmitTaskStateChange = "SubmitTaskStateChange"
4006
4007// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
4008// client's request for the SubmitTaskStateChange operation. The "output" return
4009// value will be populated with the request's response once the request completes
4010// successfully.
4011//
4012// Use "Send" method on the returned Request to send the API call to the service.
4013// the "output" return value is not valid until after Send returns without error.
4014//
4015// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
4016// API call, and error handling.
4017//
4018// This method is useful when you want to inject custom logic or configuration
4019// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4020//
4021//
4022//    // Example sending a request using the SubmitTaskStateChangeRequest method.
4023//    req, resp := client.SubmitTaskStateChangeRequest(params)
4024//
4025//    err := req.Send()
4026//    if err == nil { // resp is now filled
4027//        fmt.Println(resp)
4028//    }
4029//
4030// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4031func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
4032	op := &request.Operation{
4033		Name:       opSubmitTaskStateChange,
4034		HTTPMethod: "POST",
4035		HTTPPath:   "/",
4036	}
4037
4038	if input == nil {
4039		input = &SubmitTaskStateChangeInput{}
4040	}
4041
4042	output = &SubmitTaskStateChangeOutput{}
4043	req = c.newRequest(op, input, output)
4044	return
4045}
4046
4047// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
4048//
4049//
4050// This action is only used by the Amazon ECS agent, and it is not intended
4051// for use outside of the agent.
4052//
4053// Sent to acknowledge that a task changed states.
4054//
4055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4056// with awserr.Error's Code and Message methods to get detailed information about
4057// the error.
4058//
4059// See the AWS API reference guide for Amazon EC2 Container Service's
4060// API operation SubmitTaskStateChange for usage and error information.
4061//
4062// Returned Error Codes:
4063//   * ErrCodeServerException "ServerException"
4064//   These errors are usually caused by a server issue.
4065//
4066//   * ErrCodeClientException "ClientException"
4067//   These errors are usually caused by a client action, such as using an action
4068//   or resource on behalf of a user that doesn't have permissions to use the
4069//   action or resource, or specifying an identifier that is not valid.
4070//
4071//   * ErrCodeAccessDeniedException "AccessDeniedException"
4072//   You do not have authorization to perform the requested action.
4073//
4074//   * ErrCodeInvalidParameterException "InvalidParameterException"
4075//   The specified parameter is invalid. Review the available parameters for the
4076//   API request.
4077//
4078// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4079func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
4080	req, out := c.SubmitTaskStateChangeRequest(input)
4081	return out, req.Send()
4082}
4083
4084// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
4085// the ability to pass a context and additional request options.
4086//
4087// See SubmitTaskStateChange for details on how to use this API operation.
4088//
4089// The context must be non-nil and will be used for request cancellation. If
4090// the context is nil a panic will occur. In the future the SDK may create
4091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4092// for more information on using Contexts.
4093func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
4094	req, out := c.SubmitTaskStateChangeRequest(input)
4095	req.SetContext(ctx)
4096	req.ApplyOptions(opts...)
4097	return out, req.Send()
4098}
4099
4100const opTagResource = "TagResource"
4101
4102// TagResourceRequest generates a "aws/request.Request" representing the
4103// client's request for the TagResource operation. The "output" return
4104// value will be populated with the request's response once the request completes
4105// successfully.
4106//
4107// Use "Send" method on the returned Request to send the API call to the service.
4108// the "output" return value is not valid until after Send returns without error.
4109//
4110// See TagResource for more information on using the TagResource
4111// API call, and error handling.
4112//
4113// This method is useful when you want to inject custom logic or configuration
4114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4115//
4116//
4117//    // Example sending a request using the TagResourceRequest method.
4118//    req, resp := client.TagResourceRequest(params)
4119//
4120//    err := req.Send()
4121//    if err == nil { // resp is now filled
4122//        fmt.Println(resp)
4123//    }
4124//
4125// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4126func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4127	op := &request.Operation{
4128		Name:       opTagResource,
4129		HTTPMethod: "POST",
4130		HTTPPath:   "/",
4131	}
4132
4133	if input == nil {
4134		input = &TagResourceInput{}
4135	}
4136
4137	output = &TagResourceOutput{}
4138	req = c.newRequest(op, input, output)
4139	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4140	return
4141}
4142
4143// TagResource API operation for Amazon EC2 Container Service.
4144//
4145// Associates the specified tags to a resource with the specified resourceArn.
4146// If existing tags on a resource are not specified in the request parameters,
4147// they are not changed. When a resource is deleted, the tags associated with
4148// that resource are deleted as well.
4149//
4150// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4151// with awserr.Error's Code and Message methods to get detailed information about
4152// the error.
4153//
4154// See the AWS API reference guide for Amazon EC2 Container Service's
4155// API operation TagResource for usage and error information.
4156//
4157// Returned Error Codes:
4158//   * ErrCodeServerException "ServerException"
4159//   These errors are usually caused by a server issue.
4160//
4161//   * ErrCodeClientException "ClientException"
4162//   These errors are usually caused by a client action, such as using an action
4163//   or resource on behalf of a user that doesn't have permissions to use the
4164//   action or resource, or specifying an identifier that is not valid.
4165//
4166//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4167//   The specified cluster could not be found. You can view your available clusters
4168//   with ListClusters. Amazon ECS clusters are Region-specific.
4169//
4170//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4171//   The specified resource could not be found.
4172//
4173//   * ErrCodeInvalidParameterException "InvalidParameterException"
4174//   The specified parameter is invalid. Review the available parameters for the
4175//   API request.
4176//
4177// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4178func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4179	req, out := c.TagResourceRequest(input)
4180	return out, req.Send()
4181}
4182
4183// TagResourceWithContext is the same as TagResource with the addition of
4184// the ability to pass a context and additional request options.
4185//
4186// See TagResource for details on how to use this API operation.
4187//
4188// The context must be non-nil and will be used for request cancellation. If
4189// the context is nil a panic will occur. In the future the SDK may create
4190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4191// for more information on using Contexts.
4192func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4193	req, out := c.TagResourceRequest(input)
4194	req.SetContext(ctx)
4195	req.ApplyOptions(opts...)
4196	return out, req.Send()
4197}
4198
4199const opUntagResource = "UntagResource"
4200
4201// UntagResourceRequest generates a "aws/request.Request" representing the
4202// client's request for the UntagResource operation. The "output" return
4203// value will be populated with the request's response once the request completes
4204// successfully.
4205//
4206// Use "Send" method on the returned Request to send the API call to the service.
4207// the "output" return value is not valid until after Send returns without error.
4208//
4209// See UntagResource for more information on using the UntagResource
4210// API call, and error handling.
4211//
4212// This method is useful when you want to inject custom logic or configuration
4213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4214//
4215//
4216//    // Example sending a request using the UntagResourceRequest method.
4217//    req, resp := client.UntagResourceRequest(params)
4218//
4219//    err := req.Send()
4220//    if err == nil { // resp is now filled
4221//        fmt.Println(resp)
4222//    }
4223//
4224// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4225func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4226	op := &request.Operation{
4227		Name:       opUntagResource,
4228		HTTPMethod: "POST",
4229		HTTPPath:   "/",
4230	}
4231
4232	if input == nil {
4233		input = &UntagResourceInput{}
4234	}
4235
4236	output = &UntagResourceOutput{}
4237	req = c.newRequest(op, input, output)
4238	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4239	return
4240}
4241
4242// UntagResource API operation for Amazon EC2 Container Service.
4243//
4244// Deletes specified tags from a resource.
4245//
4246// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4247// with awserr.Error's Code and Message methods to get detailed information about
4248// the error.
4249//
4250// See the AWS API reference guide for Amazon EC2 Container Service's
4251// API operation UntagResource for usage and error information.
4252//
4253// Returned Error Codes:
4254//   * ErrCodeServerException "ServerException"
4255//   These errors are usually caused by a server issue.
4256//
4257//   * ErrCodeClientException "ClientException"
4258//   These errors are usually caused by a client action, such as using an action
4259//   or resource on behalf of a user that doesn't have permissions to use the
4260//   action or resource, or specifying an identifier that is not valid.
4261//
4262//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4263//   The specified cluster could not be found. You can view your available clusters
4264//   with ListClusters. Amazon ECS clusters are Region-specific.
4265//
4266//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4267//   The specified resource could not be found.
4268//
4269//   * ErrCodeInvalidParameterException "InvalidParameterException"
4270//   The specified parameter is invalid. Review the available parameters for the
4271//   API request.
4272//
4273// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4274func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4275	req, out := c.UntagResourceRequest(input)
4276	return out, req.Send()
4277}
4278
4279// UntagResourceWithContext is the same as UntagResource with the addition of
4280// the ability to pass a context and additional request options.
4281//
4282// See UntagResource for details on how to use this API operation.
4283//
4284// The context must be non-nil and will be used for request cancellation. If
4285// the context is nil a panic will occur. In the future the SDK may create
4286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4287// for more information on using Contexts.
4288func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4289	req, out := c.UntagResourceRequest(input)
4290	req.SetContext(ctx)
4291	req.ApplyOptions(opts...)
4292	return out, req.Send()
4293}
4294
4295const opUpdateClusterSettings = "UpdateClusterSettings"
4296
4297// UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
4298// client's request for the UpdateClusterSettings operation. The "output" return
4299// value will be populated with the request's response once the request completes
4300// successfully.
4301//
4302// Use "Send" method on the returned Request to send the API call to the service.
4303// the "output" return value is not valid until after Send returns without error.
4304//
4305// See UpdateClusterSettings for more information on using the UpdateClusterSettings
4306// API call, and error handling.
4307//
4308// This method is useful when you want to inject custom logic or configuration
4309// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4310//
4311//
4312//    // Example sending a request using the UpdateClusterSettingsRequest method.
4313//    req, resp := client.UpdateClusterSettingsRequest(params)
4314//
4315//    err := req.Send()
4316//    if err == nil { // resp is now filled
4317//        fmt.Println(resp)
4318//    }
4319//
4320// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4321func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
4322	op := &request.Operation{
4323		Name:       opUpdateClusterSettings,
4324		HTTPMethod: "POST",
4325		HTTPPath:   "/",
4326	}
4327
4328	if input == nil {
4329		input = &UpdateClusterSettingsInput{}
4330	}
4331
4332	output = &UpdateClusterSettingsOutput{}
4333	req = c.newRequest(op, input, output)
4334	return
4335}
4336
4337// UpdateClusterSettings API operation for Amazon EC2 Container Service.
4338//
4339// Modifies the settings to use for a cluster.
4340//
4341// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4342// with awserr.Error's Code and Message methods to get detailed information about
4343// the error.
4344//
4345// See the AWS API reference guide for Amazon EC2 Container Service's
4346// API operation UpdateClusterSettings for usage and error information.
4347//
4348// Returned Error Codes:
4349//   * ErrCodeServerException "ServerException"
4350//   These errors are usually caused by a server issue.
4351//
4352//   * ErrCodeClientException "ClientException"
4353//   These errors are usually caused by a client action, such as using an action
4354//   or resource on behalf of a user that doesn't have permissions to use the
4355//   action or resource, or specifying an identifier that is not valid.
4356//
4357//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4358//   The specified cluster could not be found. You can view your available clusters
4359//   with ListClusters. Amazon ECS clusters are Region-specific.
4360//
4361//   * ErrCodeInvalidParameterException "InvalidParameterException"
4362//   The specified parameter is invalid. Review the available parameters for the
4363//   API request.
4364//
4365// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4366func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
4367	req, out := c.UpdateClusterSettingsRequest(input)
4368	return out, req.Send()
4369}
4370
4371// UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
4372// the ability to pass a context and additional request options.
4373//
4374// See UpdateClusterSettings for details on how to use this API operation.
4375//
4376// The context must be non-nil and will be used for request cancellation. If
4377// the context is nil a panic will occur. In the future the SDK may create
4378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4379// for more information on using Contexts.
4380func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
4381	req, out := c.UpdateClusterSettingsRequest(input)
4382	req.SetContext(ctx)
4383	req.ApplyOptions(opts...)
4384	return out, req.Send()
4385}
4386
4387const opUpdateContainerAgent = "UpdateContainerAgent"
4388
4389// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
4390// client's request for the UpdateContainerAgent operation. The "output" return
4391// value will be populated with the request's response once the request completes
4392// successfully.
4393//
4394// Use "Send" method on the returned Request to send the API call to the service.
4395// the "output" return value is not valid until after Send returns without error.
4396//
4397// See UpdateContainerAgent for more information on using the UpdateContainerAgent
4398// API call, and error handling.
4399//
4400// This method is useful when you want to inject custom logic or configuration
4401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4402//
4403//
4404//    // Example sending a request using the UpdateContainerAgentRequest method.
4405//    req, resp := client.UpdateContainerAgentRequest(params)
4406//
4407//    err := req.Send()
4408//    if err == nil { // resp is now filled
4409//        fmt.Println(resp)
4410//    }
4411//
4412// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4413func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
4414	op := &request.Operation{
4415		Name:       opUpdateContainerAgent,
4416		HTTPMethod: "POST",
4417		HTTPPath:   "/",
4418	}
4419
4420	if input == nil {
4421		input = &UpdateContainerAgentInput{}
4422	}
4423
4424	output = &UpdateContainerAgentOutput{}
4425	req = c.newRequest(op, input, output)
4426	return
4427}
4428
4429// UpdateContainerAgent API operation for Amazon EC2 Container Service.
4430//
4431// Updates the Amazon ECS container agent on a specified container instance.
4432// Updating the Amazon ECS container agent does not interrupt running tasks
4433// or services on the container instance. The process for updating the agent
4434// differs depending on whether your container instance was launched with the
4435// Amazon ECS-optimized AMI or another operating system.
4436//
4437// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
4438// with the ecs-init service installed and running. For help updating the Amazon
4439// ECS container agent on other operating systems, see Manually Updating the
4440// Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
4441// in the Amazon Elastic Container Service Developer Guide.
4442//
4443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4444// with awserr.Error's Code and Message methods to get detailed information about
4445// the error.
4446//
4447// See the AWS API reference guide for Amazon EC2 Container Service's
4448// API operation UpdateContainerAgent for usage and error information.
4449//
4450// Returned Error Codes:
4451//   * ErrCodeServerException "ServerException"
4452//   These errors are usually caused by a server issue.
4453//
4454//   * ErrCodeClientException "ClientException"
4455//   These errors are usually caused by a client action, such as using an action
4456//   or resource on behalf of a user that doesn't have permissions to use the
4457//   action or resource, or specifying an identifier that is not valid.
4458//
4459//   * ErrCodeInvalidParameterException "InvalidParameterException"
4460//   The specified parameter is invalid. Review the available parameters for the
4461//   API request.
4462//
4463//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4464//   The specified cluster could not be found. You can view your available clusters
4465//   with ListClusters. Amazon ECS clusters are Region-specific.
4466//
4467//   * ErrCodeUpdateInProgressException "UpdateInProgressException"
4468//   There is already a current Amazon ECS container agent update in progress
4469//   on the specified container instance. If the container agent becomes disconnected
4470//   while it is in a transitional stage, such as PENDING or STAGING, the update
4471//   process can get stuck in that state. However, when the agent reconnects,
4472//   it resumes where it stopped previously.
4473//
4474//   * ErrCodeNoUpdateAvailableException "NoUpdateAvailableException"
4475//   There is no update available for this Amazon ECS container agent. This could
4476//   be because the agent is already running the latest version, or it is so old
4477//   that there is no update path to the current version.
4478//
4479//   * ErrCodeMissingVersionException "MissingVersionException"
4480//   Amazon ECS is unable to determine the current version of the Amazon ECS container
4481//   agent on the container instance and does not have enough information to proceed
4482//   with an update. This could be because the agent running on the container
4483//   instance is an older or custom version that does not use our version information.
4484//
4485// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4486func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
4487	req, out := c.UpdateContainerAgentRequest(input)
4488	return out, req.Send()
4489}
4490
4491// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
4492// the ability to pass a context and additional request options.
4493//
4494// See UpdateContainerAgent for details on how to use this API operation.
4495//
4496// The context must be non-nil and will be used for request cancellation. If
4497// the context is nil a panic will occur. In the future the SDK may create
4498// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4499// for more information on using Contexts.
4500func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
4501	req, out := c.UpdateContainerAgentRequest(input)
4502	req.SetContext(ctx)
4503	req.ApplyOptions(opts...)
4504	return out, req.Send()
4505}
4506
4507const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
4508
4509// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
4510// client's request for the UpdateContainerInstancesState operation. The "output" return
4511// value will be populated with the request's response once the request completes
4512// successfully.
4513//
4514// Use "Send" method on the returned Request to send the API call to the service.
4515// the "output" return value is not valid until after Send returns without error.
4516//
4517// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
4518// API call, and error handling.
4519//
4520// This method is useful when you want to inject custom logic or configuration
4521// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4522//
4523//
4524//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
4525//    req, resp := client.UpdateContainerInstancesStateRequest(params)
4526//
4527//    err := req.Send()
4528//    if err == nil { // resp is now filled
4529//        fmt.Println(resp)
4530//    }
4531//
4532// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
4533func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
4534	op := &request.Operation{
4535		Name:       opUpdateContainerInstancesState,
4536		HTTPMethod: "POST",
4537		HTTPPath:   "/",
4538	}
4539
4540	if input == nil {
4541		input = &UpdateContainerInstancesStateInput{}
4542	}
4543
4544	output = &UpdateContainerInstancesStateOutput{}
4545	req = c.newRequest(op, input, output)
4546	return
4547}
4548
4549// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
4550//
4551// Modifies the status of an Amazon ECS container instance.
4552//
4553// Once a container instance has reached an ACTIVE state, you can change the
4554// status of a container instance to DRAINING to manually remove an instance
4555// from a cluster, for example to perform system updates, update the Docker
4556// daemon, or scale down the cluster size.
4557//
4558// A container instance cannot be changed to DRAINING until it has reached an
4559// ACTIVE status. If the instance is in any other status, an error will be received.
4560//
4561// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
4562// from being scheduled for placement on the container instance and replacement
4563// service tasks are started on other container instances in the cluster if
4564// the resources are available. Service tasks on the container instance that
4565// are in the PENDING state are stopped immediately.
4566//
4567// Service tasks on the container instance that are in the RUNNING state are
4568// stopped and replaced according to the service's deployment configuration
4569// parameters, minimumHealthyPercent and maximumPercent. You can change the
4570// deployment configuration of your service using UpdateService.
4571//
4572//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
4573//    temporarily during task replacement. For example, desiredCount is four
4574//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
4575//    before starting two new tasks. If the minimum is 100%, the service scheduler
4576//    can't remove existing tasks until the replacement tasks are considered
4577//    healthy. Tasks for services that do not use a load balancer are considered
4578//    healthy if they are in the RUNNING state. Tasks for services that use
4579//    a load balancer are considered healthy if they are in the RUNNING state
4580//    and the container instance they are hosted on is reported as healthy by
4581//    the load balancer.
4582//
4583//    * The maximumPercent parameter represents an upper limit on the number
4584//    of running tasks during task replacement, which enables you to define
4585//    the replacement batch size. For example, if desiredCount is four tasks,
4586//    a maximum of 200% starts four new tasks before stopping the four tasks
4587//    to be drained, provided that the cluster resources required to do this
4588//    are available. If the maximum is 100%, then replacement tasks can't start
4589//    until the draining tasks have stopped.
4590//
4591// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
4592// You must wait for them to finish or stop them manually.
4593//
4594// A container instance has completed draining when it has no more RUNNING tasks.
4595// You can verify this using ListTasks.
4596//
4597// When a container instance has been drained, you can set a container instance
4598// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
4599// can begin scheduling tasks on the instance again.
4600//
4601// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4602// with awserr.Error's Code and Message methods to get detailed information about
4603// the error.
4604//
4605// See the AWS API reference guide for Amazon EC2 Container Service's
4606// API operation UpdateContainerInstancesState for usage and error information.
4607//
4608// Returned Error Codes:
4609//   * ErrCodeServerException "ServerException"
4610//   These errors are usually caused by a server issue.
4611//
4612//   * ErrCodeClientException "ClientException"
4613//   These errors are usually caused by a client action, such as using an action
4614//   or resource on behalf of a user that doesn't have permissions to use the
4615//   action or resource, or specifying an identifier that is not valid.
4616//
4617//   * ErrCodeInvalidParameterException "InvalidParameterException"
4618//   The specified parameter is invalid. Review the available parameters for the
4619//   API request.
4620//
4621//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4622//   The specified cluster could not be found. You can view your available clusters
4623//   with ListClusters. Amazon ECS clusters are Region-specific.
4624//
4625// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
4626func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
4627	req, out := c.UpdateContainerInstancesStateRequest(input)
4628	return out, req.Send()
4629}
4630
4631// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
4632// the ability to pass a context and additional request options.
4633//
4634// See UpdateContainerInstancesState for details on how to use this API operation.
4635//
4636// The context must be non-nil and will be used for request cancellation. If
4637// the context is nil a panic will occur. In the future the SDK may create
4638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4639// for more information on using Contexts.
4640func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
4641	req, out := c.UpdateContainerInstancesStateRequest(input)
4642	req.SetContext(ctx)
4643	req.ApplyOptions(opts...)
4644	return out, req.Send()
4645}
4646
4647const opUpdateService = "UpdateService"
4648
4649// UpdateServiceRequest generates a "aws/request.Request" representing the
4650// client's request for the UpdateService operation. The "output" return
4651// value will be populated with the request's response once the request completes
4652// successfully.
4653//
4654// Use "Send" method on the returned Request to send the API call to the service.
4655// the "output" return value is not valid until after Send returns without error.
4656//
4657// See UpdateService for more information on using the UpdateService
4658// API call, and error handling.
4659//
4660// This method is useful when you want to inject custom logic or configuration
4661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4662//
4663//
4664//    // Example sending a request using the UpdateServiceRequest method.
4665//    req, resp := client.UpdateServiceRequest(params)
4666//
4667//    err := req.Send()
4668//    if err == nil { // resp is now filled
4669//        fmt.Println(resp)
4670//    }
4671//
4672// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
4673func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
4674	op := &request.Operation{
4675		Name:       opUpdateService,
4676		HTTPMethod: "POST",
4677		HTTPPath:   "/",
4678	}
4679
4680	if input == nil {
4681		input = &UpdateServiceInput{}
4682	}
4683
4684	output = &UpdateServiceOutput{}
4685	req = c.newRequest(op, input, output)
4686	return
4687}
4688
4689// UpdateService API operation for Amazon EC2 Container Service.
4690//
4691// Modifies the parameters of a service.
4692//
4693// For services using the rolling update (ECS) deployment controller, the desired
4694// count, deployment configuration, network configuration, or task definition
4695// used can be updated.
4696//
4697// For services using the blue/green (CODE_DEPLOY) deployment controller, only
4698// the desired count, deployment configuration, and health check grace period
4699// can be updated using this API. If the network configuration, platform version,
4700// or task definition need to be updated, a new AWS CodeDeploy deployment should
4701// be created. For more information, see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
4702// in the AWS CodeDeploy API Reference.
4703//
4704// For services using an external deployment controller, you can update only
4705// the desired count and health check grace period using this API. If the launch
4706// type, load balancer, network configuration, platform version, or task definition
4707// need to be updated, you should create a new task set. For more information,
4708// see CreateTaskSet.
4709//
4710// You can add to or subtract from the number of instantiations of a task definition
4711// in a service by specifying the cluster that the service is running in and
4712// a new desiredCount parameter.
4713//
4714// If you have updated the Docker image of your application, you can create
4715// a new task definition with that image and deploy it to your service. The
4716// service scheduler uses the minimum healthy percent and maximum percent parameters
4717// (in the service's deployment configuration) to determine the deployment strategy.
4718//
4719// If your updated Docker image uses the same tag as what is in the existing
4720// task definition for your service (for example, my_image:latest), you do not
4721// need to create a new revision of your task definition. You can update the
4722// service using the forceNewDeployment option. The new tasks launched by the
4723// deployment pull the current image/tag combination from your repository when
4724// they start.
4725//
4726// You can also update the deployment configuration of a service. When a deployment
4727// is triggered by updating the task definition of a service, the service scheduler
4728// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
4729// to determine the deployment strategy.
4730//
4731//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
4732//    temporarily during a deployment. For example, if desiredCount is four
4733//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
4734//    before starting two new tasks. Tasks for services that do not use a load
4735//    balancer are considered healthy if they are in the RUNNING state. Tasks
4736//    for services that use a load balancer are considered healthy if they are
4737//    in the RUNNING state and the container instance they are hosted on is
4738//    reported as healthy by the load balancer.
4739//
4740//    * The maximumPercent parameter represents an upper limit on the number
4741//    of running tasks during a deployment, which enables you to define the
4742//    deployment batch size. For example, if desiredCount is four tasks, a maximum
4743//    of 200% starts four new tasks before stopping the four older tasks (provided
4744//    that the cluster resources required to do this are available).
4745//
4746// When UpdateService stops a task during a deployment, the equivalent of docker
4747// stop is issued to the containers running in the task. This results in a SIGTERM
4748// and a 30-second timeout, after which SIGKILL is sent and the containers are
4749// forcibly stopped. If the container handles the SIGTERM gracefully and exits
4750// within 30 seconds from receiving it, no SIGKILL is sent.
4751//
4752// When the service scheduler launches new tasks, it determines task placement
4753// in your cluster with the following logic:
4754//
4755//    * Determine which of the container instances in your cluster can support
4756//    your service's task definition (for example, they have the required CPU,
4757//    memory, ports, and container instance attributes).
4758//
4759//    * By default, the service scheduler attempts to balance tasks across Availability
4760//    Zones in this manner (although you can choose a different placement strategy):
4761//    Sort the valid container instances by the fewest number of running tasks
4762//    for this service in the same Availability Zone as the instance. For example,
4763//    if zone A has one running service task and zones B and C each have zero,
4764//    valid container instances in either zone B or C are considered optimal
4765//    for placement. Place the new service task on a valid container instance
4766//    in an optimal Availability Zone (based on the previous steps), favoring
4767//    container instances with the fewest number of running tasks for this service.
4768//
4769// When the service scheduler stops running tasks, it attempts to maintain balance
4770// across the Availability Zones in your cluster using the following logic:
4771//
4772//    * Sort the container instances by the largest number of running tasks
4773//    for this service in the same Availability Zone as the instance. For example,
4774//    if zone A has one running service task and zones B and C each have two,
4775//    container instances in either zone B or C are considered optimal for termination.
4776//
4777//    * Stop the task on a container instance in an optimal Availability Zone
4778//    (based on the previous steps), favoring container instances with the largest
4779//    number of running tasks for this service.
4780//
4781// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4782// with awserr.Error's Code and Message methods to get detailed information about
4783// the error.
4784//
4785// See the AWS API reference guide for Amazon EC2 Container Service's
4786// API operation UpdateService for usage and error information.
4787//
4788// Returned Error Codes:
4789//   * ErrCodeServerException "ServerException"
4790//   These errors are usually caused by a server issue.
4791//
4792//   * ErrCodeClientException "ClientException"
4793//   These errors are usually caused by a client action, such as using an action
4794//   or resource on behalf of a user that doesn't have permissions to use the
4795//   action or resource, or specifying an identifier that is not valid.
4796//
4797//   * ErrCodeInvalidParameterException "InvalidParameterException"
4798//   The specified parameter is invalid. Review the available parameters for the
4799//   API request.
4800//
4801//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4802//   The specified cluster could not be found. You can view your available clusters
4803//   with ListClusters. Amazon ECS clusters are Region-specific.
4804//
4805//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
4806//   The specified service could not be found. You can view your available services
4807//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
4808//
4809//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
4810//   The specified service is not active. You can't update a service that is inactive.
4811//   If you have previously deleted a service, you can re-create it with CreateService.
4812//
4813//   * ErrCodePlatformUnknownException "PlatformUnknownException"
4814//   The specified platform version does not exist.
4815//
4816//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
4817//   The specified platform version does not satisfy the task definition's required
4818//   capabilities.
4819//
4820//   * ErrCodeAccessDeniedException "AccessDeniedException"
4821//   You do not have authorization to perform the requested action.
4822//
4823// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
4824func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
4825	req, out := c.UpdateServiceRequest(input)
4826	return out, req.Send()
4827}
4828
4829// UpdateServiceWithContext is the same as UpdateService with the addition of
4830// the ability to pass a context and additional request options.
4831//
4832// See UpdateService for details on how to use this API operation.
4833//
4834// The context must be non-nil and will be used for request cancellation. If
4835// the context is nil a panic will occur. In the future the SDK may create
4836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4837// for more information on using Contexts.
4838func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
4839	req, out := c.UpdateServiceRequest(input)
4840	req.SetContext(ctx)
4841	req.ApplyOptions(opts...)
4842	return out, req.Send()
4843}
4844
4845const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
4846
4847// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
4848// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
4849// value will be populated with the request's response once the request completes
4850// successfully.
4851//
4852// Use "Send" method on the returned Request to send the API call to the service.
4853// the "output" return value is not valid until after Send returns without error.
4854//
4855// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
4856// API call, and error handling.
4857//
4858// This method is useful when you want to inject custom logic or configuration
4859// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4860//
4861//
4862//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
4863//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
4864//
4865//    err := req.Send()
4866//    if err == nil { // resp is now filled
4867//        fmt.Println(resp)
4868//    }
4869//
4870// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
4871func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
4872	op := &request.Operation{
4873		Name:       opUpdateServicePrimaryTaskSet,
4874		HTTPMethod: "POST",
4875		HTTPPath:   "/",
4876	}
4877
4878	if input == nil {
4879		input = &UpdateServicePrimaryTaskSetInput{}
4880	}
4881
4882	output = &UpdateServicePrimaryTaskSetOutput{}
4883	req = c.newRequest(op, input, output)
4884	return
4885}
4886
4887// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
4888//
4889// Modifies which task set in a service is the primary task set. Any parameters
4890// that are updated on the primary task set in a service will transition to
4891// the service. This is used when a service uses the EXTERNAL deployment controller
4892// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
4893// in the Amazon Elastic Container Service Developer Guide.
4894//
4895// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4896// with awserr.Error's Code and Message methods to get detailed information about
4897// the error.
4898//
4899// See the AWS API reference guide for Amazon EC2 Container Service's
4900// API operation UpdateServicePrimaryTaskSet for usage and error information.
4901//
4902// Returned Error Codes:
4903//   * ErrCodeServerException "ServerException"
4904//   These errors are usually caused by a server issue.
4905//
4906//   * ErrCodeClientException "ClientException"
4907//   These errors are usually caused by a client action, such as using an action
4908//   or resource on behalf of a user that doesn't have permissions to use the
4909//   action or resource, or specifying an identifier that is not valid.
4910//
4911//   * ErrCodeInvalidParameterException "InvalidParameterException"
4912//   The specified parameter is invalid. Review the available parameters for the
4913//   API request.
4914//
4915//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4916//   The specified cluster could not be found. You can view your available clusters
4917//   with ListClusters. Amazon ECS clusters are Region-specific.
4918//
4919//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
4920//   The specified task is not supported in this Region.
4921//
4922//   * ErrCodeAccessDeniedException "AccessDeniedException"
4923//   You do not have authorization to perform the requested action.
4924//
4925//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
4926//   The specified service could not be found. You can view your available services
4927//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
4928//
4929//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
4930//   The specified service is not active. You can't update a service that is inactive.
4931//   If you have previously deleted a service, you can re-create it with CreateService.
4932//
4933//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
4934//   The specified task set could not be found. You can view your available container
4935//   instances with DescribeTaskSets. Task sets are specific to each cluster,
4936//   service and Region.
4937//
4938//   * ErrCodeAccessDeniedException "AccessDeniedException"
4939//   You do not have authorization to perform the requested action.
4940//
4941// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
4942func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
4943	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
4944	return out, req.Send()
4945}
4946
4947// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
4948// the ability to pass a context and additional request options.
4949//
4950// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
4951//
4952// The context must be non-nil and will be used for request cancellation. If
4953// the context is nil a panic will occur. In the future the SDK may create
4954// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4955// for more information on using Contexts.
4956func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
4957	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
4958	req.SetContext(ctx)
4959	req.ApplyOptions(opts...)
4960	return out, req.Send()
4961}
4962
4963const opUpdateTaskSet = "UpdateTaskSet"
4964
4965// UpdateTaskSetRequest generates a "aws/request.Request" representing the
4966// client's request for the UpdateTaskSet operation. The "output" return
4967// value will be populated with the request's response once the request completes
4968// successfully.
4969//
4970// Use "Send" method on the returned Request to send the API call to the service.
4971// the "output" return value is not valid until after Send returns without error.
4972//
4973// See UpdateTaskSet for more information on using the UpdateTaskSet
4974// API call, and error handling.
4975//
4976// This method is useful when you want to inject custom logic or configuration
4977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4978//
4979//
4980//    // Example sending a request using the UpdateTaskSetRequest method.
4981//    req, resp := client.UpdateTaskSetRequest(params)
4982//
4983//    err := req.Send()
4984//    if err == nil { // resp is now filled
4985//        fmt.Println(resp)
4986//    }
4987//
4988// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
4989func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
4990	op := &request.Operation{
4991		Name:       opUpdateTaskSet,
4992		HTTPMethod: "POST",
4993		HTTPPath:   "/",
4994	}
4995
4996	if input == nil {
4997		input = &UpdateTaskSetInput{}
4998	}
4999
5000	output = &UpdateTaskSetOutput{}
5001	req = c.newRequest(op, input, output)
5002	return
5003}
5004
5005// UpdateTaskSet API operation for Amazon EC2 Container Service.
5006//
5007// Modifies a task set. This is used when a service uses the EXTERNAL deployment
5008// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5009// in the Amazon Elastic Container Service Developer Guide.
5010//
5011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5012// with awserr.Error's Code and Message methods to get detailed information about
5013// the error.
5014//
5015// See the AWS API reference guide for Amazon EC2 Container Service's
5016// API operation UpdateTaskSet for usage and error information.
5017//
5018// Returned Error Codes:
5019//   * ErrCodeServerException "ServerException"
5020//   These errors are usually caused by a server issue.
5021//
5022//   * ErrCodeClientException "ClientException"
5023//   These errors are usually caused by a client action, such as using an action
5024//   or resource on behalf of a user that doesn't have permissions to use the
5025//   action or resource, or specifying an identifier that is not valid.
5026//
5027//   * ErrCodeInvalidParameterException "InvalidParameterException"
5028//   The specified parameter is invalid. Review the available parameters for the
5029//   API request.
5030//
5031//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
5032//   The specified cluster could not be found. You can view your available clusters
5033//   with ListClusters. Amazon ECS clusters are Region-specific.
5034//
5035//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
5036//   The specified task is not supported in this Region.
5037//
5038//   * ErrCodeAccessDeniedException "AccessDeniedException"
5039//   You do not have authorization to perform the requested action.
5040//
5041//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
5042//   The specified service could not be found. You can view your available services
5043//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5044//
5045//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
5046//   The specified service is not active. You can't update a service that is inactive.
5047//   If you have previously deleted a service, you can re-create it with CreateService.
5048//
5049//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
5050//   The specified task set could not be found. You can view your available container
5051//   instances with DescribeTaskSets. Task sets are specific to each cluster,
5052//   service and Region.
5053//
5054// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5055func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
5056	req, out := c.UpdateTaskSetRequest(input)
5057	return out, req.Send()
5058}
5059
5060// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
5061// the ability to pass a context and additional request options.
5062//
5063// See UpdateTaskSet for details on how to use this API operation.
5064//
5065// The context must be non-nil and will be used for request cancellation. If
5066// the context is nil a panic will occur. In the future the SDK may create
5067// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5068// for more information on using Contexts.
5069func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
5070	req, out := c.UpdateTaskSetRequest(input)
5071	req.SetContext(ctx)
5072	req.ApplyOptions(opts...)
5073	return out, req.Send()
5074}
5075
5076// An object representing a container instance or task attachment.
5077type Attachment struct {
5078	_ struct{} `type:"structure"`
5079
5080	// Details of the attachment. For elastic network interfaces, this includes
5081	// the network interface ID, the MAC address, the subnet ID, and the private
5082	// IPv4 address.
5083	Details []*KeyValuePair `locationName:"details" type:"list"`
5084
5085	// The unique identifier for the attachment.
5086	Id *string `locationName:"id" type:"string"`
5087
5088	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
5089	// ATTACHED, DETACHING, DETACHED, and DELETED.
5090	Status *string `locationName:"status" type:"string"`
5091
5092	// The type of the attachment, such as ElasticNetworkInterface.
5093	Type *string `locationName:"type" type:"string"`
5094}
5095
5096// String returns the string representation
5097func (s Attachment) String() string {
5098	return awsutil.Prettify(s)
5099}
5100
5101// GoString returns the string representation
5102func (s Attachment) GoString() string {
5103	return s.String()
5104}
5105
5106// SetDetails sets the Details field's value.
5107func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
5108	s.Details = v
5109	return s
5110}
5111
5112// SetId sets the Id field's value.
5113func (s *Attachment) SetId(v string) *Attachment {
5114	s.Id = &v
5115	return s
5116}
5117
5118// SetStatus sets the Status field's value.
5119func (s *Attachment) SetStatus(v string) *Attachment {
5120	s.Status = &v
5121	return s
5122}
5123
5124// SetType sets the Type field's value.
5125func (s *Attachment) SetType(v string) *Attachment {
5126	s.Type = &v
5127	return s
5128}
5129
5130// An object representing a change in state for a task attachment.
5131type AttachmentStateChange struct {
5132	_ struct{} `type:"structure"`
5133
5134	// The Amazon Resource Name (ARN) of the attachment.
5135	//
5136	// AttachmentArn is a required field
5137	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
5138
5139	// The status of the attachment.
5140	//
5141	// Status is a required field
5142	Status *string `locationName:"status" type:"string" required:"true"`
5143}
5144
5145// String returns the string representation
5146func (s AttachmentStateChange) String() string {
5147	return awsutil.Prettify(s)
5148}
5149
5150// GoString returns the string representation
5151func (s AttachmentStateChange) GoString() string {
5152	return s.String()
5153}
5154
5155// Validate inspects the fields of the type to determine if they are valid.
5156func (s *AttachmentStateChange) Validate() error {
5157	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
5158	if s.AttachmentArn == nil {
5159		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
5160	}
5161	if s.Status == nil {
5162		invalidParams.Add(request.NewErrParamRequired("Status"))
5163	}
5164
5165	if invalidParams.Len() > 0 {
5166		return invalidParams
5167	}
5168	return nil
5169}
5170
5171// SetAttachmentArn sets the AttachmentArn field's value.
5172func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
5173	s.AttachmentArn = &v
5174	return s
5175}
5176
5177// SetStatus sets the Status field's value.
5178func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
5179	s.Status = &v
5180	return s
5181}
5182
5183// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
5184// enable you to extend the Amazon ECS data model by adding custom metadata
5185// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
5186// in the Amazon Elastic Container Service Developer Guide.
5187type Attribute struct {
5188	_ struct{} `type:"structure"`
5189
5190	// The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers,
5191	// hyphens, underscores, and periods are allowed.
5192	//
5193	// Name is a required field
5194	Name *string `locationName:"name" type:"string" required:"true"`
5195
5196	// The ID of the target. You can specify the short form ID for a resource or
5197	// the full Amazon Resource Name (ARN).
5198	TargetId *string `locationName:"targetId" type:"string"`
5199
5200	// The type of the target with which to attach the attribute. This parameter
5201	// is required if you use the short form ID for a resource instead of the full
5202	// ARN.
5203	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
5204
5205	// The value of the attribute. Up to 128 letters (uppercase and lowercase),
5206	// numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons,
5207	// and spaces are allowed.
5208	Value *string `locationName:"value" type:"string"`
5209}
5210
5211// String returns the string representation
5212func (s Attribute) String() string {
5213	return awsutil.Prettify(s)
5214}
5215
5216// GoString returns the string representation
5217func (s Attribute) GoString() string {
5218	return s.String()
5219}
5220
5221// Validate inspects the fields of the type to determine if they are valid.
5222func (s *Attribute) Validate() error {
5223	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5224	if s.Name == nil {
5225		invalidParams.Add(request.NewErrParamRequired("Name"))
5226	}
5227
5228	if invalidParams.Len() > 0 {
5229		return invalidParams
5230	}
5231	return nil
5232}
5233
5234// SetName sets the Name field's value.
5235func (s *Attribute) SetName(v string) *Attribute {
5236	s.Name = &v
5237	return s
5238}
5239
5240// SetTargetId sets the TargetId field's value.
5241func (s *Attribute) SetTargetId(v string) *Attribute {
5242	s.TargetId = &v
5243	return s
5244}
5245
5246// SetTargetType sets the TargetType field's value.
5247func (s *Attribute) SetTargetType(v string) *Attribute {
5248	s.TargetType = &v
5249	return s
5250}
5251
5252// SetValue sets the Value field's value.
5253func (s *Attribute) SetValue(v string) *Attribute {
5254	s.Value = &v
5255	return s
5256}
5257
5258// An object representing the networking details for a task or service.
5259type AwsVpcConfiguration struct {
5260	_ struct{} `type:"structure"`
5261
5262	// Whether the task's elastic network interface receives a public IP address.
5263	// The default value is DISABLED.
5264	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
5265
5266	// The security groups associated with the task or service. If you do not specify
5267	// a security group, the default security group for the VPC is used. There is
5268	// a limit of 5 security groups that can be specified per AwsVpcConfiguration.
5269	//
5270	// All specified security groups must be from the same VPC.
5271	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
5272
5273	// The subnets associated with the task or service. There is a limit of 16 subnets
5274	// that can be specified per AwsVpcConfiguration.
5275	//
5276	// All specified subnets must be from the same VPC.
5277	//
5278	// Subnets is a required field
5279	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
5280}
5281
5282// String returns the string representation
5283func (s AwsVpcConfiguration) String() string {
5284	return awsutil.Prettify(s)
5285}
5286
5287// GoString returns the string representation
5288func (s AwsVpcConfiguration) GoString() string {
5289	return s.String()
5290}
5291
5292// Validate inspects the fields of the type to determine if they are valid.
5293func (s *AwsVpcConfiguration) Validate() error {
5294	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
5295	if s.Subnets == nil {
5296		invalidParams.Add(request.NewErrParamRequired("Subnets"))
5297	}
5298
5299	if invalidParams.Len() > 0 {
5300		return invalidParams
5301	}
5302	return nil
5303}
5304
5305// SetAssignPublicIp sets the AssignPublicIp field's value.
5306func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
5307	s.AssignPublicIp = &v
5308	return s
5309}
5310
5311// SetSecurityGroups sets the SecurityGroups field's value.
5312func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
5313	s.SecurityGroups = v
5314	return s
5315}
5316
5317// SetSubnets sets the Subnets field's value.
5318func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
5319	s.Subnets = v
5320	return s
5321}
5322
5323// A regional grouping of one or more container instances on which you can run
5324// task requests. Each account receives a default cluster the first time you
5325// use the Amazon ECS service, but you may also create other clusters. Clusters
5326// may contain more than one instance type simultaneously.
5327type Cluster struct {
5328	_ struct{} `type:"structure"`
5329
5330	// The number of services that are running on the cluster in an ACTIVE state.
5331	// You can view these services with ListServices.
5332	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
5333
5334	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
5335	// the arn:aws:ecs namespace, followed by the Region of the cluster, the AWS
5336	// account ID of the cluster owner, the cluster namespace, and then the cluster
5337	// name. For example, arn:aws:ecs:region:012345678910:cluster/test.
5338	ClusterArn *string `locationName:"clusterArn" type:"string"`
5339
5340	// A user-generated string that you use to identify your cluster.
5341	ClusterName *string `locationName:"clusterName" type:"string"`
5342
5343	// The number of tasks in the cluster that are in the PENDING state.
5344	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
5345
5346	// The number of container instances registered into the cluster. This includes
5347	// container instances in both ACTIVE and DRAINING status.
5348	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
5349
5350	// The number of tasks in the cluster that are in the RUNNING state.
5351	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
5352
5353	// The settings for the cluster. This parameter indicates whether CloudWatch
5354	// Container Insights is enabled or disabled for a cluster.
5355	Settings []*ClusterSetting `locationName:"settings" type:"list"`
5356
5357	// Additional information about your clusters that are separated by launch type,
5358	// including:
5359	//
5360	//    * runningEC2TasksCount
5361	//
5362	//    * RunningFargateTasksCount
5363	//
5364	//    * pendingEC2TasksCount
5365	//
5366	//    * pendingFargateTasksCount
5367	//
5368	//    * activeEC2ServiceCount
5369	//
5370	//    * activeFargateServiceCount
5371	//
5372	//    * drainingEC2ServiceCount
5373	//
5374	//    * drainingFargateServiceCount
5375	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
5376
5377	// The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE
5378	// indicates that you can register container instances with the cluster and
5379	// the associated instances can accept tasks.
5380	Status *string `locationName:"status" type:"string"`
5381
5382	// The metadata that you apply to the cluster to help you categorize and organize
5383	// them. Each tag consists of a key and an optional value, both of which you
5384	// define.
5385	//
5386	// The following basic restrictions apply to tags:
5387	//
5388	//    * Maximum number of tags per resource - 50
5389	//
5390	//    * For each resource, each tag key must be unique, and each tag key can
5391	//    have only one value.
5392	//
5393	//    * Maximum key length - 128 Unicode characters in UTF-8
5394	//
5395	//    * Maximum value length - 256 Unicode characters in UTF-8
5396	//
5397	//    * If your tagging schema is used across multiple services and resources,
5398	//    remember that other services may have restrictions on allowed characters.
5399	//    Generally allowed characters are: letters, numbers, and spaces representable
5400	//    in UTF-8, and the following characters: + - = . _ : / @.
5401	//
5402	//    * Tag keys and values are case-sensitive.
5403	//
5404	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
5405	//    as a prefix for either keys or values as it is reserved for AWS use. You
5406	//    cannot edit or delete tag keys or values with this prefix. Tags with this
5407	//    prefix do not count against your tags per resource limit.
5408	Tags []*Tag `locationName:"tags" type:"list"`
5409}
5410
5411// String returns the string representation
5412func (s Cluster) String() string {
5413	return awsutil.Prettify(s)
5414}
5415
5416// GoString returns the string representation
5417func (s Cluster) GoString() string {
5418	return s.String()
5419}
5420
5421// SetActiveServicesCount sets the ActiveServicesCount field's value.
5422func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
5423	s.ActiveServicesCount = &v
5424	return s
5425}
5426
5427// SetClusterArn sets the ClusterArn field's value.
5428func (s *Cluster) SetClusterArn(v string) *Cluster {
5429	s.ClusterArn = &v
5430	return s
5431}
5432
5433// SetClusterName sets the ClusterName field's value.
5434func (s *Cluster) SetClusterName(v string) *Cluster {
5435	s.ClusterName = &v
5436	return s
5437}
5438
5439// SetPendingTasksCount sets the PendingTasksCount field's value.
5440func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
5441	s.PendingTasksCount = &v
5442	return s
5443}
5444
5445// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
5446func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
5447	s.RegisteredContainerInstancesCount = &v
5448	return s
5449}
5450
5451// SetRunningTasksCount sets the RunningTasksCount field's value.
5452func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
5453	s.RunningTasksCount = &v
5454	return s
5455}
5456
5457// SetSettings sets the Settings field's value.
5458func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
5459	s.Settings = v
5460	return s
5461}
5462
5463// SetStatistics sets the Statistics field's value.
5464func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
5465	s.Statistics = v
5466	return s
5467}
5468
5469// SetStatus sets the Status field's value.
5470func (s *Cluster) SetStatus(v string) *Cluster {
5471	s.Status = &v
5472	return s
5473}
5474
5475// SetTags sets the Tags field's value.
5476func (s *Cluster) SetTags(v []*Tag) *Cluster {
5477	s.Tags = v
5478	return s
5479}
5480
5481// The settings to use when creating a cluster. This parameter is used to enable
5482// CloudWatch Container Insights for a cluster.
5483type ClusterSetting struct {
5484	_ struct{} `type:"structure"`
5485
5486	// The name of the cluster setting. The only supported value is containerInsights.
5487	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
5488
5489	// The value to set for the cluster setting. The supported values are enabled
5490	// and disabled. If enabled is specified, CloudWatch Container Insights will
5491	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
5492	// account setting is enabled. If a cluster value is specified, it will override
5493	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
5494	Value *string `locationName:"value" type:"string"`
5495}
5496
5497// String returns the string representation
5498func (s ClusterSetting) String() string {
5499	return awsutil.Prettify(s)
5500}
5501
5502// GoString returns the string representation
5503func (s ClusterSetting) GoString() string {
5504	return s.String()
5505}
5506
5507// SetName sets the Name field's value.
5508func (s *ClusterSetting) SetName(v string) *ClusterSetting {
5509	s.Name = &v
5510	return s
5511}
5512
5513// SetValue sets the Value field's value.
5514func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
5515	s.Value = &v
5516	return s
5517}
5518
5519// A Docker container that is part of a task.
5520type Container struct {
5521	_ struct{} `type:"structure"`
5522
5523	// The Amazon Resource Name (ARN) of the container.
5524	ContainerArn *string `locationName:"containerArn" type:"string"`
5525
5526	// The number of CPU units set for the container. The value will be 0 if no
5527	// value was specified in the container definition when the task definition
5528	// was registered.
5529	Cpu *string `locationName:"cpu" type:"string"`
5530
5531	// The exit code returned from the container.
5532	ExitCode *int64 `locationName:"exitCode" type:"integer"`
5533
5534	// The IDs of each GPU assigned to the container.
5535	GpuIds []*string `locationName:"gpuIds" type:"list"`
5536
5537	// The health status of the container. If health checks are not configured for
5538	// this container in its task definition, then it reports the health status
5539	// as UNKNOWN.
5540	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
5541
5542	// The image used for the container.
5543	Image *string `locationName:"image" type:"string"`
5544
5545	// The container image manifest digest.
5546	//
5547	// The imageDigest is only returned if the container is using an image hosted
5548	// in Amazon ECR, otherwise it is omitted.
5549	ImageDigest *string `locationName:"imageDigest" type:"string"`
5550
5551	// The last known status of the container.
5552	LastStatus *string `locationName:"lastStatus" type:"string"`
5553
5554	// The hard limit (in MiB) of memory set for the container.
5555	Memory *string `locationName:"memory" type:"string"`
5556
5557	// The soft limit (in MiB) of memory set for the container.
5558	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
5559
5560	// The name of the container.
5561	Name *string `locationName:"name" type:"string"`
5562
5563	// The network bindings associated with the container.
5564	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
5565
5566	// The network interfaces associated with the container.
5567	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
5568
5569	// A short (255 max characters) human-readable string to provide additional
5570	// details about a running or stopped container.
5571	Reason *string `locationName:"reason" type:"string"`
5572
5573	// The ID of the Docker container.
5574	RuntimeId *string `locationName:"runtimeId" type:"string"`
5575
5576	// The ARN of the task.
5577	TaskArn *string `locationName:"taskArn" type:"string"`
5578}
5579
5580// String returns the string representation
5581func (s Container) String() string {
5582	return awsutil.Prettify(s)
5583}
5584
5585// GoString returns the string representation
5586func (s Container) GoString() string {
5587	return s.String()
5588}
5589
5590// SetContainerArn sets the ContainerArn field's value.
5591func (s *Container) SetContainerArn(v string) *Container {
5592	s.ContainerArn = &v
5593	return s
5594}
5595
5596// SetCpu sets the Cpu field's value.
5597func (s *Container) SetCpu(v string) *Container {
5598	s.Cpu = &v
5599	return s
5600}
5601
5602// SetExitCode sets the ExitCode field's value.
5603func (s *Container) SetExitCode(v int64) *Container {
5604	s.ExitCode = &v
5605	return s
5606}
5607
5608// SetGpuIds sets the GpuIds field's value.
5609func (s *Container) SetGpuIds(v []*string) *Container {
5610	s.GpuIds = v
5611	return s
5612}
5613
5614// SetHealthStatus sets the HealthStatus field's value.
5615func (s *Container) SetHealthStatus(v string) *Container {
5616	s.HealthStatus = &v
5617	return s
5618}
5619
5620// SetImage sets the Image field's value.
5621func (s *Container) SetImage(v string) *Container {
5622	s.Image = &v
5623	return s
5624}
5625
5626// SetImageDigest sets the ImageDigest field's value.
5627func (s *Container) SetImageDigest(v string) *Container {
5628	s.ImageDigest = &v
5629	return s
5630}
5631
5632// SetLastStatus sets the LastStatus field's value.
5633func (s *Container) SetLastStatus(v string) *Container {
5634	s.LastStatus = &v
5635	return s
5636}
5637
5638// SetMemory sets the Memory field's value.
5639func (s *Container) SetMemory(v string) *Container {
5640	s.Memory = &v
5641	return s
5642}
5643
5644// SetMemoryReservation sets the MemoryReservation field's value.
5645func (s *Container) SetMemoryReservation(v string) *Container {
5646	s.MemoryReservation = &v
5647	return s
5648}
5649
5650// SetName sets the Name field's value.
5651func (s *Container) SetName(v string) *Container {
5652	s.Name = &v
5653	return s
5654}
5655
5656// SetNetworkBindings sets the NetworkBindings field's value.
5657func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
5658	s.NetworkBindings = v
5659	return s
5660}
5661
5662// SetNetworkInterfaces sets the NetworkInterfaces field's value.
5663func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
5664	s.NetworkInterfaces = v
5665	return s
5666}
5667
5668// SetReason sets the Reason field's value.
5669func (s *Container) SetReason(v string) *Container {
5670	s.Reason = &v
5671	return s
5672}
5673
5674// SetRuntimeId sets the RuntimeId field's value.
5675func (s *Container) SetRuntimeId(v string) *Container {
5676	s.RuntimeId = &v
5677	return s
5678}
5679
5680// SetTaskArn sets the TaskArn field's value.
5681func (s *Container) SetTaskArn(v string) *Container {
5682	s.TaskArn = &v
5683	return s
5684}
5685
5686// Container definitions are used in task definitions to describe the different
5687// containers that are launched as part of a task.
5688type ContainerDefinition struct {
5689	_ struct{} `type:"structure"`
5690
5691	// The command that is passed to the container. This parameter maps to Cmd in
5692	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5693	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5694	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
5695	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
5696	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
5697	// arguments, each argument should be a separated string in the array.
5698	Command []*string `locationName:"command" type:"list"`
5699
5700	// The number of cpu units reserved for the container. This parameter maps to
5701	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5702	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5703	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
5704	//
5705	// This field is optional for tasks using the Fargate launch type, and the only
5706	// requirement is that the total amount of CPU reserved for all containers within
5707	// a task be lower than the task-level cpu value.
5708	//
5709	// You can determine the number of CPU units that are available per EC2 instance
5710	// type by multiplying the vCPUs listed for that instance type on the Amazon
5711	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
5712	// 1,024.
5713	//
5714	// For example, if you run a single-container task on a single-core instance
5715	// type with 512 CPU units specified for that container, and that is the only
5716	// task running on the container instance, that container could use the full
5717	// 1,024 CPU unit share at any given time. However, if you launched another
5718	// copy of the same task on that container instance, each task would be guaranteed
5719	// a minimum of 512 CPU units when needed, and each container could float to
5720	// higher CPU usage if the other container was not using it, but if both tasks
5721	// were 100% active all of the time, they would be limited to 512 CPU units.
5722	//
5723	// Linux containers share unallocated CPU units with other containers on the
5724	// container instance with the same ratio as their allocated amount. For example,
5725	// if you run a single-container task on a single-core instance type with 512
5726	// CPU units specified for that container, and that is the only task running
5727	// on the container instance, that container could use the full 1,024 CPU unit
5728	// share at any given time. However, if you launched another copy of the same
5729	// task on that container instance, each task would be guaranteed a minimum
5730	// of 512 CPU units when needed, and each container could float to higher CPU
5731	// usage if the other container was not using it, but if both tasks were 100%
5732	// active all of the time, they would be limited to 512 CPU units.
5733	//
5734	// On Linux container instances, the Docker daemon on the container instance
5735	// uses the CPU value to calculate the relative CPU share ratios for running
5736	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
5737	// in the Docker documentation. The minimum valid CPU share value that the Linux
5738	// kernel allows is 2. However, the CPU parameter is not required, and you can
5739	// use CPU values below 2 in your container definitions. For CPU values below
5740	// 2 (including null), the behavior varies based on your Amazon ECS container
5741	// agent version:
5742	//
5743	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
5744	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
5745	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
5746	//    to two CPU shares.
5747	//
5748	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
5749	//    of 1 are passed to Docker as 2.
5750	//
5751	// On Windows container instances, the CPU limit is enforced as an absolute
5752	// limit, or a quota. Windows containers only have access to the specified amount
5753	// of CPU that is described in the task definition.
5754	Cpu *int64 `locationName:"cpu" type:"integer"`
5755
5756	// The dependencies defined for container startup and shutdown. A container
5757	// can contain multiple dependencies. When a dependency is defined for container
5758	// startup, for container shutdown it is reversed.
5759	//
5760	// For tasks using the EC2 launch type, the container instances require at least
5761	// version 1.26.0 of the container agent to enable container dependencies. However,
5762	// we recommend using the latest container agent version. For information about
5763	// checking your agent version and updating to the latest version, see Updating
5764	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
5765	// in the Amazon Elastic Container Service Developer Guide. If you are using
5766	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
5767	// of the ecs-init package. If your container instances are launched from version
5768	// 20190301 or later, then they contain the required versions of the container
5769	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
5770	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
5771	// in the Amazon Elastic Container Service Developer Guide.
5772	//
5773	// This parameter is available for tasks using the Fargate launch type in the
5774	// Ohio (us-east-2) region only and the task or service requires platform version
5775	// 1.3.0 or later.
5776	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
5777
5778	// When this parameter is true, networking is disabled within the container.
5779	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5780	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
5781	//
5782	// This parameter is not supported for Windows containers.
5783	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
5784
5785	// A list of DNS search domains that are presented to the container. This parameter
5786	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5787	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5788	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/).
5789	//
5790	// This parameter is not supported for Windows containers.
5791	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
5792
5793	// A list of DNS servers that are presented to the container. This parameter
5794	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5795	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5796	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/).
5797	//
5798	// This parameter is not supported for Windows containers.
5799	DnsServers []*string `locationName:"dnsServers" type:"list"`
5800
5801	// A key/value map of labels to add to the container. This parameter maps to
5802	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5803	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5804	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/).
5805	// This parameter requires version 1.18 of the Docker Remote API or greater
5806	// on your container instance. To check the Docker Remote API version on your
5807	// container instance, log in to your container instance and run the following
5808	// command: sudo docker version --format '{{.Server.APIVersion}}'
5809	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
5810
5811	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
5812	// security systems. This field is not valid for containers in tasks using the
5813	// Fargate launch type.
5814	//
5815	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5816	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5817	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/).
5818	//
5819	// The Amazon ECS container agent running on a container instance must register
5820	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
5821	// variables before containers placed on that instance can use these security
5822	// options. For more information, see Amazon ECS Container Agent Configuration
5823	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
5824	// in the Amazon Elastic Container Service Developer Guide.
5825	//
5826	// This parameter is not supported for Windows containers.
5827	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
5828
5829	//
5830	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
5831	// parameters. If you have problems using entryPoint, update your container
5832	// agent or enter your commands and arguments as command array items instead.
5833	//
5834	// The entry point that is passed to the container. This parameter maps to Entrypoint
5835	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5836	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5837	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/).
5838	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
5839	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
5840	EntryPoint []*string `locationName:"entryPoint" type:"list"`
5841
5842	// The environment variables to pass to a container. This parameter maps to
5843	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5844	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5845	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
5846	//
5847	// We do not recommend using plaintext environment variables for sensitive information,
5848	// such as credential data.
5849	Environment []*KeyValuePair `locationName:"environment" type:"list"`
5850
5851	// If the essential parameter of a container is marked as true, and that container
5852	// fails or stops for any reason, all other containers that are part of the
5853	// task are stopped. If the essential parameter of a container is marked as
5854	// false, then its failure does not affect the rest of the containers in a task.
5855	// If this parameter is omitted, a container is assumed to be essential.
5856	//
5857	// All tasks must have at least one essential container. If you have an application
5858	// that is composed of multiple containers, you should group containers that
5859	// are used for a common purpose into components, and separate the different
5860	// components into multiple task definitions. For more information, see Application
5861	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
5862	// in the Amazon Elastic Container Service Developer Guide.
5863	Essential *bool `locationName:"essential" type:"boolean"`
5864
5865	// A list of hostnames and IP address mappings to append to the /etc/hosts file
5866	// on the container. This parameter maps to ExtraHosts in the Create a container
5867	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
5868	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
5869	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/).
5870	//
5871	// This parameter is not supported for Windows containers or tasks that use
5872	// the awsvpc network mode.
5873	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
5874
5875	// The FireLens configuration for the container. This is used to specify and
5876	// configure a log router for container logs. For more information, see Custom
5877	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
5878	// in the Amazon Elastic Container Service Developer Guide.
5879	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
5880
5881	// The health check command and associated configuration parameters for the
5882	// container. This parameter maps to HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5883	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5884	// and the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/).
5885	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
5886
5887	// The hostname to use for your container. This parameter maps to Hostname in
5888	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5889	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5890	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/).
5891	//
5892	// The hostname parameter is not supported if you are using the awsvpc network
5893	// mode.
5894	Hostname *string `locationName:"hostname" type:"string"`
5895
5896	// The image used to start a container. This string is passed directly to the
5897	// Docker daemon. Images in the Docker Hub registry are available by default.
5898	// Other repositories are specified with either repository-url/image:tag or
5899	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
5900	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
5901	// signs are allowed. This parameter maps to Image in the Create a container
5902	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
5903	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
5904	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
5905	//
5906	//    * When a new task starts, the Amazon ECS container agent pulls the latest
5907	//    version of the specified image and tag for the container to use. However,
5908	//    subsequent updates to a repository image are not propagated to already
5909	//    running tasks.
5910	//
5911	//    * Images in Amazon ECR repositories can be specified by either using the
5912	//    full registry/repository:tag or registry/repository@digest. For example,
5913	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
5914	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
5915	//
5916	//    * Images in official repositories on Docker Hub use a single name (for
5917	//    example, ubuntu or mongo).
5918	//
5919	//    * Images in other repositories on Docker Hub are qualified with an organization
5920	//    name (for example, amazon/amazon-ecs-agent).
5921	//
5922	//    * Images in other online repositories are qualified further by a domain
5923	//    name (for example, quay.io/assemblyline/ubuntu).
5924	Image *string `locationName:"image" type:"string"`
5925
5926	// When this parameter is true, this allows you to deploy containerized applications
5927	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
5928	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5929	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5930	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/).
5931	Interactive *bool `locationName:"interactive" type:"boolean"`
5932
5933	// The links parameter allows containers to communicate with each other without
5934	// the need for port mappings. This parameter is only supported if the network
5935	// mode of a task definition is bridge. The name:internalName construct is analogous
5936	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
5937	// numbers, and hyphens are allowed. For more information about linking Docker
5938	// containers, go to Legacy container links (https://docs.docker.com/network/links/)
5939	// in the Docker documentation. This parameter maps to Links in the Create a
5940	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5941	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5942	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/).
5943	//
5944	// This parameter is not supported for Windows containers.
5945	//
5946	// Containers that are collocated on a single container instance may be able
5947	// to communicate with each other without requiring links or host port mappings.
5948	// Network isolation is achieved on the container instance using security groups
5949	// and VPC settings.
5950	Links []*string `locationName:"links" type:"list"`
5951
5952	// Linux-specific modifications that are applied to the container, such as Linux
5953	// kernel capabilities. For more information see KernelCapabilities.
5954	//
5955	// This parameter is not supported for Windows containers.
5956	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
5957
5958	// The log configuration specification for the container.
5959	//
5960	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5961	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5962	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
5963	// By default, containers use the same logging driver that the Docker daemon
5964	// uses. However the container may use a different logging driver than the Docker
5965	// daemon by specifying a log driver with this parameter in the container definition.
5966	// To use a different logging driver for a container, the log system must be
5967	// configured properly on the container instance (or on a different log server
5968	// for remote logging options). For more information on the options for different
5969	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
5970	// in the Docker documentation.
5971	//
5972	// Amazon ECS currently supports a subset of the logging drivers available to
5973	// the Docker daemon (shown in the LogConfiguration data type). Additional log
5974	// drivers may be available in future releases of the Amazon ECS container agent.
5975	//
5976	// This parameter requires version 1.18 of the Docker Remote API or greater
5977	// on your container instance. To check the Docker Remote API version on your
5978	// container instance, log in to your container instance and run the following
5979	// command: sudo docker version --format '{{.Server.APIVersion}}'
5980	//
5981	// The Amazon ECS container agent running on a container instance must register
5982	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
5983	// environment variable before containers placed on that instance can use these
5984	// log configuration options. For more information, see Amazon ECS Container
5985	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
5986	// in the Amazon Elastic Container Service Developer Guide.
5987	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
5988
5989	// The amount (in MiB) of memory to present to the container. If your container
5990	// attempts to exceed the memory specified here, the container is killed. The
5991	// total amount of memory reserved for all containers within a task must be
5992	// lower than the task memory value, if one is specified. This parameter maps
5993	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5994	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5995	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
5996	//
5997	// If using the Fargate launch type, this parameter is optional.
5998	//
5999	// If using the EC2 launch type, you must specify either a task-level memory
6000	// value or a container-level memory value. If you specify both a container-level
6001	// memory and memoryReservation value, memory must be greater than memoryReservation.
6002	// If you specify memoryReservation, then that value is subtracted from the
6003	// available memory resources for the container instance on which the container
6004	// is placed. Otherwise, the value of memory is used.
6005	//
6006	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
6007	// so you should not specify fewer than 4 MiB of memory for your containers.
6008	Memory *int64 `locationName:"memory" type:"integer"`
6009
6010	// The soft limit (in MiB) of memory to reserve for the container. When system
6011	// memory is under heavy contention, Docker attempts to keep the container memory
6012	// to this soft limit. However, your container can consume more memory when
6013	// it needs to, up to either the hard limit specified with the memory parameter
6014	// (if applicable), or all of the available memory on the container instance,
6015	// whichever comes first. This parameter maps to MemoryReservation in the Create
6016	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6017	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6018	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/).
6019	//
6020	// If a task-level memory value is not specified, you must specify a non-zero
6021	// integer for one or both of memory or memoryReservation in a container definition.
6022	// If you specify both, memory must be greater than memoryReservation. If you
6023	// specify memoryReservation, then that value is subtracted from the available
6024	// memory resources for the container instance on which the container is placed.
6025	// Otherwise, the value of memory is used.
6026	//
6027	// For example, if your container normally uses 128 MiB of memory, but occasionally
6028	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
6029	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
6030	// allow the container to only reserve 128 MiB of memory from the remaining
6031	// resources on the container instance, but also allow the container to consume
6032	// more memory resources when needed.
6033	//
6034	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
6035	// so you should not specify fewer than 4 MiB of memory for your containers.
6036	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
6037
6038	// The mount points for data volumes in your container.
6039	//
6040	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6041	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6042	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
6043	//
6044	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
6045	// Windows containers cannot mount directories on a different drive, and mount
6046	// point cannot be across drives.
6047	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
6048
6049	// The name of a container. If you are linking multiple containers together
6050	// in a task definition, the name of one container can be entered in the links
6051	// of another container to connect the containers. Up to 255 letters (uppercase
6052	// and lowercase), numbers, and hyphens are allowed. This parameter maps to
6053	// name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6054	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6055	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/).
6056	Name *string `locationName:"name" type:"string"`
6057
6058	// The list of port mappings for the container. Port mappings allow containers
6059	// to access ports on the host container instance to send or receive traffic.
6060	//
6061	// For task definitions that use the awsvpc network mode, you should only specify
6062	// the containerPort. The hostPort can be left blank or it must be the same
6063	// value as the containerPort.
6064	//
6065	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
6066	// There is no loopback for port mappings on Windows, so you cannot access a
6067	// container's mapped port from the host itself.
6068	//
6069	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6070	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6071	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/).
6072	// If the network mode of a task definition is set to none, then you can't specify
6073	// port mappings. If the network mode of a task definition is set to host, then
6074	// host ports must either be undefined or they must match the container port
6075	// in the port mapping.
6076	//
6077	// After a task reaches the RUNNING status, manual and automatic host and container
6078	// port assignments are visible in the Network Bindings section of a container
6079	// description for a selected task in the Amazon ECS console. The assignments
6080	// are also visible in the networkBindings section DescribeTasks responses.
6081	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
6082
6083	// When this parameter is true, the container is given elevated privileges on
6084	// the host container instance (similar to the root user). This parameter maps
6085	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6086	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6087	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
6088	//
6089	// This parameter is not supported for Windows containers or tasks using the
6090	// Fargate launch type.
6091	Privileged *bool `locationName:"privileged" type:"boolean"`
6092
6093	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
6094	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6095	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6096	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/).
6097	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
6098
6099	// When this parameter is true, the container is given read-only access to its
6100	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
6101	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
6102	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
6103	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/).
6104	//
6105	// This parameter is not supported for Windows containers.
6106	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
6107
6108	// The private repository authentication credentials to use.
6109	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
6110
6111	// The type and amount of a resource to assign to a container. The only supported
6112	// resource is a GPU.
6113	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
6114
6115	// The secrets to pass to the container. For more information, see Specifying
6116	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
6117	// in the Amazon Elastic Container Service Developer Guide.
6118	Secrets []*Secret `locationName:"secrets" type:"list"`
6119
6120	// Time duration (in seconds) to wait before giving up on resolving dependencies
6121	// for a container. For example, you specify two containers in a task definition
6122	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
6123	// or HEALTHY status. If a startTimeout value is specified for containerB and
6124	// it does not reach the desired status within that time then containerA will
6125	// give up and not start. This results in the task transitioning to a STOPPED
6126	// state.
6127	//
6128	// For tasks using the EC2 launch type, the container instances require at least
6129	// version 1.26.0 of the container agent to enable a container start timeout
6130	// value. However, we recommend using the latest container agent version. For
6131	// information about checking your agent version and updating to the latest
6132	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6133	// in the Amazon Elastic Container Service Developer Guide. If you are using
6134	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6135	// of the ecs-init package. If your container instances are launched from version
6136	// 20190301 or later, then they contain the required versions of the container
6137	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6138	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6139	// in the Amazon Elastic Container Service Developer Guide.
6140	//
6141	// This parameter is available for tasks using the Fargate launch type in the
6142	// Ohio (us-east-2) region only and the task or service requires platform version
6143	// 1.3.0 or later.
6144	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
6145
6146	// Time duration (in seconds) to wait before the container is forcefully killed
6147	// if it doesn't exit normally on its own. For tasks using the Fargate launch
6148	// type, the max stopTimeout value is 2 minutes. This parameter is available
6149	// for tasks using the Fargate launch type in the Ohio (us-east-2) region only
6150	// and the task or service requires platform version 1.3.0 or later.
6151	//
6152	// For tasks using the EC2 launch type, the stop timeout value for the container
6153	// takes precedence over the ECS_CONTAINER_STOP_TIMEOUT container agent configuration
6154	// parameter, if used. Container instances require at least version 1.26.0 of
6155	// the container agent to enable a container stop timeout value. However, we
6156	// recommend using the latest container agent version. For information about
6157	// checking your agent version and updating to the latest version, see Updating
6158	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6159	// in the Amazon Elastic Container Service Developer Guide. If you are using
6160	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6161	// of the ecs-init package. If your container instances are launched from version
6162	// 20190301 or later, then they contain the required versions of the container
6163	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6164	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6165	// in the Amazon Elastic Container Service Developer Guide.
6166	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
6167
6168	// A list of namespaced kernel parameters to set in the container. This parameter
6169	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6170	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6171	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
6172	//
6173	// It is not recommended that you specify network-related systemControls parameters
6174	// for multiple containers in a single task that also uses either the awsvpc
6175	// or host network modes. For tasks that use the awsvpc network mode, the container
6176	// that is started last determines which systemControls parameters take effect.
6177	// For tasks that use the host network mode, it changes the container instance's
6178	// namespaced kernel parameters as well as the containers.
6179	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
6180
6181	// A list of ulimits to set in the container. This parameter maps to Ulimits
6182	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6183	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6184	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
6185	// Valid naming values are displayed in the Ulimit data type. This parameter
6186	// requires version 1.18 of the Docker Remote API or greater on your container
6187	// instance. To check the Docker Remote API version on your container instance,
6188	// log in to your container instance and run the following command: sudo docker
6189	// version --format '{{.Server.APIVersion}}'
6190	//
6191	// This parameter is not supported for Windows containers.
6192	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
6193
6194	// The user name to use inside the container. This parameter maps to User in
6195	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6196	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6197	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
6198	//
6199	// You can use the following formats. If specifying a UID or GID, you must specify
6200	// it as a positive integer.
6201	//
6202	//    * user
6203	//
6204	//    * user:group
6205	//
6206	//    * uid
6207	//
6208	//    * uid:gid
6209	//
6210	//    * user:gid
6211	//
6212	//    * uid:group
6213	//
6214	// This parameter is not supported for Windows containers.
6215	User *string `locationName:"user" type:"string"`
6216
6217	// Data volumes to mount from another container. This parameter maps to VolumesFrom
6218	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6219	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6220	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/).
6221	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
6222
6223	// The working directory in which to run commands inside the container. This
6224	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6225	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6226	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/).
6227	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
6228}
6229
6230// String returns the string representation
6231func (s ContainerDefinition) String() string {
6232	return awsutil.Prettify(s)
6233}
6234
6235// GoString returns the string representation
6236func (s ContainerDefinition) GoString() string {
6237	return s.String()
6238}
6239
6240// Validate inspects the fields of the type to determine if they are valid.
6241func (s *ContainerDefinition) Validate() error {
6242	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
6243	if s.DependsOn != nil {
6244		for i, v := range s.DependsOn {
6245			if v == nil {
6246				continue
6247			}
6248			if err := v.Validate(); err != nil {
6249				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
6250			}
6251		}
6252	}
6253	if s.ExtraHosts != nil {
6254		for i, v := range s.ExtraHosts {
6255			if v == nil {
6256				continue
6257			}
6258			if err := v.Validate(); err != nil {
6259				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
6260			}
6261		}
6262	}
6263	if s.FirelensConfiguration != nil {
6264		if err := s.FirelensConfiguration.Validate(); err != nil {
6265			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
6266		}
6267	}
6268	if s.HealthCheck != nil {
6269		if err := s.HealthCheck.Validate(); err != nil {
6270			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
6271		}
6272	}
6273	if s.LinuxParameters != nil {
6274		if err := s.LinuxParameters.Validate(); err != nil {
6275			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
6276		}
6277	}
6278	if s.LogConfiguration != nil {
6279		if err := s.LogConfiguration.Validate(); err != nil {
6280			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
6281		}
6282	}
6283	if s.RepositoryCredentials != nil {
6284		if err := s.RepositoryCredentials.Validate(); err != nil {
6285			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
6286		}
6287	}
6288	if s.ResourceRequirements != nil {
6289		for i, v := range s.ResourceRequirements {
6290			if v == nil {
6291				continue
6292			}
6293			if err := v.Validate(); err != nil {
6294				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
6295			}
6296		}
6297	}
6298	if s.Secrets != nil {
6299		for i, v := range s.Secrets {
6300			if v == nil {
6301				continue
6302			}
6303			if err := v.Validate(); err != nil {
6304				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
6305			}
6306		}
6307	}
6308	if s.Ulimits != nil {
6309		for i, v := range s.Ulimits {
6310			if v == nil {
6311				continue
6312			}
6313			if err := v.Validate(); err != nil {
6314				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
6315			}
6316		}
6317	}
6318
6319	if invalidParams.Len() > 0 {
6320		return invalidParams
6321	}
6322	return nil
6323}
6324
6325// SetCommand sets the Command field's value.
6326func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
6327	s.Command = v
6328	return s
6329}
6330
6331// SetCpu sets the Cpu field's value.
6332func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
6333	s.Cpu = &v
6334	return s
6335}
6336
6337// SetDependsOn sets the DependsOn field's value.
6338func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
6339	s.DependsOn = v
6340	return s
6341}
6342
6343// SetDisableNetworking sets the DisableNetworking field's value.
6344func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
6345	s.DisableNetworking = &v
6346	return s
6347}
6348
6349// SetDnsSearchDomains sets the DnsSearchDomains field's value.
6350func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
6351	s.DnsSearchDomains = v
6352	return s
6353}
6354
6355// SetDnsServers sets the DnsServers field's value.
6356func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
6357	s.DnsServers = v
6358	return s
6359}
6360
6361// SetDockerLabels sets the DockerLabels field's value.
6362func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
6363	s.DockerLabels = v
6364	return s
6365}
6366
6367// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
6368func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
6369	s.DockerSecurityOptions = v
6370	return s
6371}
6372
6373// SetEntryPoint sets the EntryPoint field's value.
6374func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
6375	s.EntryPoint = v
6376	return s
6377}
6378
6379// SetEnvironment sets the Environment field's value.
6380func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
6381	s.Environment = v
6382	return s
6383}
6384
6385// SetEssential sets the Essential field's value.
6386func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
6387	s.Essential = &v
6388	return s
6389}
6390
6391// SetExtraHosts sets the ExtraHosts field's value.
6392func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
6393	s.ExtraHosts = v
6394	return s
6395}
6396
6397// SetFirelensConfiguration sets the FirelensConfiguration field's value.
6398func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
6399	s.FirelensConfiguration = v
6400	return s
6401}
6402
6403// SetHealthCheck sets the HealthCheck field's value.
6404func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
6405	s.HealthCheck = v
6406	return s
6407}
6408
6409// SetHostname sets the Hostname field's value.
6410func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
6411	s.Hostname = &v
6412	return s
6413}
6414
6415// SetImage sets the Image field's value.
6416func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
6417	s.Image = &v
6418	return s
6419}
6420
6421// SetInteractive sets the Interactive field's value.
6422func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
6423	s.Interactive = &v
6424	return s
6425}
6426
6427// SetLinks sets the Links field's value.
6428func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
6429	s.Links = v
6430	return s
6431}
6432
6433// SetLinuxParameters sets the LinuxParameters field's value.
6434func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
6435	s.LinuxParameters = v
6436	return s
6437}
6438
6439// SetLogConfiguration sets the LogConfiguration field's value.
6440func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
6441	s.LogConfiguration = v
6442	return s
6443}
6444
6445// SetMemory sets the Memory field's value.
6446func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
6447	s.Memory = &v
6448	return s
6449}
6450
6451// SetMemoryReservation sets the MemoryReservation field's value.
6452func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
6453	s.MemoryReservation = &v
6454	return s
6455}
6456
6457// SetMountPoints sets the MountPoints field's value.
6458func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
6459	s.MountPoints = v
6460	return s
6461}
6462
6463// SetName sets the Name field's value.
6464func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
6465	s.Name = &v
6466	return s
6467}
6468
6469// SetPortMappings sets the PortMappings field's value.
6470func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
6471	s.PortMappings = v
6472	return s
6473}
6474
6475// SetPrivileged sets the Privileged field's value.
6476func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
6477	s.Privileged = &v
6478	return s
6479}
6480
6481// SetPseudoTerminal sets the PseudoTerminal field's value.
6482func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
6483	s.PseudoTerminal = &v
6484	return s
6485}
6486
6487// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
6488func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
6489	s.ReadonlyRootFilesystem = &v
6490	return s
6491}
6492
6493// SetRepositoryCredentials sets the RepositoryCredentials field's value.
6494func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
6495	s.RepositoryCredentials = v
6496	return s
6497}
6498
6499// SetResourceRequirements sets the ResourceRequirements field's value.
6500func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
6501	s.ResourceRequirements = v
6502	return s
6503}
6504
6505// SetSecrets sets the Secrets field's value.
6506func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
6507	s.Secrets = v
6508	return s
6509}
6510
6511// SetStartTimeout sets the StartTimeout field's value.
6512func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
6513	s.StartTimeout = &v
6514	return s
6515}
6516
6517// SetStopTimeout sets the StopTimeout field's value.
6518func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
6519	s.StopTimeout = &v
6520	return s
6521}
6522
6523// SetSystemControls sets the SystemControls field's value.
6524func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
6525	s.SystemControls = v
6526	return s
6527}
6528
6529// SetUlimits sets the Ulimits field's value.
6530func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
6531	s.Ulimits = v
6532	return s
6533}
6534
6535// SetUser sets the User field's value.
6536func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
6537	s.User = &v
6538	return s
6539}
6540
6541// SetVolumesFrom sets the VolumesFrom field's value.
6542func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
6543	s.VolumesFrom = v
6544	return s
6545}
6546
6547// SetWorkingDirectory sets the WorkingDirectory field's value.
6548func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
6549	s.WorkingDirectory = &v
6550	return s
6551}
6552
6553// The dependencies defined for container startup and shutdown. A container
6554// can contain multiple dependencies. When a dependency is defined for container
6555// startup, for container shutdown it is reversed.
6556//
6557// Your Amazon ECS container instances require at least version 1.26.0 of the
6558// container agent to enable container dependencies. However, we recommend using
6559// the latest container agent version. For information about checking your agent
6560// version and updating to the latest version, see Updating the Amazon ECS Container
6561// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6562// in the Amazon Elastic Container Service Developer Guide. If you are using
6563// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6564// of the ecs-init package. If your container instances are launched from version
6565// 20190301 or later, then they contain the required versions of the container
6566// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6567// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6568// in the Amazon Elastic Container Service Developer Guide.
6569//
6570// If you are using tasks that use the Fargate launch type, container dependency
6571// parameters are not supported.
6572type ContainerDependency struct {
6573	_ struct{} `type:"structure"`
6574
6575	// The dependency condition of the container. The following are the available
6576	// conditions and their behavior:
6577	//
6578	//    * START - This condition emulates the behavior of links and volumes today.
6579	//    It validates that a dependent container is started before permitting other
6580	//    containers to start.
6581	//
6582	//    * COMPLETE - This condition validates that a dependent container runs
6583	//    to completion (exits) before permitting other containers to start. This
6584	//    can be useful for nonessential containers that run a script and then exit.
6585	//
6586	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
6587	//    that the container exits with a zero status.
6588	//
6589	//    * HEALTHY - This condition validates that the dependent container passes
6590	//    its Docker health check before permitting other containers to start. This
6591	//    requires that the dependent container has health checks configured. This
6592	//    condition is confirmed only at task startup.
6593	//
6594	// Condition is a required field
6595	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
6596
6597	// The name of a container.
6598	//
6599	// ContainerName is a required field
6600	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
6601}
6602
6603// String returns the string representation
6604func (s ContainerDependency) String() string {
6605	return awsutil.Prettify(s)
6606}
6607
6608// GoString returns the string representation
6609func (s ContainerDependency) GoString() string {
6610	return s.String()
6611}
6612
6613// Validate inspects the fields of the type to determine if they are valid.
6614func (s *ContainerDependency) Validate() error {
6615	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
6616	if s.Condition == nil {
6617		invalidParams.Add(request.NewErrParamRequired("Condition"))
6618	}
6619	if s.ContainerName == nil {
6620		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
6621	}
6622
6623	if invalidParams.Len() > 0 {
6624		return invalidParams
6625	}
6626	return nil
6627}
6628
6629// SetCondition sets the Condition field's value.
6630func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
6631	s.Condition = &v
6632	return s
6633}
6634
6635// SetContainerName sets the ContainerName field's value.
6636func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
6637	s.ContainerName = &v
6638	return s
6639}
6640
6641// An EC2 instance that is running the Amazon ECS agent and has been registered
6642// with a cluster.
6643type ContainerInstance struct {
6644	_ struct{} `type:"structure"`
6645
6646	// This parameter returns true if the agent is connected to Amazon ECS. Registered
6647	// instances with an agent that may be unhealthy or stopped return false. Only
6648	// instances connected to an agent can accept placement requests.
6649	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
6650
6651	// The status of the most recent agent update. If an update has never been requested,
6652	// this value is NULL.
6653	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
6654
6655	// The resources attached to a container instance, such as elastic network interfaces.
6656	Attachments []*Attachment `locationName:"attachments" type:"list"`
6657
6658	// The attributes set for the container instance, either by the Amazon ECS container
6659	// agent at instance registration or manually with the PutAttributes operation.
6660	Attributes []*Attribute `locationName:"attributes" type:"list"`
6661
6662	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
6663	// the arn:aws:ecs namespace, followed by the Region of the container instance,
6664	// the AWS account ID of the container instance owner, the container-instance
6665	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
6666	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
6667
6668	// The EC2 instance ID of the container instance.
6669	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
6670
6671	// The number of tasks on the container instance that are in the PENDING status.
6672	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
6673
6674	// The Unix timestamp for when the container instance was registered.
6675	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
6676
6677	// For CPU and memory resource types, this parameter describes the amount of
6678	// each resource that was available on the container instance when the container
6679	// agent registered it with Amazon ECS. This value represents the total amount
6680	// of CPU and memory that can be allocated on this container instance to tasks.
6681	// For port resource types, this parameter describes the ports that were reserved
6682	// by the Amazon ECS container agent when it registered the container instance
6683	// with Amazon ECS.
6684	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
6685
6686	// For CPU and memory resource types, this parameter describes the remaining
6687	// CPU and memory that has not already been allocated to tasks and is therefore
6688	// available for new tasks. For port resource types, this parameter describes
6689	// the ports that were reserved by the Amazon ECS container agent (at instance
6690	// registration time) and any task containers that have reserved port mappings
6691	// on the host (with the host or bridge network mode). Any port that is not
6692	// specified here is available for new tasks.
6693	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
6694
6695	// The number of tasks on the container instance that are in the RUNNING status.
6696	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
6697
6698	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
6699	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
6700	//
6701	// If your account has opted in to the awsvpcTrunking account setting, then
6702	// any newly registered container instance will transition to a REGISTERING
6703	// status while the trunk elastic network interface is provisioned for the instance.
6704	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
6705	// status. You can describe the container instance and see the reason for failure
6706	// in the statusReason parameter. Once the container instance is terminated,
6707	// the instance transitions to a DEREGISTERING status while the trunk elastic
6708	// network interface is deprovisioned. The instance then transitions to an INACTIVE
6709	// status.
6710	//
6711	// The ACTIVE status indicates that the container instance can accept tasks.
6712	// The DRAINING indicates that new tasks are not placed on the container instance
6713	// and any service tasks running on the container instance are removed if possible.
6714	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
6715	// in the Amazon Elastic Container Service Developer Guide.
6716	Status *string `locationName:"status" type:"string"`
6717
6718	// The reason that the container instance reached its current status.
6719	StatusReason *string `locationName:"statusReason" type:"string"`
6720
6721	// The metadata that you apply to the container instance to help you categorize
6722	// and organize them. Each tag consists of a key and an optional value, both
6723	// of which you define.
6724	//
6725	// The following basic restrictions apply to tags:
6726	//
6727	//    * Maximum number of tags per resource - 50
6728	//
6729	//    * For each resource, each tag key must be unique, and each tag key can
6730	//    have only one value.
6731	//
6732	//    * Maximum key length - 128 Unicode characters in UTF-8
6733	//
6734	//    * Maximum value length - 256 Unicode characters in UTF-8
6735	//
6736	//    * If your tagging schema is used across multiple services and resources,
6737	//    remember that other services may have restrictions on allowed characters.
6738	//    Generally allowed characters are: letters, numbers, and spaces representable
6739	//    in UTF-8, and the following characters: + - = . _ : / @.
6740	//
6741	//    * Tag keys and values are case-sensitive.
6742	//
6743	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6744	//    as a prefix for either keys or values as it is reserved for AWS use. You
6745	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6746	//    prefix do not count against your tags per resource limit.
6747	Tags []*Tag `locationName:"tags" type:"list"`
6748
6749	// The version counter for the container instance. Every time a container instance
6750	// experiences a change that triggers a CloudWatch event, the version counter
6751	// is incremented. If you are replicating your Amazon ECS container instance
6752	// state with CloudWatch Events, you can compare the version of a container
6753	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
6754	// Events for the container instance (inside the detail object) to verify that
6755	// the version in your event stream is current.
6756	Version *int64 `locationName:"version" type:"long"`
6757
6758	// The version information for the Amazon ECS container agent and Docker daemon
6759	// running on the container instance.
6760	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
6761}
6762
6763// String returns the string representation
6764func (s ContainerInstance) String() string {
6765	return awsutil.Prettify(s)
6766}
6767
6768// GoString returns the string representation
6769func (s ContainerInstance) GoString() string {
6770	return s.String()
6771}
6772
6773// SetAgentConnected sets the AgentConnected field's value.
6774func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
6775	s.AgentConnected = &v
6776	return s
6777}
6778
6779// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
6780func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
6781	s.AgentUpdateStatus = &v
6782	return s
6783}
6784
6785// SetAttachments sets the Attachments field's value.
6786func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
6787	s.Attachments = v
6788	return s
6789}
6790
6791// SetAttributes sets the Attributes field's value.
6792func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
6793	s.Attributes = v
6794	return s
6795}
6796
6797// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
6798func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
6799	s.ContainerInstanceArn = &v
6800	return s
6801}
6802
6803// SetEc2InstanceId sets the Ec2InstanceId field's value.
6804func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
6805	s.Ec2InstanceId = &v
6806	return s
6807}
6808
6809// SetPendingTasksCount sets the PendingTasksCount field's value.
6810func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
6811	s.PendingTasksCount = &v
6812	return s
6813}
6814
6815// SetRegisteredAt sets the RegisteredAt field's value.
6816func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
6817	s.RegisteredAt = &v
6818	return s
6819}
6820
6821// SetRegisteredResources sets the RegisteredResources field's value.
6822func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
6823	s.RegisteredResources = v
6824	return s
6825}
6826
6827// SetRemainingResources sets the RemainingResources field's value.
6828func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
6829	s.RemainingResources = v
6830	return s
6831}
6832
6833// SetRunningTasksCount sets the RunningTasksCount field's value.
6834func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
6835	s.RunningTasksCount = &v
6836	return s
6837}
6838
6839// SetStatus sets the Status field's value.
6840func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
6841	s.Status = &v
6842	return s
6843}
6844
6845// SetStatusReason sets the StatusReason field's value.
6846func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
6847	s.StatusReason = &v
6848	return s
6849}
6850
6851// SetTags sets the Tags field's value.
6852func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
6853	s.Tags = v
6854	return s
6855}
6856
6857// SetVersion sets the Version field's value.
6858func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
6859	s.Version = &v
6860	return s
6861}
6862
6863// SetVersionInfo sets the VersionInfo field's value.
6864func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
6865	s.VersionInfo = v
6866	return s
6867}
6868
6869// The overrides that should be sent to a container. An empty container override
6870// can be passed in. An example of an empty container override would be {"containerOverrides":
6871// [ ] }. If a non-empty container override is specified, the name parameter
6872// must be included.
6873type ContainerOverride struct {
6874	_ struct{} `type:"structure"`
6875
6876	// The command to send to the container that overrides the default command from
6877	// the Docker image or the task definition. You must also specify a container
6878	// name.
6879	Command []*string `locationName:"command" type:"list"`
6880
6881	// The number of cpu units reserved for the container, instead of the default
6882	// value from the task definition. You must also specify a container name.
6883	Cpu *int64 `locationName:"cpu" type:"integer"`
6884
6885	// The environment variables to send to the container. You can add new environment
6886	// variables, which are added to the container at launch, or you can override
6887	// the existing environment variables from the Docker image or the task definition.
6888	// You must also specify a container name.
6889	Environment []*KeyValuePair `locationName:"environment" type:"list"`
6890
6891	// The hard limit (in MiB) of memory to present to the container, instead of
6892	// the default value from the task definition. If your container attempts to
6893	// exceed the memory specified here, the container is killed. You must also
6894	// specify a container name.
6895	Memory *int64 `locationName:"memory" type:"integer"`
6896
6897	// The soft limit (in MiB) of memory to reserve for the container, instead of
6898	// the default value from the task definition. You must also specify a container
6899	// name.
6900	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
6901
6902	// The name of the container that receives the override. This parameter is required
6903	// if any override is specified.
6904	Name *string `locationName:"name" type:"string"`
6905
6906	// The type and amount of a resource to assign to a container, instead of the
6907	// default value from the task definition. The only supported resource is a
6908	// GPU.
6909	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
6910}
6911
6912// String returns the string representation
6913func (s ContainerOverride) String() string {
6914	return awsutil.Prettify(s)
6915}
6916
6917// GoString returns the string representation
6918func (s ContainerOverride) GoString() string {
6919	return s.String()
6920}
6921
6922// Validate inspects the fields of the type to determine if they are valid.
6923func (s *ContainerOverride) Validate() error {
6924	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
6925	if s.ResourceRequirements != nil {
6926		for i, v := range s.ResourceRequirements {
6927			if v == nil {
6928				continue
6929			}
6930			if err := v.Validate(); err != nil {
6931				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
6932			}
6933		}
6934	}
6935
6936	if invalidParams.Len() > 0 {
6937		return invalidParams
6938	}
6939	return nil
6940}
6941
6942// SetCommand sets the Command field's value.
6943func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
6944	s.Command = v
6945	return s
6946}
6947
6948// SetCpu sets the Cpu field's value.
6949func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
6950	s.Cpu = &v
6951	return s
6952}
6953
6954// SetEnvironment sets the Environment field's value.
6955func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
6956	s.Environment = v
6957	return s
6958}
6959
6960// SetMemory sets the Memory field's value.
6961func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
6962	s.Memory = &v
6963	return s
6964}
6965
6966// SetMemoryReservation sets the MemoryReservation field's value.
6967func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
6968	s.MemoryReservation = &v
6969	return s
6970}
6971
6972// SetName sets the Name field's value.
6973func (s *ContainerOverride) SetName(v string) *ContainerOverride {
6974	s.Name = &v
6975	return s
6976}
6977
6978// SetResourceRequirements sets the ResourceRequirements field's value.
6979func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
6980	s.ResourceRequirements = v
6981	return s
6982}
6983
6984// An object representing a change in state for a container.
6985type ContainerStateChange struct {
6986	_ struct{} `type:"structure"`
6987
6988	// The name of the container.
6989	ContainerName *string `locationName:"containerName" type:"string"`
6990
6991	// The exit code for the container, if the state change is a result of the container
6992	// exiting.
6993	ExitCode *int64 `locationName:"exitCode" type:"integer"`
6994
6995	// The container image SHA 256 digest.
6996	ImageDigest *string `locationName:"imageDigest" type:"string"`
6997
6998	// Any network bindings associated with the container.
6999	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
7000
7001	// The reason for the state change.
7002	Reason *string `locationName:"reason" type:"string"`
7003
7004	// The ID of the Docker container.
7005	RuntimeId *string `locationName:"runtimeId" type:"string"`
7006
7007	// The status of the container.
7008	Status *string `locationName:"status" type:"string"`
7009}
7010
7011// String returns the string representation
7012func (s ContainerStateChange) String() string {
7013	return awsutil.Prettify(s)
7014}
7015
7016// GoString returns the string representation
7017func (s ContainerStateChange) GoString() string {
7018	return s.String()
7019}
7020
7021// SetContainerName sets the ContainerName field's value.
7022func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
7023	s.ContainerName = &v
7024	return s
7025}
7026
7027// SetExitCode sets the ExitCode field's value.
7028func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
7029	s.ExitCode = &v
7030	return s
7031}
7032
7033// SetImageDigest sets the ImageDigest field's value.
7034func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
7035	s.ImageDigest = &v
7036	return s
7037}
7038
7039// SetNetworkBindings sets the NetworkBindings field's value.
7040func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
7041	s.NetworkBindings = v
7042	return s
7043}
7044
7045// SetReason sets the Reason field's value.
7046func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
7047	s.Reason = &v
7048	return s
7049}
7050
7051// SetRuntimeId sets the RuntimeId field's value.
7052func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
7053	s.RuntimeId = &v
7054	return s
7055}
7056
7057// SetStatus sets the Status field's value.
7058func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
7059	s.Status = &v
7060	return s
7061}
7062
7063type CreateClusterInput struct {
7064	_ struct{} `type:"structure"`
7065
7066	// The name of your cluster. If you do not specify a name for your cluster,
7067	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
7068	// numbers, and hyphens are allowed.
7069	ClusterName *string `locationName:"clusterName" type:"string"`
7070
7071	// The setting to use when creating a cluster. This parameter is used to enable
7072	// CloudWatch Container Insights for a cluster. If this value is specified,
7073	// it will override the containerInsights value set with PutAccountSetting or
7074	// PutAccountSettingDefault.
7075	Settings []*ClusterSetting `locationName:"settings" type:"list"`
7076
7077	// The metadata that you apply to the cluster to help you categorize and organize
7078	// them. Each tag consists of a key and an optional value, both of which you
7079	// define.
7080	//
7081	// The following basic restrictions apply to tags:
7082	//
7083	//    * Maximum number of tags per resource - 50
7084	//
7085	//    * For each resource, each tag key must be unique, and each tag key can
7086	//    have only one value.
7087	//
7088	//    * Maximum key length - 128 Unicode characters in UTF-8
7089	//
7090	//    * Maximum value length - 256 Unicode characters in UTF-8
7091	//
7092	//    * If your tagging schema is used across multiple services and resources,
7093	//    remember that other services may have restrictions on allowed characters.
7094	//    Generally allowed characters are: letters, numbers, and spaces representable
7095	//    in UTF-8, and the following characters: + - = . _ : / @.
7096	//
7097	//    * Tag keys and values are case-sensitive.
7098	//
7099	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
7100	//    as a prefix for either keys or values as it is reserved for AWS use. You
7101	//    cannot edit or delete tag keys or values with this prefix. Tags with this
7102	//    prefix do not count against your tags per resource limit.
7103	Tags []*Tag `locationName:"tags" type:"list"`
7104}
7105
7106// String returns the string representation
7107func (s CreateClusterInput) String() string {
7108	return awsutil.Prettify(s)
7109}
7110
7111// GoString returns the string representation
7112func (s CreateClusterInput) GoString() string {
7113	return s.String()
7114}
7115
7116// Validate inspects the fields of the type to determine if they are valid.
7117func (s *CreateClusterInput) Validate() error {
7118	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
7119	if s.Tags != nil {
7120		for i, v := range s.Tags {
7121			if v == nil {
7122				continue
7123			}
7124			if err := v.Validate(); err != nil {
7125				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7126			}
7127		}
7128	}
7129
7130	if invalidParams.Len() > 0 {
7131		return invalidParams
7132	}
7133	return nil
7134}
7135
7136// SetClusterName sets the ClusterName field's value.
7137func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
7138	s.ClusterName = &v
7139	return s
7140}
7141
7142// SetSettings sets the Settings field's value.
7143func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
7144	s.Settings = v
7145	return s
7146}
7147
7148// SetTags sets the Tags field's value.
7149func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
7150	s.Tags = v
7151	return s
7152}
7153
7154type CreateClusterOutput struct {
7155	_ struct{} `type:"structure"`
7156
7157	// The full description of your new cluster.
7158	Cluster *Cluster `locationName:"cluster" type:"structure"`
7159}
7160
7161// String returns the string representation
7162func (s CreateClusterOutput) String() string {
7163	return awsutil.Prettify(s)
7164}
7165
7166// GoString returns the string representation
7167func (s CreateClusterOutput) GoString() string {
7168	return s.String()
7169}
7170
7171// SetCluster sets the Cluster field's value.
7172func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
7173	s.Cluster = v
7174	return s
7175}
7176
7177type CreateServiceInput struct {
7178	_ struct{} `type:"structure"`
7179
7180	// Unique, case-sensitive identifier that you provide to ensure the idempotency
7181	// of the request. Up to 32 ASCII characters are allowed.
7182	ClientToken *string `locationName:"clientToken" type:"string"`
7183
7184	// The short name or full Amazon Resource Name (ARN) of the cluster on which
7185	// to run your service. If you do not specify a cluster, the default cluster
7186	// is assumed.
7187	Cluster *string `locationName:"cluster" type:"string"`
7188
7189	// Optional deployment parameters that control how many tasks run during the
7190	// deployment and the ordering of stopping and starting tasks.
7191	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
7192
7193	// The deployment controller to use for the service.
7194	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
7195
7196	// The number of instantiations of the specified task definition to place and
7197	// keep running on your cluster.
7198	//
7199	// This is required if schedulingStrategy is REPLICA or is not specified. If
7200	// schedulingStrategy is DAEMON then this is not required.
7201	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
7202
7203	// Specifies whether to enable Amazon ECS managed tags for the tasks within
7204	// the service. For more information, see Tagging Your Amazon ECS Resources
7205	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
7206	// in the Amazon Elastic Container Service Developer Guide.
7207	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
7208
7209	// The period of time, in seconds, that the Amazon ECS service scheduler should
7210	// ignore unhealthy Elastic Load Balancing target health checks after a task
7211	// has first started. This is only valid if your service is configured to use
7212	// a load balancer. If your service's tasks take a while to start and respond
7213	// to Elastic Load Balancing health checks, you can specify a health check grace
7214	// period of up to 2,147,483,647 seconds. During that time, the ECS service
7215	// scheduler ignores health check status. This grace period can prevent the
7216	// ECS service scheduler from marking tasks as unhealthy and stopping them before
7217	// they have time to come up.
7218	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
7219
7220	// The launch type on which to run your service. For more information, see Amazon
7221	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
7222	// in the Amazon Elastic Container Service Developer Guide.
7223	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
7224
7225	// A load balancer object representing the load balancers to use with your service.
7226	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
7227	// in the Amazon Elastic Container Service Developer Guide.
7228	//
7229	// If the service is using the rolling update (ECS) deployment controller and
7230	// using either an Application Load Balancer or Network Load Balancer, you can
7231	// specify multiple target groups to attach to the service. The service-linked
7232	// role is required for services that make use of multiple target groups. For
7233	// more information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
7234	// in the Amazon Elastic Container Service Developer Guide.
7235	//
7236	// If the service is using the CODE_DEPLOY deployment controller, the service
7237	// is required to use either an Application Load Balancer or Network Load Balancer.
7238	// When creating an AWS CodeDeploy deployment group, you specify two target
7239	// groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy
7240	// determines which task set in your service has the status PRIMARY and associates
7241	// one target group with it, and then associates the other target group with
7242	// the replacement task set. The load balancer can also have up to two listeners:
7243	// a required listener for production traffic and an optional listener that
7244	// allows you perform validation tests with Lambda functions before routing
7245	// production traffic to it.
7246	//
7247	// After you create a service using the ECS deployment controller, the load
7248	// balancer name or target group ARN, container name, and container port specified
7249	// in the service definition are immutable. If you are using the CODE_DEPLOY
7250	// deployment controller, these values can be changed when updating the service.
7251	//
7252	// For Application Load Balancers and Network Load Balancers, this object must
7253	// contain the load balancer target group ARN, the container name (as it appears
7254	// in a container definition), and the container port to access from the load
7255	// balancer. When a task from this service is placed on a container instance,
7256	// the container instance and port combination is registered as a target in
7257	// the target group specified here.
7258	//
7259	// For Classic Load Balancers, this object must contain the load balancer name,
7260	// the container name (as it appears in a container definition), and the container
7261	// port to access from the load balancer. When a task from this service is placed
7262	// on a container instance, the container instance is registered with the load
7263	// balancer specified here.
7264	//
7265	// Services with tasks that use the awsvpc network mode (for example, those
7266	// with the Fargate launch type) only support Application Load Balancers and
7267	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
7268	// you create any target groups for these services, you must choose ip as the
7269	// target type, not instance, because tasks that use the awsvpc network mode
7270	// are associated with an elastic network interface, not an Amazon EC2 instance.
7271	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
7272
7273	// The network configuration for the service. This parameter is required for
7274	// task definitions that use the awsvpc network mode to receive their own elastic
7275	// network interface, and it is not supported for other network modes. For more
7276	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
7277	// in the Amazon Elastic Container Service Developer Guide.
7278	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
7279
7280	// An array of placement constraint objects to use for tasks in your service.
7281	// You can specify a maximum of 10 constraints per task (this limit includes
7282	// constraints in the task definition and those specified at runtime).
7283	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
7284
7285	// The placement strategy objects to use for tasks in your service. You can
7286	// specify a maximum of five strategy rules per service.
7287	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
7288
7289	// The platform version that your tasks in the service are running on. A platform
7290	// version is specified only for tasks using the Fargate launch type. If one
7291	// isn't specified, the LATEST platform version is used by default. For more
7292	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
7293	// in the Amazon Elastic Container Service Developer Guide.
7294	PlatformVersion *string `locationName:"platformVersion" type:"string"`
7295
7296	// Specifies whether to propagate the tags from the task definition or the service
7297	// to the tasks in the service. If no value is specified, the tags are not propagated.
7298	// Tags can only be propagated to the tasks within the service during service
7299	// creation. To add tags to a task after service creation, use the TagResource
7300	// API action.
7301	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
7302
7303	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
7304	// ECS to make calls to your load balancer on your behalf. This parameter is
7305	// only permitted if you are using a load balancer with your service and your
7306	// task definition does not use the awsvpc network mode. If you specify the
7307	// role parameter, you must also specify a load balancer object with the loadBalancers
7308	// parameter.
7309	//
7310	// If your account has already created the Amazon ECS service-linked role, that
7311	// role is used by default for your service unless you specify a role here.
7312	// The service-linked role is required if your task definition uses the awsvpc
7313	// network mode or if the service is configured to use service discovery, an
7314	// external deployment controller, or multiple target groups in which case you
7315	// should not specify a role here. For more information, see Using Service-Linked
7316	// Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
7317	// in the Amazon Elastic Container Service Developer Guide.
7318	//
7319	// If your specified role has a path other than /, then you must either specify
7320	// the full role ARN (this is recommended) or prefix the role name with the
7321	// path. For example, if a role with the name bar has a path of /foo/ then you
7322	// would specify /foo/bar as the role name. For more information, see Friendly
7323	// Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
7324	// in the IAM User Guide.
7325	Role *string `locationName:"role" type:"string"`
7326
7327	// The scheduling strategy to use for the service. For more information, see
7328	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
7329	//
7330	// There are two service scheduler strategies available:
7331	//
7332	//    * REPLICA-The replica scheduling strategy places and maintains the desired
7333	//    number of tasks across your cluster. By default, the service scheduler
7334	//    spreads tasks across Availability Zones. You can use task placement strategies
7335	//    and constraints to customize task placement decisions. This scheduler
7336	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
7337	//    deployment controller types.
7338	//
7339	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
7340	//    active container instance that meets all of the task placement constraints
7341	//    that you specify in your cluster. When you're using this strategy, you
7342	//    don't need to specify a desired number of tasks, a task placement strategy,
7343	//    or use Service Auto Scaling policies. Tasks using the Fargate launch type
7344	//    or the CODE_DEPLOY or EXTERNAL deployment controller types don't support
7345	//    the DAEMON scheduling strategy.
7346	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
7347
7348	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
7349	// and hyphens are allowed. Service names must be unique within a cluster, but
7350	// you can have similarly named services in multiple clusters within a Region
7351	// or across multiple Regions.
7352	//
7353	// ServiceName is a required field
7354	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
7355
7356	// The details of the service discovery registries to assign to this service.
7357	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
7358	//
7359	// Service discovery is supported for Fargate tasks if you are using platform
7360	// version v1.1.0 or later. For more information, see AWS Fargate Platform Versions
7361	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
7362	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
7363
7364	// The metadata that you apply to the service to help you categorize and organize
7365	// them. Each tag consists of a key and an optional value, both of which you
7366	// define. When a service is deleted, the tags are deleted as well.
7367	//
7368	// The following basic restrictions apply to tags:
7369	//
7370	//    * Maximum number of tags per resource - 50
7371	//
7372	//    * For each resource, each tag key must be unique, and each tag key can
7373	//    have only one value.
7374	//
7375	//    * Maximum key length - 128 Unicode characters in UTF-8
7376	//
7377	//    * Maximum value length - 256 Unicode characters in UTF-8
7378	//
7379	//    * If your tagging schema is used across multiple services and resources,
7380	//    remember that other services may have restrictions on allowed characters.
7381	//    Generally allowed characters are: letters, numbers, and spaces representable
7382	//    in UTF-8, and the following characters: + - = . _ : / @.
7383	//
7384	//    * Tag keys and values are case-sensitive.
7385	//
7386	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
7387	//    as a prefix for either keys or values as it is reserved for AWS use. You
7388	//    cannot edit or delete tag keys or values with this prefix. Tags with this
7389	//    prefix do not count against your tags per resource limit.
7390	Tags []*Tag `locationName:"tags" type:"list"`
7391
7392	// The family and revision (family:revision) or full ARN of the task definition
7393	// to run in your service. If a revision is not specified, the latest ACTIVE
7394	// revision is used.
7395	//
7396	// A task definition must be specified if the service is using the ECS deployment
7397	// controller.
7398	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
7399}
7400
7401// String returns the string representation
7402func (s CreateServiceInput) String() string {
7403	return awsutil.Prettify(s)
7404}
7405
7406// GoString returns the string representation
7407func (s CreateServiceInput) GoString() string {
7408	return s.String()
7409}
7410
7411// Validate inspects the fields of the type to determine if they are valid.
7412func (s *CreateServiceInput) Validate() error {
7413	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
7414	if s.ServiceName == nil {
7415		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
7416	}
7417	if s.DeploymentController != nil {
7418		if err := s.DeploymentController.Validate(); err != nil {
7419			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
7420		}
7421	}
7422	if s.NetworkConfiguration != nil {
7423		if err := s.NetworkConfiguration.Validate(); err != nil {
7424			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
7425		}
7426	}
7427	if s.Tags != nil {
7428		for i, v := range s.Tags {
7429			if v == nil {
7430				continue
7431			}
7432			if err := v.Validate(); err != nil {
7433				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7434			}
7435		}
7436	}
7437
7438	if invalidParams.Len() > 0 {
7439		return invalidParams
7440	}
7441	return nil
7442}
7443
7444// SetClientToken sets the ClientToken field's value.
7445func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
7446	s.ClientToken = &v
7447	return s
7448}
7449
7450// SetCluster sets the Cluster field's value.
7451func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
7452	s.Cluster = &v
7453	return s
7454}
7455
7456// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
7457func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
7458	s.DeploymentConfiguration = v
7459	return s
7460}
7461
7462// SetDeploymentController sets the DeploymentController field's value.
7463func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
7464	s.DeploymentController = v
7465	return s
7466}
7467
7468// SetDesiredCount sets the DesiredCount field's value.
7469func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
7470	s.DesiredCount = &v
7471	return s
7472}
7473
7474// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
7475func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
7476	s.EnableECSManagedTags = &v
7477	return s
7478}
7479
7480// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
7481func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
7482	s.HealthCheckGracePeriodSeconds = &v
7483	return s
7484}
7485
7486// SetLaunchType sets the LaunchType field's value.
7487func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
7488	s.LaunchType = &v
7489	return s
7490}
7491
7492// SetLoadBalancers sets the LoadBalancers field's value.
7493func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
7494	s.LoadBalancers = v
7495	return s
7496}
7497
7498// SetNetworkConfiguration sets the NetworkConfiguration field's value.
7499func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
7500	s.NetworkConfiguration = v
7501	return s
7502}
7503
7504// SetPlacementConstraints sets the PlacementConstraints field's value.
7505func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
7506	s.PlacementConstraints = v
7507	return s
7508}
7509
7510// SetPlacementStrategy sets the PlacementStrategy field's value.
7511func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
7512	s.PlacementStrategy = v
7513	return s
7514}
7515
7516// SetPlatformVersion sets the PlatformVersion field's value.
7517func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
7518	s.PlatformVersion = &v
7519	return s
7520}
7521
7522// SetPropagateTags sets the PropagateTags field's value.
7523func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
7524	s.PropagateTags = &v
7525	return s
7526}
7527
7528// SetRole sets the Role field's value.
7529func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
7530	s.Role = &v
7531	return s
7532}
7533
7534// SetSchedulingStrategy sets the SchedulingStrategy field's value.
7535func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
7536	s.SchedulingStrategy = &v
7537	return s
7538}
7539
7540// SetServiceName sets the ServiceName field's value.
7541func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
7542	s.ServiceName = &v
7543	return s
7544}
7545
7546// SetServiceRegistries sets the ServiceRegistries field's value.
7547func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
7548	s.ServiceRegistries = v
7549	return s
7550}
7551
7552// SetTags sets the Tags field's value.
7553func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
7554	s.Tags = v
7555	return s
7556}
7557
7558// SetTaskDefinition sets the TaskDefinition field's value.
7559func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
7560	s.TaskDefinition = &v
7561	return s
7562}
7563
7564type CreateServiceOutput struct {
7565	_ struct{} `type:"structure"`
7566
7567	// The full description of your service following the create call.
7568	//
7569	// If a service is using the ECS deployment controller, the deploymentController
7570	// and taskSets parameters will not be returned.
7571	//
7572	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
7573	// taskSets and deployments parameters will be returned, however the deployments
7574	// parameter will be an empty list.
7575	Service *Service `locationName:"service" type:"structure"`
7576}
7577
7578// String returns the string representation
7579func (s CreateServiceOutput) String() string {
7580	return awsutil.Prettify(s)
7581}
7582
7583// GoString returns the string representation
7584func (s CreateServiceOutput) GoString() string {
7585	return s.String()
7586}
7587
7588// SetService sets the Service field's value.
7589func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
7590	s.Service = v
7591	return s
7592}
7593
7594type CreateTaskSetInput struct {
7595	_ struct{} `type:"structure"`
7596
7597	// Unique, case-sensitive identifier that you provide to ensure the idempotency
7598	// of the request. Up to 32 ASCII characters are allowed.
7599	ClientToken *string `locationName:"clientToken" type:"string"`
7600
7601	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
7602	// the service to create the task set in.
7603	//
7604	// Cluster is a required field
7605	Cluster *string `locationName:"cluster" type:"string" required:"true"`
7606
7607	// An optional non-unique tag that identifies this task set in external systems.
7608	// If the task set is associated with a service discovery registry, the tasks
7609	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute
7610	// set to the provided value.
7611	ExternalId *string `locationName:"externalId" type:"string"`
7612
7613	// The launch type that new tasks in the task set will use. For more information,
7614	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
7615	// in the Amazon Elastic Container Service Developer Guide.
7616	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
7617
7618	// A load balancer object representing the load balancer to use with the task
7619	// set. The supported load balancer types are either an Application Load Balancer
7620	// or a Network Load Balancer.
7621	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
7622
7623	// An object representing the network configuration for a task or service.
7624	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
7625
7626	// The platform version that the tasks in the task set should use. A platform
7627	// version is specified only for tasks using the Fargate launch type. If one
7628	// isn't specified, the LATEST platform version is used by default.
7629	PlatformVersion *string `locationName:"platformVersion" type:"string"`
7630
7631	// A floating-point percentage of the desired number of tasks to place and keep
7632	// running in the task set.
7633	Scale *Scale `locationName:"scale" type:"structure"`
7634
7635	// The short name or full Amazon Resource Name (ARN) of the service to create
7636	// the task set in.
7637	//
7638	// Service is a required field
7639	Service *string `locationName:"service" type:"string" required:"true"`
7640
7641	// The details of the service discovery registries to assign to this task set.
7642	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
7643	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
7644
7645	// The task definition for the tasks in the task set to use.
7646	//
7647	// TaskDefinition is a required field
7648	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
7649}
7650
7651// String returns the string representation
7652func (s CreateTaskSetInput) String() string {
7653	return awsutil.Prettify(s)
7654}
7655
7656// GoString returns the string representation
7657func (s CreateTaskSetInput) GoString() string {
7658	return s.String()
7659}
7660
7661// Validate inspects the fields of the type to determine if they are valid.
7662func (s *CreateTaskSetInput) Validate() error {
7663	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
7664	if s.Cluster == nil {
7665		invalidParams.Add(request.NewErrParamRequired("Cluster"))
7666	}
7667	if s.Service == nil {
7668		invalidParams.Add(request.NewErrParamRequired("Service"))
7669	}
7670	if s.TaskDefinition == nil {
7671		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
7672	}
7673	if s.NetworkConfiguration != nil {
7674		if err := s.NetworkConfiguration.Validate(); err != nil {
7675			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
7676		}
7677	}
7678
7679	if invalidParams.Len() > 0 {
7680		return invalidParams
7681	}
7682	return nil
7683}
7684
7685// SetClientToken sets the ClientToken field's value.
7686func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
7687	s.ClientToken = &v
7688	return s
7689}
7690
7691// SetCluster sets the Cluster field's value.
7692func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
7693	s.Cluster = &v
7694	return s
7695}
7696
7697// SetExternalId sets the ExternalId field's value.
7698func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
7699	s.ExternalId = &v
7700	return s
7701}
7702
7703// SetLaunchType sets the LaunchType field's value.
7704func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
7705	s.LaunchType = &v
7706	return s
7707}
7708
7709// SetLoadBalancers sets the LoadBalancers field's value.
7710func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
7711	s.LoadBalancers = v
7712	return s
7713}
7714
7715// SetNetworkConfiguration sets the NetworkConfiguration field's value.
7716func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
7717	s.NetworkConfiguration = v
7718	return s
7719}
7720
7721// SetPlatformVersion sets the PlatformVersion field's value.
7722func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
7723	s.PlatformVersion = &v
7724	return s
7725}
7726
7727// SetScale sets the Scale field's value.
7728func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
7729	s.Scale = v
7730	return s
7731}
7732
7733// SetService sets the Service field's value.
7734func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
7735	s.Service = &v
7736	return s
7737}
7738
7739// SetServiceRegistries sets the ServiceRegistries field's value.
7740func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
7741	s.ServiceRegistries = v
7742	return s
7743}
7744
7745// SetTaskDefinition sets the TaskDefinition field's value.
7746func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
7747	s.TaskDefinition = &v
7748	return s
7749}
7750
7751type CreateTaskSetOutput struct {
7752	_ struct{} `type:"structure"`
7753
7754	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
7755	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
7756	// desired number of tasks, how many tasks are running, and whether the task
7757	// set serves production traffic.
7758	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
7759}
7760
7761// String returns the string representation
7762func (s CreateTaskSetOutput) String() string {
7763	return awsutil.Prettify(s)
7764}
7765
7766// GoString returns the string representation
7767func (s CreateTaskSetOutput) GoString() string {
7768	return s.String()
7769}
7770
7771// SetTaskSet sets the TaskSet field's value.
7772func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
7773	s.TaskSet = v
7774	return s
7775}
7776
7777type DeleteAccountSettingInput struct {
7778	_ struct{} `type:"structure"`
7779
7780	// The resource name for which to disable the account setting. If serviceLongArnFormat
7781	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
7782	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
7783	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
7784	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
7785	// the ENI limit for your Amazon ECS container instances is affected.
7786	//
7787	// Name is a required field
7788	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
7789
7790	// The ARN of the principal, which can be an IAM user, IAM role, or the root
7791	// user. If you specify the root user, it disables the account setting for all
7792	// IAM users, IAM roles, and the root user of the account unless an IAM user
7793	// or role explicitly overrides these settings. If this field is omitted, the
7794	// setting is changed only for the authenticated user.
7795	PrincipalArn *string `locationName:"principalArn" type:"string"`
7796}
7797
7798// String returns the string representation
7799func (s DeleteAccountSettingInput) String() string {
7800	return awsutil.Prettify(s)
7801}
7802
7803// GoString returns the string representation
7804func (s DeleteAccountSettingInput) GoString() string {
7805	return s.String()
7806}
7807
7808// Validate inspects the fields of the type to determine if they are valid.
7809func (s *DeleteAccountSettingInput) Validate() error {
7810	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
7811	if s.Name == nil {
7812		invalidParams.Add(request.NewErrParamRequired("Name"))
7813	}
7814
7815	if invalidParams.Len() > 0 {
7816		return invalidParams
7817	}
7818	return nil
7819}
7820
7821// SetName sets the Name field's value.
7822func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
7823	s.Name = &v
7824	return s
7825}
7826
7827// SetPrincipalArn sets the PrincipalArn field's value.
7828func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
7829	s.PrincipalArn = &v
7830	return s
7831}
7832
7833type DeleteAccountSettingOutput struct {
7834	_ struct{} `type:"structure"`
7835
7836	// The account setting for the specified principal ARN.
7837	Setting *Setting `locationName:"setting" type:"structure"`
7838}
7839
7840// String returns the string representation
7841func (s DeleteAccountSettingOutput) String() string {
7842	return awsutil.Prettify(s)
7843}
7844
7845// GoString returns the string representation
7846func (s DeleteAccountSettingOutput) GoString() string {
7847	return s.String()
7848}
7849
7850// SetSetting sets the Setting field's value.
7851func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
7852	s.Setting = v
7853	return s
7854}
7855
7856type DeleteAttributesInput struct {
7857	_ struct{} `type:"structure"`
7858
7859	// The attributes to delete from your resource. You can specify up to 10 attributes
7860	// per request. For custom attributes, specify the attribute name and target
7861	// ID, but do not specify the value. If you specify the target ID using the
7862	// short form, you must also specify the target type.
7863	//
7864	// Attributes is a required field
7865	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
7866
7867	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
7868	// the resource to delete attributes. If you do not specify a cluster, the default
7869	// cluster is assumed.
7870	Cluster *string `locationName:"cluster" type:"string"`
7871}
7872
7873// String returns the string representation
7874func (s DeleteAttributesInput) String() string {
7875	return awsutil.Prettify(s)
7876}
7877
7878// GoString returns the string representation
7879func (s DeleteAttributesInput) GoString() string {
7880	return s.String()
7881}
7882
7883// Validate inspects the fields of the type to determine if they are valid.
7884func (s *DeleteAttributesInput) Validate() error {
7885	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
7886	if s.Attributes == nil {
7887		invalidParams.Add(request.NewErrParamRequired("Attributes"))
7888	}
7889	if s.Attributes != nil {
7890		for i, v := range s.Attributes {
7891			if v == nil {
7892				continue
7893			}
7894			if err := v.Validate(); err != nil {
7895				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
7896			}
7897		}
7898	}
7899
7900	if invalidParams.Len() > 0 {
7901		return invalidParams
7902	}
7903	return nil
7904}
7905
7906// SetAttributes sets the Attributes field's value.
7907func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
7908	s.Attributes = v
7909	return s
7910}
7911
7912// SetCluster sets the Cluster field's value.
7913func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
7914	s.Cluster = &v
7915	return s
7916}
7917
7918type DeleteAttributesOutput struct {
7919	_ struct{} `type:"structure"`
7920
7921	// A list of attribute objects that were successfully deleted from your resource.
7922	Attributes []*Attribute `locationName:"attributes" type:"list"`
7923}
7924
7925// String returns the string representation
7926func (s DeleteAttributesOutput) String() string {
7927	return awsutil.Prettify(s)
7928}
7929
7930// GoString returns the string representation
7931func (s DeleteAttributesOutput) GoString() string {
7932	return s.String()
7933}
7934
7935// SetAttributes sets the Attributes field's value.
7936func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
7937	s.Attributes = v
7938	return s
7939}
7940
7941type DeleteClusterInput struct {
7942	_ struct{} `type:"structure"`
7943
7944	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
7945	//
7946	// Cluster is a required field
7947	Cluster *string `locationName:"cluster" type:"string" required:"true"`
7948}
7949
7950// String returns the string representation
7951func (s DeleteClusterInput) String() string {
7952	return awsutil.Prettify(s)
7953}
7954
7955// GoString returns the string representation
7956func (s DeleteClusterInput) GoString() string {
7957	return s.String()
7958}
7959
7960// Validate inspects the fields of the type to determine if they are valid.
7961func (s *DeleteClusterInput) Validate() error {
7962	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
7963	if s.Cluster == nil {
7964		invalidParams.Add(request.NewErrParamRequired("Cluster"))
7965	}
7966
7967	if invalidParams.Len() > 0 {
7968		return invalidParams
7969	}
7970	return nil
7971}
7972
7973// SetCluster sets the Cluster field's value.
7974func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
7975	s.Cluster = &v
7976	return s
7977}
7978
7979type DeleteClusterOutput struct {
7980	_ struct{} `type:"structure"`
7981
7982	// The full description of the deleted cluster.
7983	Cluster *Cluster `locationName:"cluster" type:"structure"`
7984}
7985
7986// String returns the string representation
7987func (s DeleteClusterOutput) String() string {
7988	return awsutil.Prettify(s)
7989}
7990
7991// GoString returns the string representation
7992func (s DeleteClusterOutput) GoString() string {
7993	return s.String()
7994}
7995
7996// SetCluster sets the Cluster field's value.
7997func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
7998	s.Cluster = v
7999	return s
8000}
8001
8002type DeleteServiceInput struct {
8003	_ struct{} `type:"structure"`
8004
8005	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8006	// the service to delete. If you do not specify a cluster, the default cluster
8007	// is assumed.
8008	Cluster *string `locationName:"cluster" type:"string"`
8009
8010	// If true, allows you to delete a service even if it has not been scaled down
8011	// to zero tasks. It is only necessary to use this if the service is using the
8012	// REPLICA scheduling strategy.
8013	Force *bool `locationName:"force" type:"boolean"`
8014
8015	// The name of the service to delete.
8016	//
8017	// Service is a required field
8018	Service *string `locationName:"service" type:"string" required:"true"`
8019}
8020
8021// String returns the string representation
8022func (s DeleteServiceInput) String() string {
8023	return awsutil.Prettify(s)
8024}
8025
8026// GoString returns the string representation
8027func (s DeleteServiceInput) GoString() string {
8028	return s.String()
8029}
8030
8031// Validate inspects the fields of the type to determine if they are valid.
8032func (s *DeleteServiceInput) Validate() error {
8033	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
8034	if s.Service == nil {
8035		invalidParams.Add(request.NewErrParamRequired("Service"))
8036	}
8037
8038	if invalidParams.Len() > 0 {
8039		return invalidParams
8040	}
8041	return nil
8042}
8043
8044// SetCluster sets the Cluster field's value.
8045func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
8046	s.Cluster = &v
8047	return s
8048}
8049
8050// SetForce sets the Force field's value.
8051func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
8052	s.Force = &v
8053	return s
8054}
8055
8056// SetService sets the Service field's value.
8057func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
8058	s.Service = &v
8059	return s
8060}
8061
8062type DeleteServiceOutput struct {
8063	_ struct{} `type:"structure"`
8064
8065	// The full description of the deleted service.
8066	Service *Service `locationName:"service" type:"structure"`
8067}
8068
8069// String returns the string representation
8070func (s DeleteServiceOutput) String() string {
8071	return awsutil.Prettify(s)
8072}
8073
8074// GoString returns the string representation
8075func (s DeleteServiceOutput) GoString() string {
8076	return s.String()
8077}
8078
8079// SetService sets the Service field's value.
8080func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
8081	s.Service = v
8082	return s
8083}
8084
8085type DeleteTaskSetInput struct {
8086	_ struct{} `type:"structure"`
8087
8088	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8089	// the service that the task set exists in to delete.
8090	//
8091	// Cluster is a required field
8092	Cluster *string `locationName:"cluster" type:"string" required:"true"`
8093
8094	// If true, this allows you to delete a task set even if it hasn't been scaled
8095	// down to zero.
8096	Force *bool `locationName:"force" type:"boolean"`
8097
8098	// The short name or full Amazon Resource Name (ARN) of the service that hosts
8099	// the task set to delete.
8100	//
8101	// Service is a required field
8102	Service *string `locationName:"service" type:"string" required:"true"`
8103
8104	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
8105	//
8106	// TaskSet is a required field
8107	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
8108}
8109
8110// String returns the string representation
8111func (s DeleteTaskSetInput) String() string {
8112	return awsutil.Prettify(s)
8113}
8114
8115// GoString returns the string representation
8116func (s DeleteTaskSetInput) GoString() string {
8117	return s.String()
8118}
8119
8120// Validate inspects the fields of the type to determine if they are valid.
8121func (s *DeleteTaskSetInput) Validate() error {
8122	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
8123	if s.Cluster == nil {
8124		invalidParams.Add(request.NewErrParamRequired("Cluster"))
8125	}
8126	if s.Service == nil {
8127		invalidParams.Add(request.NewErrParamRequired("Service"))
8128	}
8129	if s.TaskSet == nil {
8130		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
8131	}
8132
8133	if invalidParams.Len() > 0 {
8134		return invalidParams
8135	}
8136	return nil
8137}
8138
8139// SetCluster sets the Cluster field's value.
8140func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
8141	s.Cluster = &v
8142	return s
8143}
8144
8145// SetForce sets the Force field's value.
8146func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
8147	s.Force = &v
8148	return s
8149}
8150
8151// SetService sets the Service field's value.
8152func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
8153	s.Service = &v
8154	return s
8155}
8156
8157// SetTaskSet sets the TaskSet field's value.
8158func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
8159	s.TaskSet = &v
8160	return s
8161}
8162
8163type DeleteTaskSetOutput struct {
8164	_ struct{} `type:"structure"`
8165
8166	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
8167	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
8168	// desired number of tasks, how many tasks are running, and whether the task
8169	// set serves production traffic.
8170	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
8171}
8172
8173// String returns the string representation
8174func (s DeleteTaskSetOutput) String() string {
8175	return awsutil.Prettify(s)
8176}
8177
8178// GoString returns the string representation
8179func (s DeleteTaskSetOutput) GoString() string {
8180	return s.String()
8181}
8182
8183// SetTaskSet sets the TaskSet field's value.
8184func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
8185	s.TaskSet = v
8186	return s
8187}
8188
8189// The details of an Amazon ECS service deployment. This is used only when a
8190// service uses the ECS deployment controller type.
8191type Deployment struct {
8192	_ struct{} `type:"structure"`
8193
8194	// The Unix timestamp for when the service deployment was created.
8195	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
8196
8197	// The most recent desired count of tasks that was specified for the service
8198	// to deploy or maintain.
8199	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
8200
8201	// The ID of the deployment.
8202	Id *string `locationName:"id" type:"string"`
8203
8204	// The launch type the tasks in the service are using. For more information,
8205	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
8206	// in the Amazon Elastic Container Service Developer Guide.
8207	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
8208
8209	// The VPC subnet and security group configuration for tasks that receive their
8210	// own elastic network interface by using the awsvpc networking mode.
8211	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
8212
8213	// The number of tasks in the deployment that are in the PENDING status.
8214	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
8215
8216	// The platform version on which your tasks in the service are running. A platform
8217	// version is only specified for tasks using the Fargate launch type. If one
8218	// is not specified, the LATEST platform version is used by default. For more
8219	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
8220	// in the Amazon Elastic Container Service Developer Guide.
8221	PlatformVersion *string `locationName:"platformVersion" type:"string"`
8222
8223	// The number of tasks in the deployment that are in the RUNNING status.
8224	RunningCount *int64 `locationName:"runningCount" type:"integer"`
8225
8226	// The status of the deployment. The following describes each state:
8227	//
8228	// PRIMARY
8229	//
8230	// The most recent deployment of a service.
8231	//
8232	// ACTIVE
8233	//
8234	// A service deployment that still has running tasks, but are in the process
8235	// of being replaced with a new PRIMARY deployment.
8236	//
8237	// INACTIVE
8238	//
8239	// A deployment that has been completely replaced.
8240	Status *string `locationName:"status" type:"string"`
8241
8242	// The most recent task definition that was specified for the tasks in the service
8243	// to use.
8244	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
8245
8246	// The Unix timestamp for when the service deployment was last updated.
8247	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
8248}
8249
8250// String returns the string representation
8251func (s Deployment) String() string {
8252	return awsutil.Prettify(s)
8253}
8254
8255// GoString returns the string representation
8256func (s Deployment) GoString() string {
8257	return s.String()
8258}
8259
8260// SetCreatedAt sets the CreatedAt field's value.
8261func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
8262	s.CreatedAt = &v
8263	return s
8264}
8265
8266// SetDesiredCount sets the DesiredCount field's value.
8267func (s *Deployment) SetDesiredCount(v int64) *Deployment {
8268	s.DesiredCount = &v
8269	return s
8270}
8271
8272// SetId sets the Id field's value.
8273func (s *Deployment) SetId(v string) *Deployment {
8274	s.Id = &v
8275	return s
8276}
8277
8278// SetLaunchType sets the LaunchType field's value.
8279func (s *Deployment) SetLaunchType(v string) *Deployment {
8280	s.LaunchType = &v
8281	return s
8282}
8283
8284// SetNetworkConfiguration sets the NetworkConfiguration field's value.
8285func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
8286	s.NetworkConfiguration = v
8287	return s
8288}
8289
8290// SetPendingCount sets the PendingCount field's value.
8291func (s *Deployment) SetPendingCount(v int64) *Deployment {
8292	s.PendingCount = &v
8293	return s
8294}
8295
8296// SetPlatformVersion sets the PlatformVersion field's value.
8297func (s *Deployment) SetPlatformVersion(v string) *Deployment {
8298	s.PlatformVersion = &v
8299	return s
8300}
8301
8302// SetRunningCount sets the RunningCount field's value.
8303func (s *Deployment) SetRunningCount(v int64) *Deployment {
8304	s.RunningCount = &v
8305	return s
8306}
8307
8308// SetStatus sets the Status field's value.
8309func (s *Deployment) SetStatus(v string) *Deployment {
8310	s.Status = &v
8311	return s
8312}
8313
8314// SetTaskDefinition sets the TaskDefinition field's value.
8315func (s *Deployment) SetTaskDefinition(v string) *Deployment {
8316	s.TaskDefinition = &v
8317	return s
8318}
8319
8320// SetUpdatedAt sets the UpdatedAt field's value.
8321func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
8322	s.UpdatedAt = &v
8323	return s
8324}
8325
8326// Optional deployment parameters that control how many tasks run during a deployment
8327// and the ordering of stopping and starting tasks.
8328type DeploymentConfiguration struct {
8329	_ struct{} `type:"structure"`
8330
8331	// If a service is using the rolling update (ECS) deployment type, the maximum
8332	// percent parameter represents an upper limit on the number of tasks in a service
8333	// that are allowed in the RUNNING or PENDING state during a deployment, as
8334	// a percentage of the desired number of tasks (rounded down to the nearest
8335	// integer), and while any container instances are in the DRAINING state if
8336	// the service contains tasks using the EC2 launch type. This parameter enables
8337	// you to define the deployment batch size. For example, if your service has
8338	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
8339	// may start four new tasks before stopping the four older tasks (provided that
8340	// the cluster resources required to do this are available). The default value
8341	// for maximum percent is 200%.
8342	//
8343	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
8344	// types and tasks that use the EC2 launch type, the maximum percent value is
8345	// set to the default value and is used to define the upper limit on the number
8346	// of the tasks in the service that remain in the RUNNING state while the container
8347	// instances are in the DRAINING state. If the tasks in the service use the
8348	// Fargate launch type, the maximum percent value is not used, although it is
8349	// returned when describing your service.
8350	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
8351
8352	// If a service is using the rolling update (ECS) deployment type, the minimum
8353	// healthy percent represents a lower limit on the number of tasks in a service
8354	// that must remain in the RUNNING state during a deployment, as a percentage
8355	// of the desired number of tasks (rounded up to the nearest integer), and while
8356	// any container instances are in the DRAINING state if the service contains
8357	// tasks using the EC2 launch type. This parameter enables you to deploy without
8358	// using additional cluster capacity. For example, if your service has a desired
8359	// number of four tasks and a minimum healthy percent of 50%, the scheduler
8360	// may stop two existing tasks to free up cluster capacity before starting two
8361	// new tasks. Tasks for services that do not use a load balancer are considered
8362	// healthy if they are in the RUNNING state; tasks for services that do use
8363	// a load balancer are considered healthy if they are in the RUNNING state and
8364	// they are reported as healthy by the load balancer. The default value for
8365	// minimum healthy percent is 100%.
8366	//
8367	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
8368	// types and tasks that use the EC2 launch type, the minimum healthy percent
8369	// value is set to the default value and is used to define the lower limit on
8370	// the number of the tasks in the service that remain in the RUNNING state while
8371	// the container instances are in the DRAINING state. If the tasks in the service
8372	// use the Fargate launch type, the minimum healthy percent value is not used,
8373	// although it is returned when describing your service.
8374	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
8375}
8376
8377// String returns the string representation
8378func (s DeploymentConfiguration) String() string {
8379	return awsutil.Prettify(s)
8380}
8381
8382// GoString returns the string representation
8383func (s DeploymentConfiguration) GoString() string {
8384	return s.String()
8385}
8386
8387// SetMaximumPercent sets the MaximumPercent field's value.
8388func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
8389	s.MaximumPercent = &v
8390	return s
8391}
8392
8393// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
8394func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
8395	s.MinimumHealthyPercent = &v
8396	return s
8397}
8398
8399// The deployment controller to use for the service. For more information, see
8400// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
8401// in the Amazon Elastic Container Service Developer Guide.
8402type DeploymentController struct {
8403	_ struct{} `type:"structure"`
8404
8405	// The deployment controller type to use.
8406	//
8407	// There are three deployment controller types available:
8408	//
8409	// ECS
8410	//
8411	// The rolling update (ECS) deployment type involves replacing the current running
8412	// version of the container with the latest version. The number of containers
8413	// Amazon ECS adds or removes from the service during a rolling update is controlled
8414	// by adjusting the minimum and maximum number of healthy tasks allowed during
8415	// a service deployment, as specified in the DeploymentConfiguration.
8416	//
8417	// CODE_DEPLOY
8418	//
8419	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
8420	// model powered by AWS CodeDeploy, which allows you to verify a new deployment
8421	// of a service before sending production traffic to it.
8422	//
8423	// EXTERNAL
8424	//
8425	// The external (EXTERNAL) deployment type enables you to use any third-party
8426	// deployment controller for full control over the deployment process for an
8427	// Amazon ECS service.
8428	//
8429	// Type is a required field
8430	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
8431}
8432
8433// String returns the string representation
8434func (s DeploymentController) String() string {
8435	return awsutil.Prettify(s)
8436}
8437
8438// GoString returns the string representation
8439func (s DeploymentController) GoString() string {
8440	return s.String()
8441}
8442
8443// Validate inspects the fields of the type to determine if they are valid.
8444func (s *DeploymentController) Validate() error {
8445	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
8446	if s.Type == nil {
8447		invalidParams.Add(request.NewErrParamRequired("Type"))
8448	}
8449
8450	if invalidParams.Len() > 0 {
8451		return invalidParams
8452	}
8453	return nil
8454}
8455
8456// SetType sets the Type field's value.
8457func (s *DeploymentController) SetType(v string) *DeploymentController {
8458	s.Type = &v
8459	return s
8460}
8461
8462type DeregisterContainerInstanceInput struct {
8463	_ struct{} `type:"structure"`
8464
8465	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8466	// the container instance to deregister. If you do not specify a cluster, the
8467	// default cluster is assumed.
8468	Cluster *string `locationName:"cluster" type:"string"`
8469
8470	// The container instance ID or full ARN of the container instance to deregister.
8471	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
8472	// container instance, the AWS account ID of the container instance owner, the
8473	// container-instance namespace, and then the container instance ID. For example,
8474	// arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
8475	//
8476	// ContainerInstance is a required field
8477	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
8478
8479	// Forces the deregistration of the container instance. If you have tasks running
8480	// on the container instance when you deregister it with the force option, these
8481	// tasks remain running until you terminate the instance or the tasks stop through
8482	// some other means, but they are orphaned (no longer monitored or accounted
8483	// for by Amazon ECS). If an orphaned task on your container instance is part
8484	// of an Amazon ECS service, then the service scheduler starts another copy
8485	// of that task, on a different container instance if possible.
8486	//
8487	// Any containers in orphaned service tasks that are registered with a Classic
8488	// Load Balancer or an Application Load Balancer target group are deregistered.
8489	// They begin connection draining according to the settings on the load balancer
8490	// or target group.
8491	Force *bool `locationName:"force" type:"boolean"`
8492}
8493
8494// String returns the string representation
8495func (s DeregisterContainerInstanceInput) String() string {
8496	return awsutil.Prettify(s)
8497}
8498
8499// GoString returns the string representation
8500func (s DeregisterContainerInstanceInput) GoString() string {
8501	return s.String()
8502}
8503
8504// Validate inspects the fields of the type to determine if they are valid.
8505func (s *DeregisterContainerInstanceInput) Validate() error {
8506	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
8507	if s.ContainerInstance == nil {
8508		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
8509	}
8510
8511	if invalidParams.Len() > 0 {
8512		return invalidParams
8513	}
8514	return nil
8515}
8516
8517// SetCluster sets the Cluster field's value.
8518func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
8519	s.Cluster = &v
8520	return s
8521}
8522
8523// SetContainerInstance sets the ContainerInstance field's value.
8524func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
8525	s.ContainerInstance = &v
8526	return s
8527}
8528
8529// SetForce sets the Force field's value.
8530func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
8531	s.Force = &v
8532	return s
8533}
8534
8535type DeregisterContainerInstanceOutput struct {
8536	_ struct{} `type:"structure"`
8537
8538	// The container instance that was deregistered.
8539	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
8540}
8541
8542// String returns the string representation
8543func (s DeregisterContainerInstanceOutput) String() string {
8544	return awsutil.Prettify(s)
8545}
8546
8547// GoString returns the string representation
8548func (s DeregisterContainerInstanceOutput) GoString() string {
8549	return s.String()
8550}
8551
8552// SetContainerInstance sets the ContainerInstance field's value.
8553func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
8554	s.ContainerInstance = v
8555	return s
8556}
8557
8558type DeregisterTaskDefinitionInput struct {
8559	_ struct{} `type:"structure"`
8560
8561	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
8562	// of the task definition to deregister. You must specify a revision.
8563	//
8564	// TaskDefinition is a required field
8565	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
8566}
8567
8568// String returns the string representation
8569func (s DeregisterTaskDefinitionInput) String() string {
8570	return awsutil.Prettify(s)
8571}
8572
8573// GoString returns the string representation
8574func (s DeregisterTaskDefinitionInput) GoString() string {
8575	return s.String()
8576}
8577
8578// Validate inspects the fields of the type to determine if they are valid.
8579func (s *DeregisterTaskDefinitionInput) Validate() error {
8580	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
8581	if s.TaskDefinition == nil {
8582		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
8583	}
8584
8585	if invalidParams.Len() > 0 {
8586		return invalidParams
8587	}
8588	return nil
8589}
8590
8591// SetTaskDefinition sets the TaskDefinition field's value.
8592func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
8593	s.TaskDefinition = &v
8594	return s
8595}
8596
8597type DeregisterTaskDefinitionOutput struct {
8598	_ struct{} `type:"structure"`
8599
8600	// The full description of the deregistered task.
8601	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
8602}
8603
8604// String returns the string representation
8605func (s DeregisterTaskDefinitionOutput) String() string {
8606	return awsutil.Prettify(s)
8607}
8608
8609// GoString returns the string representation
8610func (s DeregisterTaskDefinitionOutput) GoString() string {
8611	return s.String()
8612}
8613
8614// SetTaskDefinition sets the TaskDefinition field's value.
8615func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
8616	s.TaskDefinition = v
8617	return s
8618}
8619
8620type DescribeClustersInput struct {
8621	_ struct{} `type:"structure"`
8622
8623	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
8624	// entries. If you do not specify a cluster, the default cluster is assumed.
8625	Clusters []*string `locationName:"clusters" type:"list"`
8626
8627	// Additional information about your clusters to be separated by launch type,
8628	// including:
8629	//
8630	//    * runningEC2TasksCount
8631	//
8632	//    * runningFargateTasksCount
8633	//
8634	//    * pendingEC2TasksCount
8635	//
8636	//    * pendingFargateTasksCount
8637	//
8638	//    * activeEC2ServiceCount
8639	//
8640	//    * activeFargateServiceCount
8641	//
8642	//    * drainingEC2ServiceCount
8643	//
8644	//    * drainingFargateServiceCount
8645	Include []*string `locationName:"include" type:"list"`
8646}
8647
8648// String returns the string representation
8649func (s DescribeClustersInput) String() string {
8650	return awsutil.Prettify(s)
8651}
8652
8653// GoString returns the string representation
8654func (s DescribeClustersInput) GoString() string {
8655	return s.String()
8656}
8657
8658// SetClusters sets the Clusters field's value.
8659func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
8660	s.Clusters = v
8661	return s
8662}
8663
8664// SetInclude sets the Include field's value.
8665func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
8666	s.Include = v
8667	return s
8668}
8669
8670type DescribeClustersOutput struct {
8671	_ struct{} `type:"structure"`
8672
8673	// The list of clusters.
8674	Clusters []*Cluster `locationName:"clusters" type:"list"`
8675
8676	// Any failures associated with the call.
8677	Failures []*Failure `locationName:"failures" type:"list"`
8678}
8679
8680// String returns the string representation
8681func (s DescribeClustersOutput) String() string {
8682	return awsutil.Prettify(s)
8683}
8684
8685// GoString returns the string representation
8686func (s DescribeClustersOutput) GoString() string {
8687	return s.String()
8688}
8689
8690// SetClusters sets the Clusters field's value.
8691func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
8692	s.Clusters = v
8693	return s
8694}
8695
8696// SetFailures sets the Failures field's value.
8697func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
8698	s.Failures = v
8699	return s
8700}
8701
8702type DescribeContainerInstancesInput struct {
8703	_ struct{} `type:"structure"`
8704
8705	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8706	// the container instances to describe. If you do not specify a cluster, the
8707	// default cluster is assumed. This parameter is required if the container instance
8708	// or container instances you are describing were launched in any cluster other
8709	// than the default cluster.
8710	Cluster *string `locationName:"cluster" type:"string"`
8711
8712	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
8713	// entries.
8714	//
8715	// ContainerInstances is a required field
8716	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
8717
8718	// Specifies whether you want to see the resource tags for the container instance.
8719	// If TAGS is specified, the tags are included in the response. If this field
8720	// is omitted, tags are not included in the response.
8721	Include []*string `locationName:"include" type:"list"`
8722}
8723
8724// String returns the string representation
8725func (s DescribeContainerInstancesInput) String() string {
8726	return awsutil.Prettify(s)
8727}
8728
8729// GoString returns the string representation
8730func (s DescribeContainerInstancesInput) GoString() string {
8731	return s.String()
8732}
8733
8734// Validate inspects the fields of the type to determine if they are valid.
8735func (s *DescribeContainerInstancesInput) Validate() error {
8736	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
8737	if s.ContainerInstances == nil {
8738		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
8739	}
8740
8741	if invalidParams.Len() > 0 {
8742		return invalidParams
8743	}
8744	return nil
8745}
8746
8747// SetCluster sets the Cluster field's value.
8748func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
8749	s.Cluster = &v
8750	return s
8751}
8752
8753// SetContainerInstances sets the ContainerInstances field's value.
8754func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
8755	s.ContainerInstances = v
8756	return s
8757}
8758
8759// SetInclude sets the Include field's value.
8760func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
8761	s.Include = v
8762	return s
8763}
8764
8765type DescribeContainerInstancesOutput struct {
8766	_ struct{} `type:"structure"`
8767
8768	// The list of container instances.
8769	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
8770
8771	// Any failures associated with the call.
8772	Failures []*Failure `locationName:"failures" type:"list"`
8773}
8774
8775// String returns the string representation
8776func (s DescribeContainerInstancesOutput) String() string {
8777	return awsutil.Prettify(s)
8778}
8779
8780// GoString returns the string representation
8781func (s DescribeContainerInstancesOutput) GoString() string {
8782	return s.String()
8783}
8784
8785// SetContainerInstances sets the ContainerInstances field's value.
8786func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
8787	s.ContainerInstances = v
8788	return s
8789}
8790
8791// SetFailures sets the Failures field's value.
8792func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
8793	s.Failures = v
8794	return s
8795}
8796
8797type DescribeServicesInput struct {
8798	_ struct{} `type:"structure"`
8799
8800	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
8801	// service to describe. If you do not specify a cluster, the default cluster
8802	// is assumed. This parameter is required if the service or services you are
8803	// describing were launched in any cluster other than the default cluster.
8804	Cluster *string `locationName:"cluster" type:"string"`
8805
8806	// Specifies whether you want to see the resource tags for the service. If TAGS
8807	// is specified, the tags are included in the response. If this field is omitted,
8808	// tags are not included in the response.
8809	Include []*string `locationName:"include" type:"list"`
8810
8811	// A list of services to describe. You may specify up to 10 services to describe
8812	// in a single operation.
8813	//
8814	// Services is a required field
8815	Services []*string `locationName:"services" type:"list" required:"true"`
8816}
8817
8818// String returns the string representation
8819func (s DescribeServicesInput) String() string {
8820	return awsutil.Prettify(s)
8821}
8822
8823// GoString returns the string representation
8824func (s DescribeServicesInput) GoString() string {
8825	return s.String()
8826}
8827
8828// Validate inspects the fields of the type to determine if they are valid.
8829func (s *DescribeServicesInput) Validate() error {
8830	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
8831	if s.Services == nil {
8832		invalidParams.Add(request.NewErrParamRequired("Services"))
8833	}
8834
8835	if invalidParams.Len() > 0 {
8836		return invalidParams
8837	}
8838	return nil
8839}
8840
8841// SetCluster sets the Cluster field's value.
8842func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
8843	s.Cluster = &v
8844	return s
8845}
8846
8847// SetInclude sets the Include field's value.
8848func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
8849	s.Include = v
8850	return s
8851}
8852
8853// SetServices sets the Services field's value.
8854func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
8855	s.Services = v
8856	return s
8857}
8858
8859type DescribeServicesOutput struct {
8860	_ struct{} `type:"structure"`
8861
8862	// Any failures associated with the call.
8863	Failures []*Failure `locationName:"failures" type:"list"`
8864
8865	// The list of services described.
8866	Services []*Service `locationName:"services" type:"list"`
8867}
8868
8869// String returns the string representation
8870func (s DescribeServicesOutput) String() string {
8871	return awsutil.Prettify(s)
8872}
8873
8874// GoString returns the string representation
8875func (s DescribeServicesOutput) GoString() string {
8876	return s.String()
8877}
8878
8879// SetFailures sets the Failures field's value.
8880func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
8881	s.Failures = v
8882	return s
8883}
8884
8885// SetServices sets the Services field's value.
8886func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
8887	s.Services = v
8888	return s
8889}
8890
8891type DescribeTaskDefinitionInput struct {
8892	_ struct{} `type:"structure"`
8893
8894	// Specifies whether to see the resource tags for the task definition. If TAGS
8895	// is specified, the tags are included in the response. If this field is omitted,
8896	// tags are not included in the response.
8897	Include []*string `locationName:"include" type:"list"`
8898
8899	// The family for the latest ACTIVE revision, family and revision (family:revision)
8900	// for a specific revision in the family, or full Amazon Resource Name (ARN)
8901	// of the task definition to describe.
8902	//
8903	// TaskDefinition is a required field
8904	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
8905}
8906
8907// String returns the string representation
8908func (s DescribeTaskDefinitionInput) String() string {
8909	return awsutil.Prettify(s)
8910}
8911
8912// GoString returns the string representation
8913func (s DescribeTaskDefinitionInput) GoString() string {
8914	return s.String()
8915}
8916
8917// Validate inspects the fields of the type to determine if they are valid.
8918func (s *DescribeTaskDefinitionInput) Validate() error {
8919	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
8920	if s.TaskDefinition == nil {
8921		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
8922	}
8923
8924	if invalidParams.Len() > 0 {
8925		return invalidParams
8926	}
8927	return nil
8928}
8929
8930// SetInclude sets the Include field's value.
8931func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
8932	s.Include = v
8933	return s
8934}
8935
8936// SetTaskDefinition sets the TaskDefinition field's value.
8937func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
8938	s.TaskDefinition = &v
8939	return s
8940}
8941
8942type DescribeTaskDefinitionOutput struct {
8943	_ struct{} `type:"structure"`
8944
8945	// The metadata that is applied to the task definition to help you categorize
8946	// and organize them. Each tag consists of a key and an optional value, both
8947	// of which you define.
8948	//
8949	// The following basic restrictions apply to tags:
8950	//
8951	//    * Maximum number of tags per resource - 50
8952	//
8953	//    * For each resource, each tag key must be unique, and each tag key can
8954	//    have only one value.
8955	//
8956	//    * Maximum key length - 128 Unicode characters in UTF-8
8957	//
8958	//    * Maximum value length - 256 Unicode characters in UTF-8
8959	//
8960	//    * If your tagging schema is used across multiple services and resources,
8961	//    remember that other services may have restrictions on allowed characters.
8962	//    Generally allowed characters are: letters, numbers, and spaces representable
8963	//    in UTF-8, and the following characters: + - = . _ : / @.
8964	//
8965	//    * Tag keys and values are case-sensitive.
8966	//
8967	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8968	//    as a prefix for either keys or values as it is reserved for AWS use. You
8969	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8970	//    prefix do not count against your tags per resource limit.
8971	Tags []*Tag `locationName:"tags" type:"list"`
8972
8973	// The full task definition description.
8974	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
8975}
8976
8977// String returns the string representation
8978func (s DescribeTaskDefinitionOutput) String() string {
8979	return awsutil.Prettify(s)
8980}
8981
8982// GoString returns the string representation
8983func (s DescribeTaskDefinitionOutput) GoString() string {
8984	return s.String()
8985}
8986
8987// SetTags sets the Tags field's value.
8988func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
8989	s.Tags = v
8990	return s
8991}
8992
8993// SetTaskDefinition sets the TaskDefinition field's value.
8994func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
8995	s.TaskDefinition = v
8996	return s
8997}
8998
8999type DescribeTaskSetsInput struct {
9000	_ struct{} `type:"structure"`
9001
9002	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9003	// the service that the task sets exist in.
9004	//
9005	// Cluster is a required field
9006	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9007
9008	// The short name or full Amazon Resource Name (ARN) of the service that the
9009	// task sets exist in.
9010	//
9011	// Service is a required field
9012	Service *string `locationName:"service" type:"string" required:"true"`
9013
9014	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
9015	TaskSets []*string `locationName:"taskSets" type:"list"`
9016}
9017
9018// String returns the string representation
9019func (s DescribeTaskSetsInput) String() string {
9020	return awsutil.Prettify(s)
9021}
9022
9023// GoString returns the string representation
9024func (s DescribeTaskSetsInput) GoString() string {
9025	return s.String()
9026}
9027
9028// Validate inspects the fields of the type to determine if they are valid.
9029func (s *DescribeTaskSetsInput) Validate() error {
9030	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
9031	if s.Cluster == nil {
9032		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9033	}
9034	if s.Service == nil {
9035		invalidParams.Add(request.NewErrParamRequired("Service"))
9036	}
9037
9038	if invalidParams.Len() > 0 {
9039		return invalidParams
9040	}
9041	return nil
9042}
9043
9044// SetCluster sets the Cluster field's value.
9045func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
9046	s.Cluster = &v
9047	return s
9048}
9049
9050// SetService sets the Service field's value.
9051func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
9052	s.Service = &v
9053	return s
9054}
9055
9056// SetTaskSets sets the TaskSets field's value.
9057func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
9058	s.TaskSets = v
9059	return s
9060}
9061
9062type DescribeTaskSetsOutput struct {
9063	_ struct{} `type:"structure"`
9064
9065	// Any failures associated with the call.
9066	Failures []*Failure `locationName:"failures" type:"list"`
9067
9068	// The list of task sets described.
9069	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
9070}
9071
9072// String returns the string representation
9073func (s DescribeTaskSetsOutput) String() string {
9074	return awsutil.Prettify(s)
9075}
9076
9077// GoString returns the string representation
9078func (s DescribeTaskSetsOutput) GoString() string {
9079	return s.String()
9080}
9081
9082// SetFailures sets the Failures field's value.
9083func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
9084	s.Failures = v
9085	return s
9086}
9087
9088// SetTaskSets sets the TaskSets field's value.
9089func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
9090	s.TaskSets = v
9091	return s
9092}
9093
9094type DescribeTasksInput struct {
9095	_ struct{} `type:"structure"`
9096
9097	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9098	// the task or tasks to describe. If you do not specify a cluster, the default
9099	// cluster is assumed. This parameter is required if the task or tasks you are
9100	// describing were launched in any cluster other than the default cluster.
9101	Cluster *string `locationName:"cluster" type:"string"`
9102
9103	// Specifies whether you want to see the resource tags for the task. If TAGS
9104	// is specified, the tags are included in the response. If this field is omitted,
9105	// tags are not included in the response.
9106	Include []*string `locationName:"include" type:"list"`
9107
9108	// A list of up to 100 task IDs or full ARN entries.
9109	//
9110	// Tasks is a required field
9111	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
9112}
9113
9114// String returns the string representation
9115func (s DescribeTasksInput) String() string {
9116	return awsutil.Prettify(s)
9117}
9118
9119// GoString returns the string representation
9120func (s DescribeTasksInput) GoString() string {
9121	return s.String()
9122}
9123
9124// Validate inspects the fields of the type to determine if they are valid.
9125func (s *DescribeTasksInput) Validate() error {
9126	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
9127	if s.Tasks == nil {
9128		invalidParams.Add(request.NewErrParamRequired("Tasks"))
9129	}
9130
9131	if invalidParams.Len() > 0 {
9132		return invalidParams
9133	}
9134	return nil
9135}
9136
9137// SetCluster sets the Cluster field's value.
9138func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
9139	s.Cluster = &v
9140	return s
9141}
9142
9143// SetInclude sets the Include field's value.
9144func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
9145	s.Include = v
9146	return s
9147}
9148
9149// SetTasks sets the Tasks field's value.
9150func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
9151	s.Tasks = v
9152	return s
9153}
9154
9155type DescribeTasksOutput struct {
9156	_ struct{} `type:"structure"`
9157
9158	// Any failures associated with the call.
9159	Failures []*Failure `locationName:"failures" type:"list"`
9160
9161	// The list of tasks.
9162	Tasks []*Task `locationName:"tasks" type:"list"`
9163}
9164
9165// String returns the string representation
9166func (s DescribeTasksOutput) String() string {
9167	return awsutil.Prettify(s)
9168}
9169
9170// GoString returns the string representation
9171func (s DescribeTasksOutput) GoString() string {
9172	return s.String()
9173}
9174
9175// SetFailures sets the Failures field's value.
9176func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
9177	s.Failures = v
9178	return s
9179}
9180
9181// SetTasks sets the Tasks field's value.
9182func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
9183	s.Tasks = v
9184	return s
9185}
9186
9187// An object representing a container instance host device.
9188type Device struct {
9189	_ struct{} `type:"structure"`
9190
9191	// The path inside the container at which to expose the host device.
9192	ContainerPath *string `locationName:"containerPath" type:"string"`
9193
9194	// The path for the device on the host container instance.
9195	//
9196	// HostPath is a required field
9197	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
9198
9199	// The explicit permissions to provide to the container for the device. By default,
9200	// the container has permissions for read, write, and mknod for the device.
9201	Permissions []*string `locationName:"permissions" type:"list"`
9202}
9203
9204// String returns the string representation
9205func (s Device) String() string {
9206	return awsutil.Prettify(s)
9207}
9208
9209// GoString returns the string representation
9210func (s Device) GoString() string {
9211	return s.String()
9212}
9213
9214// Validate inspects the fields of the type to determine if they are valid.
9215func (s *Device) Validate() error {
9216	invalidParams := request.ErrInvalidParams{Context: "Device"}
9217	if s.HostPath == nil {
9218		invalidParams.Add(request.NewErrParamRequired("HostPath"))
9219	}
9220
9221	if invalidParams.Len() > 0 {
9222		return invalidParams
9223	}
9224	return nil
9225}
9226
9227// SetContainerPath sets the ContainerPath field's value.
9228func (s *Device) SetContainerPath(v string) *Device {
9229	s.ContainerPath = &v
9230	return s
9231}
9232
9233// SetHostPath sets the HostPath field's value.
9234func (s *Device) SetHostPath(v string) *Device {
9235	s.HostPath = &v
9236	return s
9237}
9238
9239// SetPermissions sets the Permissions field's value.
9240func (s *Device) SetPermissions(v []*string) *Device {
9241	s.Permissions = v
9242	return s
9243}
9244
9245type DiscoverPollEndpointInput struct {
9246	_ struct{} `type:"structure"`
9247
9248	// The short name or full Amazon Resource Name (ARN) of the cluster to which
9249	// the container instance belongs.
9250	Cluster *string `locationName:"cluster" type:"string"`
9251
9252	// The container instance ID or full ARN of the container instance. The ARN
9253	// contains the arn:aws:ecs namespace, followed by the Region of the container
9254	// instance, the AWS account ID of the container instance owner, the container-instance
9255	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
9256	ContainerInstance *string `locationName:"containerInstance" type:"string"`
9257}
9258
9259// String returns the string representation
9260func (s DiscoverPollEndpointInput) String() string {
9261	return awsutil.Prettify(s)
9262}
9263
9264// GoString returns the string representation
9265func (s DiscoverPollEndpointInput) GoString() string {
9266	return s.String()
9267}
9268
9269// SetCluster sets the Cluster field's value.
9270func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
9271	s.Cluster = &v
9272	return s
9273}
9274
9275// SetContainerInstance sets the ContainerInstance field's value.
9276func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
9277	s.ContainerInstance = &v
9278	return s
9279}
9280
9281type DiscoverPollEndpointOutput struct {
9282	_ struct{} `type:"structure"`
9283
9284	// The endpoint for the Amazon ECS agent to poll.
9285	Endpoint *string `locationName:"endpoint" type:"string"`
9286
9287	// The telemetry endpoint for the Amazon ECS agent.
9288	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
9289}
9290
9291// String returns the string representation
9292func (s DiscoverPollEndpointOutput) String() string {
9293	return awsutil.Prettify(s)
9294}
9295
9296// GoString returns the string representation
9297func (s DiscoverPollEndpointOutput) GoString() string {
9298	return s.String()
9299}
9300
9301// SetEndpoint sets the Endpoint field's value.
9302func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
9303	s.Endpoint = &v
9304	return s
9305}
9306
9307// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
9308func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
9309	s.TelemetryEndpoint = &v
9310	return s
9311}
9312
9313// This parameter is specified when you are using Docker volumes. Docker volumes
9314// are only supported when you are using the EC2 launch type. Windows containers
9315// only support the use of the local driver. To use bind mounts, specify a host
9316// instead.
9317type DockerVolumeConfiguration struct {
9318	_ struct{} `type:"structure"`
9319
9320	// If this value is true, the Docker volume is created if it does not already
9321	// exist.
9322	//
9323	// This field is only used if the scope is shared.
9324	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
9325
9326	// The Docker volume driver to use. The driver value must match the driver name
9327	// provided by Docker because it is used for task placement. If the driver was
9328	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
9329	// driver name from your container instance. If the driver was installed using
9330	// another method, use Docker plugin discovery to retrieve the driver name.
9331	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
9332	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
9333	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9334	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
9335	Driver *string `locationName:"driver" type:"string"`
9336
9337	// A map of Docker driver-specific options passed through. This parameter maps
9338	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
9339	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9340	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
9341	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
9342
9343	// Custom metadata to add to your Docker volume. This parameter maps to Labels
9344	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
9345	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9346	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
9347	Labels map[string]*string `locationName:"labels" type:"map"`
9348
9349	// The scope for the Docker volume that determines its lifecycle. Docker volumes
9350	// that are scoped to a task are automatically provisioned when the task starts
9351	// and destroyed when the task stops. Docker volumes that are scoped as shared
9352	// persist after the task stops.
9353	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
9354}
9355
9356// String returns the string representation
9357func (s DockerVolumeConfiguration) String() string {
9358	return awsutil.Prettify(s)
9359}
9360
9361// GoString returns the string representation
9362func (s DockerVolumeConfiguration) GoString() string {
9363	return s.String()
9364}
9365
9366// SetAutoprovision sets the Autoprovision field's value.
9367func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
9368	s.Autoprovision = &v
9369	return s
9370}
9371
9372// SetDriver sets the Driver field's value.
9373func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
9374	s.Driver = &v
9375	return s
9376}
9377
9378// SetDriverOpts sets the DriverOpts field's value.
9379func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
9380	s.DriverOpts = v
9381	return s
9382}
9383
9384// SetLabels sets the Labels field's value.
9385func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
9386	s.Labels = v
9387	return s
9388}
9389
9390// SetScope sets the Scope field's value.
9391func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
9392	s.Scope = &v
9393	return s
9394}
9395
9396// A failed resource.
9397type Failure struct {
9398	_ struct{} `type:"structure"`
9399
9400	// The Amazon Resource Name (ARN) of the failed resource.
9401	Arn *string `locationName:"arn" type:"string"`
9402
9403	// The reason for the failure.
9404	Reason *string `locationName:"reason" type:"string"`
9405}
9406
9407// String returns the string representation
9408func (s Failure) String() string {
9409	return awsutil.Prettify(s)
9410}
9411
9412// GoString returns the string representation
9413func (s Failure) GoString() string {
9414	return s.String()
9415}
9416
9417// SetArn sets the Arn field's value.
9418func (s *Failure) SetArn(v string) *Failure {
9419	s.Arn = &v
9420	return s
9421}
9422
9423// SetReason sets the Reason field's value.
9424func (s *Failure) SetReason(v string) *Failure {
9425	s.Reason = &v
9426	return s
9427}
9428
9429// The FireLens configuration for the container. This is used to specify and
9430// configure a log router for container logs. For more information, see Custom
9431// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
9432// in the Amazon Elastic Container Service Developer Guide.
9433type FirelensConfiguration struct {
9434	_ struct{} `type:"structure"`
9435
9436	// The options to use when configuring the log router. This field is optional
9437	// and can be used to add additional metadata, such as the task, task definition,
9438	// cluster, and container instance details to the log event. If specified, the
9439	// syntax to use is "options":{"enable-ecs-log-metadata":"true|false"}.
9440	Options map[string]*string `locationName:"options" type:"map"`
9441
9442	// The log router to use. The valid values are fluentd or fluentbit.
9443	//
9444	// Type is a required field
9445	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
9446}
9447
9448// String returns the string representation
9449func (s FirelensConfiguration) String() string {
9450	return awsutil.Prettify(s)
9451}
9452
9453// GoString returns the string representation
9454func (s FirelensConfiguration) GoString() string {
9455	return s.String()
9456}
9457
9458// Validate inspects the fields of the type to determine if they are valid.
9459func (s *FirelensConfiguration) Validate() error {
9460	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
9461	if s.Type == nil {
9462		invalidParams.Add(request.NewErrParamRequired("Type"))
9463	}
9464
9465	if invalidParams.Len() > 0 {
9466		return invalidParams
9467	}
9468	return nil
9469}
9470
9471// SetOptions sets the Options field's value.
9472func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
9473	s.Options = v
9474	return s
9475}
9476
9477// SetType sets the Type field's value.
9478func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
9479	s.Type = &v
9480	return s
9481}
9482
9483// An object representing a container health check. Health check parameters
9484// that are specified in a container definition override any Docker health checks
9485// that exist in the container image (such as those specified in a parent image
9486// or from the image's Dockerfile).
9487//
9488// The following are notes about container health check support:
9489//
9490//    * Container health checks require version 1.17.0 or greater of the Amazon
9491//    ECS container agent. For more information, see Updating the Amazon ECS
9492//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
9493//
9494//    * Container health checks are supported for Fargate tasks if you are using
9495//    platform version 1.1.0 or greater. For more information, see AWS Fargate
9496//    Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
9497//
9498//    * Container health checks are not supported for tasks that are part of
9499//    a service that is configured to use a Classic Load Balancer.
9500type HealthCheck struct {
9501	_ struct{} `type:"structure"`
9502
9503	// A string array representing the command that the container runs to determine
9504	// if it is healthy. The string array must start with CMD to execute the command
9505	// arguments directly, or CMD-SHELL to run the command with the container's
9506	// default shell. For example:
9507	//
9508	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
9509	//
9510	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
9511	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9512	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
9513	//
9514	// Command is a required field
9515	Command []*string `locationName:"command" type:"list" required:"true"`
9516
9517	// The time period in seconds between each health check execution. You may specify
9518	// between 5 and 300 seconds. The default value is 30 seconds.
9519	Interval *int64 `locationName:"interval" type:"integer"`
9520
9521	// The number of times to retry a failed health check before the container is
9522	// considered unhealthy. You may specify between 1 and 10 retries. The default
9523	// value is 3.
9524	Retries *int64 `locationName:"retries" type:"integer"`
9525
9526	// The optional grace period within which to provide containers time to bootstrap
9527	// before failed health checks count towards the maximum number of retries.
9528	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
9529	// default.
9530	//
9531	// If a health check succeeds within the startPeriod, then the container is
9532	// considered healthy and any subsequent failures count toward the maximum number
9533	// of retries.
9534	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
9535
9536	// The time period in seconds to wait for a health check to succeed before it
9537	// is considered a failure. You may specify between 2 and 60 seconds. The default
9538	// value is 5.
9539	Timeout *int64 `locationName:"timeout" type:"integer"`
9540}
9541
9542// String returns the string representation
9543func (s HealthCheck) String() string {
9544	return awsutil.Prettify(s)
9545}
9546
9547// GoString returns the string representation
9548func (s HealthCheck) GoString() string {
9549	return s.String()
9550}
9551
9552// Validate inspects the fields of the type to determine if they are valid.
9553func (s *HealthCheck) Validate() error {
9554	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
9555	if s.Command == nil {
9556		invalidParams.Add(request.NewErrParamRequired("Command"))
9557	}
9558
9559	if invalidParams.Len() > 0 {
9560		return invalidParams
9561	}
9562	return nil
9563}
9564
9565// SetCommand sets the Command field's value.
9566func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
9567	s.Command = v
9568	return s
9569}
9570
9571// SetInterval sets the Interval field's value.
9572func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
9573	s.Interval = &v
9574	return s
9575}
9576
9577// SetRetries sets the Retries field's value.
9578func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
9579	s.Retries = &v
9580	return s
9581}
9582
9583// SetStartPeriod sets the StartPeriod field's value.
9584func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
9585	s.StartPeriod = &v
9586	return s
9587}
9588
9589// SetTimeout sets the Timeout field's value.
9590func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
9591	s.Timeout = &v
9592	return s
9593}
9594
9595// Hostnames and IP address entries that are added to the /etc/hosts file of
9596// a container via the extraHosts parameter of its ContainerDefinition.
9597type HostEntry struct {
9598	_ struct{} `type:"structure"`
9599
9600	// The hostname to use in the /etc/hosts entry.
9601	//
9602	// Hostname is a required field
9603	Hostname *string `locationName:"hostname" type:"string" required:"true"`
9604
9605	// The IP address to use in the /etc/hosts entry.
9606	//
9607	// IpAddress is a required field
9608	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
9609}
9610
9611// String returns the string representation
9612func (s HostEntry) String() string {
9613	return awsutil.Prettify(s)
9614}
9615
9616// GoString returns the string representation
9617func (s HostEntry) GoString() string {
9618	return s.String()
9619}
9620
9621// Validate inspects the fields of the type to determine if they are valid.
9622func (s *HostEntry) Validate() error {
9623	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
9624	if s.Hostname == nil {
9625		invalidParams.Add(request.NewErrParamRequired("Hostname"))
9626	}
9627	if s.IpAddress == nil {
9628		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
9629	}
9630
9631	if invalidParams.Len() > 0 {
9632		return invalidParams
9633	}
9634	return nil
9635}
9636
9637// SetHostname sets the Hostname field's value.
9638func (s *HostEntry) SetHostname(v string) *HostEntry {
9639	s.Hostname = &v
9640	return s
9641}
9642
9643// SetIpAddress sets the IpAddress field's value.
9644func (s *HostEntry) SetIpAddress(v string) *HostEntry {
9645	s.IpAddress = &v
9646	return s
9647}
9648
9649// Details on a container instance bind mount host volume.
9650type HostVolumeProperties struct {
9651	_ struct{} `type:"structure"`
9652
9653	// When the host parameter is used, specify a sourcePath to declare the path
9654	// on the host container instance that is presented to the container. If this
9655	// parameter is empty, then the Docker daemon has assigned a host path for you.
9656	// If the host parameter contains a sourcePath file location, then the data
9657	// volume persists at the specified location on the host container instance
9658	// until you delete it manually. If the sourcePath value does not exist on the
9659	// host container instance, the Docker daemon creates it. If the location does
9660	// exist, the contents of the source path folder are exported.
9661	//
9662	// If you are using the Fargate launch type, the sourcePath parameter is not
9663	// supported.
9664	SourcePath *string `locationName:"sourcePath" type:"string"`
9665}
9666
9667// String returns the string representation
9668func (s HostVolumeProperties) String() string {
9669	return awsutil.Prettify(s)
9670}
9671
9672// GoString returns the string representation
9673func (s HostVolumeProperties) GoString() string {
9674	return s.String()
9675}
9676
9677// SetSourcePath sets the SourcePath field's value.
9678func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
9679	s.SourcePath = &v
9680	return s
9681}
9682
9683// Details on a Elastic Inference accelerator. For more information, see Working
9684// with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
9685// in the Amazon Elastic Container Service Developer Guide.
9686type InferenceAccelerator struct {
9687	_ struct{} `type:"structure"`
9688
9689	// The Elastic Inference accelerator device name. The deviceName must also be
9690	// referenced in a container definition as a ResourceRequirement.
9691	//
9692	// DeviceName is a required field
9693	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
9694
9695	// The Elastic Inference accelerator type to use.
9696	//
9697	// DeviceType is a required field
9698	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
9699}
9700
9701// String returns the string representation
9702func (s InferenceAccelerator) String() string {
9703	return awsutil.Prettify(s)
9704}
9705
9706// GoString returns the string representation
9707func (s InferenceAccelerator) GoString() string {
9708	return s.String()
9709}
9710
9711// Validate inspects the fields of the type to determine if they are valid.
9712func (s *InferenceAccelerator) Validate() error {
9713	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
9714	if s.DeviceName == nil {
9715		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
9716	}
9717	if s.DeviceType == nil {
9718		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
9719	}
9720
9721	if invalidParams.Len() > 0 {
9722		return invalidParams
9723	}
9724	return nil
9725}
9726
9727// SetDeviceName sets the DeviceName field's value.
9728func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
9729	s.DeviceName = &v
9730	return s
9731}
9732
9733// SetDeviceType sets the DeviceType field's value.
9734func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
9735	s.DeviceType = &v
9736	return s
9737}
9738
9739// Details on an Elastic Inference accelerator task override. This parameter
9740// is used to override the Elastic Inference accelerator specified in the task
9741// definition. For more information, see Working with Amazon Elastic Inference
9742// on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
9743// in the Amazon Elastic Container Service Developer Guide.
9744type InferenceAcceleratorOverride struct {
9745	_ struct{} `type:"structure"`
9746
9747	// The Elastic Inference accelerator device name to override for the task. This
9748	// parameter must match a deviceName specified in the task definition.
9749	DeviceName *string `locationName:"deviceName" type:"string"`
9750
9751	// The Elastic Inference accelerator type to use.
9752	DeviceType *string `locationName:"deviceType" type:"string"`
9753}
9754
9755// String returns the string representation
9756func (s InferenceAcceleratorOverride) String() string {
9757	return awsutil.Prettify(s)
9758}
9759
9760// GoString returns the string representation
9761func (s InferenceAcceleratorOverride) GoString() string {
9762	return s.String()
9763}
9764
9765// SetDeviceName sets the DeviceName field's value.
9766func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
9767	s.DeviceName = &v
9768	return s
9769}
9770
9771// SetDeviceType sets the DeviceType field's value.
9772func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
9773	s.DeviceType = &v
9774	return s
9775}
9776
9777// The Linux capabilities for the container that are added to or dropped from
9778// the default configuration provided by Docker. For more information on the
9779// default capabilities and the non-default available capabilities, see Runtime
9780// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
9781// in the Docker run reference. For more detailed information on these Linux
9782// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
9783// Linux manual page.
9784type KernelCapabilities struct {
9785	_ struct{} `type:"structure"`
9786
9787	// The Linux capabilities for the container that have been added to the default
9788	// configuration provided by Docker. This parameter maps to CapAdd in the Create
9789	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9790	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9791	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/).
9792	//
9793	// If you are using tasks that use the Fargate launch type, the add parameter
9794	// is not supported.
9795	//
9796	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
9797	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
9798	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
9799	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
9800	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
9801	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
9802	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
9803	// "WAKE_ALARM"
9804	Add []*string `locationName:"add" type:"list"`
9805
9806	// The Linux capabilities for the container that have been removed from the
9807	// default configuration provided by Docker. This parameter maps to CapDrop
9808	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9809	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9810	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/).
9811	//
9812	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
9813	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
9814	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
9815	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
9816	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
9817	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
9818	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
9819	// "WAKE_ALARM"
9820	Drop []*string `locationName:"drop" type:"list"`
9821}
9822
9823// String returns the string representation
9824func (s KernelCapabilities) String() string {
9825	return awsutil.Prettify(s)
9826}
9827
9828// GoString returns the string representation
9829func (s KernelCapabilities) GoString() string {
9830	return s.String()
9831}
9832
9833// SetAdd sets the Add field's value.
9834func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
9835	s.Add = v
9836	return s
9837}
9838
9839// SetDrop sets the Drop field's value.
9840func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
9841	s.Drop = v
9842	return s
9843}
9844
9845// A key-value pair object.
9846type KeyValuePair struct {
9847	_ struct{} `type:"structure"`
9848
9849	// The name of the key-value pair. For environment variables, this is the name
9850	// of the environment variable.
9851	Name *string `locationName:"name" type:"string"`
9852
9853	// The value of the key-value pair. For environment variables, this is the value
9854	// of the environment variable.
9855	Value *string `locationName:"value" type:"string"`
9856}
9857
9858// String returns the string representation
9859func (s KeyValuePair) String() string {
9860	return awsutil.Prettify(s)
9861}
9862
9863// GoString returns the string representation
9864func (s KeyValuePair) GoString() string {
9865	return s.String()
9866}
9867
9868// SetName sets the Name field's value.
9869func (s *KeyValuePair) SetName(v string) *KeyValuePair {
9870	s.Name = &v
9871	return s
9872}
9873
9874// SetValue sets the Value field's value.
9875func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
9876	s.Value = &v
9877	return s
9878}
9879
9880// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
9881type LinuxParameters struct {
9882	_ struct{} `type:"structure"`
9883
9884	// The Linux capabilities for the container that are added to or dropped from
9885	// the default configuration provided by Docker.
9886	//
9887	// If you are using tasks that use the Fargate launch type, capabilities is
9888	// supported but the add parameter is not supported.
9889	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
9890
9891	// Any host devices to expose to the container. This parameter maps to Devices
9892	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9893	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9894	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
9895	//
9896	// If you are using tasks that use the Fargate launch type, the devices parameter
9897	// is not supported.
9898	Devices []*Device `locationName:"devices" type:"list"`
9899
9900	// Run an init process inside the container that forwards signals and reaps
9901	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/).
9902	// This parameter requires version 1.25 of the Docker Remote API or greater
9903	// on your container instance. To check the Docker Remote API version on your
9904	// container instance, log in to your container instance and run the following
9905	// command: sudo docker version --format '{{.Server.APIVersion}}'
9906	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
9907
9908	// The total amount of swap memory (in MiB) a container can use. This parameter
9909	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/)
9910	// where the value would be the sum of the container memory plus the maxSwap
9911	// value.
9912	//
9913	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
9914	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
9915	// the container will use the swap configuration for the container instance
9916	// it is running on. A maxSwap value must be set for the swappiness parameter
9917	// to be used.
9918	//
9919	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
9920	// is not supported.
9921	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
9922
9923	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
9924	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/).
9925	//
9926	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
9927	// parameter is not supported.
9928	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
9929
9930	// This allows you to tune a container's memory swappiness behavior. A swappiness
9931	// value of 0 will cause swapping to not happen unless absolutely necessary.
9932	// A swappiness value of 100 will cause pages to be swapped very aggressively.
9933	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
9934	// is not specified, a default value of 60 is used. If a value is not specified
9935	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
9936	// option to docker run (https://docs.docker.com/engine/reference/run/).
9937	//
9938	// If you are using tasks that use the Fargate launch type, the swappiness parameter
9939	// is not supported.
9940	Swappiness *int64 `locationName:"swappiness" type:"integer"`
9941
9942	// The container path, mount options, and size (in MiB) of the tmpfs mount.
9943	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/).
9944	//
9945	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
9946	// is not supported.
9947	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
9948}
9949
9950// String returns the string representation
9951func (s LinuxParameters) String() string {
9952	return awsutil.Prettify(s)
9953}
9954
9955// GoString returns the string representation
9956func (s LinuxParameters) GoString() string {
9957	return s.String()
9958}
9959
9960// Validate inspects the fields of the type to determine if they are valid.
9961func (s *LinuxParameters) Validate() error {
9962	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
9963	if s.Devices != nil {
9964		for i, v := range s.Devices {
9965			if v == nil {
9966				continue
9967			}
9968			if err := v.Validate(); err != nil {
9969				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
9970			}
9971		}
9972	}
9973	if s.Tmpfs != nil {
9974		for i, v := range s.Tmpfs {
9975			if v == nil {
9976				continue
9977			}
9978			if err := v.Validate(); err != nil {
9979				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
9980			}
9981		}
9982	}
9983
9984	if invalidParams.Len() > 0 {
9985		return invalidParams
9986	}
9987	return nil
9988}
9989
9990// SetCapabilities sets the Capabilities field's value.
9991func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
9992	s.Capabilities = v
9993	return s
9994}
9995
9996// SetDevices sets the Devices field's value.
9997func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
9998	s.Devices = v
9999	return s
10000}
10001
10002// SetInitProcessEnabled sets the InitProcessEnabled field's value.
10003func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
10004	s.InitProcessEnabled = &v
10005	return s
10006}
10007
10008// SetMaxSwap sets the MaxSwap field's value.
10009func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
10010	s.MaxSwap = &v
10011	return s
10012}
10013
10014// SetSharedMemorySize sets the SharedMemorySize field's value.
10015func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
10016	s.SharedMemorySize = &v
10017	return s
10018}
10019
10020// SetSwappiness sets the Swappiness field's value.
10021func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
10022	s.Swappiness = &v
10023	return s
10024}
10025
10026// SetTmpfs sets the Tmpfs field's value.
10027func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
10028	s.Tmpfs = v
10029	return s
10030}
10031
10032type ListAccountSettingsInput struct {
10033	_ struct{} `type:"structure"`
10034
10035	// Specifies whether to return the effective settings. If true, the account
10036	// settings for the root user or the default setting for the principalArn are
10037	// returned. If false, the account settings for the principalArn are returned
10038	// if they are set. Otherwise, no account settings are returned.
10039	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
10040
10041	// The maximum number of account setting results returned by ListAccountSettings
10042	// in paginated output. When this parameter is used, ListAccountSettings only
10043	// returns maxResults results in a single page along with a nextToken response
10044	// element. The remaining results of the initial request can be seen by sending
10045	// another ListAccountSettings request with the returned nextToken value. This
10046	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
10047	// returns up to 10 results and a nextToken value if applicable.
10048	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10049
10050	// The resource name you want to list the account settings for.
10051	Name *string `locationName:"name" type:"string" enum:"SettingName"`
10052
10053	// The nextToken value returned from a previous paginated ListAccountSettings
10054	// request where maxResults was used and the results exceeded the value of that
10055	// parameter. Pagination continues from the end of the previous results that
10056	// returned the nextToken value.
10057	//
10058	// This token should be treated as an opaque identifier that is only used to
10059	// retrieve the next items in a list and not for other programmatic purposes.
10060	NextToken *string `locationName:"nextToken" type:"string"`
10061
10062	// The ARN of the principal, which can be an IAM user, IAM role, or the root
10063	// user. If this field is omitted, the account settings are listed only for
10064	// the authenticated user.
10065	PrincipalArn *string `locationName:"principalArn" type:"string"`
10066
10067	// The value of the account settings with which to filter results. You must
10068	// also specify an account setting name to use this parameter.
10069	Value *string `locationName:"value" type:"string"`
10070}
10071
10072// String returns the string representation
10073func (s ListAccountSettingsInput) String() string {
10074	return awsutil.Prettify(s)
10075}
10076
10077// GoString returns the string representation
10078func (s ListAccountSettingsInput) GoString() string {
10079	return s.String()
10080}
10081
10082// SetEffectiveSettings sets the EffectiveSettings field's value.
10083func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
10084	s.EffectiveSettings = &v
10085	return s
10086}
10087
10088// SetMaxResults sets the MaxResults field's value.
10089func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
10090	s.MaxResults = &v
10091	return s
10092}
10093
10094// SetName sets the Name field's value.
10095func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
10096	s.Name = &v
10097	return s
10098}
10099
10100// SetNextToken sets the NextToken field's value.
10101func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
10102	s.NextToken = &v
10103	return s
10104}
10105
10106// SetPrincipalArn sets the PrincipalArn field's value.
10107func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
10108	s.PrincipalArn = &v
10109	return s
10110}
10111
10112// SetValue sets the Value field's value.
10113func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
10114	s.Value = &v
10115	return s
10116}
10117
10118type ListAccountSettingsOutput struct {
10119	_ struct{} `type:"structure"`
10120
10121	// The nextToken value to include in a future ListAccountSettings request. When
10122	// the results of a ListAccountSettings request exceed maxResults, this value
10123	// can be used to retrieve the next page of results. This value is null when
10124	// there are no more results to return.
10125	NextToken *string `locationName:"nextToken" type:"string"`
10126
10127	// The account settings for the resource.
10128	Settings []*Setting `locationName:"settings" type:"list"`
10129}
10130
10131// String returns the string representation
10132func (s ListAccountSettingsOutput) String() string {
10133	return awsutil.Prettify(s)
10134}
10135
10136// GoString returns the string representation
10137func (s ListAccountSettingsOutput) GoString() string {
10138	return s.String()
10139}
10140
10141// SetNextToken sets the NextToken field's value.
10142func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
10143	s.NextToken = &v
10144	return s
10145}
10146
10147// SetSettings sets the Settings field's value.
10148func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
10149	s.Settings = v
10150	return s
10151}
10152
10153type ListAttributesInput struct {
10154	_ struct{} `type:"structure"`
10155
10156	// The name of the attribute with which to filter the results.
10157	AttributeName *string `locationName:"attributeName" type:"string"`
10158
10159	// The value of the attribute with which to filter results. You must also specify
10160	// an attribute name to use this parameter.
10161	AttributeValue *string `locationName:"attributeValue" type:"string"`
10162
10163	// The short name or full Amazon Resource Name (ARN) of the cluster to list
10164	// attributes. If you do not specify a cluster, the default cluster is assumed.
10165	Cluster *string `locationName:"cluster" type:"string"`
10166
10167	// The maximum number of cluster results returned by ListAttributes in paginated
10168	// output. When this parameter is used, ListAttributes only returns maxResults
10169	// results in a single page along with a nextToken response element. The remaining
10170	// results of the initial request can be seen by sending another ListAttributes
10171	// request with the returned nextToken value. This value can be between 1 and
10172	// 100. If this parameter is not used, then ListAttributes returns up to 100
10173	// results and a nextToken value if applicable.
10174	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10175
10176	// The nextToken value returned from a previous paginated ListAttributes request
10177	// where maxResults was used and the results exceeded the value of that parameter.
10178	// Pagination continues from the end of the previous results that returned the
10179	// nextToken value.
10180	//
10181	// This token should be treated as an opaque identifier that is only used to
10182	// retrieve the next items in a list and not for other programmatic purposes.
10183	NextToken *string `locationName:"nextToken" type:"string"`
10184
10185	// The type of the target with which to list attributes.
10186	//
10187	// TargetType is a required field
10188	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
10189}
10190
10191// String returns the string representation
10192func (s ListAttributesInput) String() string {
10193	return awsutil.Prettify(s)
10194}
10195
10196// GoString returns the string representation
10197func (s ListAttributesInput) GoString() string {
10198	return s.String()
10199}
10200
10201// Validate inspects the fields of the type to determine if they are valid.
10202func (s *ListAttributesInput) Validate() error {
10203	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
10204	if s.TargetType == nil {
10205		invalidParams.Add(request.NewErrParamRequired("TargetType"))
10206	}
10207
10208	if invalidParams.Len() > 0 {
10209		return invalidParams
10210	}
10211	return nil
10212}
10213
10214// SetAttributeName sets the AttributeName field's value.
10215func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
10216	s.AttributeName = &v
10217	return s
10218}
10219
10220// SetAttributeValue sets the AttributeValue field's value.
10221func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
10222	s.AttributeValue = &v
10223	return s
10224}
10225
10226// SetCluster sets the Cluster field's value.
10227func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
10228	s.Cluster = &v
10229	return s
10230}
10231
10232// SetMaxResults sets the MaxResults field's value.
10233func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
10234	s.MaxResults = &v
10235	return s
10236}
10237
10238// SetNextToken sets the NextToken field's value.
10239func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
10240	s.NextToken = &v
10241	return s
10242}
10243
10244// SetTargetType sets the TargetType field's value.
10245func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
10246	s.TargetType = &v
10247	return s
10248}
10249
10250type ListAttributesOutput struct {
10251	_ struct{} `type:"structure"`
10252
10253	// A list of attribute objects that meet the criteria of the request.
10254	Attributes []*Attribute `locationName:"attributes" type:"list"`
10255
10256	// The nextToken value to include in a future ListAttributes request. When the
10257	// results of a ListAttributes request exceed maxResults, this value can be
10258	// used to retrieve the next page of results. This value is null when there
10259	// are no more results to return.
10260	NextToken *string `locationName:"nextToken" type:"string"`
10261}
10262
10263// String returns the string representation
10264func (s ListAttributesOutput) String() string {
10265	return awsutil.Prettify(s)
10266}
10267
10268// GoString returns the string representation
10269func (s ListAttributesOutput) GoString() string {
10270	return s.String()
10271}
10272
10273// SetAttributes sets the Attributes field's value.
10274func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
10275	s.Attributes = v
10276	return s
10277}
10278
10279// SetNextToken sets the NextToken field's value.
10280func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
10281	s.NextToken = &v
10282	return s
10283}
10284
10285type ListClustersInput struct {
10286	_ struct{} `type:"structure"`
10287
10288	// The maximum number of cluster results returned by ListClusters in paginated
10289	// output. When this parameter is used, ListClusters only returns maxResults
10290	// results in a single page along with a nextToken response element. The remaining
10291	// results of the initial request can be seen by sending another ListClusters
10292	// request with the returned nextToken value. This value can be between 1 and
10293	// 100. If this parameter is not used, then ListClusters returns up to 100 results
10294	// and a nextToken value if applicable.
10295	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10296
10297	// The nextToken value returned from a previous paginated ListClusters request
10298	// where maxResults was used and the results exceeded the value of that parameter.
10299	// Pagination continues from the end of the previous results that returned the
10300	// nextToken value.
10301	//
10302	// This token should be treated as an opaque identifier that is only used to
10303	// retrieve the next items in a list and not for other programmatic purposes.
10304	NextToken *string `locationName:"nextToken" type:"string"`
10305}
10306
10307// String returns the string representation
10308func (s ListClustersInput) String() string {
10309	return awsutil.Prettify(s)
10310}
10311
10312// GoString returns the string representation
10313func (s ListClustersInput) GoString() string {
10314	return s.String()
10315}
10316
10317// SetMaxResults sets the MaxResults field's value.
10318func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
10319	s.MaxResults = &v
10320	return s
10321}
10322
10323// SetNextToken sets the NextToken field's value.
10324func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
10325	s.NextToken = &v
10326	return s
10327}
10328
10329type ListClustersOutput struct {
10330	_ struct{} `type:"structure"`
10331
10332	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
10333	// with your account.
10334	ClusterArns []*string `locationName:"clusterArns" type:"list"`
10335
10336	// The nextToken value to include in a future ListClusters request. When the
10337	// results of a ListClusters request exceed maxResults, this value can be used
10338	// to retrieve the next page of results. This value is null when there are no
10339	// more results to return.
10340	NextToken *string `locationName:"nextToken" type:"string"`
10341}
10342
10343// String returns the string representation
10344func (s ListClustersOutput) String() string {
10345	return awsutil.Prettify(s)
10346}
10347
10348// GoString returns the string representation
10349func (s ListClustersOutput) GoString() string {
10350	return s.String()
10351}
10352
10353// SetClusterArns sets the ClusterArns field's value.
10354func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
10355	s.ClusterArns = v
10356	return s
10357}
10358
10359// SetNextToken sets the NextToken field's value.
10360func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
10361	s.NextToken = &v
10362	return s
10363}
10364
10365type ListContainerInstancesInput struct {
10366	_ struct{} `type:"structure"`
10367
10368	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10369	// the container instances to list. If you do not specify a cluster, the default
10370	// cluster is assumed.
10371	Cluster *string `locationName:"cluster" type:"string"`
10372
10373	// You can filter the results of a ListContainerInstances operation with cluster
10374	// query language statements. For more information, see Cluster Query Language
10375	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
10376	// in the Amazon Elastic Container Service Developer Guide.
10377	Filter *string `locationName:"filter" type:"string"`
10378
10379	// The maximum number of container instance results returned by ListContainerInstances
10380	// in paginated output. When this parameter is used, ListContainerInstances
10381	// only returns maxResults results in a single page along with a nextToken response
10382	// element. The remaining results of the initial request can be seen by sending
10383	// another ListContainerInstances request with the returned nextToken value.
10384	// This value can be between 1 and 100. If this parameter is not used, then
10385	// ListContainerInstances returns up to 100 results and a nextToken value if
10386	// applicable.
10387	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10388
10389	// The nextToken value returned from a previous paginated ListContainerInstances
10390	// request where maxResults was used and the results exceeded the value of that
10391	// parameter. Pagination continues from the end of the previous results that
10392	// returned the nextToken value.
10393	//
10394	// This token should be treated as an opaque identifier that is only used to
10395	// retrieve the next items in a list and not for other programmatic purposes.
10396	NextToken *string `locationName:"nextToken" type:"string"`
10397
10398	// Filters the container instances by status. For example, if you specify the
10399	// DRAINING status, the results include only container instances that have been
10400	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
10401	// this parameter, the default is to include container instances set to all
10402	// states other than INACTIVE.
10403	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
10404}
10405
10406// String returns the string representation
10407func (s ListContainerInstancesInput) String() string {
10408	return awsutil.Prettify(s)
10409}
10410
10411// GoString returns the string representation
10412func (s ListContainerInstancesInput) GoString() string {
10413	return s.String()
10414}
10415
10416// SetCluster sets the Cluster field's value.
10417func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
10418	s.Cluster = &v
10419	return s
10420}
10421
10422// SetFilter sets the Filter field's value.
10423func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
10424	s.Filter = &v
10425	return s
10426}
10427
10428// SetMaxResults sets the MaxResults field's value.
10429func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
10430	s.MaxResults = &v
10431	return s
10432}
10433
10434// SetNextToken sets the NextToken field's value.
10435func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
10436	s.NextToken = &v
10437	return s
10438}
10439
10440// SetStatus sets the Status field's value.
10441func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
10442	s.Status = &v
10443	return s
10444}
10445
10446type ListContainerInstancesOutput struct {
10447	_ struct{} `type:"structure"`
10448
10449	// The list of container instances with full ARN entries for each container
10450	// instance associated with the specified cluster.
10451	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
10452
10453	// The nextToken value to include in a future ListContainerInstances request.
10454	// When the results of a ListContainerInstances request exceed maxResults, this
10455	// value can be used to retrieve the next page of results. This value is null
10456	// when there are no more results to return.
10457	NextToken *string `locationName:"nextToken" type:"string"`
10458}
10459
10460// String returns the string representation
10461func (s ListContainerInstancesOutput) String() string {
10462	return awsutil.Prettify(s)
10463}
10464
10465// GoString returns the string representation
10466func (s ListContainerInstancesOutput) GoString() string {
10467	return s.String()
10468}
10469
10470// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
10471func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
10472	s.ContainerInstanceArns = v
10473	return s
10474}
10475
10476// SetNextToken sets the NextToken field's value.
10477func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
10478	s.NextToken = &v
10479	return s
10480}
10481
10482type ListServicesInput struct {
10483	_ struct{} `type:"structure"`
10484
10485	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10486	// the services to list. If you do not specify a cluster, the default cluster
10487	// is assumed.
10488	Cluster *string `locationName:"cluster" type:"string"`
10489
10490	// The launch type for the services to list.
10491	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10492
10493	// The maximum number of service results returned by ListServices in paginated
10494	// output. When this parameter is used, ListServices only returns maxResults
10495	// results in a single page along with a nextToken response element. The remaining
10496	// results of the initial request can be seen by sending another ListServices
10497	// request with the returned nextToken value. This value can be between 1 and
10498	// 100. If this parameter is not used, then ListServices returns up to 10 results
10499	// and a nextToken value if applicable.
10500	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10501
10502	// The nextToken value returned from a previous paginated ListServices request
10503	// where maxResults was used and the results exceeded the value of that parameter.
10504	// Pagination continues from the end of the previous results that returned the
10505	// nextToken value.
10506	//
10507	// This token should be treated as an opaque identifier that is only used to
10508	// retrieve the next items in a list and not for other programmatic purposes.
10509	NextToken *string `locationName:"nextToken" type:"string"`
10510
10511	// The scheduling strategy for services to list.
10512	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
10513}
10514
10515// String returns the string representation
10516func (s ListServicesInput) String() string {
10517	return awsutil.Prettify(s)
10518}
10519
10520// GoString returns the string representation
10521func (s ListServicesInput) GoString() string {
10522	return s.String()
10523}
10524
10525// SetCluster sets the Cluster field's value.
10526func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
10527	s.Cluster = &v
10528	return s
10529}
10530
10531// SetLaunchType sets the LaunchType field's value.
10532func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
10533	s.LaunchType = &v
10534	return s
10535}
10536
10537// SetMaxResults sets the MaxResults field's value.
10538func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
10539	s.MaxResults = &v
10540	return s
10541}
10542
10543// SetNextToken sets the NextToken field's value.
10544func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
10545	s.NextToken = &v
10546	return s
10547}
10548
10549// SetSchedulingStrategy sets the SchedulingStrategy field's value.
10550func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
10551	s.SchedulingStrategy = &v
10552	return s
10553}
10554
10555type ListServicesOutput struct {
10556	_ struct{} `type:"structure"`
10557
10558	// The nextToken value to include in a future ListServices request. When the
10559	// results of a ListServices request exceed maxResults, this value can be used
10560	// to retrieve the next page of results. This value is null when there are no
10561	// more results to return.
10562	NextToken *string `locationName:"nextToken" type:"string"`
10563
10564	// The list of full ARN entries for each service associated with the specified
10565	// cluster.
10566	ServiceArns []*string `locationName:"serviceArns" type:"list"`
10567}
10568
10569// String returns the string representation
10570func (s ListServicesOutput) String() string {
10571	return awsutil.Prettify(s)
10572}
10573
10574// GoString returns the string representation
10575func (s ListServicesOutput) GoString() string {
10576	return s.String()
10577}
10578
10579// SetNextToken sets the NextToken field's value.
10580func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
10581	s.NextToken = &v
10582	return s
10583}
10584
10585// SetServiceArns sets the ServiceArns field's value.
10586func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
10587	s.ServiceArns = v
10588	return s
10589}
10590
10591type ListTagsForResourceInput struct {
10592	_ struct{} `type:"structure"`
10593
10594	// The Amazon Resource Name (ARN) that identifies the resource for which to
10595	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
10596	// task definitions, clusters, and container instances.
10597	//
10598	// ResourceArn is a required field
10599	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
10600}
10601
10602// String returns the string representation
10603func (s ListTagsForResourceInput) String() string {
10604	return awsutil.Prettify(s)
10605}
10606
10607// GoString returns the string representation
10608func (s ListTagsForResourceInput) GoString() string {
10609	return s.String()
10610}
10611
10612// Validate inspects the fields of the type to determine if they are valid.
10613func (s *ListTagsForResourceInput) Validate() error {
10614	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
10615	if s.ResourceArn == nil {
10616		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10617	}
10618
10619	if invalidParams.Len() > 0 {
10620		return invalidParams
10621	}
10622	return nil
10623}
10624
10625// SetResourceArn sets the ResourceArn field's value.
10626func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
10627	s.ResourceArn = &v
10628	return s
10629}
10630
10631type ListTagsForResourceOutput struct {
10632	_ struct{} `type:"structure"`
10633
10634	// The tags for the resource.
10635	Tags []*Tag `locationName:"tags" type:"list"`
10636}
10637
10638// String returns the string representation
10639func (s ListTagsForResourceOutput) String() string {
10640	return awsutil.Prettify(s)
10641}
10642
10643// GoString returns the string representation
10644func (s ListTagsForResourceOutput) GoString() string {
10645	return s.String()
10646}
10647
10648// SetTags sets the Tags field's value.
10649func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
10650	s.Tags = v
10651	return s
10652}
10653
10654type ListTaskDefinitionFamiliesInput struct {
10655	_ struct{} `type:"structure"`
10656
10657	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
10658	// If you specify a familyPrefix, only task definition family names that begin
10659	// with the familyPrefix string are returned.
10660	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
10661
10662	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
10663	// in paginated output. When this parameter is used, ListTaskDefinitions only
10664	// returns maxResults results in a single page along with a nextToken response
10665	// element. The remaining results of the initial request can be seen by sending
10666	// another ListTaskDefinitionFamilies request with the returned nextToken value.
10667	// This value can be between 1 and 100. If this parameter is not used, then
10668	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
10669	// if applicable.
10670	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10671
10672	// The nextToken value returned from a previous paginated ListTaskDefinitionFamilies
10673	// request where maxResults was used and the results exceeded the value of that
10674	// parameter. Pagination continues from the end of the previous results that
10675	// returned the nextToken value.
10676	//
10677	// This token should be treated as an opaque identifier that is only used to
10678	// retrieve the next items in a list and not for other programmatic purposes.
10679	NextToken *string `locationName:"nextToken" type:"string"`
10680
10681	// The task definition family status with which to filter the ListTaskDefinitionFamilies
10682	// results. By default, both ACTIVE and INACTIVE task definition families are
10683	// listed. If this parameter is set to ACTIVE, only task definition families
10684	// that have an ACTIVE task definition revision are returned. If this parameter
10685	// is set to INACTIVE, only task definition families that do not have any ACTIVE
10686	// task definition revisions are returned. If you paginate the resulting output,
10687	// be sure to keep the status value constant in each subsequent request.
10688	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
10689}
10690
10691// String returns the string representation
10692func (s ListTaskDefinitionFamiliesInput) String() string {
10693	return awsutil.Prettify(s)
10694}
10695
10696// GoString returns the string representation
10697func (s ListTaskDefinitionFamiliesInput) GoString() string {
10698	return s.String()
10699}
10700
10701// SetFamilyPrefix sets the FamilyPrefix field's value.
10702func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
10703	s.FamilyPrefix = &v
10704	return s
10705}
10706
10707// SetMaxResults sets the MaxResults field's value.
10708func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
10709	s.MaxResults = &v
10710	return s
10711}
10712
10713// SetNextToken sets the NextToken field's value.
10714func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
10715	s.NextToken = &v
10716	return s
10717}
10718
10719// SetStatus sets the Status field's value.
10720func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
10721	s.Status = &v
10722	return s
10723}
10724
10725type ListTaskDefinitionFamiliesOutput struct {
10726	_ struct{} `type:"structure"`
10727
10728	// The list of task definition family names that match the ListTaskDefinitionFamilies
10729	// request.
10730	Families []*string `locationName:"families" type:"list"`
10731
10732	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
10733	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
10734	// this value can be used to retrieve the next page of results. This value is
10735	// null when there are no more results to return.
10736	NextToken *string `locationName:"nextToken" type:"string"`
10737}
10738
10739// String returns the string representation
10740func (s ListTaskDefinitionFamiliesOutput) String() string {
10741	return awsutil.Prettify(s)
10742}
10743
10744// GoString returns the string representation
10745func (s ListTaskDefinitionFamiliesOutput) GoString() string {
10746	return s.String()
10747}
10748
10749// SetFamilies sets the Families field's value.
10750func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
10751	s.Families = v
10752	return s
10753}
10754
10755// SetNextToken sets the NextToken field's value.
10756func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
10757	s.NextToken = &v
10758	return s
10759}
10760
10761type ListTaskDefinitionsInput struct {
10762	_ struct{} `type:"structure"`
10763
10764	// The full family name with which to filter the ListTaskDefinitions results.
10765	// Specifying a familyPrefix limits the listed task definitions to task definition
10766	// revisions that belong to that family.
10767	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
10768
10769	// The maximum number of task definition results returned by ListTaskDefinitions
10770	// in paginated output. When this parameter is used, ListTaskDefinitions only
10771	// returns maxResults results in a single page along with a nextToken response
10772	// element. The remaining results of the initial request can be seen by sending
10773	// another ListTaskDefinitions request with the returned nextToken value. This
10774	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
10775	// returns up to 100 results and a nextToken value if applicable.
10776	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10777
10778	// The nextToken value returned from a previous paginated ListTaskDefinitions
10779	// request where maxResults was used and the results exceeded the value of that
10780	// parameter. Pagination continues from the end of the previous results that
10781	// returned the nextToken value.
10782	//
10783	// This token should be treated as an opaque identifier that is only used to
10784	// retrieve the next items in a list and not for other programmatic purposes.
10785	NextToken *string `locationName:"nextToken" type:"string"`
10786
10787	// The order in which to sort the results. Valid values are ASC and DESC. By
10788	// default (ASC), task definitions are listed lexicographically by family name
10789	// and in ascending numerical order by revision so that the newest task definitions
10790	// in a family are listed last. Setting this parameter to DESC reverses the
10791	// sort order on family name and revision so that the newest task definitions
10792	// in a family are listed first.
10793	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
10794
10795	// The task definition status with which to filter the ListTaskDefinitions results.
10796	// By default, only ACTIVE task definitions are listed. By setting this parameter
10797	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
10798	// active task or service still references them. If you paginate the resulting
10799	// output, be sure to keep the status value constant in each subsequent request.
10800	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
10801}
10802
10803// String returns the string representation
10804func (s ListTaskDefinitionsInput) String() string {
10805	return awsutil.Prettify(s)
10806}
10807
10808// GoString returns the string representation
10809func (s ListTaskDefinitionsInput) GoString() string {
10810	return s.String()
10811}
10812
10813// SetFamilyPrefix sets the FamilyPrefix field's value.
10814func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
10815	s.FamilyPrefix = &v
10816	return s
10817}
10818
10819// SetMaxResults sets the MaxResults field's value.
10820func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
10821	s.MaxResults = &v
10822	return s
10823}
10824
10825// SetNextToken sets the NextToken field's value.
10826func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
10827	s.NextToken = &v
10828	return s
10829}
10830
10831// SetSort sets the Sort field's value.
10832func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
10833	s.Sort = &v
10834	return s
10835}
10836
10837// SetStatus sets the Status field's value.
10838func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
10839	s.Status = &v
10840	return s
10841}
10842
10843type ListTaskDefinitionsOutput struct {
10844	_ struct{} `type:"structure"`
10845
10846	// The nextToken value to include in a future ListTaskDefinitions request. When
10847	// the results of a ListTaskDefinitions request exceed maxResults, this value
10848	// can be used to retrieve the next page of results. This value is null when
10849	// there are no more results to return.
10850	NextToken *string `locationName:"nextToken" type:"string"`
10851
10852	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
10853	// request.
10854	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
10855}
10856
10857// String returns the string representation
10858func (s ListTaskDefinitionsOutput) String() string {
10859	return awsutil.Prettify(s)
10860}
10861
10862// GoString returns the string representation
10863func (s ListTaskDefinitionsOutput) GoString() string {
10864	return s.String()
10865}
10866
10867// SetNextToken sets the NextToken field's value.
10868func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
10869	s.NextToken = &v
10870	return s
10871}
10872
10873// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
10874func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
10875	s.TaskDefinitionArns = v
10876	return s
10877}
10878
10879type ListTasksInput struct {
10880	_ struct{} `type:"structure"`
10881
10882	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10883	// the tasks to list. If you do not specify a cluster, the default cluster is
10884	// assumed.
10885	Cluster *string `locationName:"cluster" type:"string"`
10886
10887	// The container instance ID or full ARN of the container instance with which
10888	// to filter the ListTasks results. Specifying a containerInstance limits the
10889	// results to tasks that belong to that container instance.
10890	ContainerInstance *string `locationName:"containerInstance" type:"string"`
10891
10892	// The task desired status with which to filter the ListTasks results. Specifying
10893	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
10894	// set the desired status to STOPPED. This can be useful for debugging tasks
10895	// that are not starting properly or have died or finished. The default status
10896	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
10897	// status to RUNNING.
10898	//
10899	// Although you can filter results based on a desired status of PENDING, this
10900	// does not return any results. Amazon ECS never sets the desired status of
10901	// a task to that value (only a task's lastStatus may have a value of PENDING).
10902	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
10903
10904	// The name of the family with which to filter the ListTasks results. Specifying
10905	// a family limits the results to tasks that belong to that family.
10906	Family *string `locationName:"family" type:"string"`
10907
10908	// The launch type for services to list.
10909	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10910
10911	// The maximum number of task results returned by ListTasks in paginated output.
10912	// When this parameter is used, ListTasks only returns maxResults results in
10913	// a single page along with a nextToken response element. The remaining results
10914	// of the initial request can be seen by sending another ListTasks request with
10915	// the returned nextToken value. This value can be between 1 and 100. If this
10916	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
10917	// value if applicable.
10918	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10919
10920	// The nextToken value returned from a previous paginated ListTasks request
10921	// where maxResults was used and the results exceeded the value of that parameter.
10922	// Pagination continues from the end of the previous results that returned the
10923	// nextToken value.
10924	//
10925	// This token should be treated as an opaque identifier that is only used to
10926	// retrieve the next items in a list and not for other programmatic purposes.
10927	NextToken *string `locationName:"nextToken" type:"string"`
10928
10929	// The name of the service with which to filter the ListTasks results. Specifying
10930	// a serviceName limits the results to tasks that belong to that service.
10931	ServiceName *string `locationName:"serviceName" type:"string"`
10932
10933	// The startedBy value with which to filter the task results. Specifying a startedBy
10934	// value limits the results to tasks that were started with that value.
10935	StartedBy *string `locationName:"startedBy" type:"string"`
10936}
10937
10938// String returns the string representation
10939func (s ListTasksInput) String() string {
10940	return awsutil.Prettify(s)
10941}
10942
10943// GoString returns the string representation
10944func (s ListTasksInput) GoString() string {
10945	return s.String()
10946}
10947
10948// SetCluster sets the Cluster field's value.
10949func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
10950	s.Cluster = &v
10951	return s
10952}
10953
10954// SetContainerInstance sets the ContainerInstance field's value.
10955func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
10956	s.ContainerInstance = &v
10957	return s
10958}
10959
10960// SetDesiredStatus sets the DesiredStatus field's value.
10961func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
10962	s.DesiredStatus = &v
10963	return s
10964}
10965
10966// SetFamily sets the Family field's value.
10967func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
10968	s.Family = &v
10969	return s
10970}
10971
10972// SetLaunchType sets the LaunchType field's value.
10973func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
10974	s.LaunchType = &v
10975	return s
10976}
10977
10978// SetMaxResults sets the MaxResults field's value.
10979func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
10980	s.MaxResults = &v
10981	return s
10982}
10983
10984// SetNextToken sets the NextToken field's value.
10985func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
10986	s.NextToken = &v
10987	return s
10988}
10989
10990// SetServiceName sets the ServiceName field's value.
10991func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
10992	s.ServiceName = &v
10993	return s
10994}
10995
10996// SetStartedBy sets the StartedBy field's value.
10997func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
10998	s.StartedBy = &v
10999	return s
11000}
11001
11002type ListTasksOutput struct {
11003	_ struct{} `type:"structure"`
11004
11005	// The nextToken value to include in a future ListTasks request. When the results
11006	// of a ListTasks request exceed maxResults, this value can be used to retrieve
11007	// the next page of results. This value is null when there are no more results
11008	// to return.
11009	NextToken *string `locationName:"nextToken" type:"string"`
11010
11011	// The list of task ARN entries for the ListTasks request.
11012	TaskArns []*string `locationName:"taskArns" type:"list"`
11013}
11014
11015// String returns the string representation
11016func (s ListTasksOutput) String() string {
11017	return awsutil.Prettify(s)
11018}
11019
11020// GoString returns the string representation
11021func (s ListTasksOutput) GoString() string {
11022	return s.String()
11023}
11024
11025// SetNextToken sets the NextToken field's value.
11026func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
11027	s.NextToken = &v
11028	return s
11029}
11030
11031// SetTaskArns sets the TaskArns field's value.
11032func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
11033	s.TaskArns = v
11034	return s
11035}
11036
11037// Details on the load balancer or load balancers to use with a service or task
11038// set.
11039type LoadBalancer struct {
11040	_ struct{} `type:"structure"`
11041
11042	// The name of the container (as it appears in a container definition) to associate
11043	// with the load balancer.
11044	ContainerName *string `locationName:"containerName" type:"string"`
11045
11046	// The port on the container to associate with the load balancer. This port
11047	// must correspond to a containerPort in the task definition the tasks in the
11048	// service are using. For tasks that use the EC2 launch type, the container
11049	// instance they are launched on must allow ingress traffic on the hostPort
11050	// of the port mapping.
11051	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
11052
11053	// The name of the load balancer to associate with the Amazon ECS service or
11054	// task set.
11055	//
11056	// A load balancer name is only specified when using a Classic Load Balancer.
11057	// If you are using an Application Load Balancer or a Network Load Balancer
11058	// this should be omitted.
11059	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
11060
11061	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
11062	// group or groups associated with a service or task set.
11063	//
11064	// A target group ARN is only specified when using an Application Load Balancer
11065	// or Network Load Balancer. If you are using a Classic Load Balancer this should
11066	// be omitted.
11067	//
11068	// For services using the ECS deployment controller, you can specify one or
11069	// multiple target groups. For more information, see Registering Multiple Target
11070	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
11071	// in the Amazon Elastic Container Service Developer Guide.
11072	//
11073	// For services using the CODE_DEPLOY deployment controller, you are required
11074	// to define two target groups for the load balancer. For more information,
11075	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
11076	// in the Amazon Elastic Container Service Developer Guide.
11077	//
11078	// If your service's task definition uses the awsvpc network mode (which is
11079	// required for the Fargate launch type), you must choose ip as the target type,
11080	// not instance, when creating your target groups because tasks that use the
11081	// awsvpc network mode are associated with an elastic network interface, not
11082	// an Amazon EC2 instance.
11083	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
11084}
11085
11086// String returns the string representation
11087func (s LoadBalancer) String() string {
11088	return awsutil.Prettify(s)
11089}
11090
11091// GoString returns the string representation
11092func (s LoadBalancer) GoString() string {
11093	return s.String()
11094}
11095
11096// SetContainerName sets the ContainerName field's value.
11097func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
11098	s.ContainerName = &v
11099	return s
11100}
11101
11102// SetContainerPort sets the ContainerPort field's value.
11103func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
11104	s.ContainerPort = &v
11105	return s
11106}
11107
11108// SetLoadBalancerName sets the LoadBalancerName field's value.
11109func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
11110	s.LoadBalancerName = &v
11111	return s
11112}
11113
11114// SetTargetGroupArn sets the TargetGroupArn field's value.
11115func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
11116	s.TargetGroupArn = &v
11117	return s
11118}
11119
11120// Log configuration options to send to a custom log driver for the container.
11121type LogConfiguration struct {
11122	_ struct{} `type:"structure"`
11123
11124	// The log driver to use for the container. The valid values listed for this
11125	// parameter are log drivers that the Amazon ECS container agent can communicate
11126	// with by default.
11127	//
11128	// For tasks using the Fargate launch type, the supported log drivers are awslogs,
11129	// splunk, and awsfirelens.
11130	//
11131	// For tasks using the EC2 launch type, the supported log drivers are awslogs,
11132	// fluentd, gelf, json-file, journald, logentries, syslog, splunk, and awsfirelens.
11133	//
11134	// For more information about using the awslogs log driver, see Using the awslogs
11135	// Log Driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
11136	// in the Amazon Elastic Container Service Developer Guide.
11137	//
11138	// For more information about using the awsfirelens log driver, see Custom Log
11139	// Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
11140	// in the Amazon Elastic Container Service Developer Guide.
11141	//
11142	// If you have a custom driver that is not listed above that you would like
11143	// to work with the Amazon ECS container agent, you can fork the Amazon ECS
11144	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
11145	// and customize it to work with that driver. We encourage you to submit pull
11146	// requests for changes that you would like to have included. However, Amazon
11147	// Web Services does not currently support running modified copies of this software.
11148	//
11149	// This parameter requires version 1.18 of the Docker Remote API or greater
11150	// on your container instance. To check the Docker Remote API version on your
11151	// container instance, log in to your container instance and run the following
11152	// command: sudo docker version --format '{{.Server.APIVersion}}'
11153	//
11154	// LogDriver is a required field
11155	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
11156
11157	// The configuration options to send to the log driver. This parameter requires
11158	// version 1.19 of the Docker Remote API or greater on your container instance.
11159	// To check the Docker Remote API version on your container instance, log in
11160	// to your container instance and run the following command: sudo docker version
11161	// --format '{{.Server.APIVersion}}'
11162	Options map[string]*string `locationName:"options" type:"map"`
11163
11164	// The secrets to pass to the log configuration. For more information, see Specifying
11165	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
11166	// in the Amazon Elastic Container Service Developer Guide.
11167	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
11168}
11169
11170// String returns the string representation
11171func (s LogConfiguration) String() string {
11172	return awsutil.Prettify(s)
11173}
11174
11175// GoString returns the string representation
11176func (s LogConfiguration) GoString() string {
11177	return s.String()
11178}
11179
11180// Validate inspects the fields of the type to determine if they are valid.
11181func (s *LogConfiguration) Validate() error {
11182	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
11183	if s.LogDriver == nil {
11184		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
11185	}
11186	if s.SecretOptions != nil {
11187		for i, v := range s.SecretOptions {
11188			if v == nil {
11189				continue
11190			}
11191			if err := v.Validate(); err != nil {
11192				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
11193			}
11194		}
11195	}
11196
11197	if invalidParams.Len() > 0 {
11198		return invalidParams
11199	}
11200	return nil
11201}
11202
11203// SetLogDriver sets the LogDriver field's value.
11204func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
11205	s.LogDriver = &v
11206	return s
11207}
11208
11209// SetOptions sets the Options field's value.
11210func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
11211	s.Options = v
11212	return s
11213}
11214
11215// SetSecretOptions sets the SecretOptions field's value.
11216func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
11217	s.SecretOptions = v
11218	return s
11219}
11220
11221// Details on a volume mount point that is used in a container definition.
11222type MountPoint struct {
11223	_ struct{} `type:"structure"`
11224
11225	// The path on the container to mount the host volume at.
11226	ContainerPath *string `locationName:"containerPath" type:"string"`
11227
11228	// If this value is true, the container has read-only access to the volume.
11229	// If this value is false, then the container can write to the volume. The default
11230	// value is false.
11231	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
11232
11233	// The name of the volume to mount. Must be a volume name referenced in the
11234	// name parameter of task definition volume.
11235	SourceVolume *string `locationName:"sourceVolume" type:"string"`
11236}
11237
11238// String returns the string representation
11239func (s MountPoint) String() string {
11240	return awsutil.Prettify(s)
11241}
11242
11243// GoString returns the string representation
11244func (s MountPoint) GoString() string {
11245	return s.String()
11246}
11247
11248// SetContainerPath sets the ContainerPath field's value.
11249func (s *MountPoint) SetContainerPath(v string) *MountPoint {
11250	s.ContainerPath = &v
11251	return s
11252}
11253
11254// SetReadOnly sets the ReadOnly field's value.
11255func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
11256	s.ReadOnly = &v
11257	return s
11258}
11259
11260// SetSourceVolume sets the SourceVolume field's value.
11261func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
11262	s.SourceVolume = &v
11263	return s
11264}
11265
11266// Details on the network bindings between a container and its host container
11267// instance. After a task reaches the RUNNING status, manual and automatic host
11268// and container port assignments are visible in the networkBindings section
11269// of DescribeTasks API responses.
11270type NetworkBinding struct {
11271	_ struct{} `type:"structure"`
11272
11273	// The IP address that the container is bound to on the container instance.
11274	BindIP *string `locationName:"bindIP" type:"string"`
11275
11276	// The port number on the container that is used with the network binding.
11277	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
11278
11279	// The port number on the host that is used with the network binding.
11280	HostPort *int64 `locationName:"hostPort" type:"integer"`
11281
11282	// The protocol used for the network binding.
11283	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
11284}
11285
11286// String returns the string representation
11287func (s NetworkBinding) String() string {
11288	return awsutil.Prettify(s)
11289}
11290
11291// GoString returns the string representation
11292func (s NetworkBinding) GoString() string {
11293	return s.String()
11294}
11295
11296// SetBindIP sets the BindIP field's value.
11297func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
11298	s.BindIP = &v
11299	return s
11300}
11301
11302// SetContainerPort sets the ContainerPort field's value.
11303func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
11304	s.ContainerPort = &v
11305	return s
11306}
11307
11308// SetHostPort sets the HostPort field's value.
11309func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
11310	s.HostPort = &v
11311	return s
11312}
11313
11314// SetProtocol sets the Protocol field's value.
11315func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
11316	s.Protocol = &v
11317	return s
11318}
11319
11320// An object representing the network configuration for a task or service.
11321type NetworkConfiguration struct {
11322	_ struct{} `type:"structure"`
11323
11324	// The VPC subnets and security groups associated with a task.
11325	//
11326	// All specified subnets and security groups must be from the same VPC.
11327	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
11328}
11329
11330// String returns the string representation
11331func (s NetworkConfiguration) String() string {
11332	return awsutil.Prettify(s)
11333}
11334
11335// GoString returns the string representation
11336func (s NetworkConfiguration) GoString() string {
11337	return s.String()
11338}
11339
11340// Validate inspects the fields of the type to determine if they are valid.
11341func (s *NetworkConfiguration) Validate() error {
11342	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
11343	if s.AwsvpcConfiguration != nil {
11344		if err := s.AwsvpcConfiguration.Validate(); err != nil {
11345			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
11346		}
11347	}
11348
11349	if invalidParams.Len() > 0 {
11350		return invalidParams
11351	}
11352	return nil
11353}
11354
11355// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
11356func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
11357	s.AwsvpcConfiguration = v
11358	return s
11359}
11360
11361// An object representing the elastic network interface for tasks that use the
11362// awsvpc network mode.
11363type NetworkInterface struct {
11364	_ struct{} `type:"structure"`
11365
11366	// The attachment ID for the network interface.
11367	AttachmentId *string `locationName:"attachmentId" type:"string"`
11368
11369	// The private IPv6 address for the network interface.
11370	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
11371
11372	// The private IPv4 address for the network interface.
11373	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
11374}
11375
11376// String returns the string representation
11377func (s NetworkInterface) String() string {
11378	return awsutil.Prettify(s)
11379}
11380
11381// GoString returns the string representation
11382func (s NetworkInterface) GoString() string {
11383	return s.String()
11384}
11385
11386// SetAttachmentId sets the AttachmentId field's value.
11387func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
11388	s.AttachmentId = &v
11389	return s
11390}
11391
11392// SetIpv6Address sets the Ipv6Address field's value.
11393func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
11394	s.Ipv6Address = &v
11395	return s
11396}
11397
11398// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
11399func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
11400	s.PrivateIpv4Address = &v
11401	return s
11402}
11403
11404// An object representing a constraint on task placement. For more information,
11405// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
11406// in the Amazon Elastic Container Service Developer Guide.
11407//
11408// If you are using the Fargate launch type, task placement constraints are
11409// not supported.
11410type PlacementConstraint struct {
11411	_ struct{} `type:"structure"`
11412
11413	// A cluster query language expression to apply to the constraint. You cannot
11414	// specify an expression if the constraint type is distinctInstance. For more
11415	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
11416	// in the Amazon Elastic Container Service Developer Guide.
11417	Expression *string `locationName:"expression" type:"string"`
11418
11419	// The type of constraint. Use distinctInstance to ensure that each task in
11420	// a particular group is running on a different container instance. Use memberOf
11421	// to restrict the selection to a group of valid candidates.
11422	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
11423}
11424
11425// String returns the string representation
11426func (s PlacementConstraint) String() string {
11427	return awsutil.Prettify(s)
11428}
11429
11430// GoString returns the string representation
11431func (s PlacementConstraint) GoString() string {
11432	return s.String()
11433}
11434
11435// SetExpression sets the Expression field's value.
11436func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
11437	s.Expression = &v
11438	return s
11439}
11440
11441// SetType sets the Type field's value.
11442func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
11443	s.Type = &v
11444	return s
11445}
11446
11447// The task placement strategy for a task or service. For more information,
11448// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
11449// in the Amazon Elastic Container Service Developer Guide.
11450type PlacementStrategy struct {
11451	_ struct{} `type:"structure"`
11452
11453	// The field to apply the placement strategy against. For the spread placement
11454	// strategy, valid values are instanceId (or host, which has the same effect),
11455	// or any platform or custom attribute that is applied to a container instance,
11456	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
11457	// valid values are cpu and memory. For the random placement strategy, this
11458	// field is not used.
11459	Field *string `locationName:"field" type:"string"`
11460
11461	// The type of placement strategy. The random placement strategy randomly places
11462	// tasks on available candidates. The spread placement strategy spreads placement
11463	// across available candidates evenly based on the field parameter. The binpack
11464	// strategy places tasks on available candidates that have the least available
11465	// amount of the resource that is specified with the field parameter. For example,
11466	// if you binpack on memory, a task is placed on the instance with the least
11467	// amount of remaining memory (but still enough to run the task).
11468	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
11469}
11470
11471// String returns the string representation
11472func (s PlacementStrategy) String() string {
11473	return awsutil.Prettify(s)
11474}
11475
11476// GoString returns the string representation
11477func (s PlacementStrategy) GoString() string {
11478	return s.String()
11479}
11480
11481// SetField sets the Field field's value.
11482func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
11483	s.Field = &v
11484	return s
11485}
11486
11487// SetType sets the Type field's value.
11488func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
11489	s.Type = &v
11490	return s
11491}
11492
11493// The devices that are available on the container instance. The only supported
11494// device type is a GPU.
11495type PlatformDevice struct {
11496	_ struct{} `type:"structure"`
11497
11498	// The ID for the GPU(s) on the container instance. The available GPU IDs can
11499	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
11500	// file.
11501	//
11502	// Id is a required field
11503	Id *string `locationName:"id" type:"string" required:"true"`
11504
11505	// The type of device that is available on the container instance. The only
11506	// supported value is GPU.
11507	//
11508	// Type is a required field
11509	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
11510}
11511
11512// String returns the string representation
11513func (s PlatformDevice) String() string {
11514	return awsutil.Prettify(s)
11515}
11516
11517// GoString returns the string representation
11518func (s PlatformDevice) GoString() string {
11519	return s.String()
11520}
11521
11522// Validate inspects the fields of the type to determine if they are valid.
11523func (s *PlatformDevice) Validate() error {
11524	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
11525	if s.Id == nil {
11526		invalidParams.Add(request.NewErrParamRequired("Id"))
11527	}
11528	if s.Type == nil {
11529		invalidParams.Add(request.NewErrParamRequired("Type"))
11530	}
11531
11532	if invalidParams.Len() > 0 {
11533		return invalidParams
11534	}
11535	return nil
11536}
11537
11538// SetId sets the Id field's value.
11539func (s *PlatformDevice) SetId(v string) *PlatformDevice {
11540	s.Id = &v
11541	return s
11542}
11543
11544// SetType sets the Type field's value.
11545func (s *PlatformDevice) SetType(v string) *PlatformDevice {
11546	s.Type = &v
11547	return s
11548}
11549
11550// Port mappings allow containers to access ports on the host container instance
11551// to send or receive traffic. Port mappings are specified as part of the container
11552// definition.
11553//
11554// If you are using containers in a task with the awsvpc or host network mode,
11555// exposed ports should be specified using containerPort. The hostPort can be
11556// left blank or it must be the same value as the containerPort.
11557//
11558// After a task reaches the RUNNING status, manual and automatic host and container
11559// port assignments are visible in the networkBindings section of DescribeTasks
11560// API responses.
11561type PortMapping struct {
11562	_ struct{} `type:"structure"`
11563
11564	// The port number on the container that is bound to the user-specified or automatically
11565	// assigned host port.
11566	//
11567	// If you are using containers in a task with the awsvpc or host network mode,
11568	// exposed ports should be specified using containerPort.
11569	//
11570	// If you are using containers in a task with the bridge network mode and you
11571	// specify a container port and not a host port, your container automatically
11572	// receives a host port in the ephemeral port range. For more information, see
11573	// hostPort. Port mappings that are automatically assigned in this way do not
11574	// count toward the 100 reserved ports limit of a container instance.
11575	//
11576	// You cannot expose the same container port for multiple protocols. An error
11577	// will be returned if this is attempted.
11578	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
11579
11580	// The port number on the container instance to reserve for your container.
11581	//
11582	// If you are using containers in a task with the awsvpc or host network mode,
11583	// the hostPort can either be left blank or set to the same value as the containerPort.
11584	//
11585	// If you are using containers in a task with the bridge network mode, you can
11586	// specify a non-reserved host port for your container port mapping, or you
11587	// can omit the hostPort (or set it to 0) while specifying a containerPort and
11588	// your container automatically receives a port in the ephemeral port range
11589	// for your container instance operating system and Docker version.
11590	//
11591	// The default ephemeral port range for Docker version 1.6.0 and later is listed
11592	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
11593	// parameter is unavailable, the default ephemeral port range from 49153 through
11594	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
11595	// range as these are reserved for automatic assignment. In general, ports below
11596	// 32768 are outside of the ephemeral port range.
11597	//
11598	// The default ephemeral port range from 49153 through 65535 is always used
11599	// for Docker versions before 1.6.0.
11600	//
11601	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
11602	// and the Amazon ECS container agent ports 51678-51680. Any host port that
11603	// was previously specified in a running task is also reserved while the task
11604	// is running (after a task stops, the host port is released). The current reserved
11605	// ports are displayed in the remainingResources of DescribeContainerInstances
11606	// output. A container instance can have up to 100 reserved ports at a time,
11607	// including the default reserved ports. Automatically assigned ports don't
11608	// count toward the 100 reserved ports limit.
11609	HostPort *int64 `locationName:"hostPort" type:"integer"`
11610
11611	// The protocol used for the port mapping. Valid values are tcp and udp. The
11612	// default is tcp.
11613	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
11614}
11615
11616// String returns the string representation
11617func (s PortMapping) String() string {
11618	return awsutil.Prettify(s)
11619}
11620
11621// GoString returns the string representation
11622func (s PortMapping) GoString() string {
11623	return s.String()
11624}
11625
11626// SetContainerPort sets the ContainerPort field's value.
11627func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
11628	s.ContainerPort = &v
11629	return s
11630}
11631
11632// SetHostPort sets the HostPort field's value.
11633func (s *PortMapping) SetHostPort(v int64) *PortMapping {
11634	s.HostPort = &v
11635	return s
11636}
11637
11638// SetProtocol sets the Protocol field's value.
11639func (s *PortMapping) SetProtocol(v string) *PortMapping {
11640	s.Protocol = &v
11641	return s
11642}
11643
11644// The configuration details for the App Mesh proxy.
11645//
11646// For tasks using the EC2 launch type, the container instances require at least
11647// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
11648// ecs-init package to enable a proxy configuration. If your container instances
11649// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
11650// then they contain the required versions of the container agent and ecs-init.
11651// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
11652// in the Amazon Elastic Container Service Developer Guide.
11653//
11654// For tasks using the Fargate launch type, the task or service requires platform
11655// version 1.3.0 or later.
11656type ProxyConfiguration struct {
11657	_ struct{} `type:"structure"`
11658
11659	// The name of the container that will serve as the App Mesh proxy.
11660	//
11661	// ContainerName is a required field
11662	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
11663
11664	// The set of network configuration parameters to provide the Container Network
11665	// Interface (CNI) plugin, specified as key-value pairs.
11666	//
11667	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
11668	//    defined by the user parameter in a container definition. This is used
11669	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
11670	//    this field can be empty.
11671	//
11672	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
11673	//    defined by the user parameter in a container definition. This is used
11674	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
11675	//    this field can be empty.
11676	//
11677	//    * AppPorts - (Required) The list of ports that the application uses. Network
11678	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
11679	//
11680	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
11681	//    to the AppPorts is directed to.
11682	//
11683	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
11684	//    from the AppPorts is directed to.
11685	//
11686	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
11687	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
11688	//    an empty list.
11689	//
11690	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
11691	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
11692	//    can be an empty list.
11693	Properties []*KeyValuePair `locationName:"properties" type:"list"`
11694
11695	// The proxy type. The only supported value is APPMESH.
11696	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
11697}
11698
11699// String returns the string representation
11700func (s ProxyConfiguration) String() string {
11701	return awsutil.Prettify(s)
11702}
11703
11704// GoString returns the string representation
11705func (s ProxyConfiguration) GoString() string {
11706	return s.String()
11707}
11708
11709// Validate inspects the fields of the type to determine if they are valid.
11710func (s *ProxyConfiguration) Validate() error {
11711	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
11712	if s.ContainerName == nil {
11713		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
11714	}
11715
11716	if invalidParams.Len() > 0 {
11717		return invalidParams
11718	}
11719	return nil
11720}
11721
11722// SetContainerName sets the ContainerName field's value.
11723func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
11724	s.ContainerName = &v
11725	return s
11726}
11727
11728// SetProperties sets the Properties field's value.
11729func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
11730	s.Properties = v
11731	return s
11732}
11733
11734// SetType sets the Type field's value.
11735func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
11736	s.Type = &v
11737	return s
11738}
11739
11740type PutAccountSettingDefaultInput struct {
11741	_ struct{} `type:"structure"`
11742
11743	// The resource name for which to modify the account setting. If serviceLongArnFormat
11744	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
11745	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
11746	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
11747	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
11748	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
11749	// is specified, the default setting for CloudWatch Container Insights for your
11750	// clusters is affected.
11751	//
11752	// Name is a required field
11753	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
11754
11755	// The account setting value for the specified principal ARN. Accepted values
11756	// are enabled and disabled.
11757	//
11758	// Value is a required field
11759	Value *string `locationName:"value" type:"string" required:"true"`
11760}
11761
11762// String returns the string representation
11763func (s PutAccountSettingDefaultInput) String() string {
11764	return awsutil.Prettify(s)
11765}
11766
11767// GoString returns the string representation
11768func (s PutAccountSettingDefaultInput) GoString() string {
11769	return s.String()
11770}
11771
11772// Validate inspects the fields of the type to determine if they are valid.
11773func (s *PutAccountSettingDefaultInput) Validate() error {
11774	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
11775	if s.Name == nil {
11776		invalidParams.Add(request.NewErrParamRequired("Name"))
11777	}
11778	if s.Value == nil {
11779		invalidParams.Add(request.NewErrParamRequired("Value"))
11780	}
11781
11782	if invalidParams.Len() > 0 {
11783		return invalidParams
11784	}
11785	return nil
11786}
11787
11788// SetName sets the Name field's value.
11789func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
11790	s.Name = &v
11791	return s
11792}
11793
11794// SetValue sets the Value field's value.
11795func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
11796	s.Value = &v
11797	return s
11798}
11799
11800type PutAccountSettingDefaultOutput struct {
11801	_ struct{} `type:"structure"`
11802
11803	// The current account setting for a resource.
11804	Setting *Setting `locationName:"setting" type:"structure"`
11805}
11806
11807// String returns the string representation
11808func (s PutAccountSettingDefaultOutput) String() string {
11809	return awsutil.Prettify(s)
11810}
11811
11812// GoString returns the string representation
11813func (s PutAccountSettingDefaultOutput) GoString() string {
11814	return s.String()
11815}
11816
11817// SetSetting sets the Setting field's value.
11818func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
11819	s.Setting = v
11820	return s
11821}
11822
11823type PutAccountSettingInput struct {
11824	_ struct{} `type:"structure"`
11825
11826	// The Amazon ECS resource name for which to modify the account setting. If
11827	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
11828	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
11829	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
11830	// the ARN and resource ID for your Amazon ECS container instances is affected.
11831	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
11832	// for your Amazon ECS container instances is affected. If containerInsights
11833	// is specified, the default setting for CloudWatch Container Insights for your
11834	// clusters is affected.
11835	//
11836	// Name is a required field
11837	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
11838
11839	// The ARN of the principal, which can be an IAM user, IAM role, or the root
11840	// user. If you specify the root user, it modifies the account setting for all
11841	// IAM users, IAM roles, and the root user of the account unless an IAM user
11842	// or role explicitly overrides these settings. If this field is omitted, the
11843	// setting is changed only for the authenticated user.
11844	PrincipalArn *string `locationName:"principalArn" type:"string"`
11845
11846	// The account setting value for the specified principal ARN. Accepted values
11847	// are enabled and disabled.
11848	//
11849	// Value is a required field
11850	Value *string `locationName:"value" type:"string" required:"true"`
11851}
11852
11853// String returns the string representation
11854func (s PutAccountSettingInput) String() string {
11855	return awsutil.Prettify(s)
11856}
11857
11858// GoString returns the string representation
11859func (s PutAccountSettingInput) GoString() string {
11860	return s.String()
11861}
11862
11863// Validate inspects the fields of the type to determine if they are valid.
11864func (s *PutAccountSettingInput) Validate() error {
11865	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
11866	if s.Name == nil {
11867		invalidParams.Add(request.NewErrParamRequired("Name"))
11868	}
11869	if s.Value == nil {
11870		invalidParams.Add(request.NewErrParamRequired("Value"))
11871	}
11872
11873	if invalidParams.Len() > 0 {
11874		return invalidParams
11875	}
11876	return nil
11877}
11878
11879// SetName sets the Name field's value.
11880func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
11881	s.Name = &v
11882	return s
11883}
11884
11885// SetPrincipalArn sets the PrincipalArn field's value.
11886func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
11887	s.PrincipalArn = &v
11888	return s
11889}
11890
11891// SetValue sets the Value field's value.
11892func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
11893	s.Value = &v
11894	return s
11895}
11896
11897type PutAccountSettingOutput struct {
11898	_ struct{} `type:"structure"`
11899
11900	// The current account setting for a resource.
11901	Setting *Setting `locationName:"setting" type:"structure"`
11902}
11903
11904// String returns the string representation
11905func (s PutAccountSettingOutput) String() string {
11906	return awsutil.Prettify(s)
11907}
11908
11909// GoString returns the string representation
11910func (s PutAccountSettingOutput) GoString() string {
11911	return s.String()
11912}
11913
11914// SetSetting sets the Setting field's value.
11915func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
11916	s.Setting = v
11917	return s
11918}
11919
11920type PutAttributesInput struct {
11921	_ struct{} `type:"structure"`
11922
11923	// The attributes to apply to your resource. You can specify up to 10 custom
11924	// attributes per resource. You can specify up to 10 attributes in a single
11925	// call.
11926	//
11927	// Attributes is a required field
11928	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
11929
11930	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
11931	// the resource to apply attributes. If you do not specify a cluster, the default
11932	// cluster is assumed.
11933	Cluster *string `locationName:"cluster" type:"string"`
11934}
11935
11936// String returns the string representation
11937func (s PutAttributesInput) String() string {
11938	return awsutil.Prettify(s)
11939}
11940
11941// GoString returns the string representation
11942func (s PutAttributesInput) GoString() string {
11943	return s.String()
11944}
11945
11946// Validate inspects the fields of the type to determine if they are valid.
11947func (s *PutAttributesInput) Validate() error {
11948	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
11949	if s.Attributes == nil {
11950		invalidParams.Add(request.NewErrParamRequired("Attributes"))
11951	}
11952	if s.Attributes != nil {
11953		for i, v := range s.Attributes {
11954			if v == nil {
11955				continue
11956			}
11957			if err := v.Validate(); err != nil {
11958				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
11959			}
11960		}
11961	}
11962
11963	if invalidParams.Len() > 0 {
11964		return invalidParams
11965	}
11966	return nil
11967}
11968
11969// SetAttributes sets the Attributes field's value.
11970func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
11971	s.Attributes = v
11972	return s
11973}
11974
11975// SetCluster sets the Cluster field's value.
11976func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
11977	s.Cluster = &v
11978	return s
11979}
11980
11981type PutAttributesOutput struct {
11982	_ struct{} `type:"structure"`
11983
11984	// The attributes applied to your resource.
11985	Attributes []*Attribute `locationName:"attributes" type:"list"`
11986}
11987
11988// String returns the string representation
11989func (s PutAttributesOutput) String() string {
11990	return awsutil.Prettify(s)
11991}
11992
11993// GoString returns the string representation
11994func (s PutAttributesOutput) GoString() string {
11995	return s.String()
11996}
11997
11998// SetAttributes sets the Attributes field's value.
11999func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
12000	s.Attributes = v
12001	return s
12002}
12003
12004type RegisterContainerInstanceInput struct {
12005	_ struct{} `type:"structure"`
12006
12007	// The container instance attributes that this container instance supports.
12008	Attributes []*Attribute `locationName:"attributes" type:"list"`
12009
12010	// The short name or full Amazon Resource Name (ARN) of the cluster with which
12011	// to register your container instance. If you do not specify a cluster, the
12012	// default cluster is assumed.
12013	Cluster *string `locationName:"cluster" type:"string"`
12014
12015	// The ARN of the container instance (if it was previously registered).
12016	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
12017
12018	// The instance identity document for the EC2 instance to register. This document
12019	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
12020	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
12021
12022	// The instance identity document signature for the EC2 instance to register.
12023	// This signature can be found by running the following command from the instance:
12024	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
12025	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
12026
12027	// The devices that are available on the container instance. The only supported
12028	// device type is a GPU.
12029	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
12030
12031	// The metadata that you apply to the container instance to help you categorize
12032	// and organize them. Each tag consists of a key and an optional value, both
12033	// of which you define.
12034	//
12035	// The following basic restrictions apply to tags:
12036	//
12037	//    * Maximum number of tags per resource - 50
12038	//
12039	//    * For each resource, each tag key must be unique, and each tag key can
12040	//    have only one value.
12041	//
12042	//    * Maximum key length - 128 Unicode characters in UTF-8
12043	//
12044	//    * Maximum value length - 256 Unicode characters in UTF-8
12045	//
12046	//    * If your tagging schema is used across multiple services and resources,
12047	//    remember that other services may have restrictions on allowed characters.
12048	//    Generally allowed characters are: letters, numbers, and spaces representable
12049	//    in UTF-8, and the following characters: + - = . _ : / @.
12050	//
12051	//    * Tag keys and values are case-sensitive.
12052	//
12053	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
12054	//    as a prefix for either keys or values as it is reserved for AWS use. You
12055	//    cannot edit or delete tag keys or values with this prefix. Tags with this
12056	//    prefix do not count against your tags per resource limit.
12057	Tags []*Tag `locationName:"tags" type:"list"`
12058
12059	// The resources available on the instance.
12060	TotalResources []*Resource `locationName:"totalResources" type:"list"`
12061
12062	// The version information for the Amazon ECS container agent and Docker daemon
12063	// running on the container instance.
12064	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
12065}
12066
12067// String returns the string representation
12068func (s RegisterContainerInstanceInput) String() string {
12069	return awsutil.Prettify(s)
12070}
12071
12072// GoString returns the string representation
12073func (s RegisterContainerInstanceInput) GoString() string {
12074	return s.String()
12075}
12076
12077// Validate inspects the fields of the type to determine if they are valid.
12078func (s *RegisterContainerInstanceInput) Validate() error {
12079	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
12080	if s.Attributes != nil {
12081		for i, v := range s.Attributes {
12082			if v == nil {
12083				continue
12084			}
12085			if err := v.Validate(); err != nil {
12086				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
12087			}
12088		}
12089	}
12090	if s.PlatformDevices != nil {
12091		for i, v := range s.PlatformDevices {
12092			if v == nil {
12093				continue
12094			}
12095			if err := v.Validate(); err != nil {
12096				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
12097			}
12098		}
12099	}
12100	if s.Tags != nil {
12101		for i, v := range s.Tags {
12102			if v == nil {
12103				continue
12104			}
12105			if err := v.Validate(); err != nil {
12106				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12107			}
12108		}
12109	}
12110
12111	if invalidParams.Len() > 0 {
12112		return invalidParams
12113	}
12114	return nil
12115}
12116
12117// SetAttributes sets the Attributes field's value.
12118func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
12119	s.Attributes = v
12120	return s
12121}
12122
12123// SetCluster sets the Cluster field's value.
12124func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
12125	s.Cluster = &v
12126	return s
12127}
12128
12129// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
12130func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
12131	s.ContainerInstanceArn = &v
12132	return s
12133}
12134
12135// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
12136func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
12137	s.InstanceIdentityDocument = &v
12138	return s
12139}
12140
12141// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
12142func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
12143	s.InstanceIdentityDocumentSignature = &v
12144	return s
12145}
12146
12147// SetPlatformDevices sets the PlatformDevices field's value.
12148func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
12149	s.PlatformDevices = v
12150	return s
12151}
12152
12153// SetTags sets the Tags field's value.
12154func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
12155	s.Tags = v
12156	return s
12157}
12158
12159// SetTotalResources sets the TotalResources field's value.
12160func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
12161	s.TotalResources = v
12162	return s
12163}
12164
12165// SetVersionInfo sets the VersionInfo field's value.
12166func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
12167	s.VersionInfo = v
12168	return s
12169}
12170
12171type RegisterContainerInstanceOutput struct {
12172	_ struct{} `type:"structure"`
12173
12174	// The container instance that was registered.
12175	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
12176}
12177
12178// String returns the string representation
12179func (s RegisterContainerInstanceOutput) String() string {
12180	return awsutil.Prettify(s)
12181}
12182
12183// GoString returns the string representation
12184func (s RegisterContainerInstanceOutput) GoString() string {
12185	return s.String()
12186}
12187
12188// SetContainerInstance sets the ContainerInstance field's value.
12189func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
12190	s.ContainerInstance = v
12191	return s
12192}
12193
12194type RegisterTaskDefinitionInput struct {
12195	_ struct{} `type:"structure"`
12196
12197	// A list of container definitions in JSON format that describe the different
12198	// containers that make up your task.
12199	//
12200	// ContainerDefinitions is a required field
12201	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
12202
12203	// The number of CPU units used by the task. It can be expressed as an integer
12204	// using CPU units, for example 1024, or as a string using vCPUs, for example
12205	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
12206	// integer indicating the CPU units when the task definition is registered.
12207	//
12208	// Task-level CPU and memory parameters are ignored for Windows containers.
12209	// We recommend specifying container-level resources for Windows containers.
12210	//
12211	// If you are using the EC2 launch type, this field is optional. Supported values
12212	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
12213	//
12214	// If you are using the Fargate launch type, this field is required and you
12215	// must use one of the following values, which determines your range of supported
12216	// values for the memory parameter:
12217	//
12218	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
12219	//    2048 (2 GB)
12220	//
12221	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
12222	//    (3 GB), 4096 (4 GB)
12223	//
12224	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
12225	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
12226	//
12227	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
12228	//    (16 GB) in increments of 1024 (1 GB)
12229	//
12230	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
12231	//    (30 GB) in increments of 1024 (1 GB)
12232	Cpu *string `locationName:"cpu" type:"string"`
12233
12234	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
12235	// ECS container agent and the Docker daemon can assume.
12236	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
12237
12238	// You must specify a family for a task definition, which allows you to track
12239	// multiple versions of the same task definition. The family is used as a name
12240	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
12241	// and hyphens are allowed.
12242	//
12243	// Family is a required field
12244	Family *string `locationName:"family" type:"string" required:"true"`
12245
12246	// The Elastic Inference accelerators to use for the containers in the task.
12247	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
12248
12249	// The IPC resource namespace to use for the containers in the task. The valid
12250	// values are host, task, or none. If host is specified, then all containers
12251	// within the tasks that specified the host IPC mode on the same container instance
12252	// share the same IPC resources with the host Amazon EC2 instance. If task is
12253	// specified, all containers within the specified task share the same IPC resources.
12254	// If none is specified, then IPC resources within the containers of a task
12255	// are private and not shared with other containers in a task or on the container
12256	// instance. If no value is specified, then the IPC resource namespace sharing
12257	// depends on the Docker daemon setting on the container instance. For more
12258	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
12259	// in the Docker run reference.
12260	//
12261	// If the host IPC mode is used, be aware that there is a heightened risk of
12262	// undesired IPC namespace expose. For more information, see Docker security
12263	// (https://docs.docker.com/engine/security/security/).
12264	//
12265	// If you are setting namespaced kernel parameters using systemControls for
12266	// the containers in the task, the following will apply to your IPC resource
12267	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
12268	// in the Amazon Elastic Container Service Developer Guide.
12269	//
12270	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
12271	//    are not supported.
12272	//
12273	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
12274	//    will apply to all containers within a task.
12275	//
12276	// This parameter is not supported for Windows containers or tasks using the
12277	// Fargate launch type.
12278	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
12279
12280	// The amount of memory (in MiB) used by the task. It can be expressed as an
12281	// integer using MiB, for example 1024, or as a string using GB, for example
12282	// 1GB or 1 GB, in a task definition. String values are converted to an integer
12283	// indicating the MiB when the task definition is registered.
12284	//
12285	// Task-level CPU and memory parameters are ignored for Windows containers.
12286	// We recommend specifying container-level resources for Windows containers.
12287	//
12288	// If using the EC2 launch type, this field is optional.
12289	//
12290	// If using the Fargate launch type, this field is required and you must use
12291	// one of the following values, which determines your range of supported values
12292	// for the cpu parameter:
12293	//
12294	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
12295	//    vCPU)
12296	//
12297	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
12298	//    512 (.5 vCPU)
12299	//
12300	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
12301	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
12302	//
12303	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
12304	//    Available cpu values: 2048 (2 vCPU)
12305	//
12306	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
12307	//    Available cpu values: 4096 (4 vCPU)
12308	Memory *string `locationName:"memory" type:"string"`
12309
12310	// The Docker networking mode to use for the containers in the task. The valid
12311	// values are none, bridge, awsvpc, and host. The default Docker network mode
12312	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
12313	// is required. If you are using the EC2 launch type, any network mode can be
12314	// used. If the network mode is set to none, you cannot specify port mappings
12315	// in your container definitions, and the tasks containers do not have external
12316	// connectivity. The host and awsvpc network modes offer the highest networking
12317	// performance for containers because they use the EC2 network stack instead
12318	// of the virtualized network stack provided by the bridge mode.
12319	//
12320	// With the host and awsvpc network modes, exposed container ports are mapped
12321	// directly to the corresponding host port (for the host network mode) or the
12322	// attached elastic network interface port (for the awsvpc network mode), so
12323	// you cannot take advantage of dynamic host port mappings.
12324	//
12325	// If the network mode is awsvpc, the task is allocated an elastic network interface,
12326	// and you must specify a NetworkConfiguration value when you create a service
12327	// or run a task with the task definition. For more information, see Task Networking
12328	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
12329	// in the Amazon Elastic Container Service Developer Guide.
12330	//
12331	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
12332	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
12333	// mode.
12334	//
12335	// If the network mode is host, you cannot run multiple instantiations of the
12336	// same task on a single container instance when port mappings are used.
12337	//
12338	// Docker for Windows uses different network modes than Docker for Linux. When
12339	// you register a task definition with Windows containers, you must not specify
12340	// a network mode. If you use the console to register a task definition with
12341	// Windows containers, you must choose the <default> network mode object.
12342	//
12343	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
12344	// in the Docker run reference.
12345	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
12346
12347	// The process namespace to use for the containers in the task. The valid values
12348	// are host or task. If host is specified, then all containers within the tasks
12349	// that specified the host PID mode on the same container instance share the
12350	// same process namespace with the host Amazon EC2 instance. If task is specified,
12351	// all containers within the specified task share the same process namespace.
12352	// If no value is specified, the default is a private namespace. For more information,
12353	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
12354	// in the Docker run reference.
12355	//
12356	// If the host PID mode is used, be aware that there is a heightened risk of
12357	// undesired process namespace expose. For more information, see Docker security
12358	// (https://docs.docker.com/engine/security/security/).
12359	//
12360	// This parameter is not supported for Windows containers or tasks using the
12361	// Fargate launch type.
12362	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
12363
12364	// An array of placement constraint objects to use for the task. You can specify
12365	// a maximum of 10 constraints per task (this limit includes constraints in
12366	// the task definition and those specified at runtime).
12367	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
12368
12369	// The configuration details for the App Mesh proxy.
12370	//
12371	// For tasks using the EC2 launch type, the container instances require at least
12372	// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
12373	// ecs-init package to enable a proxy configuration. If your container instances
12374	// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
12375	// then they contain the required versions of the container agent and ecs-init.
12376	// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
12377	// in the Amazon Elastic Container Service Developer Guide.
12378	//
12379	// For tasks using the Fargate launch type, the task or service requires platform
12380	// version 1.3.0 or later.
12381	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
12382
12383	// The launch type required by the task. If no value is specified, it defaults
12384	// to EC2.
12385	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
12386
12387	// The metadata that you apply to the task definition to help you categorize
12388	// and organize them. Each tag consists of a key and an optional value, both
12389	// of which you define.
12390	//
12391	// The following basic restrictions apply to tags:
12392	//
12393	//    * Maximum number of tags per resource - 50
12394	//
12395	//    * For each resource, each tag key must be unique, and each tag key can
12396	//    have only one value.
12397	//
12398	//    * Maximum key length - 128 Unicode characters in UTF-8
12399	//
12400	//    * Maximum value length - 256 Unicode characters in UTF-8
12401	//
12402	//    * If your tagging schema is used across multiple services and resources,
12403	//    remember that other services may have restrictions on allowed characters.
12404	//    Generally allowed characters are: letters, numbers, and spaces representable
12405	//    in UTF-8, and the following characters: + - = . _ : / @.
12406	//
12407	//    * Tag keys and values are case-sensitive.
12408	//
12409	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
12410	//    as a prefix for either keys or values as it is reserved for AWS use. You
12411	//    cannot edit or delete tag keys or values with this prefix. Tags with this
12412	//    prefix do not count against your tags per resource limit.
12413	Tags []*Tag `locationName:"tags" type:"list"`
12414
12415	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
12416	// in this task can assume. All containers in this task are granted the permissions
12417	// that are specified in this role. For more information, see IAM Roles for
12418	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
12419	// in the Amazon Elastic Container Service Developer Guide.
12420	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
12421
12422	// A list of volume definitions in JSON format that containers in your task
12423	// may use.
12424	Volumes []*Volume `locationName:"volumes" type:"list"`
12425}
12426
12427// String returns the string representation
12428func (s RegisterTaskDefinitionInput) String() string {
12429	return awsutil.Prettify(s)
12430}
12431
12432// GoString returns the string representation
12433func (s RegisterTaskDefinitionInput) GoString() string {
12434	return s.String()
12435}
12436
12437// Validate inspects the fields of the type to determine if they are valid.
12438func (s *RegisterTaskDefinitionInput) Validate() error {
12439	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
12440	if s.ContainerDefinitions == nil {
12441		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
12442	}
12443	if s.Family == nil {
12444		invalidParams.Add(request.NewErrParamRequired("Family"))
12445	}
12446	if s.ContainerDefinitions != nil {
12447		for i, v := range s.ContainerDefinitions {
12448			if v == nil {
12449				continue
12450			}
12451			if err := v.Validate(); err != nil {
12452				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
12453			}
12454		}
12455	}
12456	if s.InferenceAccelerators != nil {
12457		for i, v := range s.InferenceAccelerators {
12458			if v == nil {
12459				continue
12460			}
12461			if err := v.Validate(); err != nil {
12462				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
12463			}
12464		}
12465	}
12466	if s.ProxyConfiguration != nil {
12467		if err := s.ProxyConfiguration.Validate(); err != nil {
12468			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
12469		}
12470	}
12471	if s.Tags != nil {
12472		for i, v := range s.Tags {
12473			if v == nil {
12474				continue
12475			}
12476			if err := v.Validate(); err != nil {
12477				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12478			}
12479		}
12480	}
12481
12482	if invalidParams.Len() > 0 {
12483		return invalidParams
12484	}
12485	return nil
12486}
12487
12488// SetContainerDefinitions sets the ContainerDefinitions field's value.
12489func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
12490	s.ContainerDefinitions = v
12491	return s
12492}
12493
12494// SetCpu sets the Cpu field's value.
12495func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
12496	s.Cpu = &v
12497	return s
12498}
12499
12500// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
12501func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
12502	s.ExecutionRoleArn = &v
12503	return s
12504}
12505
12506// SetFamily sets the Family field's value.
12507func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
12508	s.Family = &v
12509	return s
12510}
12511
12512// SetInferenceAccelerators sets the InferenceAccelerators field's value.
12513func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
12514	s.InferenceAccelerators = v
12515	return s
12516}
12517
12518// SetIpcMode sets the IpcMode field's value.
12519func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
12520	s.IpcMode = &v
12521	return s
12522}
12523
12524// SetMemory sets the Memory field's value.
12525func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
12526	s.Memory = &v
12527	return s
12528}
12529
12530// SetNetworkMode sets the NetworkMode field's value.
12531func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
12532	s.NetworkMode = &v
12533	return s
12534}
12535
12536// SetPidMode sets the PidMode field's value.
12537func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
12538	s.PidMode = &v
12539	return s
12540}
12541
12542// SetPlacementConstraints sets the PlacementConstraints field's value.
12543func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
12544	s.PlacementConstraints = v
12545	return s
12546}
12547
12548// SetProxyConfiguration sets the ProxyConfiguration field's value.
12549func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
12550	s.ProxyConfiguration = v
12551	return s
12552}
12553
12554// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
12555func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
12556	s.RequiresCompatibilities = v
12557	return s
12558}
12559
12560// SetTags sets the Tags field's value.
12561func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
12562	s.Tags = v
12563	return s
12564}
12565
12566// SetTaskRoleArn sets the TaskRoleArn field's value.
12567func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
12568	s.TaskRoleArn = &v
12569	return s
12570}
12571
12572// SetVolumes sets the Volumes field's value.
12573func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
12574	s.Volumes = v
12575	return s
12576}
12577
12578type RegisterTaskDefinitionOutput struct {
12579	_ struct{} `type:"structure"`
12580
12581	// The list of tags associated with the task definition.
12582	Tags []*Tag `locationName:"tags" type:"list"`
12583
12584	// The full description of the registered task definition.
12585	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
12586}
12587
12588// String returns the string representation
12589func (s RegisterTaskDefinitionOutput) String() string {
12590	return awsutil.Prettify(s)
12591}
12592
12593// GoString returns the string representation
12594func (s RegisterTaskDefinitionOutput) GoString() string {
12595	return s.String()
12596}
12597
12598// SetTags sets the Tags field's value.
12599func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
12600	s.Tags = v
12601	return s
12602}
12603
12604// SetTaskDefinition sets the TaskDefinition field's value.
12605func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
12606	s.TaskDefinition = v
12607	return s
12608}
12609
12610// The repository credentials for private registry authentication.
12611type RepositoryCredentials struct {
12612	_ struct{} `type:"structure"`
12613
12614	// The Amazon Resource Name (ARN) of the secret containing the private repository
12615	// credentials.
12616	//
12617	// When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret
12618	// exists in the same Region as the task that you are launching then you can
12619	// use either the full ARN or the name of the secret. When you are using the
12620	// AWS Management Console, you must specify the full ARN of the secret.
12621	//
12622	// CredentialsParameter is a required field
12623	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
12624}
12625
12626// String returns the string representation
12627func (s RepositoryCredentials) String() string {
12628	return awsutil.Prettify(s)
12629}
12630
12631// GoString returns the string representation
12632func (s RepositoryCredentials) GoString() string {
12633	return s.String()
12634}
12635
12636// Validate inspects the fields of the type to determine if they are valid.
12637func (s *RepositoryCredentials) Validate() error {
12638	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
12639	if s.CredentialsParameter == nil {
12640		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
12641	}
12642
12643	if invalidParams.Len() > 0 {
12644		return invalidParams
12645	}
12646	return nil
12647}
12648
12649// SetCredentialsParameter sets the CredentialsParameter field's value.
12650func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
12651	s.CredentialsParameter = &v
12652	return s
12653}
12654
12655// Describes the resources available for a container instance.
12656type Resource struct {
12657	_ struct{} `type:"structure"`
12658
12659	// When the doubleValue type is set, the value of the resource must be a double
12660	// precision floating-point type.
12661	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
12662
12663	// When the integerValue type is set, the value of the resource must be an integer.
12664	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
12665
12666	// When the longValue type is set, the value of the resource must be an extended
12667	// precision floating-point type.
12668	LongValue *int64 `locationName:"longValue" type:"long"`
12669
12670	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
12671	// resource.
12672	Name *string `locationName:"name" type:"string"`
12673
12674	// When the stringSetValue type is set, the value of the resource must be a
12675	// string type.
12676	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
12677
12678	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
12679	Type *string `locationName:"type" type:"string"`
12680}
12681
12682// String returns the string representation
12683func (s Resource) String() string {
12684	return awsutil.Prettify(s)
12685}
12686
12687// GoString returns the string representation
12688func (s Resource) GoString() string {
12689	return s.String()
12690}
12691
12692// SetDoubleValue sets the DoubleValue field's value.
12693func (s *Resource) SetDoubleValue(v float64) *Resource {
12694	s.DoubleValue = &v
12695	return s
12696}
12697
12698// SetIntegerValue sets the IntegerValue field's value.
12699func (s *Resource) SetIntegerValue(v int64) *Resource {
12700	s.IntegerValue = &v
12701	return s
12702}
12703
12704// SetLongValue sets the LongValue field's value.
12705func (s *Resource) SetLongValue(v int64) *Resource {
12706	s.LongValue = &v
12707	return s
12708}
12709
12710// SetName sets the Name field's value.
12711func (s *Resource) SetName(v string) *Resource {
12712	s.Name = &v
12713	return s
12714}
12715
12716// SetStringSetValue sets the StringSetValue field's value.
12717func (s *Resource) SetStringSetValue(v []*string) *Resource {
12718	s.StringSetValue = v
12719	return s
12720}
12721
12722// SetType sets the Type field's value.
12723func (s *Resource) SetType(v string) *Resource {
12724	s.Type = &v
12725	return s
12726}
12727
12728// The type and amount of a resource to assign to a container. The supported
12729// resource types are GPUs and Elastic Inference accelerators. For more information,
12730// see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
12731// or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
12732// in the Amazon Elastic Container Service Developer Guide
12733type ResourceRequirement struct {
12734	_ struct{} `type:"structure"`
12735
12736	// The type of resource to assign to a container. The supported values are GPU
12737	// or InferenceAccelerator.
12738	//
12739	// Type is a required field
12740	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
12741
12742	// The value for the specified resource type.
12743	//
12744	// If the GPU type is used, the value is the number of physical GPUs the Amazon
12745	// ECS container agent will reserve for the container. The number of GPUs reserved
12746	// for all containers in a task should not exceed the number of available GPUs
12747	// on the container instance the task is launched on.
12748	//
12749	// If the InferenceAccelerator type is used, the value should match the deviceName
12750	// for an InferenceAccelerator specified in a task definition.
12751	//
12752	// Value is a required field
12753	Value *string `locationName:"value" type:"string" required:"true"`
12754}
12755
12756// String returns the string representation
12757func (s ResourceRequirement) String() string {
12758	return awsutil.Prettify(s)
12759}
12760
12761// GoString returns the string representation
12762func (s ResourceRequirement) GoString() string {
12763	return s.String()
12764}
12765
12766// Validate inspects the fields of the type to determine if they are valid.
12767func (s *ResourceRequirement) Validate() error {
12768	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
12769	if s.Type == nil {
12770		invalidParams.Add(request.NewErrParamRequired("Type"))
12771	}
12772	if s.Value == nil {
12773		invalidParams.Add(request.NewErrParamRequired("Value"))
12774	}
12775
12776	if invalidParams.Len() > 0 {
12777		return invalidParams
12778	}
12779	return nil
12780}
12781
12782// SetType sets the Type field's value.
12783func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
12784	s.Type = &v
12785	return s
12786}
12787
12788// SetValue sets the Value field's value.
12789func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
12790	s.Value = &v
12791	return s
12792}
12793
12794type RunTaskInput struct {
12795	_ struct{} `type:"structure"`
12796
12797	// The short name or full Amazon Resource Name (ARN) of the cluster on which
12798	// to run your task. If you do not specify a cluster, the default cluster is
12799	// assumed.
12800	Cluster *string `locationName:"cluster" type:"string"`
12801
12802	// The number of instantiations of the specified task to place on your cluster.
12803	// You can specify up to 10 tasks per call.
12804	Count *int64 `locationName:"count" type:"integer"`
12805
12806	// Specifies whether to enable Amazon ECS managed tags for the task. For more
12807	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
12808	// in the Amazon Elastic Container Service Developer Guide.
12809	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
12810
12811	// The name of the task group to associate with the task. The default value
12812	// is the family name of the task definition (for example, family:my-family-name).
12813	Group *string `locationName:"group" type:"string"`
12814
12815	// The launch type on which to run your task. For more information, see Amazon
12816	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
12817	// in the Amazon Elastic Container Service Developer Guide.
12818	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
12819
12820	// The network configuration for the task. This parameter is required for task
12821	// definitions that use the awsvpc network mode to receive their own elastic
12822	// network interface, and it is not supported for other network modes. For more
12823	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
12824	// in the Amazon Elastic Container Service Developer Guide.
12825	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
12826
12827	// A list of container overrides in JSON format that specify the name of a container
12828	// in the specified task definition and the overrides it should receive. You
12829	// can override the default command for a container (that is specified in the
12830	// task definition or Docker image) with a command override. You can also override
12831	// existing environment variables (that are specified in the task definition
12832	// or Docker image) on a container or add new environment variables to it with
12833	// an environment override.
12834	//
12835	// A total of 8192 characters are allowed for overrides. This limit includes
12836	// the JSON formatting characters of the override structure.
12837	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
12838
12839	// An array of placement constraint objects to use for the task. You can specify
12840	// up to 10 constraints per task (including constraints in the task definition
12841	// and those specified at runtime).
12842	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
12843
12844	// The placement strategy objects to use for the task. You can specify a maximum
12845	// of five strategy rules per task.
12846	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
12847
12848	// The platform version the task should run. A platform version is only specified
12849	// for tasks using the Fargate launch type. If one is not specified, the LATEST
12850	// platform version is used by default. For more information, see AWS Fargate
12851	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
12852	// in the Amazon Elastic Container Service Developer Guide.
12853	PlatformVersion *string `locationName:"platformVersion" type:"string"`
12854
12855	// Specifies whether to propagate the tags from the task definition to the task.
12856	// If no value is specified, the tags are not propagated. Tags can only be propagated
12857	// to the task during task creation. To add tags to a task after task creation,
12858	// use the TagResource API action.
12859	//
12860	// An error will be received if you specify the SERVICE option when running
12861	// a task.
12862	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
12863
12864	// An optional tag specified when a task is started. For example, if you automatically
12865	// trigger a task to run a batch process job, you could apply a unique identifier
12866	// for that job to your task with the startedBy parameter. You can then identify
12867	// which tasks belong to that job by filtering the results of a ListTasks call
12868	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
12869	// hyphens, and underscores are allowed.
12870	//
12871	// If a task is started by an Amazon ECS service, then the startedBy parameter
12872	// contains the deployment ID of the service that starts it.
12873	StartedBy *string `locationName:"startedBy" type:"string"`
12874
12875	// The metadata that you apply to the task to help you categorize and organize
12876	// them. Each tag consists of a key and an optional value, both of which you
12877	// define.
12878	//
12879	// The following basic restrictions apply to tags:
12880	//
12881	//    * Maximum number of tags per resource - 50
12882	//
12883	//    * For each resource, each tag key must be unique, and each tag key can
12884	//    have only one value.
12885	//
12886	//    * Maximum key length - 128 Unicode characters in UTF-8
12887	//
12888	//    * Maximum value length - 256 Unicode characters in UTF-8
12889	//
12890	//    * If your tagging schema is used across multiple services and resources,
12891	//    remember that other services may have restrictions on allowed characters.
12892	//    Generally allowed characters are: letters, numbers, and spaces representable
12893	//    in UTF-8, and the following characters: + - = . _ : / @.
12894	//
12895	//    * Tag keys and values are case-sensitive.
12896	//
12897	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
12898	//    as a prefix for either keys or values as it is reserved for AWS use. You
12899	//    cannot edit or delete tag keys or values with this prefix. Tags with this
12900	//    prefix do not count against your tags per resource limit.
12901	Tags []*Tag `locationName:"tags" type:"list"`
12902
12903	// The family and revision (family:revision) or full ARN of the task definition
12904	// to run. If a revision is not specified, the latest ACTIVE revision is used.
12905	//
12906	// TaskDefinition is a required field
12907	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
12908}
12909
12910// String returns the string representation
12911func (s RunTaskInput) String() string {
12912	return awsutil.Prettify(s)
12913}
12914
12915// GoString returns the string representation
12916func (s RunTaskInput) GoString() string {
12917	return s.String()
12918}
12919
12920// Validate inspects the fields of the type to determine if they are valid.
12921func (s *RunTaskInput) Validate() error {
12922	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
12923	if s.TaskDefinition == nil {
12924		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
12925	}
12926	if s.NetworkConfiguration != nil {
12927		if err := s.NetworkConfiguration.Validate(); err != nil {
12928			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
12929		}
12930	}
12931	if s.Overrides != nil {
12932		if err := s.Overrides.Validate(); err != nil {
12933			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
12934		}
12935	}
12936	if s.Tags != nil {
12937		for i, v := range s.Tags {
12938			if v == nil {
12939				continue
12940			}
12941			if err := v.Validate(); err != nil {
12942				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12943			}
12944		}
12945	}
12946
12947	if invalidParams.Len() > 0 {
12948		return invalidParams
12949	}
12950	return nil
12951}
12952
12953// SetCluster sets the Cluster field's value.
12954func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
12955	s.Cluster = &v
12956	return s
12957}
12958
12959// SetCount sets the Count field's value.
12960func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
12961	s.Count = &v
12962	return s
12963}
12964
12965// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
12966func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
12967	s.EnableECSManagedTags = &v
12968	return s
12969}
12970
12971// SetGroup sets the Group field's value.
12972func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
12973	s.Group = &v
12974	return s
12975}
12976
12977// SetLaunchType sets the LaunchType field's value.
12978func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
12979	s.LaunchType = &v
12980	return s
12981}
12982
12983// SetNetworkConfiguration sets the NetworkConfiguration field's value.
12984func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
12985	s.NetworkConfiguration = v
12986	return s
12987}
12988
12989// SetOverrides sets the Overrides field's value.
12990func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
12991	s.Overrides = v
12992	return s
12993}
12994
12995// SetPlacementConstraints sets the PlacementConstraints field's value.
12996func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
12997	s.PlacementConstraints = v
12998	return s
12999}
13000
13001// SetPlacementStrategy sets the PlacementStrategy field's value.
13002func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
13003	s.PlacementStrategy = v
13004	return s
13005}
13006
13007// SetPlatformVersion sets the PlatformVersion field's value.
13008func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
13009	s.PlatformVersion = &v
13010	return s
13011}
13012
13013// SetPropagateTags sets the PropagateTags field's value.
13014func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
13015	s.PropagateTags = &v
13016	return s
13017}
13018
13019// SetStartedBy sets the StartedBy field's value.
13020func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
13021	s.StartedBy = &v
13022	return s
13023}
13024
13025// SetTags sets the Tags field's value.
13026func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
13027	s.Tags = v
13028	return s
13029}
13030
13031// SetTaskDefinition sets the TaskDefinition field's value.
13032func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
13033	s.TaskDefinition = &v
13034	return s
13035}
13036
13037type RunTaskOutput struct {
13038	_ struct{} `type:"structure"`
13039
13040	// Any failures associated with the call.
13041	Failures []*Failure `locationName:"failures" type:"list"`
13042
13043	// A full description of the tasks that were run. The tasks that were successfully
13044	// placed on your cluster are described here.
13045	Tasks []*Task `locationName:"tasks" type:"list"`
13046}
13047
13048// String returns the string representation
13049func (s RunTaskOutput) String() string {
13050	return awsutil.Prettify(s)
13051}
13052
13053// GoString returns the string representation
13054func (s RunTaskOutput) GoString() string {
13055	return s.String()
13056}
13057
13058// SetFailures sets the Failures field's value.
13059func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
13060	s.Failures = v
13061	return s
13062}
13063
13064// SetTasks sets the Tasks field's value.
13065func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
13066	s.Tasks = v
13067	return s
13068}
13069
13070// A floating-point percentage of the desired number of tasks to place and keep
13071// running in the task set.
13072type Scale struct {
13073	_ struct{} `type:"structure"`
13074
13075	// The unit of measure for the scale value.
13076	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
13077
13078	// The value, specified as a percent total of a service's desiredCount, to scale
13079	// the task set. Accepted values are numbers between 0 and 100.
13080	Value *float64 `locationName:"value" type:"double"`
13081}
13082
13083// String returns the string representation
13084func (s Scale) String() string {
13085	return awsutil.Prettify(s)
13086}
13087
13088// GoString returns the string representation
13089func (s Scale) GoString() string {
13090	return s.String()
13091}
13092
13093// SetUnit sets the Unit field's value.
13094func (s *Scale) SetUnit(v string) *Scale {
13095	s.Unit = &v
13096	return s
13097}
13098
13099// SetValue sets the Value field's value.
13100func (s *Scale) SetValue(v float64) *Scale {
13101	s.Value = &v
13102	return s
13103}
13104
13105// An object representing the secret to expose to your container. Secrets can
13106// be exposed to a container in the following ways:
13107//
13108//    * To inject sensitive data into your containers as environment variables,
13109//    use the secrets container definition parameter.
13110//
13111//    * To reference sensitive information in the log configuration of a container,
13112//    use the secretOptions container definition parameter.
13113//
13114// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
13115// in the Amazon Elastic Container Service Developer Guide.
13116type Secret struct {
13117	_ struct{} `type:"structure"`
13118
13119	// The name of the secret.
13120	//
13121	// Name is a required field
13122	Name *string `locationName:"name" type:"string" required:"true"`
13123
13124	// The secret to expose to the container. The supported values are either the
13125	// full ARN of the AWS Secrets Manager secret or the full ARN of the parameter
13126	// in the AWS Systems Manager Parameter Store.
13127	//
13128	// If the AWS Systems Manager Parameter Store parameter exists in the same Region
13129	// as the task you are launching, then you can use either the full ARN or name
13130	// of the parameter. If the parameter exists in a different Region, then the
13131	// full ARN must be specified.
13132	//
13133	// ValueFrom is a required field
13134	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
13135}
13136
13137// String returns the string representation
13138func (s Secret) String() string {
13139	return awsutil.Prettify(s)
13140}
13141
13142// GoString returns the string representation
13143func (s Secret) GoString() string {
13144	return s.String()
13145}
13146
13147// Validate inspects the fields of the type to determine if they are valid.
13148func (s *Secret) Validate() error {
13149	invalidParams := request.ErrInvalidParams{Context: "Secret"}
13150	if s.Name == nil {
13151		invalidParams.Add(request.NewErrParamRequired("Name"))
13152	}
13153	if s.ValueFrom == nil {
13154		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
13155	}
13156
13157	if invalidParams.Len() > 0 {
13158		return invalidParams
13159	}
13160	return nil
13161}
13162
13163// SetName sets the Name field's value.
13164func (s *Secret) SetName(v string) *Secret {
13165	s.Name = &v
13166	return s
13167}
13168
13169// SetValueFrom sets the ValueFrom field's value.
13170func (s *Secret) SetValueFrom(v string) *Secret {
13171	s.ValueFrom = &v
13172	return s
13173}
13174
13175// Details on a service within a cluster
13176type Service struct {
13177	_ struct{} `type:"structure"`
13178
13179	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
13180	ClusterArn *string `locationName:"clusterArn" type:"string"`
13181
13182	// The Unix timestamp for when the service was created.
13183	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
13184
13185	// The principal that created the service.
13186	CreatedBy *string `locationName:"createdBy" type:"string"`
13187
13188	// Optional deployment parameters that control how many tasks run during the
13189	// deployment and the ordering of stopping and starting tasks.
13190	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
13191
13192	// The deployment controller type the service is using. When using the DescribeServices
13193	// API, this field is omitted if the service is using the ECS deployment controller
13194	// type.
13195	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
13196
13197	// The current state of deployments for the service.
13198	Deployments []*Deployment `locationName:"deployments" type:"list"`
13199
13200	// The desired number of instantiations of the task definition to keep running
13201	// on the service. This value is specified when the service is created with
13202	// CreateService, and it can be modified with UpdateService.
13203	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
13204
13205	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
13206	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
13207	// in the Amazon Elastic Container Service Developer Guide.
13208	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
13209
13210	// The event stream for your service. A maximum of 100 of the latest events
13211	// are displayed.
13212	Events []*ServiceEvent `locationName:"events" type:"list"`
13213
13214	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
13215	// unhealthy Elastic Load Balancing target health checks after a task has first
13216	// started.
13217	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
13218
13219	// The launch type on which your service is running. If no value is specified,
13220	// it will default to EC2. Valid values include EC2 and FARGATE. For more information,
13221	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
13222	// in the Amazon Elastic Container Service Developer Guide.
13223	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13224
13225	// A list of Elastic Load Balancing load balancer objects, containing the load
13226	// balancer name, the container name (as it appears in a container definition),
13227	// and the container port to access from the load balancer.
13228	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
13229
13230	// The VPC subnet and security group configuration for tasks that receive their
13231	// own elastic network interface by using the awsvpc networking mode.
13232	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
13233
13234	// The number of tasks in the cluster that are in the PENDING state.
13235	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
13236
13237	// The placement constraints for the tasks in the service.
13238	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
13239
13240	// The placement strategy that determines how tasks for the service are placed.
13241	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
13242
13243	// The platform version on which to run your service. A platform version is
13244	// only specified for tasks using the Fargate launch type. If one is not specified,
13245	// the LATEST platform version is used by default. For more information, see
13246	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
13247	// in the Amazon Elastic Container Service Developer Guide.
13248	PlatformVersion *string `locationName:"platformVersion" type:"string"`
13249
13250	// Specifies whether to propagate the tags from the task definition or the service
13251	// to the task. If no value is specified, the tags are not propagated.
13252	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
13253
13254	// The ARN of the IAM role associated with the service that allows the Amazon
13255	// ECS container agent to register container instances with an Elastic Load
13256	// Balancing load balancer.
13257	RoleArn *string `locationName:"roleArn" type:"string"`
13258
13259	// The number of tasks in the cluster that are in the RUNNING state.
13260	RunningCount *int64 `locationName:"runningCount" type:"integer"`
13261
13262	// The scheduling strategy to use for the service. For more information, see
13263	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
13264	//
13265	// There are two service scheduler strategies available:
13266	//
13267	//    * REPLICA-The replica scheduling strategy places and maintains the desired
13268	//    number of tasks across your cluster. By default, the service scheduler
13269	//    spreads tasks across Availability Zones. You can use task placement strategies
13270	//    and constraints to customize task placement decisions.
13271	//
13272	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
13273	//    container instance in your cluster. When you are using this strategy,
13274	//    do not specify a desired number of tasks or any task placement strategies.
13275	//    Fargate tasks do not support the DAEMON scheduling strategy.
13276	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
13277
13278	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
13279	// followed by the Region of the service, the AWS account ID of the service
13280	// owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.
13281	ServiceArn *string `locationName:"serviceArn" type:"string"`
13282
13283	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
13284	// and hyphens are allowed. Service names must be unique within a cluster, but
13285	// you can have similarly named services in multiple clusters within a Region
13286	// or across multiple Regions.
13287	ServiceName *string `locationName:"serviceName" type:"string"`
13288
13289	// The details of the service discovery registries to assign to this service.
13290	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
13291	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
13292
13293	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
13294	Status *string `locationName:"status" type:"string"`
13295
13296	// The metadata that you apply to the service to help you categorize and organize
13297	// them. Each tag consists of a key and an optional value, both of which you
13298	// define.
13299	//
13300	// The following basic restrictions apply to tags:
13301	//
13302	//    * Maximum number of tags per resource - 50
13303	//
13304	//    * For each resource, each tag key must be unique, and each tag key can
13305	//    have only one value.
13306	//
13307	//    * Maximum key length - 128 Unicode characters in UTF-8
13308	//
13309	//    * Maximum value length - 256 Unicode characters in UTF-8
13310	//
13311	//    * If your tagging schema is used across multiple services and resources,
13312	//    remember that other services may have restrictions on allowed characters.
13313	//    Generally allowed characters are: letters, numbers, and spaces representable
13314	//    in UTF-8, and the following characters: + - = . _ : / @.
13315	//
13316	//    * Tag keys and values are case-sensitive.
13317	//
13318	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
13319	//    as a prefix for either keys or values as it is reserved for AWS use. You
13320	//    cannot edit or delete tag keys or values with this prefix. Tags with this
13321	//    prefix do not count against your tags per resource limit.
13322	Tags []*Tag `locationName:"tags" type:"list"`
13323
13324	// The task definition to use for tasks in the service. This value is specified
13325	// when the service is created with CreateService, and it can be modified with
13326	// UpdateService.
13327	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
13328
13329	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
13330	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
13331	// desired number of tasks, how many tasks are running, and whether the task
13332	// set serves production traffic.
13333	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
13334}
13335
13336// String returns the string representation
13337func (s Service) String() string {
13338	return awsutil.Prettify(s)
13339}
13340
13341// GoString returns the string representation
13342func (s Service) GoString() string {
13343	return s.String()
13344}
13345
13346// SetClusterArn sets the ClusterArn field's value.
13347func (s *Service) SetClusterArn(v string) *Service {
13348	s.ClusterArn = &v
13349	return s
13350}
13351
13352// SetCreatedAt sets the CreatedAt field's value.
13353func (s *Service) SetCreatedAt(v time.Time) *Service {
13354	s.CreatedAt = &v
13355	return s
13356}
13357
13358// SetCreatedBy sets the CreatedBy field's value.
13359func (s *Service) SetCreatedBy(v string) *Service {
13360	s.CreatedBy = &v
13361	return s
13362}
13363
13364// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
13365func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
13366	s.DeploymentConfiguration = v
13367	return s
13368}
13369
13370// SetDeploymentController sets the DeploymentController field's value.
13371func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
13372	s.DeploymentController = v
13373	return s
13374}
13375
13376// SetDeployments sets the Deployments field's value.
13377func (s *Service) SetDeployments(v []*Deployment) *Service {
13378	s.Deployments = v
13379	return s
13380}
13381
13382// SetDesiredCount sets the DesiredCount field's value.
13383func (s *Service) SetDesiredCount(v int64) *Service {
13384	s.DesiredCount = &v
13385	return s
13386}
13387
13388// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
13389func (s *Service) SetEnableECSManagedTags(v bool) *Service {
13390	s.EnableECSManagedTags = &v
13391	return s
13392}
13393
13394// SetEvents sets the Events field's value.
13395func (s *Service) SetEvents(v []*ServiceEvent) *Service {
13396	s.Events = v
13397	return s
13398}
13399
13400// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
13401func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
13402	s.HealthCheckGracePeriodSeconds = &v
13403	return s
13404}
13405
13406// SetLaunchType sets the LaunchType field's value.
13407func (s *Service) SetLaunchType(v string) *Service {
13408	s.LaunchType = &v
13409	return s
13410}
13411
13412// SetLoadBalancers sets the LoadBalancers field's value.
13413func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
13414	s.LoadBalancers = v
13415	return s
13416}
13417
13418// SetNetworkConfiguration sets the NetworkConfiguration field's value.
13419func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
13420	s.NetworkConfiguration = v
13421	return s
13422}
13423
13424// SetPendingCount sets the PendingCount field's value.
13425func (s *Service) SetPendingCount(v int64) *Service {
13426	s.PendingCount = &v
13427	return s
13428}
13429
13430// SetPlacementConstraints sets the PlacementConstraints field's value.
13431func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
13432	s.PlacementConstraints = v
13433	return s
13434}
13435
13436// SetPlacementStrategy sets the PlacementStrategy field's value.
13437func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
13438	s.PlacementStrategy = v
13439	return s
13440}
13441
13442// SetPlatformVersion sets the PlatformVersion field's value.
13443func (s *Service) SetPlatformVersion(v string) *Service {
13444	s.PlatformVersion = &v
13445	return s
13446}
13447
13448// SetPropagateTags sets the PropagateTags field's value.
13449func (s *Service) SetPropagateTags(v string) *Service {
13450	s.PropagateTags = &v
13451	return s
13452}
13453
13454// SetRoleArn sets the RoleArn field's value.
13455func (s *Service) SetRoleArn(v string) *Service {
13456	s.RoleArn = &v
13457	return s
13458}
13459
13460// SetRunningCount sets the RunningCount field's value.
13461func (s *Service) SetRunningCount(v int64) *Service {
13462	s.RunningCount = &v
13463	return s
13464}
13465
13466// SetSchedulingStrategy sets the SchedulingStrategy field's value.
13467func (s *Service) SetSchedulingStrategy(v string) *Service {
13468	s.SchedulingStrategy = &v
13469	return s
13470}
13471
13472// SetServiceArn sets the ServiceArn field's value.
13473func (s *Service) SetServiceArn(v string) *Service {
13474	s.ServiceArn = &v
13475	return s
13476}
13477
13478// SetServiceName sets the ServiceName field's value.
13479func (s *Service) SetServiceName(v string) *Service {
13480	s.ServiceName = &v
13481	return s
13482}
13483
13484// SetServiceRegistries sets the ServiceRegistries field's value.
13485func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
13486	s.ServiceRegistries = v
13487	return s
13488}
13489
13490// SetStatus sets the Status field's value.
13491func (s *Service) SetStatus(v string) *Service {
13492	s.Status = &v
13493	return s
13494}
13495
13496// SetTags sets the Tags field's value.
13497func (s *Service) SetTags(v []*Tag) *Service {
13498	s.Tags = v
13499	return s
13500}
13501
13502// SetTaskDefinition sets the TaskDefinition field's value.
13503func (s *Service) SetTaskDefinition(v string) *Service {
13504	s.TaskDefinition = &v
13505	return s
13506}
13507
13508// SetTaskSets sets the TaskSets field's value.
13509func (s *Service) SetTaskSets(v []*TaskSet) *Service {
13510	s.TaskSets = v
13511	return s
13512}
13513
13514// Details on an event associated with a service.
13515type ServiceEvent struct {
13516	_ struct{} `type:"structure"`
13517
13518	// The Unix timestamp for when the event was triggered.
13519	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
13520
13521	// The ID string of the event.
13522	Id *string `locationName:"id" type:"string"`
13523
13524	// The event message.
13525	Message *string `locationName:"message" type:"string"`
13526}
13527
13528// String returns the string representation
13529func (s ServiceEvent) String() string {
13530	return awsutil.Prettify(s)
13531}
13532
13533// GoString returns the string representation
13534func (s ServiceEvent) GoString() string {
13535	return s.String()
13536}
13537
13538// SetCreatedAt sets the CreatedAt field's value.
13539func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
13540	s.CreatedAt = &v
13541	return s
13542}
13543
13544// SetId sets the Id field's value.
13545func (s *ServiceEvent) SetId(v string) *ServiceEvent {
13546	s.Id = &v
13547	return s
13548}
13549
13550// SetMessage sets the Message field's value.
13551func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
13552	s.Message = &v
13553	return s
13554}
13555
13556// Details of the service registry.
13557type ServiceRegistry struct {
13558	_ struct{} `type:"structure"`
13559
13560	// The container name value, already specified in the task definition, to be
13561	// used for your service discovery service. If the task definition that your
13562	// service task specifies uses the bridge or host network mode, you must specify
13563	// a containerName and containerPort combination from the task definition. If
13564	// the task definition that your service task specifies uses the awsvpc network
13565	// mode and a type SRV DNS record is used, you must specify either a containerName
13566	// and containerPort combination or a port value, but not both.
13567	ContainerName *string `locationName:"containerName" type:"string"`
13568
13569	// The port value, already specified in the task definition, to be used for
13570	// your service discovery service. If the task definition your service task
13571	// specifies uses the bridge or host network mode, you must specify a containerName
13572	// and containerPort combination from the task definition. If the task definition
13573	// your service task specifies uses the awsvpc network mode and a type SRV DNS
13574	// record is used, you must specify either a containerName and containerPort
13575	// combination or a port value, but not both.
13576	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13577
13578	// The port value used if your service discovery service specified an SRV record.
13579	// This field may be used if both the awsvpc network mode and SRV records are
13580	// used.
13581	Port *int64 `locationName:"port" type:"integer"`
13582
13583	// The Amazon Resource Name (ARN) of the service registry. The currently supported
13584	// service registry is AWS Cloud Map. For more information, see CreateService
13585	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
13586	RegistryArn *string `locationName:"registryArn" type:"string"`
13587}
13588
13589// String returns the string representation
13590func (s ServiceRegistry) String() string {
13591	return awsutil.Prettify(s)
13592}
13593
13594// GoString returns the string representation
13595func (s ServiceRegistry) GoString() string {
13596	return s.String()
13597}
13598
13599// SetContainerName sets the ContainerName field's value.
13600func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
13601	s.ContainerName = &v
13602	return s
13603}
13604
13605// SetContainerPort sets the ContainerPort field's value.
13606func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
13607	s.ContainerPort = &v
13608	return s
13609}
13610
13611// SetPort sets the Port field's value.
13612func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
13613	s.Port = &v
13614	return s
13615}
13616
13617// SetRegistryArn sets the RegistryArn field's value.
13618func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
13619	s.RegistryArn = &v
13620	return s
13621}
13622
13623// The current account setting for a resource.
13624type Setting struct {
13625	_ struct{} `type:"structure"`
13626
13627	// The Amazon ECS resource name.
13628	Name *string `locationName:"name" type:"string" enum:"SettingName"`
13629
13630	// The ARN of the principal, which can be an IAM user, IAM role, or the root
13631	// user. If this field is omitted, the authenticated user is assumed.
13632	PrincipalArn *string `locationName:"principalArn" type:"string"`
13633
13634	// Whether the account setting is enabled or disabled for the specified resource.
13635	Value *string `locationName:"value" type:"string"`
13636}
13637
13638// String returns the string representation
13639func (s Setting) String() string {
13640	return awsutil.Prettify(s)
13641}
13642
13643// GoString returns the string representation
13644func (s Setting) GoString() string {
13645	return s.String()
13646}
13647
13648// SetName sets the Name field's value.
13649func (s *Setting) SetName(v string) *Setting {
13650	s.Name = &v
13651	return s
13652}
13653
13654// SetPrincipalArn sets the PrincipalArn field's value.
13655func (s *Setting) SetPrincipalArn(v string) *Setting {
13656	s.PrincipalArn = &v
13657	return s
13658}
13659
13660// SetValue sets the Value field's value.
13661func (s *Setting) SetValue(v string) *Setting {
13662	s.Value = &v
13663	return s
13664}
13665
13666type StartTaskInput struct {
13667	_ struct{} `type:"structure"`
13668
13669	// The short name or full Amazon Resource Name (ARN) of the cluster on which
13670	// to start your task. If you do not specify a cluster, the default cluster
13671	// is assumed.
13672	Cluster *string `locationName:"cluster" type:"string"`
13673
13674	// The container instance IDs or full ARN entries for the container instances
13675	// on which you would like to place your task. You can specify up to 10 container
13676	// instances.
13677	//
13678	// ContainerInstances is a required field
13679	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
13680
13681	// Specifies whether to enable Amazon ECS managed tags for the task. For more
13682	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
13683	// in the Amazon Elastic Container Service Developer Guide.
13684	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
13685
13686	// The name of the task group to associate with the task. The default value
13687	// is the family name of the task definition (for example, family:my-family-name).
13688	Group *string `locationName:"group" type:"string"`
13689
13690	// The VPC subnet and security group configuration for tasks that receive their
13691	// own elastic network interface by using the awsvpc networking mode.
13692	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
13693
13694	// A list of container overrides in JSON format that specify the name of a container
13695	// in the specified task definition and the overrides it should receive. You
13696	// can override the default command for a container (that is specified in the
13697	// task definition or Docker image) with a command override. You can also override
13698	// existing environment variables (that are specified in the task definition
13699	// or Docker image) on a container or add new environment variables to it with
13700	// an environment override.
13701	//
13702	// A total of 8192 characters are allowed for overrides. This limit includes
13703	// the JSON formatting characters of the override structure.
13704	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
13705
13706	// Specifies whether to propagate the tags from the task definition or the service
13707	// to the task. If no value is specified, the tags are not propagated.
13708	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
13709
13710	// An optional tag specified when a task is started. For example, if you automatically
13711	// trigger a task to run a batch process job, you could apply a unique identifier
13712	// for that job to your task with the startedBy parameter. You can then identify
13713	// which tasks belong to that job by filtering the results of a ListTasks call
13714	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
13715	// hyphens, and underscores are allowed.
13716	//
13717	// If a task is started by an Amazon ECS service, then the startedBy parameter
13718	// contains the deployment ID of the service that starts it.
13719	StartedBy *string `locationName:"startedBy" type:"string"`
13720
13721	// The metadata that you apply to the task to help you categorize and organize
13722	// them. Each tag consists of a key and an optional value, both of which you
13723	// define.
13724	//
13725	// The following basic restrictions apply to tags:
13726	//
13727	//    * Maximum number of tags per resource - 50
13728	//
13729	//    * For each resource, each tag key must be unique, and each tag key can
13730	//    have only one value.
13731	//
13732	//    * Maximum key length - 128 Unicode characters in UTF-8
13733	//
13734	//    * Maximum value length - 256 Unicode characters in UTF-8
13735	//
13736	//    * If your tagging schema is used across multiple services and resources,
13737	//    remember that other services may have restrictions on allowed characters.
13738	//    Generally allowed characters are: letters, numbers, and spaces representable
13739	//    in UTF-8, and the following characters: + - = . _ : / @.
13740	//
13741	//    * Tag keys and values are case-sensitive.
13742	//
13743	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
13744	//    as a prefix for either keys or values as it is reserved for AWS use. You
13745	//    cannot edit or delete tag keys or values with this prefix. Tags with this
13746	//    prefix do not count against your tags per resource limit.
13747	Tags []*Tag `locationName:"tags" type:"list"`
13748
13749	// The family and revision (family:revision) or full ARN of the task definition
13750	// to start. If a revision is not specified, the latest ACTIVE revision is used.
13751	//
13752	// TaskDefinition is a required field
13753	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
13754}
13755
13756// String returns the string representation
13757func (s StartTaskInput) String() string {
13758	return awsutil.Prettify(s)
13759}
13760
13761// GoString returns the string representation
13762func (s StartTaskInput) GoString() string {
13763	return s.String()
13764}
13765
13766// Validate inspects the fields of the type to determine if they are valid.
13767func (s *StartTaskInput) Validate() error {
13768	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
13769	if s.ContainerInstances == nil {
13770		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
13771	}
13772	if s.TaskDefinition == nil {
13773		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
13774	}
13775	if s.NetworkConfiguration != nil {
13776		if err := s.NetworkConfiguration.Validate(); err != nil {
13777			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
13778		}
13779	}
13780	if s.Overrides != nil {
13781		if err := s.Overrides.Validate(); err != nil {
13782			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
13783		}
13784	}
13785	if s.Tags != nil {
13786		for i, v := range s.Tags {
13787			if v == nil {
13788				continue
13789			}
13790			if err := v.Validate(); err != nil {
13791				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13792			}
13793		}
13794	}
13795
13796	if invalidParams.Len() > 0 {
13797		return invalidParams
13798	}
13799	return nil
13800}
13801
13802// SetCluster sets the Cluster field's value.
13803func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
13804	s.Cluster = &v
13805	return s
13806}
13807
13808// SetContainerInstances sets the ContainerInstances field's value.
13809func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
13810	s.ContainerInstances = v
13811	return s
13812}
13813
13814// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
13815func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
13816	s.EnableECSManagedTags = &v
13817	return s
13818}
13819
13820// SetGroup sets the Group field's value.
13821func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
13822	s.Group = &v
13823	return s
13824}
13825
13826// SetNetworkConfiguration sets the NetworkConfiguration field's value.
13827func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
13828	s.NetworkConfiguration = v
13829	return s
13830}
13831
13832// SetOverrides sets the Overrides field's value.
13833func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
13834	s.Overrides = v
13835	return s
13836}
13837
13838// SetPropagateTags sets the PropagateTags field's value.
13839func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
13840	s.PropagateTags = &v
13841	return s
13842}
13843
13844// SetStartedBy sets the StartedBy field's value.
13845func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
13846	s.StartedBy = &v
13847	return s
13848}
13849
13850// SetTags sets the Tags field's value.
13851func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
13852	s.Tags = v
13853	return s
13854}
13855
13856// SetTaskDefinition sets the TaskDefinition field's value.
13857func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
13858	s.TaskDefinition = &v
13859	return s
13860}
13861
13862type StartTaskOutput struct {
13863	_ struct{} `type:"structure"`
13864
13865	// Any failures associated with the call.
13866	Failures []*Failure `locationName:"failures" type:"list"`
13867
13868	// A full description of the tasks that were started. Each task that was successfully
13869	// placed on your container instances is described.
13870	Tasks []*Task `locationName:"tasks" type:"list"`
13871}
13872
13873// String returns the string representation
13874func (s StartTaskOutput) String() string {
13875	return awsutil.Prettify(s)
13876}
13877
13878// GoString returns the string representation
13879func (s StartTaskOutput) GoString() string {
13880	return s.String()
13881}
13882
13883// SetFailures sets the Failures field's value.
13884func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
13885	s.Failures = v
13886	return s
13887}
13888
13889// SetTasks sets the Tasks field's value.
13890func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
13891	s.Tasks = v
13892	return s
13893}
13894
13895type StopTaskInput struct {
13896	_ struct{} `type:"structure"`
13897
13898	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13899	// the task to stop. If you do not specify a cluster, the default cluster is
13900	// assumed.
13901	Cluster *string `locationName:"cluster" type:"string"`
13902
13903	// An optional message specified when a task is stopped. For example, if you
13904	// are using a custom scheduler, you can use this parameter to specify the reason
13905	// for stopping the task here, and the message appears in subsequent DescribeTasks
13906	// API operations on this task. Up to 255 characters are allowed in this message.
13907	Reason *string `locationName:"reason" type:"string"`
13908
13909	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
13910	//
13911	// Task is a required field
13912	Task *string `locationName:"task" type:"string" required:"true"`
13913}
13914
13915// String returns the string representation
13916func (s StopTaskInput) String() string {
13917	return awsutil.Prettify(s)
13918}
13919
13920// GoString returns the string representation
13921func (s StopTaskInput) GoString() string {
13922	return s.String()
13923}
13924
13925// Validate inspects the fields of the type to determine if they are valid.
13926func (s *StopTaskInput) Validate() error {
13927	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
13928	if s.Task == nil {
13929		invalidParams.Add(request.NewErrParamRequired("Task"))
13930	}
13931
13932	if invalidParams.Len() > 0 {
13933		return invalidParams
13934	}
13935	return nil
13936}
13937
13938// SetCluster sets the Cluster field's value.
13939func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
13940	s.Cluster = &v
13941	return s
13942}
13943
13944// SetReason sets the Reason field's value.
13945func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
13946	s.Reason = &v
13947	return s
13948}
13949
13950// SetTask sets the Task field's value.
13951func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
13952	s.Task = &v
13953	return s
13954}
13955
13956type StopTaskOutput struct {
13957	_ struct{} `type:"structure"`
13958
13959	// The task that was stopped.
13960	Task *Task `locationName:"task" type:"structure"`
13961}
13962
13963// String returns the string representation
13964func (s StopTaskOutput) String() string {
13965	return awsutil.Prettify(s)
13966}
13967
13968// GoString returns the string representation
13969func (s StopTaskOutput) GoString() string {
13970	return s.String()
13971}
13972
13973// SetTask sets the Task field's value.
13974func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
13975	s.Task = v
13976	return s
13977}
13978
13979type SubmitAttachmentStateChangesInput struct {
13980	_ struct{} `type:"structure"`
13981
13982	// Any attachments associated with the state change request.
13983	//
13984	// Attachments is a required field
13985	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
13986
13987	// The short name or full ARN of the cluster that hosts the container instance
13988	// the attachment belongs to.
13989	Cluster *string `locationName:"cluster" type:"string"`
13990}
13991
13992// String returns the string representation
13993func (s SubmitAttachmentStateChangesInput) String() string {
13994	return awsutil.Prettify(s)
13995}
13996
13997// GoString returns the string representation
13998func (s SubmitAttachmentStateChangesInput) GoString() string {
13999	return s.String()
14000}
14001
14002// Validate inspects the fields of the type to determine if they are valid.
14003func (s *SubmitAttachmentStateChangesInput) Validate() error {
14004	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
14005	if s.Attachments == nil {
14006		invalidParams.Add(request.NewErrParamRequired("Attachments"))
14007	}
14008	if s.Attachments != nil {
14009		for i, v := range s.Attachments {
14010			if v == nil {
14011				continue
14012			}
14013			if err := v.Validate(); err != nil {
14014				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
14015			}
14016		}
14017	}
14018
14019	if invalidParams.Len() > 0 {
14020		return invalidParams
14021	}
14022	return nil
14023}
14024
14025// SetAttachments sets the Attachments field's value.
14026func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
14027	s.Attachments = v
14028	return s
14029}
14030
14031// SetCluster sets the Cluster field's value.
14032func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
14033	s.Cluster = &v
14034	return s
14035}
14036
14037type SubmitAttachmentStateChangesOutput struct {
14038	_ struct{} `type:"structure"`
14039
14040	// Acknowledgement of the state change.
14041	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
14042}
14043
14044// String returns the string representation
14045func (s SubmitAttachmentStateChangesOutput) String() string {
14046	return awsutil.Prettify(s)
14047}
14048
14049// GoString returns the string representation
14050func (s SubmitAttachmentStateChangesOutput) GoString() string {
14051	return s.String()
14052}
14053
14054// SetAcknowledgment sets the Acknowledgment field's value.
14055func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
14056	s.Acknowledgment = &v
14057	return s
14058}
14059
14060type SubmitContainerStateChangeInput struct {
14061	_ struct{} `type:"structure"`
14062
14063	// The short name or full ARN of the cluster that hosts the container.
14064	Cluster *string `locationName:"cluster" type:"string"`
14065
14066	// The name of the container.
14067	ContainerName *string `locationName:"containerName" type:"string"`
14068
14069	// The exit code returned for the state change request.
14070	ExitCode *int64 `locationName:"exitCode" type:"integer"`
14071
14072	// The network bindings of the container.
14073	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
14074
14075	// The reason for the state change request.
14076	Reason *string `locationName:"reason" type:"string"`
14077
14078	// The ID of the Docker container.
14079	RuntimeId *string `locationName:"runtimeId" type:"string"`
14080
14081	// The status of the state change request.
14082	Status *string `locationName:"status" type:"string"`
14083
14084	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
14085	// container.
14086	Task *string `locationName:"task" type:"string"`
14087}
14088
14089// String returns the string representation
14090func (s SubmitContainerStateChangeInput) String() string {
14091	return awsutil.Prettify(s)
14092}
14093
14094// GoString returns the string representation
14095func (s SubmitContainerStateChangeInput) GoString() string {
14096	return s.String()
14097}
14098
14099// SetCluster sets the Cluster field's value.
14100func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
14101	s.Cluster = &v
14102	return s
14103}
14104
14105// SetContainerName sets the ContainerName field's value.
14106func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
14107	s.ContainerName = &v
14108	return s
14109}
14110
14111// SetExitCode sets the ExitCode field's value.
14112func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
14113	s.ExitCode = &v
14114	return s
14115}
14116
14117// SetNetworkBindings sets the NetworkBindings field's value.
14118func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
14119	s.NetworkBindings = v
14120	return s
14121}
14122
14123// SetReason sets the Reason field's value.
14124func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
14125	s.Reason = &v
14126	return s
14127}
14128
14129// SetRuntimeId sets the RuntimeId field's value.
14130func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
14131	s.RuntimeId = &v
14132	return s
14133}
14134
14135// SetStatus sets the Status field's value.
14136func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
14137	s.Status = &v
14138	return s
14139}
14140
14141// SetTask sets the Task field's value.
14142func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
14143	s.Task = &v
14144	return s
14145}
14146
14147type SubmitContainerStateChangeOutput struct {
14148	_ struct{} `type:"structure"`
14149
14150	// Acknowledgement of the state change.
14151	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
14152}
14153
14154// String returns the string representation
14155func (s SubmitContainerStateChangeOutput) String() string {
14156	return awsutil.Prettify(s)
14157}
14158
14159// GoString returns the string representation
14160func (s SubmitContainerStateChangeOutput) GoString() string {
14161	return s.String()
14162}
14163
14164// SetAcknowledgment sets the Acknowledgment field's value.
14165func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
14166	s.Acknowledgment = &v
14167	return s
14168}
14169
14170type SubmitTaskStateChangeInput struct {
14171	_ struct{} `type:"structure"`
14172
14173	// Any attachments associated with the state change request.
14174	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
14175
14176	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
14177	// the task.
14178	Cluster *string `locationName:"cluster" type:"string"`
14179
14180	// Any containers associated with the state change request.
14181	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
14182
14183	// The Unix timestamp for when the task execution stopped.
14184	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
14185
14186	// The Unix timestamp for when the container image pull began.
14187	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
14188
14189	// The Unix timestamp for when the container image pull completed.
14190	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
14191
14192	// The reason for the state change request.
14193	Reason *string `locationName:"reason" type:"string"`
14194
14195	// The status of the state change request.
14196	Status *string `locationName:"status" type:"string"`
14197
14198	// The task ID or full ARN of the task in the state change request.
14199	Task *string `locationName:"task" type:"string"`
14200}
14201
14202// String returns the string representation
14203func (s SubmitTaskStateChangeInput) String() string {
14204	return awsutil.Prettify(s)
14205}
14206
14207// GoString returns the string representation
14208func (s SubmitTaskStateChangeInput) GoString() string {
14209	return s.String()
14210}
14211
14212// Validate inspects the fields of the type to determine if they are valid.
14213func (s *SubmitTaskStateChangeInput) Validate() error {
14214	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
14215	if s.Attachments != nil {
14216		for i, v := range s.Attachments {
14217			if v == nil {
14218				continue
14219			}
14220			if err := v.Validate(); err != nil {
14221				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
14222			}
14223		}
14224	}
14225
14226	if invalidParams.Len() > 0 {
14227		return invalidParams
14228	}
14229	return nil
14230}
14231
14232// SetAttachments sets the Attachments field's value.
14233func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
14234	s.Attachments = v
14235	return s
14236}
14237
14238// SetCluster sets the Cluster field's value.
14239func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
14240	s.Cluster = &v
14241	return s
14242}
14243
14244// SetContainers sets the Containers field's value.
14245func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
14246	s.Containers = v
14247	return s
14248}
14249
14250// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
14251func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
14252	s.ExecutionStoppedAt = &v
14253	return s
14254}
14255
14256// SetPullStartedAt sets the PullStartedAt field's value.
14257func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
14258	s.PullStartedAt = &v
14259	return s
14260}
14261
14262// SetPullStoppedAt sets the PullStoppedAt field's value.
14263func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
14264	s.PullStoppedAt = &v
14265	return s
14266}
14267
14268// SetReason sets the Reason field's value.
14269func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
14270	s.Reason = &v
14271	return s
14272}
14273
14274// SetStatus sets the Status field's value.
14275func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
14276	s.Status = &v
14277	return s
14278}
14279
14280// SetTask sets the Task field's value.
14281func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
14282	s.Task = &v
14283	return s
14284}
14285
14286type SubmitTaskStateChangeOutput struct {
14287	_ struct{} `type:"structure"`
14288
14289	// Acknowledgement of the state change.
14290	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
14291}
14292
14293// String returns the string representation
14294func (s SubmitTaskStateChangeOutput) String() string {
14295	return awsutil.Prettify(s)
14296}
14297
14298// GoString returns the string representation
14299func (s SubmitTaskStateChangeOutput) GoString() string {
14300	return s.String()
14301}
14302
14303// SetAcknowledgment sets the Acknowledgment field's value.
14304func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
14305	s.Acknowledgment = &v
14306	return s
14307}
14308
14309// A list of namespaced kernel parameters to set in the container. This parameter
14310// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
14311// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
14312// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
14313//
14314// It is not recommended that you specify network-related systemControls parameters
14315// for multiple containers in a single task that also uses either the awsvpc
14316// or host network mode for the following reasons:
14317//
14318//    * For tasks that use the awsvpc network mode, if you set systemControls
14319//    for any container, it applies to all containers in the task. If you set
14320//    different systemControls for multiple containers in a single task, the
14321//    container that is started last determines which systemControls take effect.
14322//
14323//    * For tasks that use the host network mode, the systemControls parameter
14324//    applies to the container instance's kernel parameter as well as that of
14325//    all containers of any tasks running on that container instance.
14326type SystemControl struct {
14327	_ struct{} `type:"structure"`
14328
14329	// The namespaced kernel parameter for which to set a value.
14330	Namespace *string `locationName:"namespace" type:"string"`
14331
14332	// The value for the namespaced kernel parameter specified in namespace.
14333	Value *string `locationName:"value" type:"string"`
14334}
14335
14336// String returns the string representation
14337func (s SystemControl) String() string {
14338	return awsutil.Prettify(s)
14339}
14340
14341// GoString returns the string representation
14342func (s SystemControl) GoString() string {
14343	return s.String()
14344}
14345
14346// SetNamespace sets the Namespace field's value.
14347func (s *SystemControl) SetNamespace(v string) *SystemControl {
14348	s.Namespace = &v
14349	return s
14350}
14351
14352// SetValue sets the Value field's value.
14353func (s *SystemControl) SetValue(v string) *SystemControl {
14354	s.Value = &v
14355	return s
14356}
14357
14358// The metadata that you apply to a resource to help you categorize and organize
14359// them. Each tag consists of a key and an optional value, both of which you
14360// define.
14361//
14362// The following basic restrictions apply to tags:
14363//
14364//    * Maximum number of tags per resource - 50
14365//
14366//    * For each resource, each tag key must be unique, and each tag key can
14367//    have only one value.
14368//
14369//    * Maximum key length - 128 Unicode characters in UTF-8
14370//
14371//    * Maximum value length - 256 Unicode characters in UTF-8
14372//
14373//    * If your tagging schema is used across multiple services and resources,
14374//    remember that other services may have restrictions on allowed characters.
14375//    Generally allowed characters are: letters, numbers, and spaces representable
14376//    in UTF-8, and the following characters: + - = . _ : / @.
14377//
14378//    * Tag keys and values are case-sensitive.
14379//
14380//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14381//    as a prefix for either keys or values as it is reserved for AWS use. You
14382//    cannot edit or delete tag keys or values with this prefix. Tags with this
14383//    prefix do not count against your tags per resource limit.
14384type Tag struct {
14385	_ struct{} `type:"structure"`
14386
14387	// One part of a key-value pair that make up a tag. A key is a general label
14388	// that acts like a category for more specific tag values.
14389	Key *string `locationName:"key" min:"1" type:"string"`
14390
14391	// The optional part of a key-value pair that make up a tag. A value acts as
14392	// a descriptor within a tag category (key).
14393	Value *string `locationName:"value" type:"string"`
14394}
14395
14396// String returns the string representation
14397func (s Tag) String() string {
14398	return awsutil.Prettify(s)
14399}
14400
14401// GoString returns the string representation
14402func (s Tag) GoString() string {
14403	return s.String()
14404}
14405
14406// Validate inspects the fields of the type to determine if they are valid.
14407func (s *Tag) Validate() error {
14408	invalidParams := request.ErrInvalidParams{Context: "Tag"}
14409	if s.Key != nil && len(*s.Key) < 1 {
14410		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
14411	}
14412
14413	if invalidParams.Len() > 0 {
14414		return invalidParams
14415	}
14416	return nil
14417}
14418
14419// SetKey sets the Key field's value.
14420func (s *Tag) SetKey(v string) *Tag {
14421	s.Key = &v
14422	return s
14423}
14424
14425// SetValue sets the Value field's value.
14426func (s *Tag) SetValue(v string) *Tag {
14427	s.Value = &v
14428	return s
14429}
14430
14431type TagResourceInput struct {
14432	_ struct{} `type:"structure"`
14433
14434	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
14435	// the supported resources are Amazon ECS tasks, services, task definitions,
14436	// clusters, and container instances.
14437	//
14438	// ResourceArn is a required field
14439	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
14440
14441	// The tags to add to the resource. A tag is an array of key-value pairs.
14442	//
14443	// The following basic restrictions apply to tags:
14444	//
14445	//    * Maximum number of tags per resource - 50
14446	//
14447	//    * For each resource, each tag key must be unique, and each tag key can
14448	//    have only one value.
14449	//
14450	//    * Maximum key length - 128 Unicode characters in UTF-8
14451	//
14452	//    * Maximum value length - 256 Unicode characters in UTF-8
14453	//
14454	//    * If your tagging schema is used across multiple services and resources,
14455	//    remember that other services may have restrictions on allowed characters.
14456	//    Generally allowed characters are: letters, numbers, and spaces representable
14457	//    in UTF-8, and the following characters: + - = . _ : / @.
14458	//
14459	//    * Tag keys and values are case-sensitive.
14460	//
14461	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14462	//    as a prefix for either keys or values as it is reserved for AWS use. You
14463	//    cannot edit or delete tag keys or values with this prefix. Tags with this
14464	//    prefix do not count against your tags per resource limit.
14465	//
14466	// Tags is a required field
14467	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
14468}
14469
14470// String returns the string representation
14471func (s TagResourceInput) String() string {
14472	return awsutil.Prettify(s)
14473}
14474
14475// GoString returns the string representation
14476func (s TagResourceInput) GoString() string {
14477	return s.String()
14478}
14479
14480// Validate inspects the fields of the type to determine if they are valid.
14481func (s *TagResourceInput) Validate() error {
14482	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
14483	if s.ResourceArn == nil {
14484		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
14485	}
14486	if s.Tags == nil {
14487		invalidParams.Add(request.NewErrParamRequired("Tags"))
14488	}
14489	if s.Tags != nil {
14490		for i, v := range s.Tags {
14491			if v == nil {
14492				continue
14493			}
14494			if err := v.Validate(); err != nil {
14495				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
14496			}
14497		}
14498	}
14499
14500	if invalidParams.Len() > 0 {
14501		return invalidParams
14502	}
14503	return nil
14504}
14505
14506// SetResourceArn sets the ResourceArn field's value.
14507func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
14508	s.ResourceArn = &v
14509	return s
14510}
14511
14512// SetTags sets the Tags field's value.
14513func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
14514	s.Tags = v
14515	return s
14516}
14517
14518type TagResourceOutput struct {
14519	_ struct{} `type:"structure"`
14520}
14521
14522// String returns the string representation
14523func (s TagResourceOutput) String() string {
14524	return awsutil.Prettify(s)
14525}
14526
14527// GoString returns the string representation
14528func (s TagResourceOutput) GoString() string {
14529	return s.String()
14530}
14531
14532// Details on a task in a cluster.
14533type Task struct {
14534	_ struct{} `type:"structure"`
14535
14536	// The Elastic Network Adapter associated with the task if the task uses the
14537	// awsvpc network mode.
14538	Attachments []*Attachment `locationName:"attachments" type:"list"`
14539
14540	// The ARN of the cluster that hosts the task.
14541	ClusterArn *string `locationName:"clusterArn" type:"string"`
14542
14543	// The connectivity status of a task.
14544	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
14545
14546	// The Unix timestamp for when the task last went into CONNECTED status.
14547	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
14548
14549	// The ARN of the container instances that host the task.
14550	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
14551
14552	// The containers associated with the task.
14553	Containers []*Container `locationName:"containers" type:"list"`
14554
14555	// The number of CPU units used by the task as expressed in a task definition.
14556	// It can be expressed as an integer using CPU units, for example 1024. It can
14557	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
14558	// String values are converted to an integer indicating the CPU units when the
14559	// task definition is registered.
14560	//
14561	// If you are using the EC2 launch type, this field is optional. Supported values
14562	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
14563	//
14564	// If you are using the Fargate launch type, this field is required and you
14565	// must use one of the following values, which determines your range of supported
14566	// values for the memory parameter:
14567	//
14568	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
14569	//    2048 (2 GB)
14570	//
14571	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
14572	//    (3 GB), 4096 (4 GB)
14573	//
14574	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
14575	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
14576	//
14577	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
14578	//    (16 GB) in increments of 1024 (1 GB)
14579	//
14580	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
14581	//    (30 GB) in increments of 1024 (1 GB)
14582	Cpu *string `locationName:"cpu" type:"string"`
14583
14584	// The Unix timestamp for when the task was created (the task entered the PENDING
14585	// state).
14586	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
14587
14588	// The desired status of the task. For more information, see Task Lifecycle
14589	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
14590	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
14591
14592	// The Unix timestamp for when the task execution stopped.
14593	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
14594
14595	// The name of the task group associated with the task.
14596	Group *string `locationName:"group" type:"string"`
14597
14598	// The health status for the task, which is determined by the health of the
14599	// essential containers in the task. If all essential containers in the task
14600	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
14601	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
14602	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
14603	//
14604	// The Amazon ECS container agent does not monitor or report on Docker health
14605	// checks that are embedded in a container image (such as those specified in
14606	// a parent image or from the image's Dockerfile) and not specified in the container
14607	// definition. Health check parameters that are specified in a container definition
14608	// override any Docker health checks that exist in the container image.
14609	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
14610
14611	// The Elastic Inference accelerator associated with the task.
14612	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
14613
14614	// The last known status of the task. For more information, see Task Lifecycle
14615	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
14616	LastStatus *string `locationName:"lastStatus" type:"string"`
14617
14618	// The launch type on which your task is running. For more information, see
14619	// Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
14620	// in the Amazon Elastic Container Service Developer Guide.
14621	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
14622
14623	// The amount of memory (in MiB) used by the task as expressed in a task definition.
14624	// It can be expressed as an integer using MiB, for example 1024. It can also
14625	// be expressed as a string using GB, for example 1GB or 1 GB. String values
14626	// are converted to an integer indicating the MiB when the task definition is
14627	// registered.
14628	//
14629	// If you are using the EC2 launch type, this field is optional.
14630	//
14631	// If you are using the Fargate launch type, this field is required and you
14632	// must use one of the following values, which determines your range of supported
14633	// values for the cpu parameter:
14634	//
14635	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
14636	//    vCPU)
14637	//
14638	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
14639	//    512 (.5 vCPU)
14640	//
14641	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
14642	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
14643	//
14644	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
14645	//    Available cpu values: 2048 (2 vCPU)
14646	//
14647	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
14648	//    Available cpu values: 4096 (4 vCPU)
14649	Memory *string `locationName:"memory" type:"string"`
14650
14651	// One or more container overrides.
14652	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
14653
14654	// The platform version on which your task is running. A platform version is
14655	// only specified for tasks using the Fargate launch type. If one is not specified,
14656	// the LATEST platform version is used by default. For more information, see
14657	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
14658	// in the Amazon Elastic Container Service Developer Guide.
14659	PlatformVersion *string `locationName:"platformVersion" type:"string"`
14660
14661	// The Unix timestamp for when the container image pull began.
14662	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
14663
14664	// The Unix timestamp for when the container image pull completed.
14665	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
14666
14667	// The Unix timestamp for when the task started (the task transitioned from
14668	// the PENDING state to the RUNNING state).
14669	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
14670
14671	// The tag specified when a task is started. If the task is started by an Amazon
14672	// ECS service, then the startedBy parameter contains the deployment ID of the
14673	// service that starts it.
14674	StartedBy *string `locationName:"startedBy" type:"string"`
14675
14676	// The stop code indicating why a task was stopped. The stoppedReason may contain
14677	// additional details.
14678	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
14679
14680	// The Unix timestamp for when the task was stopped (the task transitioned from
14681	// the RUNNING state to the STOPPED state).
14682	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
14683
14684	// The reason that the task was stopped.
14685	StoppedReason *string `locationName:"stoppedReason" type:"string"`
14686
14687	// The Unix timestamp for when the task stops (transitions from the RUNNING
14688	// state to STOPPED).
14689	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
14690
14691	// The metadata that you apply to the task to help you categorize and organize
14692	// them. Each tag consists of a key and an optional value, both of which you
14693	// define.
14694	//
14695	// The following basic restrictions apply to tags:
14696	//
14697	//    * Maximum number of tags per resource - 50
14698	//
14699	//    * For each resource, each tag key must be unique, and each tag key can
14700	//    have only one value.
14701	//
14702	//    * Maximum key length - 128 Unicode characters in UTF-8
14703	//
14704	//    * Maximum value length - 256 Unicode characters in UTF-8
14705	//
14706	//    * If your tagging schema is used across multiple services and resources,
14707	//    remember that other services may have restrictions on allowed characters.
14708	//    Generally allowed characters are: letters, numbers, and spaces representable
14709	//    in UTF-8, and the following characters: + - = . _ : / @.
14710	//
14711	//    * Tag keys and values are case-sensitive.
14712	//
14713	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14714	//    as a prefix for either keys or values as it is reserved for AWS use. You
14715	//    cannot edit or delete tag keys or values with this prefix. Tags with this
14716	//    prefix do not count against your tags per resource limit.
14717	Tags []*Tag `locationName:"tags" type:"list"`
14718
14719	// The Amazon Resource Name (ARN) of the task.
14720	TaskArn *string `locationName:"taskArn" type:"string"`
14721
14722	// The ARN of the task definition that creates the task.
14723	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
14724
14725	// The version counter for the task. Every time a task experiences a change
14726	// that triggers a CloudWatch event, the version counter is incremented. If
14727	// you are replicating your Amazon ECS task state with CloudWatch Events, you
14728	// can compare the version of a task reported by the Amazon ECS API actions
14729	// with the version reported in CloudWatch Events for the task (inside the detail
14730	// object) to verify that the version in your event stream is current.
14731	Version *int64 `locationName:"version" type:"long"`
14732}
14733
14734// String returns the string representation
14735func (s Task) String() string {
14736	return awsutil.Prettify(s)
14737}
14738
14739// GoString returns the string representation
14740func (s Task) GoString() string {
14741	return s.String()
14742}
14743
14744// SetAttachments sets the Attachments field's value.
14745func (s *Task) SetAttachments(v []*Attachment) *Task {
14746	s.Attachments = v
14747	return s
14748}
14749
14750// SetClusterArn sets the ClusterArn field's value.
14751func (s *Task) SetClusterArn(v string) *Task {
14752	s.ClusterArn = &v
14753	return s
14754}
14755
14756// SetConnectivity sets the Connectivity field's value.
14757func (s *Task) SetConnectivity(v string) *Task {
14758	s.Connectivity = &v
14759	return s
14760}
14761
14762// SetConnectivityAt sets the ConnectivityAt field's value.
14763func (s *Task) SetConnectivityAt(v time.Time) *Task {
14764	s.ConnectivityAt = &v
14765	return s
14766}
14767
14768// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
14769func (s *Task) SetContainerInstanceArn(v string) *Task {
14770	s.ContainerInstanceArn = &v
14771	return s
14772}
14773
14774// SetContainers sets the Containers field's value.
14775func (s *Task) SetContainers(v []*Container) *Task {
14776	s.Containers = v
14777	return s
14778}
14779
14780// SetCpu sets the Cpu field's value.
14781func (s *Task) SetCpu(v string) *Task {
14782	s.Cpu = &v
14783	return s
14784}
14785
14786// SetCreatedAt sets the CreatedAt field's value.
14787func (s *Task) SetCreatedAt(v time.Time) *Task {
14788	s.CreatedAt = &v
14789	return s
14790}
14791
14792// SetDesiredStatus sets the DesiredStatus field's value.
14793func (s *Task) SetDesiredStatus(v string) *Task {
14794	s.DesiredStatus = &v
14795	return s
14796}
14797
14798// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
14799func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
14800	s.ExecutionStoppedAt = &v
14801	return s
14802}
14803
14804// SetGroup sets the Group field's value.
14805func (s *Task) SetGroup(v string) *Task {
14806	s.Group = &v
14807	return s
14808}
14809
14810// SetHealthStatus sets the HealthStatus field's value.
14811func (s *Task) SetHealthStatus(v string) *Task {
14812	s.HealthStatus = &v
14813	return s
14814}
14815
14816// SetInferenceAccelerators sets the InferenceAccelerators field's value.
14817func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
14818	s.InferenceAccelerators = v
14819	return s
14820}
14821
14822// SetLastStatus sets the LastStatus field's value.
14823func (s *Task) SetLastStatus(v string) *Task {
14824	s.LastStatus = &v
14825	return s
14826}
14827
14828// SetLaunchType sets the LaunchType field's value.
14829func (s *Task) SetLaunchType(v string) *Task {
14830	s.LaunchType = &v
14831	return s
14832}
14833
14834// SetMemory sets the Memory field's value.
14835func (s *Task) SetMemory(v string) *Task {
14836	s.Memory = &v
14837	return s
14838}
14839
14840// SetOverrides sets the Overrides field's value.
14841func (s *Task) SetOverrides(v *TaskOverride) *Task {
14842	s.Overrides = v
14843	return s
14844}
14845
14846// SetPlatformVersion sets the PlatformVersion field's value.
14847func (s *Task) SetPlatformVersion(v string) *Task {
14848	s.PlatformVersion = &v
14849	return s
14850}
14851
14852// SetPullStartedAt sets the PullStartedAt field's value.
14853func (s *Task) SetPullStartedAt(v time.Time) *Task {
14854	s.PullStartedAt = &v
14855	return s
14856}
14857
14858// SetPullStoppedAt sets the PullStoppedAt field's value.
14859func (s *Task) SetPullStoppedAt(v time.Time) *Task {
14860	s.PullStoppedAt = &v
14861	return s
14862}
14863
14864// SetStartedAt sets the StartedAt field's value.
14865func (s *Task) SetStartedAt(v time.Time) *Task {
14866	s.StartedAt = &v
14867	return s
14868}
14869
14870// SetStartedBy sets the StartedBy field's value.
14871func (s *Task) SetStartedBy(v string) *Task {
14872	s.StartedBy = &v
14873	return s
14874}
14875
14876// SetStopCode sets the StopCode field's value.
14877func (s *Task) SetStopCode(v string) *Task {
14878	s.StopCode = &v
14879	return s
14880}
14881
14882// SetStoppedAt sets the StoppedAt field's value.
14883func (s *Task) SetStoppedAt(v time.Time) *Task {
14884	s.StoppedAt = &v
14885	return s
14886}
14887
14888// SetStoppedReason sets the StoppedReason field's value.
14889func (s *Task) SetStoppedReason(v string) *Task {
14890	s.StoppedReason = &v
14891	return s
14892}
14893
14894// SetStoppingAt sets the StoppingAt field's value.
14895func (s *Task) SetStoppingAt(v time.Time) *Task {
14896	s.StoppingAt = &v
14897	return s
14898}
14899
14900// SetTags sets the Tags field's value.
14901func (s *Task) SetTags(v []*Tag) *Task {
14902	s.Tags = v
14903	return s
14904}
14905
14906// SetTaskArn sets the TaskArn field's value.
14907func (s *Task) SetTaskArn(v string) *Task {
14908	s.TaskArn = &v
14909	return s
14910}
14911
14912// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
14913func (s *Task) SetTaskDefinitionArn(v string) *Task {
14914	s.TaskDefinitionArn = &v
14915	return s
14916}
14917
14918// SetVersion sets the Version field's value.
14919func (s *Task) SetVersion(v int64) *Task {
14920	s.Version = &v
14921	return s
14922}
14923
14924// The details of a task definition which describes the container and volume
14925// definitions of an Amazon Elastic Container Service task. You can specify
14926// which Docker images to use, the required resources, and other configurations
14927// related to launching the task definition through an Amazon ECS service or
14928// task.
14929type TaskDefinition struct {
14930	_ struct{} `type:"structure"`
14931
14932	// The launch type to use with your task. For more information, see Amazon ECS
14933	// Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
14934	// in the Amazon Elastic Container Service Developer Guide.
14935	Compatibilities []*string `locationName:"compatibilities" type:"list"`
14936
14937	// A list of container definitions in JSON format that describe the different
14938	// containers that make up your task. For more information about container definition
14939	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
14940	// in the Amazon Elastic Container Service Developer Guide.
14941	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
14942
14943	// The number of cpu units used by the task. If you are using the EC2 launch
14944	// type, this field is optional and any value can be used. If you are using
14945	// the Fargate launch type, this field is required and you must use one of the
14946	// following values, which determines your range of valid values for the memory
14947	// parameter:
14948	//
14949	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
14950	//    2048 (2 GB)
14951	//
14952	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
14953	//    (3 GB), 4096 (4 GB)
14954	//
14955	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
14956	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
14957	//
14958	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
14959	//    (16 GB) in increments of 1024 (1 GB)
14960	//
14961	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
14962	//    (30 GB) in increments of 1024 (1 GB)
14963	Cpu *string `locationName:"cpu" type:"string"`
14964
14965	// The Amazon Resource Name (ARN) of the task execution role that containers
14966	// in this task can assume. All containers in this task are granted the permissions
14967	// that are specified in this role.
14968	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
14969
14970	// The name of a family that this task definition is registered to. A family
14971	// groups multiple versions of a task definition. Amazon ECS gives the first
14972	// task definition that you registered to a family a revision number of 1. Amazon
14973	// ECS gives sequential revision numbers to each task definition that you add.
14974	Family *string `locationName:"family" type:"string"`
14975
14976	// The IPC resource namespace to use for the containers in the task. The valid
14977	// values are host, task, or none. If host is specified, then all containers
14978	// within the tasks that specified the host IPC mode on the same container instance
14979	// share the same IPC resources with the host Amazon EC2 instance. If task is
14980	// specified, all containers within the specified task share the same IPC resources.
14981	// If none is specified, then IPC resources within the containers of a task
14982	// are private and not shared with other containers in a task or on the container
14983	// instance. If no value is specified, then the IPC resource namespace sharing
14984	// depends on the Docker daemon setting on the container instance. For more
14985	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
14986	// in the Docker run reference.
14987	//
14988	// If the host IPC mode is used, be aware that there is a heightened risk of
14989	// undesired IPC namespace expose. For more information, see Docker security
14990	// (https://docs.docker.com/engine/security/security/).
14991	//
14992	// If you are setting namespaced kernel parameters using systemControls for
14993	// the containers in the task, the following will apply to your IPC resource
14994	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
14995	// in the Amazon Elastic Container Service Developer Guide.
14996	//
14997	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
14998	//    are not supported.
14999	//
15000	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
15001	//    will apply to all containers within a task.
15002	//
15003	// This parameter is not supported for Windows containers or tasks using the
15004	// Fargate launch type.
15005	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
15006
15007	// The amount (in MiB) of memory used by the task.
15008	//
15009	// If using the EC2 launch type, this field is optional and any value can be
15010	// used. If a task-level memory value is specified then the container-level
15011	// memory value is optional.
15012	//
15013	// If using the Fargate launch type, this field is required and you must use
15014	// one of the following values, which determines your range of valid values
15015	// for the cpu parameter:
15016	//
15017	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
15018	//    vCPU)
15019	//
15020	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
15021	//    512 (.5 vCPU)
15022	//
15023	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
15024	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
15025	//
15026	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
15027	//    Available cpu values: 2048 (2 vCPU)
15028	//
15029	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
15030	//    Available cpu values: 4096 (4 vCPU)
15031	Memory *string `locationName:"memory" type:"string"`
15032
15033	// The Docker networking mode to use for the containers in the task. The valid
15034	// values are none, bridge, awsvpc, and host. The default Docker network mode
15035	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
15036	// is required. If you are using the EC2 launch type, any network mode can be
15037	// used. If the network mode is set to none, you cannot specify port mappings
15038	// in your container definitions, and the tasks containers do not have external
15039	// connectivity. The host and awsvpc network modes offer the highest networking
15040	// performance for containers because they use the EC2 network stack instead
15041	// of the virtualized network stack provided by the bridge mode.
15042	//
15043	// With the host and awsvpc network modes, exposed container ports are mapped
15044	// directly to the corresponding host port (for the host network mode) or the
15045	// attached elastic network interface port (for the awsvpc network mode), so
15046	// you cannot take advantage of dynamic host port mappings.
15047	//
15048	// If the network mode is awsvpc, the task is allocated an elastic network interface,
15049	// and you must specify a NetworkConfiguration value when you create a service
15050	// or run a task with the task definition. For more information, see Task Networking
15051	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15052	// in the Amazon Elastic Container Service Developer Guide.
15053	//
15054	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
15055	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
15056	// mode.
15057	//
15058	// If the network mode is host, you cannot run multiple instantiations of the
15059	// same task on a single container instance when port mappings are used.
15060	//
15061	// Docker for Windows uses different network modes than Docker for Linux. When
15062	// you register a task definition with Windows containers, you must not specify
15063	// a network mode. If you use the console to register a task definition with
15064	// Windows containers, you must choose the <default> network mode object.
15065	//
15066	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
15067	// in the Docker run reference.
15068	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
15069
15070	// The process namespace to use for the containers in the task. The valid values
15071	// are host or task. If host is specified, then all containers within the tasks
15072	// that specified the host PID mode on the same container instance share the
15073	// same process namespace with the host Amazon EC2 instance. If task is specified,
15074	// all containers within the specified task share the same process namespace.
15075	// If no value is specified, the default is a private namespace. For more information,
15076	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
15077	// in the Docker run reference.
15078	//
15079	// If the host PID mode is used, be aware that there is a heightened risk of
15080	// undesired process namespace expose. For more information, see Docker security
15081	// (https://docs.docker.com/engine/security/security/).
15082	//
15083	// This parameter is not supported for Windows containers or tasks using the
15084	// Fargate launch type.
15085	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
15086
15087	// An array of placement constraint objects to use for tasks. This field is
15088	// not valid if you are using the Fargate launch type for your task.
15089	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
15090
15091	// The configuration details for the App Mesh proxy.
15092	//
15093	// Your Amazon ECS container instances require at least version 1.26.0 of the
15094	// container agent and at least version 1.26.0-1 of the ecs-init package to
15095	// enable a proxy configuration. If your container instances are launched from
15096	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
15097	// the required versions of the container agent and ecs-init. For more information,
15098	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
15099	// in the Amazon Elastic Container Service Developer Guide.
15100	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
15101
15102	// The container instance attributes required by your task. This field is not
15103	// valid if you are using the Fargate launch type for your task.
15104	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
15105
15106	// The launch type the task requires. If no value is specified, it will default
15107	// to EC2. Valid values include EC2 and FARGATE.
15108	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
15109
15110	// The revision of the task in a particular family. The revision is a version
15111	// number of a task definition in a family. When you register a task definition
15112	// for the first time, the revision is 1. Each time that you register a new
15113	// revision of a task definition in the same family, the revision value always
15114	// increases by one, even if you have deregistered previous revisions in this
15115	// family.
15116	Revision *int64 `locationName:"revision" type:"integer"`
15117
15118	// The status of the task definition.
15119	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
15120
15121	// The full Amazon Resource Name (ARN) of the task definition.
15122	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
15123
15124	// The short name or full Amazon Resource Name (ARN) of the AWS Identity and
15125	// Access Management (IAM) role that grants containers in the task permission
15126	// to call AWS APIs on your behalf. For more information, see Amazon ECS Task
15127	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_IAM_role.html)
15128	// in the Amazon Elastic Container Service Developer Guide.
15129	//
15130	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
15131	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
15132	// must also run some configuration code in order to take advantage of the feature.
15133	// For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
15134	// in the Amazon Elastic Container Service Developer Guide.
15135	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
15136
15137	// The list of volume definitions for the task.
15138	//
15139	// If your tasks are using the Fargate launch type, the host and sourcePath
15140	// parameters are not supported.
15141	//
15142	// For more information about volume definition parameters and defaults, see
15143	// Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
15144	// in the Amazon Elastic Container Service Developer Guide.
15145	Volumes []*Volume `locationName:"volumes" type:"list"`
15146}
15147
15148// String returns the string representation
15149func (s TaskDefinition) String() string {
15150	return awsutil.Prettify(s)
15151}
15152
15153// GoString returns the string representation
15154func (s TaskDefinition) GoString() string {
15155	return s.String()
15156}
15157
15158// SetCompatibilities sets the Compatibilities field's value.
15159func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
15160	s.Compatibilities = v
15161	return s
15162}
15163
15164// SetContainerDefinitions sets the ContainerDefinitions field's value.
15165func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
15166	s.ContainerDefinitions = v
15167	return s
15168}
15169
15170// SetCpu sets the Cpu field's value.
15171func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
15172	s.Cpu = &v
15173	return s
15174}
15175
15176// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
15177func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
15178	s.ExecutionRoleArn = &v
15179	return s
15180}
15181
15182// SetFamily sets the Family field's value.
15183func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
15184	s.Family = &v
15185	return s
15186}
15187
15188// SetIpcMode sets the IpcMode field's value.
15189func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
15190	s.IpcMode = &v
15191	return s
15192}
15193
15194// SetMemory sets the Memory field's value.
15195func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
15196	s.Memory = &v
15197	return s
15198}
15199
15200// SetNetworkMode sets the NetworkMode field's value.
15201func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
15202	s.NetworkMode = &v
15203	return s
15204}
15205
15206// SetPidMode sets the PidMode field's value.
15207func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
15208	s.PidMode = &v
15209	return s
15210}
15211
15212// SetPlacementConstraints sets the PlacementConstraints field's value.
15213func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
15214	s.PlacementConstraints = v
15215	return s
15216}
15217
15218// SetProxyConfiguration sets the ProxyConfiguration field's value.
15219func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
15220	s.ProxyConfiguration = v
15221	return s
15222}
15223
15224// SetRequiresAttributes sets the RequiresAttributes field's value.
15225func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
15226	s.RequiresAttributes = v
15227	return s
15228}
15229
15230// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
15231func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
15232	s.RequiresCompatibilities = v
15233	return s
15234}
15235
15236// SetRevision sets the Revision field's value.
15237func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
15238	s.Revision = &v
15239	return s
15240}
15241
15242// SetStatus sets the Status field's value.
15243func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
15244	s.Status = &v
15245	return s
15246}
15247
15248// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
15249func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
15250	s.TaskDefinitionArn = &v
15251	return s
15252}
15253
15254// SetTaskRoleArn sets the TaskRoleArn field's value.
15255func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
15256	s.TaskRoleArn = &v
15257	return s
15258}
15259
15260// SetVolumes sets the Volumes field's value.
15261func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
15262	s.Volumes = v
15263	return s
15264}
15265
15266// An object representing a constraint on task placement in the task definition.
15267// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
15268// in the Amazon Elastic Container Service Developer Guide.
15269//
15270// If you are using the Fargate launch type, task placement constraints are
15271// not supported.
15272type TaskDefinitionPlacementConstraint struct {
15273	_ struct{} `type:"structure"`
15274
15275	// A cluster query language expression to apply to the constraint. For more
15276	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
15277	// in the Amazon Elastic Container Service Developer Guide.
15278	Expression *string `locationName:"expression" type:"string"`
15279
15280	// The type of constraint. The MemberOf constraint restricts selection to be
15281	// from a group of valid candidates.
15282	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
15283}
15284
15285// String returns the string representation
15286func (s TaskDefinitionPlacementConstraint) String() string {
15287	return awsutil.Prettify(s)
15288}
15289
15290// GoString returns the string representation
15291func (s TaskDefinitionPlacementConstraint) GoString() string {
15292	return s.String()
15293}
15294
15295// SetExpression sets the Expression field's value.
15296func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
15297	s.Expression = &v
15298	return s
15299}
15300
15301// SetType sets the Type field's value.
15302func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
15303	s.Type = &v
15304	return s
15305}
15306
15307// The overrides associated with a task.
15308type TaskOverride struct {
15309	_ struct{} `type:"structure"`
15310
15311	// One or more container overrides sent to a task.
15312	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
15313
15314	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
15315	// ECS container agent and the Docker daemon can assume.
15316	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
15317
15318	// The Elastic Inference accelerator override for the task.
15319	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
15320
15321	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
15322	// can assume. All containers in this task are granted the permissions that
15323	// are specified in this role.
15324	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
15325}
15326
15327// String returns the string representation
15328func (s TaskOverride) String() string {
15329	return awsutil.Prettify(s)
15330}
15331
15332// GoString returns the string representation
15333func (s TaskOverride) GoString() string {
15334	return s.String()
15335}
15336
15337// Validate inspects the fields of the type to determine if they are valid.
15338func (s *TaskOverride) Validate() error {
15339	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
15340	if s.ContainerOverrides != nil {
15341		for i, v := range s.ContainerOverrides {
15342			if v == nil {
15343				continue
15344			}
15345			if err := v.Validate(); err != nil {
15346				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
15347			}
15348		}
15349	}
15350
15351	if invalidParams.Len() > 0 {
15352		return invalidParams
15353	}
15354	return nil
15355}
15356
15357// SetContainerOverrides sets the ContainerOverrides field's value.
15358func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
15359	s.ContainerOverrides = v
15360	return s
15361}
15362
15363// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
15364func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
15365	s.ExecutionRoleArn = &v
15366	return s
15367}
15368
15369// SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
15370func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
15371	s.InferenceAcceleratorOverrides = v
15372	return s
15373}
15374
15375// SetTaskRoleArn sets the TaskRoleArn field's value.
15376func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
15377	s.TaskRoleArn = &v
15378	return s
15379}
15380
15381// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
15382// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
15383// desired number of tasks, how many tasks are running, and whether the task
15384// set serves production traffic.
15385type TaskSet struct {
15386	_ struct{} `type:"structure"`
15387
15388	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
15389	// the task set exists in.
15390	ClusterArn *string `locationName:"clusterArn" type:"string"`
15391
15392	// The computed desired count for the task set. This is calculated by multiplying
15393	// the service's desiredCount by the task set's scale percentage. The result
15394	// is always rounded up. For example, if the computed desired count is 1.2,
15395	// it rounds up to 2 tasks.
15396	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
15397
15398	// The Unix timestamp for when the task set was created.
15399	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
15400
15401	// The external ID associated with the task set.
15402	//
15403	// If a task set is created by an AWS CodeDeploy deployment, the externalId
15404	// parameter contains the AWS CodeDeploy deployment ID.
15405	//
15406	// If a task set is created for an external deployment and is associated with
15407	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
15408	// AWS Cloud Map attribute.
15409	ExternalId *string `locationName:"externalId" type:"string"`
15410
15411	// The ID of the task set.
15412	Id *string `locationName:"id" type:"string"`
15413
15414	// The launch type the tasks in the task set are using. For more information,
15415	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
15416	// in the Amazon Elastic Container Service Developer Guide.
15417	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
15418
15419	// Details on a load balancer that is used with a task set.
15420	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
15421
15422	// The network configuration for the task set.
15423	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
15424
15425	// The number of tasks in the task set that are in the PENDING status during
15426	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
15427	// state. A task set enters the PENDING status when it launches for the first
15428	// time or when it is restarted after being in the STOPPED state.
15429	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
15430
15431	// The platform version on which the tasks in the task set are running. A platform
15432	// version is only specified for tasks using the Fargate launch type. If one
15433	// is not specified, the LATEST platform version is used by default. For more
15434	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
15435	// in the Amazon Elastic Container Service Developer Guide.
15436	PlatformVersion *string `locationName:"platformVersion" type:"string"`
15437
15438	// The number of tasks in the task set that are in the RUNNING status during
15439	// a deployment. A task in the RUNNING state is running and ready for use.
15440	RunningCount *int64 `locationName:"runningCount" type:"integer"`
15441
15442	// A floating-point percentage of the desired number of tasks to place and keep
15443	// running in the task set.
15444	Scale *Scale `locationName:"scale" type:"structure"`
15445
15446	// The Amazon Resource Name (ARN) of the service the task set exists in.
15447	ServiceArn *string `locationName:"serviceArn" type:"string"`
15448
15449	// The details of the service discovery registries to assign to this task set.
15450	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
15451	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
15452
15453	// The stability status, which indicates whether the task set has reached a
15454	// steady state. If the following conditions are met, the task set will be in
15455	// STEADY_STATE:
15456	//
15457	//    * The task runningCount is equal to the computedDesiredCount.
15458	//
15459	//    * The pendingCount is 0.
15460	//
15461	//    * There are no tasks running on container instances in the DRAINING status.
15462	//
15463	//    * All tasks are reporting a healthy status from the load balancers, service
15464	//    discovery, and container health checks.
15465	//
15466	// If any of those conditions are not met, the stability status returns STABILIZING.
15467	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
15468
15469	// The Unix timestamp for when the task set stability status was retrieved.
15470	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
15471
15472	// The tag specified when a task set is started. If the task set is created
15473	// by an AWS CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY.
15474	// For a task set created for an external deployment, the startedBy field isn't
15475	// used.
15476	StartedBy *string `locationName:"startedBy" type:"string"`
15477
15478	// The status of the task set. The following describes each state:
15479	//
15480	// PRIMARY
15481	//
15482	// The task set is serving production traffic.
15483	//
15484	// ACTIVE
15485	//
15486	// The task set is not serving production traffic.
15487	//
15488	// DRAINING
15489	//
15490	// The tasks in the task set are being stopped and their corresponding targets
15491	// are being deregistered from their target group.
15492	Status *string `locationName:"status" type:"string"`
15493
15494	// The task definition the task set is using.
15495	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
15496
15497	// The Amazon Resource Name (ARN) of the task set.
15498	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
15499
15500	// The Unix timestamp for when the task set was last updated.
15501	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
15502}
15503
15504// String returns the string representation
15505func (s TaskSet) String() string {
15506	return awsutil.Prettify(s)
15507}
15508
15509// GoString returns the string representation
15510func (s TaskSet) GoString() string {
15511	return s.String()
15512}
15513
15514// SetClusterArn sets the ClusterArn field's value.
15515func (s *TaskSet) SetClusterArn(v string) *TaskSet {
15516	s.ClusterArn = &v
15517	return s
15518}
15519
15520// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
15521func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
15522	s.ComputedDesiredCount = &v
15523	return s
15524}
15525
15526// SetCreatedAt sets the CreatedAt field's value.
15527func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
15528	s.CreatedAt = &v
15529	return s
15530}
15531
15532// SetExternalId sets the ExternalId field's value.
15533func (s *TaskSet) SetExternalId(v string) *TaskSet {
15534	s.ExternalId = &v
15535	return s
15536}
15537
15538// SetId sets the Id field's value.
15539func (s *TaskSet) SetId(v string) *TaskSet {
15540	s.Id = &v
15541	return s
15542}
15543
15544// SetLaunchType sets the LaunchType field's value.
15545func (s *TaskSet) SetLaunchType(v string) *TaskSet {
15546	s.LaunchType = &v
15547	return s
15548}
15549
15550// SetLoadBalancers sets the LoadBalancers field's value.
15551func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
15552	s.LoadBalancers = v
15553	return s
15554}
15555
15556// SetNetworkConfiguration sets the NetworkConfiguration field's value.
15557func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
15558	s.NetworkConfiguration = v
15559	return s
15560}
15561
15562// SetPendingCount sets the PendingCount field's value.
15563func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
15564	s.PendingCount = &v
15565	return s
15566}
15567
15568// SetPlatformVersion sets the PlatformVersion field's value.
15569func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
15570	s.PlatformVersion = &v
15571	return s
15572}
15573
15574// SetRunningCount sets the RunningCount field's value.
15575func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
15576	s.RunningCount = &v
15577	return s
15578}
15579
15580// SetScale sets the Scale field's value.
15581func (s *TaskSet) SetScale(v *Scale) *TaskSet {
15582	s.Scale = v
15583	return s
15584}
15585
15586// SetServiceArn sets the ServiceArn field's value.
15587func (s *TaskSet) SetServiceArn(v string) *TaskSet {
15588	s.ServiceArn = &v
15589	return s
15590}
15591
15592// SetServiceRegistries sets the ServiceRegistries field's value.
15593func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
15594	s.ServiceRegistries = v
15595	return s
15596}
15597
15598// SetStabilityStatus sets the StabilityStatus field's value.
15599func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
15600	s.StabilityStatus = &v
15601	return s
15602}
15603
15604// SetStabilityStatusAt sets the StabilityStatusAt field's value.
15605func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
15606	s.StabilityStatusAt = &v
15607	return s
15608}
15609
15610// SetStartedBy sets the StartedBy field's value.
15611func (s *TaskSet) SetStartedBy(v string) *TaskSet {
15612	s.StartedBy = &v
15613	return s
15614}
15615
15616// SetStatus sets the Status field's value.
15617func (s *TaskSet) SetStatus(v string) *TaskSet {
15618	s.Status = &v
15619	return s
15620}
15621
15622// SetTaskDefinition sets the TaskDefinition field's value.
15623func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
15624	s.TaskDefinition = &v
15625	return s
15626}
15627
15628// SetTaskSetArn sets the TaskSetArn field's value.
15629func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
15630	s.TaskSetArn = &v
15631	return s
15632}
15633
15634// SetUpdatedAt sets the UpdatedAt field's value.
15635func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
15636	s.UpdatedAt = &v
15637	return s
15638}
15639
15640// The container path, mount options, and size of the tmpfs mount.
15641type Tmpfs struct {
15642	_ struct{} `type:"structure"`
15643
15644	// The absolute file path where the tmpfs volume is to be mounted.
15645	//
15646	// ContainerPath is a required field
15647	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
15648
15649	// The list of tmpfs volume mount options.
15650	//
15651	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
15652	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
15653	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
15654	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
15655	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
15656	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
15657	MountOptions []*string `locationName:"mountOptions" type:"list"`
15658
15659	// The size (in MiB) of the tmpfs volume.
15660	//
15661	// Size is a required field
15662	Size *int64 `locationName:"size" type:"integer" required:"true"`
15663}
15664
15665// String returns the string representation
15666func (s Tmpfs) String() string {
15667	return awsutil.Prettify(s)
15668}
15669
15670// GoString returns the string representation
15671func (s Tmpfs) GoString() string {
15672	return s.String()
15673}
15674
15675// Validate inspects the fields of the type to determine if they are valid.
15676func (s *Tmpfs) Validate() error {
15677	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
15678	if s.ContainerPath == nil {
15679		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
15680	}
15681	if s.Size == nil {
15682		invalidParams.Add(request.NewErrParamRequired("Size"))
15683	}
15684
15685	if invalidParams.Len() > 0 {
15686		return invalidParams
15687	}
15688	return nil
15689}
15690
15691// SetContainerPath sets the ContainerPath field's value.
15692func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
15693	s.ContainerPath = &v
15694	return s
15695}
15696
15697// SetMountOptions sets the MountOptions field's value.
15698func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
15699	s.MountOptions = v
15700	return s
15701}
15702
15703// SetSize sets the Size field's value.
15704func (s *Tmpfs) SetSize(v int64) *Tmpfs {
15705	s.Size = &v
15706	return s
15707}
15708
15709// The ulimit settings to pass to the container.
15710type Ulimit struct {
15711	_ struct{} `type:"structure"`
15712
15713	// The hard limit for the ulimit type.
15714	//
15715	// HardLimit is a required field
15716	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
15717
15718	// The type of the ulimit.
15719	//
15720	// Name is a required field
15721	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
15722
15723	// The soft limit for the ulimit type.
15724	//
15725	// SoftLimit is a required field
15726	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
15727}
15728
15729// String returns the string representation
15730func (s Ulimit) String() string {
15731	return awsutil.Prettify(s)
15732}
15733
15734// GoString returns the string representation
15735func (s Ulimit) GoString() string {
15736	return s.String()
15737}
15738
15739// Validate inspects the fields of the type to determine if they are valid.
15740func (s *Ulimit) Validate() error {
15741	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
15742	if s.HardLimit == nil {
15743		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
15744	}
15745	if s.Name == nil {
15746		invalidParams.Add(request.NewErrParamRequired("Name"))
15747	}
15748	if s.SoftLimit == nil {
15749		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
15750	}
15751
15752	if invalidParams.Len() > 0 {
15753		return invalidParams
15754	}
15755	return nil
15756}
15757
15758// SetHardLimit sets the HardLimit field's value.
15759func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
15760	s.HardLimit = &v
15761	return s
15762}
15763
15764// SetName sets the Name field's value.
15765func (s *Ulimit) SetName(v string) *Ulimit {
15766	s.Name = &v
15767	return s
15768}
15769
15770// SetSoftLimit sets the SoftLimit field's value.
15771func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
15772	s.SoftLimit = &v
15773	return s
15774}
15775
15776type UntagResourceInput struct {
15777	_ struct{} `type:"structure"`
15778
15779	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
15780	// Currently, the supported resources are Amazon ECS tasks, services, task definitions,
15781	// clusters, and container instances.
15782	//
15783	// ResourceArn is a required field
15784	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
15785
15786	// The keys of the tags to be removed.
15787	//
15788	// TagKeys is a required field
15789	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
15790}
15791
15792// String returns the string representation
15793func (s UntagResourceInput) String() string {
15794	return awsutil.Prettify(s)
15795}
15796
15797// GoString returns the string representation
15798func (s UntagResourceInput) GoString() string {
15799	return s.String()
15800}
15801
15802// Validate inspects the fields of the type to determine if they are valid.
15803func (s *UntagResourceInput) Validate() error {
15804	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
15805	if s.ResourceArn == nil {
15806		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
15807	}
15808	if s.TagKeys == nil {
15809		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
15810	}
15811
15812	if invalidParams.Len() > 0 {
15813		return invalidParams
15814	}
15815	return nil
15816}
15817
15818// SetResourceArn sets the ResourceArn field's value.
15819func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
15820	s.ResourceArn = &v
15821	return s
15822}
15823
15824// SetTagKeys sets the TagKeys field's value.
15825func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
15826	s.TagKeys = v
15827	return s
15828}
15829
15830type UntagResourceOutput struct {
15831	_ struct{} `type:"structure"`
15832}
15833
15834// String returns the string representation
15835func (s UntagResourceOutput) String() string {
15836	return awsutil.Prettify(s)
15837}
15838
15839// GoString returns the string representation
15840func (s UntagResourceOutput) GoString() string {
15841	return s.String()
15842}
15843
15844type UpdateClusterSettingsInput struct {
15845	_ struct{} `type:"structure"`
15846
15847	// The name of the cluster to modify the settings for.
15848	//
15849	// Cluster is a required field
15850	Cluster *string `locationName:"cluster" type:"string" required:"true"`
15851
15852	// The setting to use by default for a cluster. This parameter is used to enable
15853	// CloudWatch Container Insights for a cluster. If this value is specified,
15854	// it will override the containerInsights value set with PutAccountSetting or
15855	// PutAccountSettingDefault.
15856	//
15857	// Settings is a required field
15858	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
15859}
15860
15861// String returns the string representation
15862func (s UpdateClusterSettingsInput) String() string {
15863	return awsutil.Prettify(s)
15864}
15865
15866// GoString returns the string representation
15867func (s UpdateClusterSettingsInput) GoString() string {
15868	return s.String()
15869}
15870
15871// Validate inspects the fields of the type to determine if they are valid.
15872func (s *UpdateClusterSettingsInput) Validate() error {
15873	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
15874	if s.Cluster == nil {
15875		invalidParams.Add(request.NewErrParamRequired("Cluster"))
15876	}
15877	if s.Settings == nil {
15878		invalidParams.Add(request.NewErrParamRequired("Settings"))
15879	}
15880
15881	if invalidParams.Len() > 0 {
15882		return invalidParams
15883	}
15884	return nil
15885}
15886
15887// SetCluster sets the Cluster field's value.
15888func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
15889	s.Cluster = &v
15890	return s
15891}
15892
15893// SetSettings sets the Settings field's value.
15894func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
15895	s.Settings = v
15896	return s
15897}
15898
15899type UpdateClusterSettingsOutput struct {
15900	_ struct{} `type:"structure"`
15901
15902	// A regional grouping of one or more container instances on which you can run
15903	// task requests. Each account receives a default cluster the first time you
15904	// use the Amazon ECS service, but you may also create other clusters. Clusters
15905	// may contain more than one instance type simultaneously.
15906	Cluster *Cluster `locationName:"cluster" type:"structure"`
15907}
15908
15909// String returns the string representation
15910func (s UpdateClusterSettingsOutput) String() string {
15911	return awsutil.Prettify(s)
15912}
15913
15914// GoString returns the string representation
15915func (s UpdateClusterSettingsOutput) GoString() string {
15916	return s.String()
15917}
15918
15919// SetCluster sets the Cluster field's value.
15920func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
15921	s.Cluster = v
15922	return s
15923}
15924
15925type UpdateContainerAgentInput struct {
15926	_ struct{} `type:"structure"`
15927
15928	// The short name or full Amazon Resource Name (ARN) of the cluster that your
15929	// container instance is running on. If you do not specify a cluster, the default
15930	// cluster is assumed.
15931	Cluster *string `locationName:"cluster" type:"string"`
15932
15933	// The container instance ID or full ARN entries for the container instance
15934	// on which you would like to update the Amazon ECS container agent.
15935	//
15936	// ContainerInstance is a required field
15937	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
15938}
15939
15940// String returns the string representation
15941func (s UpdateContainerAgentInput) String() string {
15942	return awsutil.Prettify(s)
15943}
15944
15945// GoString returns the string representation
15946func (s UpdateContainerAgentInput) GoString() string {
15947	return s.String()
15948}
15949
15950// Validate inspects the fields of the type to determine if they are valid.
15951func (s *UpdateContainerAgentInput) Validate() error {
15952	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
15953	if s.ContainerInstance == nil {
15954		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
15955	}
15956
15957	if invalidParams.Len() > 0 {
15958		return invalidParams
15959	}
15960	return nil
15961}
15962
15963// SetCluster sets the Cluster field's value.
15964func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
15965	s.Cluster = &v
15966	return s
15967}
15968
15969// SetContainerInstance sets the ContainerInstance field's value.
15970func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
15971	s.ContainerInstance = &v
15972	return s
15973}
15974
15975type UpdateContainerAgentOutput struct {
15976	_ struct{} `type:"structure"`
15977
15978	// The container instance for which the container agent was updated.
15979	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
15980}
15981
15982// String returns the string representation
15983func (s UpdateContainerAgentOutput) String() string {
15984	return awsutil.Prettify(s)
15985}
15986
15987// GoString returns the string representation
15988func (s UpdateContainerAgentOutput) GoString() string {
15989	return s.String()
15990}
15991
15992// SetContainerInstance sets the ContainerInstance field's value.
15993func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
15994	s.ContainerInstance = v
15995	return s
15996}
15997
15998type UpdateContainerInstancesStateInput struct {
15999	_ struct{} `type:"structure"`
16000
16001	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
16002	// the container instance to update. If you do not specify a cluster, the default
16003	// cluster is assumed.
16004	Cluster *string `locationName:"cluster" type:"string"`
16005
16006	// A list of container instance IDs or full ARN entries.
16007	//
16008	// ContainerInstances is a required field
16009	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
16010
16011	// The container instance state with which to update the container instance.
16012	// The only valid values for this action are ACTIVE and DRAINING. A container
16013	// instance can only be updated to DRAINING status once it has reached an ACTIVE
16014	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
16015	// state you can describe the container instance but will be unable to update
16016	// the container instance state.
16017	//
16018	// Status is a required field
16019	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
16020}
16021
16022// String returns the string representation
16023func (s UpdateContainerInstancesStateInput) String() string {
16024	return awsutil.Prettify(s)
16025}
16026
16027// GoString returns the string representation
16028func (s UpdateContainerInstancesStateInput) GoString() string {
16029	return s.String()
16030}
16031
16032// Validate inspects the fields of the type to determine if they are valid.
16033func (s *UpdateContainerInstancesStateInput) Validate() error {
16034	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
16035	if s.ContainerInstances == nil {
16036		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
16037	}
16038	if s.Status == nil {
16039		invalidParams.Add(request.NewErrParamRequired("Status"))
16040	}
16041
16042	if invalidParams.Len() > 0 {
16043		return invalidParams
16044	}
16045	return nil
16046}
16047
16048// SetCluster sets the Cluster field's value.
16049func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
16050	s.Cluster = &v
16051	return s
16052}
16053
16054// SetContainerInstances sets the ContainerInstances field's value.
16055func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
16056	s.ContainerInstances = v
16057	return s
16058}
16059
16060// SetStatus sets the Status field's value.
16061func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
16062	s.Status = &v
16063	return s
16064}
16065
16066type UpdateContainerInstancesStateOutput struct {
16067	_ struct{} `type:"structure"`
16068
16069	// The list of container instances.
16070	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
16071
16072	// Any failures associated with the call.
16073	Failures []*Failure `locationName:"failures" type:"list"`
16074}
16075
16076// String returns the string representation
16077func (s UpdateContainerInstancesStateOutput) String() string {
16078	return awsutil.Prettify(s)
16079}
16080
16081// GoString returns the string representation
16082func (s UpdateContainerInstancesStateOutput) GoString() string {
16083	return s.String()
16084}
16085
16086// SetContainerInstances sets the ContainerInstances field's value.
16087func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
16088	s.ContainerInstances = v
16089	return s
16090}
16091
16092// SetFailures sets the Failures field's value.
16093func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
16094	s.Failures = v
16095	return s
16096}
16097
16098type UpdateServiceInput struct {
16099	_ struct{} `type:"structure"`
16100
16101	// The short name or full Amazon Resource Name (ARN) of the cluster that your
16102	// service is running on. If you do not specify a cluster, the default cluster
16103	// is assumed.
16104	Cluster *string `locationName:"cluster" type:"string"`
16105
16106	// Optional deployment parameters that control how many tasks run during the
16107	// deployment and the ordering of stopping and starting tasks.
16108	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
16109
16110	// The number of instantiations of the task to place and keep running in your
16111	// service.
16112	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
16113
16114	// Whether to force a new deployment of the service. Deployments are not forced
16115	// by default. You can use this option to trigger a new deployment with no service
16116	// definition changes. For example, you can update a service's tasks to use
16117	// a newer Docker image with the same image/tag combination (my_image:latest)
16118	// or to roll Fargate tasks onto a newer platform version.
16119	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
16120
16121	// The period of time, in seconds, that the Amazon ECS service scheduler should
16122	// ignore unhealthy Elastic Load Balancing target health checks after a task
16123	// has first started. This is only valid if your service is configured to use
16124	// a load balancer. If your service's tasks take a while to start and respond
16125	// to Elastic Load Balancing health checks, you can specify a health check grace
16126	// period of up to 2,147,483,647 seconds. During that time, the ECS service
16127	// scheduler ignores the Elastic Load Balancing health check status. This grace
16128	// period can prevent the ECS service scheduler from marking tasks as unhealthy
16129	// and stopping them before they have time to come up.
16130	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
16131
16132	// The network configuration for the service. This parameter is required for
16133	// task definitions that use the awsvpc network mode to receive their own elastic
16134	// network interface, and it is not supported for other network modes. For more
16135	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
16136	// in the Amazon Elastic Container Service Developer Guide.
16137	//
16138	// Updating a service to add a subnet to a list of existing subnets does not
16139	// trigger a service deployment. For example, if your network configuration
16140	// change is to keep the existing subnets and simply add another subnet to the
16141	// network configuration, this does not trigger a new service deployment.
16142	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16143
16144	// The platform version on which your tasks in the service are running. A platform
16145	// version is only specified for tasks using the Fargate launch type. If one
16146	// is not specified, the LATEST platform version is used by default. For more
16147	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16148	// in the Amazon Elastic Container Service Developer Guide.
16149	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16150
16151	// The name of the service to update.
16152	//
16153	// Service is a required field
16154	Service *string `locationName:"service" type:"string" required:"true"`
16155
16156	// The family and revision (family:revision) or full ARN of the task definition
16157	// to run in your service. If a revision is not specified, the latest ACTIVE
16158	// revision is used. If you modify the task definition with UpdateService, Amazon
16159	// ECS spawns a task with the new version of the task definition and then stops
16160	// an old task after the new version is running.
16161	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
16162}
16163
16164// String returns the string representation
16165func (s UpdateServiceInput) String() string {
16166	return awsutil.Prettify(s)
16167}
16168
16169// GoString returns the string representation
16170func (s UpdateServiceInput) GoString() string {
16171	return s.String()
16172}
16173
16174// Validate inspects the fields of the type to determine if they are valid.
16175func (s *UpdateServiceInput) Validate() error {
16176	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
16177	if s.Service == nil {
16178		invalidParams.Add(request.NewErrParamRequired("Service"))
16179	}
16180	if s.NetworkConfiguration != nil {
16181		if err := s.NetworkConfiguration.Validate(); err != nil {
16182			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
16183		}
16184	}
16185
16186	if invalidParams.Len() > 0 {
16187		return invalidParams
16188	}
16189	return nil
16190}
16191
16192// SetCluster sets the Cluster field's value.
16193func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
16194	s.Cluster = &v
16195	return s
16196}
16197
16198// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
16199func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
16200	s.DeploymentConfiguration = v
16201	return s
16202}
16203
16204// SetDesiredCount sets the DesiredCount field's value.
16205func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
16206	s.DesiredCount = &v
16207	return s
16208}
16209
16210// SetForceNewDeployment sets the ForceNewDeployment field's value.
16211func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
16212	s.ForceNewDeployment = &v
16213	return s
16214}
16215
16216// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
16217func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
16218	s.HealthCheckGracePeriodSeconds = &v
16219	return s
16220}
16221
16222// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16223func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
16224	s.NetworkConfiguration = v
16225	return s
16226}
16227
16228// SetPlatformVersion sets the PlatformVersion field's value.
16229func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
16230	s.PlatformVersion = &v
16231	return s
16232}
16233
16234// SetService sets the Service field's value.
16235func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
16236	s.Service = &v
16237	return s
16238}
16239
16240// SetTaskDefinition sets the TaskDefinition field's value.
16241func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
16242	s.TaskDefinition = &v
16243	return s
16244}
16245
16246type UpdateServiceOutput struct {
16247	_ struct{} `type:"structure"`
16248
16249	// The full description of your service following the update call.
16250	Service *Service `locationName:"service" type:"structure"`
16251}
16252
16253// String returns the string representation
16254func (s UpdateServiceOutput) String() string {
16255	return awsutil.Prettify(s)
16256}
16257
16258// GoString returns the string representation
16259func (s UpdateServiceOutput) GoString() string {
16260	return s.String()
16261}
16262
16263// SetService sets the Service field's value.
16264func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
16265	s.Service = v
16266	return s
16267}
16268
16269type UpdateServicePrimaryTaskSetInput struct {
16270	_ struct{} `type:"structure"`
16271
16272	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
16273	// the service that the task set exists in.
16274	//
16275	// Cluster is a required field
16276	Cluster *string `locationName:"cluster" type:"string" required:"true"`
16277
16278	// The short name or full Amazon Resource Name (ARN) of the task set to set
16279	// as the primary task set in the deployment.
16280	//
16281	// PrimaryTaskSet is a required field
16282	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
16283
16284	// The short name or full Amazon Resource Name (ARN) of the service that the
16285	// task set exists in.
16286	//
16287	// Service is a required field
16288	Service *string `locationName:"service" type:"string" required:"true"`
16289}
16290
16291// String returns the string representation
16292func (s UpdateServicePrimaryTaskSetInput) String() string {
16293	return awsutil.Prettify(s)
16294}
16295
16296// GoString returns the string representation
16297func (s UpdateServicePrimaryTaskSetInput) GoString() string {
16298	return s.String()
16299}
16300
16301// Validate inspects the fields of the type to determine if they are valid.
16302func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
16303	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
16304	if s.Cluster == nil {
16305		invalidParams.Add(request.NewErrParamRequired("Cluster"))
16306	}
16307	if s.PrimaryTaskSet == nil {
16308		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
16309	}
16310	if s.Service == nil {
16311		invalidParams.Add(request.NewErrParamRequired("Service"))
16312	}
16313
16314	if invalidParams.Len() > 0 {
16315		return invalidParams
16316	}
16317	return nil
16318}
16319
16320// SetCluster sets the Cluster field's value.
16321func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
16322	s.Cluster = &v
16323	return s
16324}
16325
16326// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
16327func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
16328	s.PrimaryTaskSet = &v
16329	return s
16330}
16331
16332// SetService sets the Service field's value.
16333func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
16334	s.Service = &v
16335	return s
16336}
16337
16338type UpdateServicePrimaryTaskSetOutput struct {
16339	_ struct{} `type:"structure"`
16340
16341	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
16342	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
16343	// desired number of tasks, how many tasks are running, and whether the task
16344	// set serves production traffic.
16345	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
16346}
16347
16348// String returns the string representation
16349func (s UpdateServicePrimaryTaskSetOutput) String() string {
16350	return awsutil.Prettify(s)
16351}
16352
16353// GoString returns the string representation
16354func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
16355	return s.String()
16356}
16357
16358// SetTaskSet sets the TaskSet field's value.
16359func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
16360	s.TaskSet = v
16361	return s
16362}
16363
16364type UpdateTaskSetInput struct {
16365	_ struct{} `type:"structure"`
16366
16367	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
16368	// the service that the task set exists in.
16369	//
16370	// Cluster is a required field
16371	Cluster *string `locationName:"cluster" type:"string" required:"true"`
16372
16373	// A floating-point percentage of the desired number of tasks to place and keep
16374	// running in the task set.
16375	//
16376	// Scale is a required field
16377	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
16378
16379	// The short name or full Amazon Resource Name (ARN) of the service that the
16380	// task set exists in.
16381	//
16382	// Service is a required field
16383	Service *string `locationName:"service" type:"string" required:"true"`
16384
16385	// The short name or full Amazon Resource Name (ARN) of the task set to update.
16386	//
16387	// TaskSet is a required field
16388	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
16389}
16390
16391// String returns the string representation
16392func (s UpdateTaskSetInput) String() string {
16393	return awsutil.Prettify(s)
16394}
16395
16396// GoString returns the string representation
16397func (s UpdateTaskSetInput) GoString() string {
16398	return s.String()
16399}
16400
16401// Validate inspects the fields of the type to determine if they are valid.
16402func (s *UpdateTaskSetInput) Validate() error {
16403	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
16404	if s.Cluster == nil {
16405		invalidParams.Add(request.NewErrParamRequired("Cluster"))
16406	}
16407	if s.Scale == nil {
16408		invalidParams.Add(request.NewErrParamRequired("Scale"))
16409	}
16410	if s.Service == nil {
16411		invalidParams.Add(request.NewErrParamRequired("Service"))
16412	}
16413	if s.TaskSet == nil {
16414		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
16415	}
16416
16417	if invalidParams.Len() > 0 {
16418		return invalidParams
16419	}
16420	return nil
16421}
16422
16423// SetCluster sets the Cluster field's value.
16424func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
16425	s.Cluster = &v
16426	return s
16427}
16428
16429// SetScale sets the Scale field's value.
16430func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
16431	s.Scale = v
16432	return s
16433}
16434
16435// SetService sets the Service field's value.
16436func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
16437	s.Service = &v
16438	return s
16439}
16440
16441// SetTaskSet sets the TaskSet field's value.
16442func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
16443	s.TaskSet = &v
16444	return s
16445}
16446
16447type UpdateTaskSetOutput struct {
16448	_ struct{} `type:"structure"`
16449
16450	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
16451	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
16452	// desired number of tasks, how many tasks are running, and whether the task
16453	// set serves production traffic.
16454	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
16455}
16456
16457// String returns the string representation
16458func (s UpdateTaskSetOutput) String() string {
16459	return awsutil.Prettify(s)
16460}
16461
16462// GoString returns the string representation
16463func (s UpdateTaskSetOutput) GoString() string {
16464	return s.String()
16465}
16466
16467// SetTaskSet sets the TaskSet field's value.
16468func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
16469	s.TaskSet = v
16470	return s
16471}
16472
16473// The Docker and Amazon ECS container agent version information about a container
16474// instance.
16475type VersionInfo struct {
16476	_ struct{} `type:"structure"`
16477
16478	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
16479	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
16480	AgentHash *string `locationName:"agentHash" type:"string"`
16481
16482	// The version number of the Amazon ECS container agent.
16483	AgentVersion *string `locationName:"agentVersion" type:"string"`
16484
16485	// The Docker version running on the container instance.
16486	DockerVersion *string `locationName:"dockerVersion" type:"string"`
16487}
16488
16489// String returns the string representation
16490func (s VersionInfo) String() string {
16491	return awsutil.Prettify(s)
16492}
16493
16494// GoString returns the string representation
16495func (s VersionInfo) GoString() string {
16496	return s.String()
16497}
16498
16499// SetAgentHash sets the AgentHash field's value.
16500func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
16501	s.AgentHash = &v
16502	return s
16503}
16504
16505// SetAgentVersion sets the AgentVersion field's value.
16506func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
16507	s.AgentVersion = &v
16508	return s
16509}
16510
16511// SetDockerVersion sets the DockerVersion field's value.
16512func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
16513	s.DockerVersion = &v
16514	return s
16515}
16516
16517// A data volume used in a task definition. For tasks that use a Docker volume,
16518// specify a DockerVolumeConfiguration. For tasks that use a bind mount host
16519// volume, specify a host and optional sourcePath. For more information, see
16520// Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
16521type Volume struct {
16522	_ struct{} `type:"structure"`
16523
16524	// This parameter is specified when you are using Docker volumes. Docker volumes
16525	// are only supported when you are using the EC2 launch type. Windows containers
16526	// only support the use of the local driver. To use bind mounts, specify a host
16527	// instead.
16528	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
16529
16530	// This parameter is specified when you are using bind mount host volumes. Bind
16531	// mount host volumes are supported when you are using either the EC2 or Fargate
16532	// launch types. The contents of the host parameter determine whether your bind
16533	// mount host volume persists on the host container instance and where it is
16534	// stored. If the host parameter is empty, then the Docker daemon assigns a
16535	// host path for your data volume. However, the data is not guaranteed to persist
16536	// after the containers associated with it stop running.
16537	//
16538	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
16539	// Windows containers cannot mount directories on a different drive, and mount
16540	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
16541	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
16542	Host *HostVolumeProperties `locationName:"host" type:"structure"`
16543
16544	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
16545	// and hyphens are allowed. This name is referenced in the sourceVolume parameter
16546	// of container definition mountPoints.
16547	Name *string `locationName:"name" type:"string"`
16548}
16549
16550// String returns the string representation
16551func (s Volume) String() string {
16552	return awsutil.Prettify(s)
16553}
16554
16555// GoString returns the string representation
16556func (s Volume) GoString() string {
16557	return s.String()
16558}
16559
16560// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
16561func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
16562	s.DockerVolumeConfiguration = v
16563	return s
16564}
16565
16566// SetHost sets the Host field's value.
16567func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
16568	s.Host = v
16569	return s
16570}
16571
16572// SetName sets the Name field's value.
16573func (s *Volume) SetName(v string) *Volume {
16574	s.Name = &v
16575	return s
16576}
16577
16578// Details on a data volume from another container in the same task definition.
16579type VolumeFrom struct {
16580	_ struct{} `type:"structure"`
16581
16582	// If this value is true, the container has read-only access to the volume.
16583	// If this value is false, then the container can write to the volume. The default
16584	// value is false.
16585	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
16586
16587	// The name of another container within the same task definition from which
16588	// to mount volumes.
16589	SourceContainer *string `locationName:"sourceContainer" type:"string"`
16590}
16591
16592// String returns the string representation
16593func (s VolumeFrom) String() string {
16594	return awsutil.Prettify(s)
16595}
16596
16597// GoString returns the string representation
16598func (s VolumeFrom) GoString() string {
16599	return s.String()
16600}
16601
16602// SetReadOnly sets the ReadOnly field's value.
16603func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
16604	s.ReadOnly = &v
16605	return s
16606}
16607
16608// SetSourceContainer sets the SourceContainer field's value.
16609func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
16610	s.SourceContainer = &v
16611	return s
16612}
16613
16614const (
16615	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
16616	AgentUpdateStatusPending = "PENDING"
16617
16618	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
16619	AgentUpdateStatusStaging = "STAGING"
16620
16621	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
16622	AgentUpdateStatusStaged = "STAGED"
16623
16624	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
16625	AgentUpdateStatusUpdating = "UPDATING"
16626
16627	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
16628	AgentUpdateStatusUpdated = "UPDATED"
16629
16630	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
16631	AgentUpdateStatusFailed = "FAILED"
16632)
16633
16634const (
16635	// AssignPublicIpEnabled is a AssignPublicIp enum value
16636	AssignPublicIpEnabled = "ENABLED"
16637
16638	// AssignPublicIpDisabled is a AssignPublicIp enum value
16639	AssignPublicIpDisabled = "DISABLED"
16640)
16641
16642const (
16643	// ClusterFieldStatistics is a ClusterField enum value
16644	ClusterFieldStatistics = "STATISTICS"
16645
16646	// ClusterFieldTags is a ClusterField enum value
16647	ClusterFieldTags = "TAGS"
16648)
16649
16650const (
16651	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
16652	ClusterSettingNameContainerInsights = "containerInsights"
16653)
16654
16655const (
16656	// CompatibilityEc2 is a Compatibility enum value
16657	CompatibilityEc2 = "EC2"
16658
16659	// CompatibilityFargate is a Compatibility enum value
16660	CompatibilityFargate = "FARGATE"
16661)
16662
16663const (
16664	// ConnectivityConnected is a Connectivity enum value
16665	ConnectivityConnected = "CONNECTED"
16666
16667	// ConnectivityDisconnected is a Connectivity enum value
16668	ConnectivityDisconnected = "DISCONNECTED"
16669)
16670
16671const (
16672	// ContainerConditionStart is a ContainerCondition enum value
16673	ContainerConditionStart = "START"
16674
16675	// ContainerConditionComplete is a ContainerCondition enum value
16676	ContainerConditionComplete = "COMPLETE"
16677
16678	// ContainerConditionSuccess is a ContainerCondition enum value
16679	ContainerConditionSuccess = "SUCCESS"
16680
16681	// ContainerConditionHealthy is a ContainerCondition enum value
16682	ContainerConditionHealthy = "HEALTHY"
16683)
16684
16685const (
16686	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
16687	ContainerInstanceFieldTags = "TAGS"
16688)
16689
16690const (
16691	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
16692	ContainerInstanceStatusActive = "ACTIVE"
16693
16694	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
16695	ContainerInstanceStatusDraining = "DRAINING"
16696
16697	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
16698	ContainerInstanceStatusRegistering = "REGISTERING"
16699
16700	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
16701	ContainerInstanceStatusDeregistering = "DEREGISTERING"
16702
16703	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
16704	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
16705)
16706
16707const (
16708	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
16709	DeploymentControllerTypeEcs = "ECS"
16710
16711	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
16712	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
16713
16714	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
16715	DeploymentControllerTypeExternal = "EXTERNAL"
16716)
16717
16718const (
16719	// DesiredStatusRunning is a DesiredStatus enum value
16720	DesiredStatusRunning = "RUNNING"
16721
16722	// DesiredStatusPending is a DesiredStatus enum value
16723	DesiredStatusPending = "PENDING"
16724
16725	// DesiredStatusStopped is a DesiredStatus enum value
16726	DesiredStatusStopped = "STOPPED"
16727)
16728
16729const (
16730	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
16731	DeviceCgroupPermissionRead = "read"
16732
16733	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
16734	DeviceCgroupPermissionWrite = "write"
16735
16736	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
16737	DeviceCgroupPermissionMknod = "mknod"
16738)
16739
16740const (
16741	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
16742	FirelensConfigurationTypeFluentd = "fluentd"
16743
16744	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
16745	FirelensConfigurationTypeFluentbit = "fluentbit"
16746)
16747
16748const (
16749	// HealthStatusHealthy is a HealthStatus enum value
16750	HealthStatusHealthy = "HEALTHY"
16751
16752	// HealthStatusUnhealthy is a HealthStatus enum value
16753	HealthStatusUnhealthy = "UNHEALTHY"
16754
16755	// HealthStatusUnknown is a HealthStatus enum value
16756	HealthStatusUnknown = "UNKNOWN"
16757)
16758
16759const (
16760	// IpcModeHost is a IpcMode enum value
16761	IpcModeHost = "host"
16762
16763	// IpcModeTask is a IpcMode enum value
16764	IpcModeTask = "task"
16765
16766	// IpcModeNone is a IpcMode enum value
16767	IpcModeNone = "none"
16768)
16769
16770const (
16771	// LaunchTypeEc2 is a LaunchType enum value
16772	LaunchTypeEc2 = "EC2"
16773
16774	// LaunchTypeFargate is a LaunchType enum value
16775	LaunchTypeFargate = "FARGATE"
16776)
16777
16778const (
16779	// LogDriverJsonFile is a LogDriver enum value
16780	LogDriverJsonFile = "json-file"
16781
16782	// LogDriverSyslog is a LogDriver enum value
16783	LogDriverSyslog = "syslog"
16784
16785	// LogDriverJournald is a LogDriver enum value
16786	LogDriverJournald = "journald"
16787
16788	// LogDriverGelf is a LogDriver enum value
16789	LogDriverGelf = "gelf"
16790
16791	// LogDriverFluentd is a LogDriver enum value
16792	LogDriverFluentd = "fluentd"
16793
16794	// LogDriverAwslogs is a LogDriver enum value
16795	LogDriverAwslogs = "awslogs"
16796
16797	// LogDriverSplunk is a LogDriver enum value
16798	LogDriverSplunk = "splunk"
16799
16800	// LogDriverAwsfirelens is a LogDriver enum value
16801	LogDriverAwsfirelens = "awsfirelens"
16802)
16803
16804const (
16805	// NetworkModeBridge is a NetworkMode enum value
16806	NetworkModeBridge = "bridge"
16807
16808	// NetworkModeHost is a NetworkMode enum value
16809	NetworkModeHost = "host"
16810
16811	// NetworkModeAwsvpc is a NetworkMode enum value
16812	NetworkModeAwsvpc = "awsvpc"
16813
16814	// NetworkModeNone is a NetworkMode enum value
16815	NetworkModeNone = "none"
16816)
16817
16818const (
16819	// PidModeHost is a PidMode enum value
16820	PidModeHost = "host"
16821
16822	// PidModeTask is a PidMode enum value
16823	PidModeTask = "task"
16824)
16825
16826const (
16827	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
16828	PlacementConstraintTypeDistinctInstance = "distinctInstance"
16829
16830	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
16831	PlacementConstraintTypeMemberOf = "memberOf"
16832)
16833
16834const (
16835	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
16836	PlacementStrategyTypeRandom = "random"
16837
16838	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
16839	PlacementStrategyTypeSpread = "spread"
16840
16841	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
16842	PlacementStrategyTypeBinpack = "binpack"
16843)
16844
16845const (
16846	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
16847	PlatformDeviceTypeGpu = "GPU"
16848)
16849
16850const (
16851	// PropagateTagsTaskDefinition is a PropagateTags enum value
16852	PropagateTagsTaskDefinition = "TASK_DEFINITION"
16853
16854	// PropagateTagsService is a PropagateTags enum value
16855	PropagateTagsService = "SERVICE"
16856)
16857
16858const (
16859	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
16860	ProxyConfigurationTypeAppmesh = "APPMESH"
16861)
16862
16863const (
16864	// ResourceTypeGpu is a ResourceType enum value
16865	ResourceTypeGpu = "GPU"
16866
16867	// ResourceTypeInferenceAccelerator is a ResourceType enum value
16868	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
16869)
16870
16871const (
16872	// ScaleUnitPercent is a ScaleUnit enum value
16873	ScaleUnitPercent = "PERCENT"
16874)
16875
16876const (
16877	// SchedulingStrategyReplica is a SchedulingStrategy enum value
16878	SchedulingStrategyReplica = "REPLICA"
16879
16880	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
16881	SchedulingStrategyDaemon = "DAEMON"
16882)
16883
16884const (
16885	// ScopeTask is a Scope enum value
16886	ScopeTask = "task"
16887
16888	// ScopeShared is a Scope enum value
16889	ScopeShared = "shared"
16890)
16891
16892const (
16893	// ServiceFieldTags is a ServiceField enum value
16894	ServiceFieldTags = "TAGS"
16895)
16896
16897const (
16898	// SettingNameServiceLongArnFormat is a SettingName enum value
16899	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
16900
16901	// SettingNameTaskLongArnFormat is a SettingName enum value
16902	SettingNameTaskLongArnFormat = "taskLongArnFormat"
16903
16904	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
16905	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
16906
16907	// SettingNameAwsvpcTrunking is a SettingName enum value
16908	SettingNameAwsvpcTrunking = "awsvpcTrunking"
16909
16910	// SettingNameContainerInsights is a SettingName enum value
16911	SettingNameContainerInsights = "containerInsights"
16912)
16913
16914const (
16915	// SortOrderAsc is a SortOrder enum value
16916	SortOrderAsc = "ASC"
16917
16918	// SortOrderDesc is a SortOrder enum value
16919	SortOrderDesc = "DESC"
16920)
16921
16922const (
16923	// StabilityStatusSteadyState is a StabilityStatus enum value
16924	StabilityStatusSteadyState = "STEADY_STATE"
16925
16926	// StabilityStatusStabilizing is a StabilityStatus enum value
16927	StabilityStatusStabilizing = "STABILIZING"
16928)
16929
16930const (
16931	// TargetTypeContainerInstance is a TargetType enum value
16932	TargetTypeContainerInstance = "container-instance"
16933)
16934
16935const (
16936	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
16937	TaskDefinitionFamilyStatusActive = "ACTIVE"
16938
16939	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
16940	TaskDefinitionFamilyStatusInactive = "INACTIVE"
16941
16942	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
16943	TaskDefinitionFamilyStatusAll = "ALL"
16944)
16945
16946const (
16947	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
16948	TaskDefinitionFieldTags = "TAGS"
16949)
16950
16951const (
16952	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
16953	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
16954)
16955
16956const (
16957	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
16958	TaskDefinitionStatusActive = "ACTIVE"
16959
16960	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
16961	TaskDefinitionStatusInactive = "INACTIVE"
16962)
16963
16964const (
16965	// TaskFieldTags is a TaskField enum value
16966	TaskFieldTags = "TAGS"
16967)
16968
16969const (
16970	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
16971	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
16972
16973	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
16974	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
16975
16976	// TaskStopCodeUserInitiated is a TaskStopCode enum value
16977	TaskStopCodeUserInitiated = "UserInitiated"
16978)
16979
16980const (
16981	// TransportProtocolTcp is a TransportProtocol enum value
16982	TransportProtocolTcp = "tcp"
16983
16984	// TransportProtocolUdp is a TransportProtocol enum value
16985	TransportProtocolUdp = "udp"
16986)
16987
16988const (
16989	// UlimitNameCore is a UlimitName enum value
16990	UlimitNameCore = "core"
16991
16992	// UlimitNameCpu is a UlimitName enum value
16993	UlimitNameCpu = "cpu"
16994
16995	// UlimitNameData is a UlimitName enum value
16996	UlimitNameData = "data"
16997
16998	// UlimitNameFsize is a UlimitName enum value
16999	UlimitNameFsize = "fsize"
17000
17001	// UlimitNameLocks is a UlimitName enum value
17002	UlimitNameLocks = "locks"
17003
17004	// UlimitNameMemlock is a UlimitName enum value
17005	UlimitNameMemlock = "memlock"
17006
17007	// UlimitNameMsgqueue is a UlimitName enum value
17008	UlimitNameMsgqueue = "msgqueue"
17009
17010	// UlimitNameNice is a UlimitName enum value
17011	UlimitNameNice = "nice"
17012
17013	// UlimitNameNofile is a UlimitName enum value
17014	UlimitNameNofile = "nofile"
17015
17016	// UlimitNameNproc is a UlimitName enum value
17017	UlimitNameNproc = "nproc"
17018
17019	// UlimitNameRss is a UlimitName enum value
17020	UlimitNameRss = "rss"
17021
17022	// UlimitNameRtprio is a UlimitName enum value
17023	UlimitNameRtprio = "rtprio"
17024
17025	// UlimitNameRttime is a UlimitName enum value
17026	UlimitNameRttime = "rttime"
17027
17028	// UlimitNameSigpending is a UlimitName enum value
17029	UlimitNameSigpending = "sigpending"
17030
17031	// UlimitNameStack is a UlimitName enum value
17032	UlimitNameStack = "stack"
17033)
17034