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 opCreateCapacityProvider = "CreateCapacityProvider"
17
18// CreateCapacityProviderRequest generates a "aws/request.Request" representing the
19// client's request for the CreateCapacityProvider 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 CreateCapacityProvider for more information on using the CreateCapacityProvider
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 CreateCapacityProviderRequest method.
34//    req, resp := client.CreateCapacityProviderRequest(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/CreateCapacityProvider
42func (c *ECS) CreateCapacityProviderRequest(input *CreateCapacityProviderInput) (req *request.Request, output *CreateCapacityProviderOutput) {
43	op := &request.Operation{
44		Name:       opCreateCapacityProvider,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateCapacityProviderInput{}
51	}
52
53	output = &CreateCapacityProviderOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateCapacityProvider API operation for Amazon EC2 Container Service.
59//
60// Creates a new capacity provider. Capacity providers are associated with an
61// Amazon ECS cluster and are used in capacity provider strategies to facilitate
62// cluster auto scaling.
63//
64// Only capacity providers using an Auto Scaling group can be created. Amazon
65// ECS tasks on Fargate use the FARGATE and FARGATE_SPOT capacity providers
66// which are already created and available to all accounts in Regions supported
67// by Fargate.
68//
69// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
70// with awserr.Error's Code and Message methods to get detailed information about
71// the error.
72//
73// See the AWS API reference guide for Amazon EC2 Container Service's
74// API operation CreateCapacityProvider for usage and error information.
75//
76// Returned Error Types:
77//   * ServerException
78//   These errors are usually caused by a server issue.
79//
80//   * ClientException
81//   These errors are usually caused by a client action, such as using an action
82//   or resource on behalf of a user that doesn't have permissions to use the
83//   action or resource, or specifying an identifier that is not valid.
84//
85//   * InvalidParameterException
86//   The specified parameter is invalid. Review the available parameters for the
87//   API request.
88//
89//   * LimitExceededException
90//   The limit for the resource has been exceeded.
91//
92//   * UpdateInProgressException
93//   There is already a current Amazon ECS container agent update in progress
94//   on the specified container instance. If the container agent becomes disconnected
95//   while it is in a transitional stage, such as PENDING or STAGING, the update
96//   process can get stuck in that state. However, when the agent reconnects,
97//   it resumes where it stopped previously.
98//
99// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider
100func (c *ECS) CreateCapacityProvider(input *CreateCapacityProviderInput) (*CreateCapacityProviderOutput, error) {
101	req, out := c.CreateCapacityProviderRequest(input)
102	return out, req.Send()
103}
104
105// CreateCapacityProviderWithContext is the same as CreateCapacityProvider with the addition of
106// the ability to pass a context and additional request options.
107//
108// See CreateCapacityProvider for details on how to use this API operation.
109//
110// The context must be non-nil and will be used for request cancellation. If
111// the context is nil a panic will occur. In the future the SDK may create
112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
113// for more information on using Contexts.
114func (c *ECS) CreateCapacityProviderWithContext(ctx aws.Context, input *CreateCapacityProviderInput, opts ...request.Option) (*CreateCapacityProviderOutput, error) {
115	req, out := c.CreateCapacityProviderRequest(input)
116	req.SetContext(ctx)
117	req.ApplyOptions(opts...)
118	return out, req.Send()
119}
120
121const opCreateCluster = "CreateCluster"
122
123// CreateClusterRequest generates a "aws/request.Request" representing the
124// client's request for the CreateCluster operation. The "output" return
125// value will be populated with the request's response once the request completes
126// successfully.
127//
128// Use "Send" method on the returned Request to send the API call to the service.
129// the "output" return value is not valid until after Send returns without error.
130//
131// See CreateCluster for more information on using the CreateCluster
132// API call, and error handling.
133//
134// This method is useful when you want to inject custom logic or configuration
135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
136//
137//
138//    // Example sending a request using the CreateClusterRequest method.
139//    req, resp := client.CreateClusterRequest(params)
140//
141//    err := req.Send()
142//    if err == nil { // resp is now filled
143//        fmt.Println(resp)
144//    }
145//
146// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
147func (c *ECS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
148	op := &request.Operation{
149		Name:       opCreateCluster,
150		HTTPMethod: "POST",
151		HTTPPath:   "/",
152	}
153
154	if input == nil {
155		input = &CreateClusterInput{}
156	}
157
158	output = &CreateClusterOutput{}
159	req = c.newRequest(op, input, output)
160	return
161}
162
163// CreateCluster API operation for Amazon EC2 Container Service.
164//
165// Creates a new Amazon ECS cluster. By default, your account receives a default
166// cluster when you launch your first container instance. However, you can create
167// your own cluster with a unique name with the CreateCluster action.
168//
169// When you call the CreateCluster API operation, Amazon ECS attempts to create
170// the Amazon ECS service-linked role for your account so that required resources
171// in other Amazon Web Services services can be managed on your behalf. However,
172// if the IAM user that makes the call does not have permissions to create the
173// service-linked role, it is not created. For more information, see Using Service-Linked
174// Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
175// in the Amazon Elastic Container Service Developer Guide.
176//
177// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
178// with awserr.Error's Code and Message methods to get detailed information about
179// the error.
180//
181// See the AWS API reference guide for Amazon EC2 Container Service's
182// API operation CreateCluster for usage and error information.
183//
184// Returned Error Types:
185//   * ServerException
186//   These errors are usually caused by a server issue.
187//
188//   * ClientException
189//   These errors are usually caused by a client action, such as using an action
190//   or resource on behalf of a user that doesn't have permissions to use the
191//   action or resource, or specifying an identifier that is not valid.
192//
193//   * InvalidParameterException
194//   The specified parameter is invalid. Review the available parameters for the
195//   API request.
196//
197// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
198func (c *ECS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
199	req, out := c.CreateClusterRequest(input)
200	return out, req.Send()
201}
202
203// CreateClusterWithContext is the same as CreateCluster with the addition of
204// the ability to pass a context and additional request options.
205//
206// See CreateCluster for details on how to use this API operation.
207//
208// The context must be non-nil and will be used for request cancellation. If
209// the context is nil a panic will occur. In the future the SDK may create
210// sub-contexts for http.Requests. See https://golang.org/pkg/context/
211// for more information on using Contexts.
212func (c *ECS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
213	req, out := c.CreateClusterRequest(input)
214	req.SetContext(ctx)
215	req.ApplyOptions(opts...)
216	return out, req.Send()
217}
218
219const opCreateService = "CreateService"
220
221// CreateServiceRequest generates a "aws/request.Request" representing the
222// client's request for the CreateService operation. The "output" return
223// value will be populated with the request's response once the request completes
224// successfully.
225//
226// Use "Send" method on the returned Request to send the API call to the service.
227// the "output" return value is not valid until after Send returns without error.
228//
229// See CreateService for more information on using the CreateService
230// API call, and error handling.
231//
232// This method is useful when you want to inject custom logic or configuration
233// into the SDK's request lifecycle. Such as custom headers, or retry logic.
234//
235//
236//    // Example sending a request using the CreateServiceRequest method.
237//    req, resp := client.CreateServiceRequest(params)
238//
239//    err := req.Send()
240//    if err == nil { // resp is now filled
241//        fmt.Println(resp)
242//    }
243//
244// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
245func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
246	op := &request.Operation{
247		Name:       opCreateService,
248		HTTPMethod: "POST",
249		HTTPPath:   "/",
250	}
251
252	if input == nil {
253		input = &CreateServiceInput{}
254	}
255
256	output = &CreateServiceOutput{}
257	req = c.newRequest(op, input, output)
258	return
259}
260
261// CreateService API operation for Amazon EC2 Container Service.
262//
263// Runs and maintains a desired number of tasks from a specified task definition.
264// If the number of tasks running in a service drops below the desiredCount,
265// Amazon ECS runs another copy of the task in the specified cluster. To update
266// an existing service, see the UpdateService action.
267//
268// In addition to maintaining the desired count of tasks in your service, you
269// can optionally run your service behind one or more load balancers. The load
270// balancers distribute traffic across the tasks that are associated with the
271// service. For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
272// in the Amazon Elastic Container Service Developer Guide.
273//
274// Tasks for services that do not use a load balancer are considered healthy
275// if they're in the RUNNING state. Tasks for services that do use a load balancer
276// are considered healthy if they're in the RUNNING state and the container
277// instance that they're hosted on is reported as healthy by the load balancer.
278//
279// There are two service scheduler strategies available:
280//
281//    * REPLICA - The replica scheduling strategy places and maintains the desired
282//    number of tasks across your cluster. By default, the service scheduler
283//    spreads tasks across Availability Zones. You can use task placement strategies
284//    and constraints to customize task placement decisions. For more information,
285//    see Service Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
286//    in the Amazon Elastic Container Service Developer Guide.
287//
288//    * DAEMON - The daemon scheduling strategy deploys exactly one task on
289//    each active container instance that meets all of the task placement constraints
290//    that you specify in your cluster. The service scheduler also evaluates
291//    the task placement constraints for running tasks and will stop tasks that
292//    do not meet the placement constraints. When using this strategy, you don't
293//    need to specify a desired number of tasks, a task placement strategy,
294//    or use Service Auto Scaling policies. For more information, see Service
295//    Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
296//    in the Amazon Elastic Container Service Developer Guide.
297//
298// You can optionally specify a deployment configuration for your service. The
299// deployment is triggered by changing properties, such as the task definition
300// or the desired count of a service, with an UpdateService operation. The default
301// value for a replica service for minimumHealthyPercent is 100%. The default
302// value for a daemon service for minimumHealthyPercent is 0%.
303//
304// If a service is using the ECS deployment controller, the minimum healthy
305// percent represents a lower limit on the number of tasks in a service that
306// must remain in the RUNNING state during a deployment, as a percentage of
307// the desired number of tasks (rounded up to the nearest integer), and while
308// any container instances are in the DRAINING state if the service contains
309// tasks using the EC2 launch type. This parameter enables you to deploy without
310// using additional cluster capacity. For example, if your service has a desired
311// number of four tasks and a minimum healthy percent of 50%, the scheduler
312// might stop two existing tasks to free up cluster capacity before starting
313// two new tasks. Tasks for services that do not use a load balancer are considered
314// healthy if they're in the RUNNING state. Tasks for services that do use a
315// load balancer are considered healthy if they're in the RUNNING state and
316// they're reported as healthy by the load balancer. The default value for minimum
317// healthy percent is 100%.
318//
319// If a service is using the ECS deployment controller, the maximum percent
320// parameter represents an upper limit on the number of tasks in a service that
321// are allowed in the RUNNING or PENDING state during a deployment, as a percentage
322// of the desired number of tasks (rounded down to the nearest integer), and
323// while any container instances are in the DRAINING state if the service contains
324// tasks using the EC2 launch type. This parameter enables you to define the
325// deployment batch size. For example, if your service has a desired number
326// of four tasks and a maximum percent value of 200%, the scheduler may start
327// four new tasks before stopping the four older tasks (provided that the cluster
328// resources required to do this are available). The default value for maximum
329// percent is 200%.
330//
331// If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller
332// types and tasks that use the EC2 launch type, the minimum healthy percent
333// and maximum percent values are used only to define the lower and upper limit
334// on the number of the tasks in the service that remain in the RUNNING state
335// while the container instances are in the DRAINING state. If the tasks in
336// the service use the Fargate launch type, the minimum healthy percent and
337// maximum percent values aren't used, although they're currently visible when
338// describing your service.
339//
340// When creating a service that uses the EXTERNAL deployment controller, you
341// can specify only parameters that aren't controlled at the task set level.
342// The only required parameter is the service name. You control your services
343// using the CreateTaskSet operation. For more information, see Amazon ECS Deployment
344// Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
345// in the Amazon Elastic Container Service Developer Guide.
346//
347// When the service scheduler launches new tasks, it determines task placement
348// in your cluster using the following logic:
349//
350//    * Determine which of the container instances in your cluster can support
351//    your service's task definition (for example, they have the required CPU,
352//    memory, ports, and container instance attributes).
353//
354//    * By default, the service scheduler attempts to balance tasks across Availability
355//    Zones in this manner (although you can choose a different placement strategy)
356//    with the placementStrategy parameter): Sort the valid container instances,
357//    giving priority to instances that have the fewest number of running tasks
358//    for this service in their respective Availability Zone. For example, if
359//    zone A has one running service task and zones B and C each have zero,
360//    valid container instances in either zone B or C are considered optimal
361//    for placement. Place the new service task on a valid container instance
362//    in an optimal Availability Zone (based on the previous steps), favoring
363//    container instances with the fewest number of running tasks for this service.
364//
365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
366// with awserr.Error's Code and Message methods to get detailed information about
367// the error.
368//
369// See the AWS API reference guide for Amazon EC2 Container Service's
370// API operation CreateService for usage and error information.
371//
372// Returned Error Types:
373//   * ServerException
374//   These errors are usually caused by a server issue.
375//
376//   * ClientException
377//   These errors are usually caused by a client action, such as using an action
378//   or resource on behalf of a user that doesn't have permissions to use the
379//   action or resource, or specifying an identifier that is not valid.
380//
381//   * InvalidParameterException
382//   The specified parameter is invalid. Review the available parameters for the
383//   API request.
384//
385//   * ClusterNotFoundException
386//   The specified cluster could not be found. You can view your available clusters
387//   with ListClusters. Amazon ECS clusters are Region-specific.
388//
389//   * UnsupportedFeatureException
390//   The specified task is not supported in this Region.
391//
392//   * PlatformUnknownException
393//   The specified platform version does not exist.
394//
395//   * PlatformTaskDefinitionIncompatibilityException
396//   The specified platform version does not satisfy the task definition's required
397//   capabilities.
398//
399//   * AccessDeniedException
400//   You do not have authorization to perform the requested action.
401//
402// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
403func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
404	req, out := c.CreateServiceRequest(input)
405	return out, req.Send()
406}
407
408// CreateServiceWithContext is the same as CreateService with the addition of
409// the ability to pass a context and additional request options.
410//
411// See CreateService for details on how to use this API operation.
412//
413// The context must be non-nil and will be used for request cancellation. If
414// the context is nil a panic will occur. In the future the SDK may create
415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
416// for more information on using Contexts.
417func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
418	req, out := c.CreateServiceRequest(input)
419	req.SetContext(ctx)
420	req.ApplyOptions(opts...)
421	return out, req.Send()
422}
423
424const opCreateTaskSet = "CreateTaskSet"
425
426// CreateTaskSetRequest generates a "aws/request.Request" representing the
427// client's request for the CreateTaskSet operation. The "output" return
428// value will be populated with the request's response once the request completes
429// successfully.
430//
431// Use "Send" method on the returned Request to send the API call to the service.
432// the "output" return value is not valid until after Send returns without error.
433//
434// See CreateTaskSet for more information on using the CreateTaskSet
435// API call, and error handling.
436//
437// This method is useful when you want to inject custom logic or configuration
438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
439//
440//
441//    // Example sending a request using the CreateTaskSetRequest method.
442//    req, resp := client.CreateTaskSetRequest(params)
443//
444//    err := req.Send()
445//    if err == nil { // resp is now filled
446//        fmt.Println(resp)
447//    }
448//
449// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
450func (c *ECS) CreateTaskSetRequest(input *CreateTaskSetInput) (req *request.Request, output *CreateTaskSetOutput) {
451	op := &request.Operation{
452		Name:       opCreateTaskSet,
453		HTTPMethod: "POST",
454		HTTPPath:   "/",
455	}
456
457	if input == nil {
458		input = &CreateTaskSetInput{}
459	}
460
461	output = &CreateTaskSetOutput{}
462	req = c.newRequest(op, input, output)
463	return
464}
465
466// CreateTaskSet API operation for Amazon EC2 Container Service.
467//
468// Create a task set in the specified cluster and service. This is used when
469// a service uses the EXTERNAL deployment controller type. For more information,
470// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
471// in the Amazon Elastic Container Service Developer Guide.
472//
473// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
474// with awserr.Error's Code and Message methods to get detailed information about
475// the error.
476//
477// See the AWS API reference guide for Amazon EC2 Container Service's
478// API operation CreateTaskSet for usage and error information.
479//
480// Returned Error Types:
481//   * ServerException
482//   These errors are usually caused by a server issue.
483//
484//   * ClientException
485//   These errors are usually caused by a client action, such as using an action
486//   or resource on behalf of a user that doesn't have permissions to use the
487//   action or resource, or specifying an identifier that is not valid.
488//
489//   * InvalidParameterException
490//   The specified parameter is invalid. Review the available parameters for the
491//   API request.
492//
493//   * ClusterNotFoundException
494//   The specified cluster could not be found. You can view your available clusters
495//   with ListClusters. Amazon ECS clusters are Region-specific.
496//
497//   * UnsupportedFeatureException
498//   The specified task is not supported in this Region.
499//
500//   * PlatformUnknownException
501//   The specified platform version does not exist.
502//
503//   * PlatformTaskDefinitionIncompatibilityException
504//   The specified platform version does not satisfy the task definition's required
505//   capabilities.
506//
507//   * AccessDeniedException
508//   You do not have authorization to perform the requested action.
509//
510//   * ServiceNotFoundException
511//   The specified service could not be found. You can view your available services
512//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
513//
514//   * ServiceNotActiveException
515//   The specified service is not active. You can't update a service that is inactive.
516//   If you have previously deleted a service, you can re-create it with CreateService.
517//
518// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
519func (c *ECS) CreateTaskSet(input *CreateTaskSetInput) (*CreateTaskSetOutput, error) {
520	req, out := c.CreateTaskSetRequest(input)
521	return out, req.Send()
522}
523
524// CreateTaskSetWithContext is the same as CreateTaskSet with the addition of
525// the ability to pass a context and additional request options.
526//
527// See CreateTaskSet for details on how to use this API operation.
528//
529// The context must be non-nil and will be used for request cancellation. If
530// the context is nil a panic will occur. In the future the SDK may create
531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
532// for more information on using Contexts.
533func (c *ECS) CreateTaskSetWithContext(ctx aws.Context, input *CreateTaskSetInput, opts ...request.Option) (*CreateTaskSetOutput, error) {
534	req, out := c.CreateTaskSetRequest(input)
535	req.SetContext(ctx)
536	req.ApplyOptions(opts...)
537	return out, req.Send()
538}
539
540const opDeleteAccountSetting = "DeleteAccountSetting"
541
542// DeleteAccountSettingRequest generates a "aws/request.Request" representing the
543// client's request for the DeleteAccountSetting operation. The "output" return
544// value will be populated with the request's response once the request completes
545// successfully.
546//
547// Use "Send" method on the returned Request to send the API call to the service.
548// the "output" return value is not valid until after Send returns without error.
549//
550// See DeleteAccountSetting for more information on using the DeleteAccountSetting
551// API call, and error handling.
552//
553// This method is useful when you want to inject custom logic or configuration
554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
555//
556//
557//    // Example sending a request using the DeleteAccountSettingRequest method.
558//    req, resp := client.DeleteAccountSettingRequest(params)
559//
560//    err := req.Send()
561//    if err == nil { // resp is now filled
562//        fmt.Println(resp)
563//    }
564//
565// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
566func (c *ECS) DeleteAccountSettingRequest(input *DeleteAccountSettingInput) (req *request.Request, output *DeleteAccountSettingOutput) {
567	op := &request.Operation{
568		Name:       opDeleteAccountSetting,
569		HTTPMethod: "POST",
570		HTTPPath:   "/",
571	}
572
573	if input == nil {
574		input = &DeleteAccountSettingInput{}
575	}
576
577	output = &DeleteAccountSettingOutput{}
578	req = c.newRequest(op, input, output)
579	return
580}
581
582// DeleteAccountSetting API operation for Amazon EC2 Container Service.
583//
584// Disables an account setting for a specified IAM user, IAM role, or the root
585// user for an account.
586//
587// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
588// with awserr.Error's Code and Message methods to get detailed information about
589// the error.
590//
591// See the AWS API reference guide for Amazon EC2 Container Service's
592// API operation DeleteAccountSetting for usage and error information.
593//
594// Returned Error Types:
595//   * ServerException
596//   These errors are usually caused by a server issue.
597//
598//   * ClientException
599//   These errors are usually caused by a client action, such as using an action
600//   or resource on behalf of a user that doesn't have permissions to use the
601//   action or resource, or specifying an identifier that is not valid.
602//
603//   * InvalidParameterException
604//   The specified parameter is invalid. Review the available parameters for the
605//   API request.
606//
607// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
608func (c *ECS) DeleteAccountSetting(input *DeleteAccountSettingInput) (*DeleteAccountSettingOutput, error) {
609	req, out := c.DeleteAccountSettingRequest(input)
610	return out, req.Send()
611}
612
613// DeleteAccountSettingWithContext is the same as DeleteAccountSetting with the addition of
614// the ability to pass a context and additional request options.
615//
616// See DeleteAccountSetting for details on how to use this API operation.
617//
618// The context must be non-nil and will be used for request cancellation. If
619// the context is nil a panic will occur. In the future the SDK may create
620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
621// for more information on using Contexts.
622func (c *ECS) DeleteAccountSettingWithContext(ctx aws.Context, input *DeleteAccountSettingInput, opts ...request.Option) (*DeleteAccountSettingOutput, error) {
623	req, out := c.DeleteAccountSettingRequest(input)
624	req.SetContext(ctx)
625	req.ApplyOptions(opts...)
626	return out, req.Send()
627}
628
629const opDeleteAttributes = "DeleteAttributes"
630
631// DeleteAttributesRequest generates a "aws/request.Request" representing the
632// client's request for the DeleteAttributes operation. The "output" return
633// value will be populated with the request's response once the request completes
634// successfully.
635//
636// Use "Send" method on the returned Request to send the API call to the service.
637// the "output" return value is not valid until after Send returns without error.
638//
639// See DeleteAttributes for more information on using the DeleteAttributes
640// API call, and error handling.
641//
642// This method is useful when you want to inject custom logic or configuration
643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
644//
645//
646//    // Example sending a request using the DeleteAttributesRequest method.
647//    req, resp := client.DeleteAttributesRequest(params)
648//
649//    err := req.Send()
650//    if err == nil { // resp is now filled
651//        fmt.Println(resp)
652//    }
653//
654// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
655func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
656	op := &request.Operation{
657		Name:       opDeleteAttributes,
658		HTTPMethod: "POST",
659		HTTPPath:   "/",
660	}
661
662	if input == nil {
663		input = &DeleteAttributesInput{}
664	}
665
666	output = &DeleteAttributesOutput{}
667	req = c.newRequest(op, input, output)
668	return
669}
670
671// DeleteAttributes API operation for Amazon EC2 Container Service.
672//
673// Deletes one or more custom attributes from an Amazon ECS resource.
674//
675// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
676// with awserr.Error's Code and Message methods to get detailed information about
677// the error.
678//
679// See the AWS API reference guide for Amazon EC2 Container Service's
680// API operation DeleteAttributes for usage and error information.
681//
682// Returned Error Types:
683//   * ClusterNotFoundException
684//   The specified cluster could not be found. You can view your available clusters
685//   with ListClusters. Amazon ECS clusters are Region-specific.
686//
687//   * TargetNotFoundException
688//   The specified target could not be found. You can view your available container
689//   instances with ListContainerInstances. Amazon ECS container instances are
690//   cluster-specific and Region-specific.
691//
692//   * InvalidParameterException
693//   The specified parameter is invalid. Review the available parameters for the
694//   API request.
695//
696// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
697func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
698	req, out := c.DeleteAttributesRequest(input)
699	return out, req.Send()
700}
701
702// DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
703// the ability to pass a context and additional request options.
704//
705// See DeleteAttributes 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) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
712	req, out := c.DeleteAttributesRequest(input)
713	req.SetContext(ctx)
714	req.ApplyOptions(opts...)
715	return out, req.Send()
716}
717
718const opDeleteCapacityProvider = "DeleteCapacityProvider"
719
720// DeleteCapacityProviderRequest generates a "aws/request.Request" representing the
721// client's request for the DeleteCapacityProvider 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 DeleteCapacityProvider for more information on using the DeleteCapacityProvider
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 DeleteCapacityProviderRequest method.
736//    req, resp := client.DeleteCapacityProviderRequest(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/DeleteCapacityProvider
744func (c *ECS) DeleteCapacityProviderRequest(input *DeleteCapacityProviderInput) (req *request.Request, output *DeleteCapacityProviderOutput) {
745	op := &request.Operation{
746		Name:       opDeleteCapacityProvider,
747		HTTPMethod: "POST",
748		HTTPPath:   "/",
749	}
750
751	if input == nil {
752		input = &DeleteCapacityProviderInput{}
753	}
754
755	output = &DeleteCapacityProviderOutput{}
756	req = c.newRequest(op, input, output)
757	return
758}
759
760// DeleteCapacityProvider API operation for Amazon EC2 Container Service.
761//
762// Deletes the specified capacity provider.
763//
764// The FARGATE and FARGATE_SPOT capacity providers are reserved and cannot be
765// deleted. You can disassociate them from a cluster using either the PutClusterCapacityProviders
766// API or by deleting the cluster.
767//
768// Prior to a capacity provider being deleted, the capacity provider must be
769// removed from the capacity provider strategy from all services. The UpdateService
770// API can be used to remove a capacity provider from a service's capacity provider
771// strategy. When updating a service, the forceNewDeployment option can be used
772// to ensure that any tasks using the Amazon EC2 instance capacity provided
773// by the capacity provider are transitioned to use the capacity from the remaining
774// capacity providers. Only capacity providers that are not associated with
775// a cluster can be deleted. To remove a capacity provider from a cluster, you
776// can either use PutClusterCapacityProviders or delete the cluster.
777//
778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
779// with awserr.Error's Code and Message methods to get detailed information about
780// the error.
781//
782// See the AWS API reference guide for Amazon EC2 Container Service's
783// API operation DeleteCapacityProvider for usage and error information.
784//
785// Returned Error Types:
786//   * ServerException
787//   These errors are usually caused by a server issue.
788//
789//   * ClientException
790//   These errors are usually caused by a client action, such as using an action
791//   or resource on behalf of a user that doesn't have permissions to use the
792//   action or resource, or specifying an identifier that is not valid.
793//
794//   * InvalidParameterException
795//   The specified parameter is invalid. Review the available parameters for the
796//   API request.
797//
798// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProvider
799func (c *ECS) DeleteCapacityProvider(input *DeleteCapacityProviderInput) (*DeleteCapacityProviderOutput, error) {
800	req, out := c.DeleteCapacityProviderRequest(input)
801	return out, req.Send()
802}
803
804// DeleteCapacityProviderWithContext is the same as DeleteCapacityProvider with the addition of
805// the ability to pass a context and additional request options.
806//
807// See DeleteCapacityProvider for details on how to use this API operation.
808//
809// The context must be non-nil and will be used for request cancellation. If
810// the context is nil a panic will occur. In the future the SDK may create
811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
812// for more information on using Contexts.
813func (c *ECS) DeleteCapacityProviderWithContext(ctx aws.Context, input *DeleteCapacityProviderInput, opts ...request.Option) (*DeleteCapacityProviderOutput, error) {
814	req, out := c.DeleteCapacityProviderRequest(input)
815	req.SetContext(ctx)
816	req.ApplyOptions(opts...)
817	return out, req.Send()
818}
819
820const opDeleteCluster = "DeleteCluster"
821
822// DeleteClusterRequest generates a "aws/request.Request" representing the
823// client's request for the DeleteCluster operation. The "output" return
824// value will be populated with the request's response once the request completes
825// successfully.
826//
827// Use "Send" method on the returned Request to send the API call to the service.
828// the "output" return value is not valid until after Send returns without error.
829//
830// See DeleteCluster for more information on using the DeleteCluster
831// API call, and error handling.
832//
833// This method is useful when you want to inject custom logic or configuration
834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
835//
836//
837//    // Example sending a request using the DeleteClusterRequest method.
838//    req, resp := client.DeleteClusterRequest(params)
839//
840//    err := req.Send()
841//    if err == nil { // resp is now filled
842//        fmt.Println(resp)
843//    }
844//
845// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
846func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
847	op := &request.Operation{
848		Name:       opDeleteCluster,
849		HTTPMethod: "POST",
850		HTTPPath:   "/",
851	}
852
853	if input == nil {
854		input = &DeleteClusterInput{}
855	}
856
857	output = &DeleteClusterOutput{}
858	req = c.newRequest(op, input, output)
859	return
860}
861
862// DeleteCluster API operation for Amazon EC2 Container Service.
863//
864// Deletes the specified cluster. The cluster will transition to the INACTIVE
865// state. Clusters with an INACTIVE status may remain discoverable in your account
866// for a period of time. However, this behavior is subject to change in the
867// future, so you should not rely on INACTIVE clusters persisting.
868//
869// You must deregister all container instances from this cluster before you
870// may delete it. You can list the container instances in a cluster with ListContainerInstances
871// and deregister them with DeregisterContainerInstance.
872//
873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
874// with awserr.Error's Code and Message methods to get detailed information about
875// the error.
876//
877// See the AWS API reference guide for Amazon EC2 Container Service's
878// API operation DeleteCluster for usage and error information.
879//
880// Returned Error Types:
881//   * ServerException
882//   These errors are usually caused by a server issue.
883//
884//   * ClientException
885//   These errors are usually caused by a client action, such as using an action
886//   or resource on behalf of a user that doesn't have permissions to use the
887//   action or resource, or specifying an identifier that is not valid.
888//
889//   * InvalidParameterException
890//   The specified parameter is invalid. Review the available parameters for the
891//   API request.
892//
893//   * ClusterNotFoundException
894//   The specified cluster could not be found. You can view your available clusters
895//   with ListClusters. Amazon ECS clusters are Region-specific.
896//
897//   * ClusterContainsContainerInstancesException
898//   You cannot delete a cluster that has registered container instances. First,
899//   deregister the container instances before you can delete the cluster. For
900//   more information, see DeregisterContainerInstance.
901//
902//   * ClusterContainsServicesException
903//   You cannot delete a cluster that contains services. First, update the service
904//   to reduce its desired task count to 0 and then delete the service. For more
905//   information, see UpdateService and DeleteService.
906//
907//   * ClusterContainsTasksException
908//   You cannot delete a cluster that has active tasks.
909//
910//   * UpdateInProgressException
911//   There is already a current Amazon ECS container agent update in progress
912//   on the specified container instance. If the container agent becomes disconnected
913//   while it is in a transitional stage, such as PENDING or STAGING, the update
914//   process can get stuck in that state. However, when the agent reconnects,
915//   it resumes where it stopped previously.
916//
917// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
918func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
919	req, out := c.DeleteClusterRequest(input)
920	return out, req.Send()
921}
922
923// DeleteClusterWithContext is the same as DeleteCluster with the addition of
924// the ability to pass a context and additional request options.
925//
926// See DeleteCluster for details on how to use this API operation.
927//
928// The context must be non-nil and will be used for request cancellation. If
929// the context is nil a panic will occur. In the future the SDK may create
930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
931// for more information on using Contexts.
932func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
933	req, out := c.DeleteClusterRequest(input)
934	req.SetContext(ctx)
935	req.ApplyOptions(opts...)
936	return out, req.Send()
937}
938
939const opDeleteService = "DeleteService"
940
941// DeleteServiceRequest generates a "aws/request.Request" representing the
942// client's request for the DeleteService operation. The "output" return
943// value will be populated with the request's response once the request completes
944// successfully.
945//
946// Use "Send" method on the returned Request to send the API call to the service.
947// the "output" return value is not valid until after Send returns without error.
948//
949// See DeleteService for more information on using the DeleteService
950// API call, and error handling.
951//
952// This method is useful when you want to inject custom logic or configuration
953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
954//
955//
956//    // Example sending a request using the DeleteServiceRequest method.
957//    req, resp := client.DeleteServiceRequest(params)
958//
959//    err := req.Send()
960//    if err == nil { // resp is now filled
961//        fmt.Println(resp)
962//    }
963//
964// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
965func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
966	op := &request.Operation{
967		Name:       opDeleteService,
968		HTTPMethod: "POST",
969		HTTPPath:   "/",
970	}
971
972	if input == nil {
973		input = &DeleteServiceInput{}
974	}
975
976	output = &DeleteServiceOutput{}
977	req = c.newRequest(op, input, output)
978	return
979}
980
981// DeleteService API operation for Amazon EC2 Container Service.
982//
983// Deletes a specified service within a cluster. You can delete a service if
984// you have no running tasks in it and the desired task count is zero. If the
985// service is actively maintaining tasks, you cannot delete it, and you must
986// update the service to a desired task count of zero. For more information,
987// see UpdateService.
988//
989// When you delete a service, if there are still running tasks that require
990// cleanup, the service status moves from ACTIVE to DRAINING, and the service
991// is no longer visible in the console or in the ListServices API operation.
992// After all tasks have transitioned to either STOPPING or STOPPED status, the
993// service status moves from DRAINING to INACTIVE. Services in the DRAINING
994// or INACTIVE status can still be viewed with the DescribeServices API operation.
995// However, in the future, INACTIVE services may be cleaned up and purged from
996// Amazon ECS record keeping, and DescribeServices calls on those services return
997// a ServiceNotFoundException error.
998//
999// If you attempt to create a new service with the same name as an existing
1000// service in either ACTIVE or DRAINING status, you receive an error.
1001//
1002// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1003// with awserr.Error's Code and Message methods to get detailed information about
1004// the error.
1005//
1006// See the AWS API reference guide for Amazon EC2 Container Service's
1007// API operation DeleteService for usage and error information.
1008//
1009// Returned Error Types:
1010//   * ServerException
1011//   These errors are usually caused by a server issue.
1012//
1013//   * ClientException
1014//   These errors are usually caused by a client action, such as using an action
1015//   or resource on behalf of a user that doesn't have permissions to use the
1016//   action or resource, or specifying an identifier that is not valid.
1017//
1018//   * InvalidParameterException
1019//   The specified parameter is invalid. Review the available parameters for the
1020//   API request.
1021//
1022//   * ClusterNotFoundException
1023//   The specified cluster could not be found. You can view your available clusters
1024//   with ListClusters. Amazon ECS clusters are Region-specific.
1025//
1026//   * ServiceNotFoundException
1027//   The specified service could not be found. You can view your available services
1028//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1029//
1030// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
1031func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
1032	req, out := c.DeleteServiceRequest(input)
1033	return out, req.Send()
1034}
1035
1036// DeleteServiceWithContext is the same as DeleteService with the addition of
1037// the ability to pass a context and additional request options.
1038//
1039// See DeleteService for details on how to use this API operation.
1040//
1041// The context must be non-nil and will be used for request cancellation. If
1042// the context is nil a panic will occur. In the future the SDK may create
1043// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1044// for more information on using Contexts.
1045func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
1046	req, out := c.DeleteServiceRequest(input)
1047	req.SetContext(ctx)
1048	req.ApplyOptions(opts...)
1049	return out, req.Send()
1050}
1051
1052const opDeleteTaskSet = "DeleteTaskSet"
1053
1054// DeleteTaskSetRequest generates a "aws/request.Request" representing the
1055// client's request for the DeleteTaskSet operation. The "output" return
1056// value will be populated with the request's response once the request completes
1057// successfully.
1058//
1059// Use "Send" method on the returned Request to send the API call to the service.
1060// the "output" return value is not valid until after Send returns without error.
1061//
1062// See DeleteTaskSet for more information on using the DeleteTaskSet
1063// API call, and error handling.
1064//
1065// This method is useful when you want to inject custom logic or configuration
1066// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1067//
1068//
1069//    // Example sending a request using the DeleteTaskSetRequest method.
1070//    req, resp := client.DeleteTaskSetRequest(params)
1071//
1072//    err := req.Send()
1073//    if err == nil { // resp is now filled
1074//        fmt.Println(resp)
1075//    }
1076//
1077// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
1078func (c *ECS) DeleteTaskSetRequest(input *DeleteTaskSetInput) (req *request.Request, output *DeleteTaskSetOutput) {
1079	op := &request.Operation{
1080		Name:       opDeleteTaskSet,
1081		HTTPMethod: "POST",
1082		HTTPPath:   "/",
1083	}
1084
1085	if input == nil {
1086		input = &DeleteTaskSetInput{}
1087	}
1088
1089	output = &DeleteTaskSetOutput{}
1090	req = c.newRequest(op, input, output)
1091	return
1092}
1093
1094// DeleteTaskSet API operation for Amazon EC2 Container Service.
1095//
1096// Deletes a specified task set within a service. This is used when a service
1097// uses the EXTERNAL deployment controller type. For more information, see Amazon
1098// ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1099// in the Amazon Elastic Container Service Developer Guide.
1100//
1101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1102// with awserr.Error's Code and Message methods to get detailed information about
1103// the error.
1104//
1105// See the AWS API reference guide for Amazon EC2 Container Service's
1106// API operation DeleteTaskSet for usage and error information.
1107//
1108// Returned Error Types:
1109//   * ServerException
1110//   These errors are usually caused by a server issue.
1111//
1112//   * ClientException
1113//   These errors are usually caused by a client action, such as using an action
1114//   or resource on behalf of a user that doesn't have permissions to use the
1115//   action or resource, or specifying an identifier that is not valid.
1116//
1117//   * InvalidParameterException
1118//   The specified parameter is invalid. Review the available parameters for the
1119//   API request.
1120//
1121//   * ClusterNotFoundException
1122//   The specified cluster could not be found. You can view your available clusters
1123//   with ListClusters. Amazon ECS clusters are Region-specific.
1124//
1125//   * UnsupportedFeatureException
1126//   The specified task is not supported in this Region.
1127//
1128//   * AccessDeniedException
1129//   You do not have authorization to perform the requested action.
1130//
1131//   * ServiceNotFoundException
1132//   The specified service could not be found. You can view your available services
1133//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1134//
1135//   * ServiceNotActiveException
1136//   The specified service is not active. You can't update a service that is inactive.
1137//   If you have previously deleted a service, you can re-create it with CreateService.
1138//
1139//   * TaskSetNotFoundException
1140//   The specified task set could not be found. You can view your available task
1141//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
1142//   and Region.
1143//
1144// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
1145func (c *ECS) DeleteTaskSet(input *DeleteTaskSetInput) (*DeleteTaskSetOutput, error) {
1146	req, out := c.DeleteTaskSetRequest(input)
1147	return out, req.Send()
1148}
1149
1150// DeleteTaskSetWithContext is the same as DeleteTaskSet with the addition of
1151// the ability to pass a context and additional request options.
1152//
1153// See DeleteTaskSet for details on how to use this API operation.
1154//
1155// The context must be non-nil and will be used for request cancellation. If
1156// the context is nil a panic will occur. In the future the SDK may create
1157// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1158// for more information on using Contexts.
1159func (c *ECS) DeleteTaskSetWithContext(ctx aws.Context, input *DeleteTaskSetInput, opts ...request.Option) (*DeleteTaskSetOutput, error) {
1160	req, out := c.DeleteTaskSetRequest(input)
1161	req.SetContext(ctx)
1162	req.ApplyOptions(opts...)
1163	return out, req.Send()
1164}
1165
1166const opDeregisterContainerInstance = "DeregisterContainerInstance"
1167
1168// DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
1169// client's request for the DeregisterContainerInstance operation. The "output" return
1170// value will be populated with the request's response once the request completes
1171// successfully.
1172//
1173// Use "Send" method on the returned Request to send the API call to the service.
1174// the "output" return value is not valid until after Send returns without error.
1175//
1176// See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
1177// API call, and error handling.
1178//
1179// This method is useful when you want to inject custom logic or configuration
1180// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1181//
1182//
1183//    // Example sending a request using the DeregisterContainerInstanceRequest method.
1184//    req, resp := client.DeregisterContainerInstanceRequest(params)
1185//
1186//    err := req.Send()
1187//    if err == nil { // resp is now filled
1188//        fmt.Println(resp)
1189//    }
1190//
1191// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1192func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
1193	op := &request.Operation{
1194		Name:       opDeregisterContainerInstance,
1195		HTTPMethod: "POST",
1196		HTTPPath:   "/",
1197	}
1198
1199	if input == nil {
1200		input = &DeregisterContainerInstanceInput{}
1201	}
1202
1203	output = &DeregisterContainerInstanceOutput{}
1204	req = c.newRequest(op, input, output)
1205	return
1206}
1207
1208// DeregisterContainerInstance API operation for Amazon EC2 Container Service.
1209//
1210// Deregisters an Amazon ECS container instance from the specified cluster.
1211// This instance is no longer available to run tasks.
1212//
1213// If you intend to use the container instance for some other purpose after
1214// deregistration, you should stop all of the tasks running on the container
1215// instance before deregistration. That prevents any orphaned tasks from consuming
1216// resources.
1217//
1218// Deregistering a container instance removes the instance from a cluster, but
1219// it does not terminate the EC2 instance. If you are finished using the instance,
1220// be sure to terminate it in the Amazon EC2 console to stop billing.
1221//
1222// If you terminate a running container instance, Amazon ECS automatically deregisters
1223// the instance from your cluster (stopped container instances or instances
1224// with disconnected agents are not automatically deregistered when terminated).
1225//
1226// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1227// with awserr.Error's Code and Message methods to get detailed information about
1228// the error.
1229//
1230// See the AWS API reference guide for Amazon EC2 Container Service's
1231// API operation DeregisterContainerInstance for usage and error information.
1232//
1233// Returned Error Types:
1234//   * ServerException
1235//   These errors are usually caused by a server issue.
1236//
1237//   * ClientException
1238//   These errors are usually caused by a client action, such as using an action
1239//   or resource on behalf of a user that doesn't have permissions to use the
1240//   action or resource, or specifying an identifier that is not valid.
1241//
1242//   * InvalidParameterException
1243//   The specified parameter is invalid. Review the available parameters for the
1244//   API request.
1245//
1246//   * ClusterNotFoundException
1247//   The specified cluster could not be found. You can view your available clusters
1248//   with ListClusters. Amazon ECS clusters are Region-specific.
1249//
1250// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1251func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
1252	req, out := c.DeregisterContainerInstanceRequest(input)
1253	return out, req.Send()
1254}
1255
1256// DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
1257// the ability to pass a context and additional request options.
1258//
1259// See DeregisterContainerInstance for details on how to use this API operation.
1260//
1261// The context must be non-nil and will be used for request cancellation. If
1262// the context is nil a panic will occur. In the future the SDK may create
1263// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1264// for more information on using Contexts.
1265func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
1266	req, out := c.DeregisterContainerInstanceRequest(input)
1267	req.SetContext(ctx)
1268	req.ApplyOptions(opts...)
1269	return out, req.Send()
1270}
1271
1272const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
1273
1274// DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
1275// client's request for the DeregisterTaskDefinition operation. The "output" return
1276// value will be populated with the request's response once the request completes
1277// successfully.
1278//
1279// Use "Send" method on the returned Request to send the API call to the service.
1280// the "output" return value is not valid until after Send returns without error.
1281//
1282// See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
1283// API call, and error handling.
1284//
1285// This method is useful when you want to inject custom logic or configuration
1286// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1287//
1288//
1289//    // Example sending a request using the DeregisterTaskDefinitionRequest method.
1290//    req, resp := client.DeregisterTaskDefinitionRequest(params)
1291//
1292//    err := req.Send()
1293//    if err == nil { // resp is now filled
1294//        fmt.Println(resp)
1295//    }
1296//
1297// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1298func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
1299	op := &request.Operation{
1300		Name:       opDeregisterTaskDefinition,
1301		HTTPMethod: "POST",
1302		HTTPPath:   "/",
1303	}
1304
1305	if input == nil {
1306		input = &DeregisterTaskDefinitionInput{}
1307	}
1308
1309	output = &DeregisterTaskDefinitionOutput{}
1310	req = c.newRequest(op, input, output)
1311	return
1312}
1313
1314// DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
1315//
1316// Deregisters the specified task definition by family and revision. Upon deregistration,
1317// the task definition is marked as INACTIVE. Existing tasks and services that
1318// reference an INACTIVE task definition continue to run without disruption.
1319// Existing services that reference an INACTIVE task definition can still scale
1320// up or down by modifying the service's desired count.
1321//
1322// You cannot use an INACTIVE task definition to run new tasks or create new
1323// services, and you cannot update an existing service to reference an INACTIVE
1324// task definition. However, there may be up to a 10-minute window following
1325// deregistration where these restrictions have not yet taken effect.
1326//
1327// At this time, INACTIVE task definitions remain discoverable in your account
1328// indefinitely. However, this behavior is subject to change in the future,
1329// so you should not rely on INACTIVE task definitions persisting beyond the
1330// lifecycle of any associated tasks and services.
1331//
1332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1333// with awserr.Error's Code and Message methods to get detailed information about
1334// the error.
1335//
1336// See the AWS API reference guide for Amazon EC2 Container Service's
1337// API operation DeregisterTaskDefinition for usage and error information.
1338//
1339// Returned Error Types:
1340//   * ServerException
1341//   These errors are usually caused by a server issue.
1342//
1343//   * ClientException
1344//   These errors are usually caused by a client action, such as using an action
1345//   or resource on behalf of a user that doesn't have permissions to use the
1346//   action or resource, or specifying an identifier that is not valid.
1347//
1348//   * InvalidParameterException
1349//   The specified parameter is invalid. Review the available parameters for the
1350//   API request.
1351//
1352// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1353func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
1354	req, out := c.DeregisterTaskDefinitionRequest(input)
1355	return out, req.Send()
1356}
1357
1358// DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
1359// the ability to pass a context and additional request options.
1360//
1361// See DeregisterTaskDefinition for details on how to use this API operation.
1362//
1363// The context must be non-nil and will be used for request cancellation. If
1364// the context is nil a panic will occur. In the future the SDK may create
1365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1366// for more information on using Contexts.
1367func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
1368	req, out := c.DeregisterTaskDefinitionRequest(input)
1369	req.SetContext(ctx)
1370	req.ApplyOptions(opts...)
1371	return out, req.Send()
1372}
1373
1374const opDescribeCapacityProviders = "DescribeCapacityProviders"
1375
1376// DescribeCapacityProvidersRequest generates a "aws/request.Request" representing the
1377// client's request for the DescribeCapacityProviders operation. The "output" return
1378// value will be populated with the request's response once the request completes
1379// successfully.
1380//
1381// Use "Send" method on the returned Request to send the API call to the service.
1382// the "output" return value is not valid until after Send returns without error.
1383//
1384// See DescribeCapacityProviders for more information on using the DescribeCapacityProviders
1385// API call, and error handling.
1386//
1387// This method is useful when you want to inject custom logic or configuration
1388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1389//
1390//
1391//    // Example sending a request using the DescribeCapacityProvidersRequest method.
1392//    req, resp := client.DescribeCapacityProvidersRequest(params)
1393//
1394//    err := req.Send()
1395//    if err == nil { // resp is now filled
1396//        fmt.Println(resp)
1397//    }
1398//
1399// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1400func (c *ECS) DescribeCapacityProvidersRequest(input *DescribeCapacityProvidersInput) (req *request.Request, output *DescribeCapacityProvidersOutput) {
1401	op := &request.Operation{
1402		Name:       opDescribeCapacityProviders,
1403		HTTPMethod: "POST",
1404		HTTPPath:   "/",
1405	}
1406
1407	if input == nil {
1408		input = &DescribeCapacityProvidersInput{}
1409	}
1410
1411	output = &DescribeCapacityProvidersOutput{}
1412	req = c.newRequest(op, input, output)
1413	return
1414}
1415
1416// DescribeCapacityProviders API operation for Amazon EC2 Container Service.
1417//
1418// Describes one or more of your capacity providers.
1419//
1420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1421// with awserr.Error's Code and Message methods to get detailed information about
1422// the error.
1423//
1424// See the AWS API reference guide for Amazon EC2 Container Service's
1425// API operation DescribeCapacityProviders for usage and error information.
1426//
1427// Returned Error Types:
1428//   * ServerException
1429//   These errors are usually caused by a server issue.
1430//
1431//   * ClientException
1432//   These errors are usually caused by a client action, such as using an action
1433//   or resource on behalf of a user that doesn't have permissions to use the
1434//   action or resource, or specifying an identifier that is not valid.
1435//
1436//   * InvalidParameterException
1437//   The specified parameter is invalid. Review the available parameters for the
1438//   API request.
1439//
1440// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1441func (c *ECS) DescribeCapacityProviders(input *DescribeCapacityProvidersInput) (*DescribeCapacityProvidersOutput, error) {
1442	req, out := c.DescribeCapacityProvidersRequest(input)
1443	return out, req.Send()
1444}
1445
1446// DescribeCapacityProvidersWithContext is the same as DescribeCapacityProviders with the addition of
1447// the ability to pass a context and additional request options.
1448//
1449// See DescribeCapacityProviders for details on how to use this API operation.
1450//
1451// The context must be non-nil and will be used for request cancellation. If
1452// the context is nil a panic will occur. In the future the SDK may create
1453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1454// for more information on using Contexts.
1455func (c *ECS) DescribeCapacityProvidersWithContext(ctx aws.Context, input *DescribeCapacityProvidersInput, opts ...request.Option) (*DescribeCapacityProvidersOutput, error) {
1456	req, out := c.DescribeCapacityProvidersRequest(input)
1457	req.SetContext(ctx)
1458	req.ApplyOptions(opts...)
1459	return out, req.Send()
1460}
1461
1462const opDescribeClusters = "DescribeClusters"
1463
1464// DescribeClustersRequest generates a "aws/request.Request" representing the
1465// client's request for the DescribeClusters operation. The "output" return
1466// value will be populated with the request's response once the request completes
1467// successfully.
1468//
1469// Use "Send" method on the returned Request to send the API call to the service.
1470// the "output" return value is not valid until after Send returns without error.
1471//
1472// See DescribeClusters for more information on using the DescribeClusters
1473// API call, and error handling.
1474//
1475// This method is useful when you want to inject custom logic or configuration
1476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1477//
1478//
1479//    // Example sending a request using the DescribeClustersRequest method.
1480//    req, resp := client.DescribeClustersRequest(params)
1481//
1482//    err := req.Send()
1483//    if err == nil { // resp is now filled
1484//        fmt.Println(resp)
1485//    }
1486//
1487// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1488func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
1489	op := &request.Operation{
1490		Name:       opDescribeClusters,
1491		HTTPMethod: "POST",
1492		HTTPPath:   "/",
1493	}
1494
1495	if input == nil {
1496		input = &DescribeClustersInput{}
1497	}
1498
1499	output = &DescribeClustersOutput{}
1500	req = c.newRequest(op, input, output)
1501	return
1502}
1503
1504// DescribeClusters API operation for Amazon EC2 Container Service.
1505//
1506// Describes one or more of your clusters.
1507//
1508// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1509// with awserr.Error's Code and Message methods to get detailed information about
1510// the error.
1511//
1512// See the AWS API reference guide for Amazon EC2 Container Service's
1513// API operation DescribeClusters for usage and error information.
1514//
1515// Returned Error Types:
1516//   * ServerException
1517//   These errors are usually caused by a server issue.
1518//
1519//   * ClientException
1520//   These errors are usually caused by a client action, such as using an action
1521//   or resource on behalf of a user that doesn't have permissions to use the
1522//   action or resource, or specifying an identifier that is not valid.
1523//
1524//   * InvalidParameterException
1525//   The specified parameter is invalid. Review the available parameters for the
1526//   API request.
1527//
1528// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1529func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
1530	req, out := c.DescribeClustersRequest(input)
1531	return out, req.Send()
1532}
1533
1534// DescribeClustersWithContext is the same as DescribeClusters with the addition of
1535// the ability to pass a context and additional request options.
1536//
1537// See DescribeClusters for details on how to use this API operation.
1538//
1539// The context must be non-nil and will be used for request cancellation. If
1540// the context is nil a panic will occur. In the future the SDK may create
1541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1542// for more information on using Contexts.
1543func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
1544	req, out := c.DescribeClustersRequest(input)
1545	req.SetContext(ctx)
1546	req.ApplyOptions(opts...)
1547	return out, req.Send()
1548}
1549
1550const opDescribeContainerInstances = "DescribeContainerInstances"
1551
1552// DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
1553// client's request for the DescribeContainerInstances operation. The "output" return
1554// value will be populated with the request's response once the request completes
1555// successfully.
1556//
1557// Use "Send" method on the returned Request to send the API call to the service.
1558// the "output" return value is not valid until after Send returns without error.
1559//
1560// See DescribeContainerInstances for more information on using the DescribeContainerInstances
1561// API call, and error handling.
1562//
1563// This method is useful when you want to inject custom logic or configuration
1564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1565//
1566//
1567//    // Example sending a request using the DescribeContainerInstancesRequest method.
1568//    req, resp := client.DescribeContainerInstancesRequest(params)
1569//
1570//    err := req.Send()
1571//    if err == nil { // resp is now filled
1572//        fmt.Println(resp)
1573//    }
1574//
1575// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1576func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
1577	op := &request.Operation{
1578		Name:       opDescribeContainerInstances,
1579		HTTPMethod: "POST",
1580		HTTPPath:   "/",
1581	}
1582
1583	if input == nil {
1584		input = &DescribeContainerInstancesInput{}
1585	}
1586
1587	output = &DescribeContainerInstancesOutput{}
1588	req = c.newRequest(op, input, output)
1589	return
1590}
1591
1592// DescribeContainerInstances API operation for Amazon EC2 Container Service.
1593//
1594// Describes one or more container instances. Returns metadata about each container
1595// instance requested.
1596//
1597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1598// with awserr.Error's Code and Message methods to get detailed information about
1599// the error.
1600//
1601// See the AWS API reference guide for Amazon EC2 Container Service's
1602// API operation DescribeContainerInstances for usage and error information.
1603//
1604// Returned Error Types:
1605//   * ServerException
1606//   These errors are usually caused by a server issue.
1607//
1608//   * ClientException
1609//   These errors are usually caused by a client action, such as using an action
1610//   or resource on behalf of a user that doesn't have permissions to use the
1611//   action or resource, or specifying an identifier that is not valid.
1612//
1613//   * InvalidParameterException
1614//   The specified parameter is invalid. Review the available parameters for the
1615//   API request.
1616//
1617//   * ClusterNotFoundException
1618//   The specified cluster could not be found. You can view your available clusters
1619//   with ListClusters. Amazon ECS clusters are Region-specific.
1620//
1621// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1622func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
1623	req, out := c.DescribeContainerInstancesRequest(input)
1624	return out, req.Send()
1625}
1626
1627// DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
1628// the ability to pass a context and additional request options.
1629//
1630// See DescribeContainerInstances for details on how to use this API operation.
1631//
1632// The context must be non-nil and will be used for request cancellation. If
1633// the context is nil a panic will occur. In the future the SDK may create
1634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1635// for more information on using Contexts.
1636func (c *ECS) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
1637	req, out := c.DescribeContainerInstancesRequest(input)
1638	req.SetContext(ctx)
1639	req.ApplyOptions(opts...)
1640	return out, req.Send()
1641}
1642
1643const opDescribeServices = "DescribeServices"
1644
1645// DescribeServicesRequest generates a "aws/request.Request" representing the
1646// client's request for the DescribeServices operation. The "output" return
1647// value will be populated with the request's response once the request completes
1648// successfully.
1649//
1650// Use "Send" method on the returned Request to send the API call to the service.
1651// the "output" return value is not valid until after Send returns without error.
1652//
1653// See DescribeServices for more information on using the DescribeServices
1654// API call, and error handling.
1655//
1656// This method is useful when you want to inject custom logic or configuration
1657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1658//
1659//
1660//    // Example sending a request using the DescribeServicesRequest method.
1661//    req, resp := client.DescribeServicesRequest(params)
1662//
1663//    err := req.Send()
1664//    if err == nil { // resp is now filled
1665//        fmt.Println(resp)
1666//    }
1667//
1668// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1669func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
1670	op := &request.Operation{
1671		Name:       opDescribeServices,
1672		HTTPMethod: "POST",
1673		HTTPPath:   "/",
1674	}
1675
1676	if input == nil {
1677		input = &DescribeServicesInput{}
1678	}
1679
1680	output = &DescribeServicesOutput{}
1681	req = c.newRequest(op, input, output)
1682	return
1683}
1684
1685// DescribeServices API operation for Amazon EC2 Container Service.
1686//
1687// Describes the specified services running in your cluster.
1688//
1689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1690// with awserr.Error's Code and Message methods to get detailed information about
1691// the error.
1692//
1693// See the AWS API reference guide for Amazon EC2 Container Service's
1694// API operation DescribeServices for usage and error information.
1695//
1696// Returned Error Types:
1697//   * ServerException
1698//   These errors are usually caused by a server issue.
1699//
1700//   * ClientException
1701//   These errors are usually caused by a client action, such as using an action
1702//   or resource on behalf of a user that doesn't have permissions to use the
1703//   action or resource, or specifying an identifier that is not valid.
1704//
1705//   * InvalidParameterException
1706//   The specified parameter is invalid. Review the available parameters for the
1707//   API request.
1708//
1709//   * ClusterNotFoundException
1710//   The specified cluster could not be found. You can view your available clusters
1711//   with ListClusters. Amazon ECS clusters are Region-specific.
1712//
1713// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1714func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
1715	req, out := c.DescribeServicesRequest(input)
1716	return out, req.Send()
1717}
1718
1719// DescribeServicesWithContext is the same as DescribeServices with the addition of
1720// the ability to pass a context and additional request options.
1721//
1722// See DescribeServices for details on how to use this API operation.
1723//
1724// The context must be non-nil and will be used for request cancellation. If
1725// the context is nil a panic will occur. In the future the SDK may create
1726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1727// for more information on using Contexts.
1728func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
1729	req, out := c.DescribeServicesRequest(input)
1730	req.SetContext(ctx)
1731	req.ApplyOptions(opts...)
1732	return out, req.Send()
1733}
1734
1735const opDescribeTaskDefinition = "DescribeTaskDefinition"
1736
1737// DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
1738// client's request for the DescribeTaskDefinition operation. The "output" return
1739// value will be populated with the request's response once the request completes
1740// successfully.
1741//
1742// Use "Send" method on the returned Request to send the API call to the service.
1743// the "output" return value is not valid until after Send returns without error.
1744//
1745// See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
1746// API call, and error handling.
1747//
1748// This method is useful when you want to inject custom logic or configuration
1749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1750//
1751//
1752//    // Example sending a request using the DescribeTaskDefinitionRequest method.
1753//    req, resp := client.DescribeTaskDefinitionRequest(params)
1754//
1755//    err := req.Send()
1756//    if err == nil { // resp is now filled
1757//        fmt.Println(resp)
1758//    }
1759//
1760// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1761func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
1762	op := &request.Operation{
1763		Name:       opDescribeTaskDefinition,
1764		HTTPMethod: "POST",
1765		HTTPPath:   "/",
1766	}
1767
1768	if input == nil {
1769		input = &DescribeTaskDefinitionInput{}
1770	}
1771
1772	output = &DescribeTaskDefinitionOutput{}
1773	req = c.newRequest(op, input, output)
1774	return
1775}
1776
1777// DescribeTaskDefinition API operation for Amazon EC2 Container Service.
1778//
1779// Describes a task definition. You can specify a family and revision to find
1780// information about a specific task definition, or you can simply specify the
1781// family to find the latest ACTIVE revision in that family.
1782//
1783// You can only describe INACTIVE task definitions while an active task or service
1784// references them.
1785//
1786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1787// with awserr.Error's Code and Message methods to get detailed information about
1788// the error.
1789//
1790// See the AWS API reference guide for Amazon EC2 Container Service's
1791// API operation DescribeTaskDefinition for usage and error information.
1792//
1793// Returned Error Types:
1794//   * ServerException
1795//   These errors are usually caused by a server issue.
1796//
1797//   * ClientException
1798//   These errors are usually caused by a client action, such as using an action
1799//   or resource on behalf of a user that doesn't have permissions to use the
1800//   action or resource, or specifying an identifier that is not valid.
1801//
1802//   * InvalidParameterException
1803//   The specified parameter is invalid. Review the available parameters for the
1804//   API request.
1805//
1806// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1807func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
1808	req, out := c.DescribeTaskDefinitionRequest(input)
1809	return out, req.Send()
1810}
1811
1812// DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
1813// the ability to pass a context and additional request options.
1814//
1815// See DescribeTaskDefinition for details on how to use this API operation.
1816//
1817// The context must be non-nil and will be used for request cancellation. If
1818// the context is nil a panic will occur. In the future the SDK may create
1819// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1820// for more information on using Contexts.
1821func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
1822	req, out := c.DescribeTaskDefinitionRequest(input)
1823	req.SetContext(ctx)
1824	req.ApplyOptions(opts...)
1825	return out, req.Send()
1826}
1827
1828const opDescribeTaskSets = "DescribeTaskSets"
1829
1830// DescribeTaskSetsRequest generates a "aws/request.Request" representing the
1831// client's request for the DescribeTaskSets operation. The "output" return
1832// value will be populated with the request's response once the request completes
1833// successfully.
1834//
1835// Use "Send" method on the returned Request to send the API call to the service.
1836// the "output" return value is not valid until after Send returns without error.
1837//
1838// See DescribeTaskSets for more information on using the DescribeTaskSets
1839// API call, and error handling.
1840//
1841// This method is useful when you want to inject custom logic or configuration
1842// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1843//
1844//
1845//    // Example sending a request using the DescribeTaskSetsRequest method.
1846//    req, resp := client.DescribeTaskSetsRequest(params)
1847//
1848//    err := req.Send()
1849//    if err == nil { // resp is now filled
1850//        fmt.Println(resp)
1851//    }
1852//
1853// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1854func (c *ECS) DescribeTaskSetsRequest(input *DescribeTaskSetsInput) (req *request.Request, output *DescribeTaskSetsOutput) {
1855	op := &request.Operation{
1856		Name:       opDescribeTaskSets,
1857		HTTPMethod: "POST",
1858		HTTPPath:   "/",
1859	}
1860
1861	if input == nil {
1862		input = &DescribeTaskSetsInput{}
1863	}
1864
1865	output = &DescribeTaskSetsOutput{}
1866	req = c.newRequest(op, input, output)
1867	return
1868}
1869
1870// DescribeTaskSets API operation for Amazon EC2 Container Service.
1871//
1872// Describes the task sets in the specified cluster and service. This is used
1873// when a service uses the EXTERNAL deployment controller type. For more information,
1874// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1875// in the Amazon Elastic Container Service Developer Guide.
1876//
1877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1878// with awserr.Error's Code and Message methods to get detailed information about
1879// the error.
1880//
1881// See the AWS API reference guide for Amazon EC2 Container Service's
1882// API operation DescribeTaskSets for usage and error information.
1883//
1884// Returned Error Types:
1885//   * ServerException
1886//   These errors are usually caused by a server issue.
1887//
1888//   * ClientException
1889//   These errors are usually caused by a client action, such as using an action
1890//   or resource on behalf of a user that doesn't have permissions to use the
1891//   action or resource, or specifying an identifier that is not valid.
1892//
1893//   * InvalidParameterException
1894//   The specified parameter is invalid. Review the available parameters for the
1895//   API request.
1896//
1897//   * ClusterNotFoundException
1898//   The specified cluster could not be found. You can view your available clusters
1899//   with ListClusters. Amazon ECS clusters are Region-specific.
1900//
1901//   * UnsupportedFeatureException
1902//   The specified task is not supported in this Region.
1903//
1904//   * AccessDeniedException
1905//   You do not have authorization to perform the requested action.
1906//
1907//   * ServiceNotFoundException
1908//   The specified service could not be found. You can view your available services
1909//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1910//
1911//   * ServiceNotActiveException
1912//   The specified service is not active. You can't update a service that is inactive.
1913//   If you have previously deleted a service, you can re-create it with CreateService.
1914//
1915// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1916func (c *ECS) DescribeTaskSets(input *DescribeTaskSetsInput) (*DescribeTaskSetsOutput, error) {
1917	req, out := c.DescribeTaskSetsRequest(input)
1918	return out, req.Send()
1919}
1920
1921// DescribeTaskSetsWithContext is the same as DescribeTaskSets with the addition of
1922// the ability to pass a context and additional request options.
1923//
1924// See DescribeTaskSets for details on how to use this API operation.
1925//
1926// The context must be non-nil and will be used for request cancellation. If
1927// the context is nil a panic will occur. In the future the SDK may create
1928// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1929// for more information on using Contexts.
1930func (c *ECS) DescribeTaskSetsWithContext(ctx aws.Context, input *DescribeTaskSetsInput, opts ...request.Option) (*DescribeTaskSetsOutput, error) {
1931	req, out := c.DescribeTaskSetsRequest(input)
1932	req.SetContext(ctx)
1933	req.ApplyOptions(opts...)
1934	return out, req.Send()
1935}
1936
1937const opDescribeTasks = "DescribeTasks"
1938
1939// DescribeTasksRequest generates a "aws/request.Request" representing the
1940// client's request for the DescribeTasks operation. The "output" return
1941// value will be populated with the request's response once the request completes
1942// successfully.
1943//
1944// Use "Send" method on the returned Request to send the API call to the service.
1945// the "output" return value is not valid until after Send returns without error.
1946//
1947// See DescribeTasks for more information on using the DescribeTasks
1948// API call, and error handling.
1949//
1950// This method is useful when you want to inject custom logic or configuration
1951// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1952//
1953//
1954//    // Example sending a request using the DescribeTasksRequest method.
1955//    req, resp := client.DescribeTasksRequest(params)
1956//
1957//    err := req.Send()
1958//    if err == nil { // resp is now filled
1959//        fmt.Println(resp)
1960//    }
1961//
1962// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1963func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
1964	op := &request.Operation{
1965		Name:       opDescribeTasks,
1966		HTTPMethod: "POST",
1967		HTTPPath:   "/",
1968	}
1969
1970	if input == nil {
1971		input = &DescribeTasksInput{}
1972	}
1973
1974	output = &DescribeTasksOutput{}
1975	req = c.newRequest(op, input, output)
1976	return
1977}
1978
1979// DescribeTasks API operation for Amazon EC2 Container Service.
1980//
1981// Describes a specified task or tasks.
1982//
1983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1984// with awserr.Error's Code and Message methods to get detailed information about
1985// the error.
1986//
1987// See the AWS API reference guide for Amazon EC2 Container Service's
1988// API operation DescribeTasks for usage and error information.
1989//
1990// Returned Error Types:
1991//   * ServerException
1992//   These errors are usually caused by a server issue.
1993//
1994//   * ClientException
1995//   These errors are usually caused by a client action, such as using an action
1996//   or resource on behalf of a user that doesn't have permissions to use the
1997//   action or resource, or specifying an identifier that is not valid.
1998//
1999//   * InvalidParameterException
2000//   The specified parameter is invalid. Review the available parameters for the
2001//   API request.
2002//
2003//   * ClusterNotFoundException
2004//   The specified cluster could not be found. You can view your available clusters
2005//   with ListClusters. Amazon ECS clusters are Region-specific.
2006//
2007// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
2008func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
2009	req, out := c.DescribeTasksRequest(input)
2010	return out, req.Send()
2011}
2012
2013// DescribeTasksWithContext is the same as DescribeTasks with the addition of
2014// the ability to pass a context and additional request options.
2015//
2016// See DescribeTasks for details on how to use this API operation.
2017//
2018// The context must be non-nil and will be used for request cancellation. If
2019// the context is nil a panic will occur. In the future the SDK may create
2020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2021// for more information on using Contexts.
2022func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
2023	req, out := c.DescribeTasksRequest(input)
2024	req.SetContext(ctx)
2025	req.ApplyOptions(opts...)
2026	return out, req.Send()
2027}
2028
2029const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
2030
2031// DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
2032// client's request for the DiscoverPollEndpoint operation. The "output" return
2033// value will be populated with the request's response once the request completes
2034// successfully.
2035//
2036// Use "Send" method on the returned Request to send the API call to the service.
2037// the "output" return value is not valid until after Send returns without error.
2038//
2039// See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
2040// API call, and error handling.
2041//
2042// This method is useful when you want to inject custom logic or configuration
2043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2044//
2045//
2046//    // Example sending a request using the DiscoverPollEndpointRequest method.
2047//    req, resp := client.DiscoverPollEndpointRequest(params)
2048//
2049//    err := req.Send()
2050//    if err == nil { // resp is now filled
2051//        fmt.Println(resp)
2052//    }
2053//
2054// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
2055func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
2056	op := &request.Operation{
2057		Name:       opDiscoverPollEndpoint,
2058		HTTPMethod: "POST",
2059		HTTPPath:   "/",
2060	}
2061
2062	if input == nil {
2063		input = &DiscoverPollEndpointInput{}
2064	}
2065
2066	output = &DiscoverPollEndpointOutput{}
2067	req = c.newRequest(op, input, output)
2068	return
2069}
2070
2071// DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
2072//
2073//
2074// This action is only used by the Amazon ECS agent, and it is not intended
2075// for use outside of the agent.
2076//
2077// Returns an endpoint for the Amazon ECS agent to poll for updates.
2078//
2079// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2080// with awserr.Error's Code and Message methods to get detailed information about
2081// the error.
2082//
2083// See the AWS API reference guide for Amazon EC2 Container Service's
2084// API operation DiscoverPollEndpoint for usage and error information.
2085//
2086// Returned Error Types:
2087//   * ServerException
2088//   These errors are usually caused by a server issue.
2089//
2090//   * ClientException
2091//   These errors are usually caused by a client action, such as using an action
2092//   or resource on behalf of a user that doesn't have permissions to use the
2093//   action or resource, or specifying an identifier that is not valid.
2094//
2095// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
2096func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
2097	req, out := c.DiscoverPollEndpointRequest(input)
2098	return out, req.Send()
2099}
2100
2101// DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
2102// the ability to pass a context and additional request options.
2103//
2104// See DiscoverPollEndpoint for details on how to use this API operation.
2105//
2106// The context must be non-nil and will be used for request cancellation. If
2107// the context is nil a panic will occur. In the future the SDK may create
2108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2109// for more information on using Contexts.
2110func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
2111	req, out := c.DiscoverPollEndpointRequest(input)
2112	req.SetContext(ctx)
2113	req.ApplyOptions(opts...)
2114	return out, req.Send()
2115}
2116
2117const opExecuteCommand = "ExecuteCommand"
2118
2119// ExecuteCommandRequest generates a "aws/request.Request" representing the
2120// client's request for the ExecuteCommand operation. The "output" return
2121// value will be populated with the request's response once the request completes
2122// successfully.
2123//
2124// Use "Send" method on the returned Request to send the API call to the service.
2125// the "output" return value is not valid until after Send returns without error.
2126//
2127// See ExecuteCommand for more information on using the ExecuteCommand
2128// API call, and error handling.
2129//
2130// This method is useful when you want to inject custom logic or configuration
2131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2132//
2133//
2134//    // Example sending a request using the ExecuteCommandRequest method.
2135//    req, resp := client.ExecuteCommandRequest(params)
2136//
2137//    err := req.Send()
2138//    if err == nil { // resp is now filled
2139//        fmt.Println(resp)
2140//    }
2141//
2142// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ExecuteCommand
2143func (c *ECS) ExecuteCommandRequest(input *ExecuteCommandInput) (req *request.Request, output *ExecuteCommandOutput) {
2144	op := &request.Operation{
2145		Name:       opExecuteCommand,
2146		HTTPMethod: "POST",
2147		HTTPPath:   "/",
2148	}
2149
2150	if input == nil {
2151		input = &ExecuteCommandInput{}
2152	}
2153
2154	output = &ExecuteCommandOutput{}
2155	req = c.newRequest(op, input, output)
2156	return
2157}
2158
2159// ExecuteCommand API operation for Amazon EC2 Container Service.
2160//
2161// Runs a command remotely on a container within a task.
2162//
2163// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2164// with awserr.Error's Code and Message methods to get detailed information about
2165// the error.
2166//
2167// See the AWS API reference guide for Amazon EC2 Container Service's
2168// API operation ExecuteCommand for usage and error information.
2169//
2170// Returned Error Types:
2171//   * ServerException
2172//   These errors are usually caused by a server issue.
2173//
2174//   * ClientException
2175//   These errors are usually caused by a client action, such as using an action
2176//   or resource on behalf of a user that doesn't have permissions to use the
2177//   action or resource, or specifying an identifier that is not valid.
2178//
2179//   * InvalidParameterException
2180//   The specified parameter is invalid. Review the available parameters for the
2181//   API request.
2182//
2183//   * AccessDeniedException
2184//   You do not have authorization to perform the requested action.
2185//
2186//   * ClusterNotFoundException
2187//   The specified cluster could not be found. You can view your available clusters
2188//   with ListClusters. Amazon ECS clusters are Region-specific.
2189//
2190//   * TargetNotConnectedException
2191//   The target container is not properly configured with the execute command
2192//   agent or the container is no longer active or running.
2193//
2194// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ExecuteCommand
2195func (c *ECS) ExecuteCommand(input *ExecuteCommandInput) (*ExecuteCommandOutput, error) {
2196	req, out := c.ExecuteCommandRequest(input)
2197	return out, req.Send()
2198}
2199
2200// ExecuteCommandWithContext is the same as ExecuteCommand with the addition of
2201// the ability to pass a context and additional request options.
2202//
2203// See ExecuteCommand for details on how to use this API operation.
2204//
2205// The context must be non-nil and will be used for request cancellation. If
2206// the context is nil a panic will occur. In the future the SDK may create
2207// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2208// for more information on using Contexts.
2209func (c *ECS) ExecuteCommandWithContext(ctx aws.Context, input *ExecuteCommandInput, opts ...request.Option) (*ExecuteCommandOutput, error) {
2210	req, out := c.ExecuteCommandRequest(input)
2211	req.SetContext(ctx)
2212	req.ApplyOptions(opts...)
2213	return out, req.Send()
2214}
2215
2216const opListAccountSettings = "ListAccountSettings"
2217
2218// ListAccountSettingsRequest generates a "aws/request.Request" representing the
2219// client's request for the ListAccountSettings operation. The "output" return
2220// value will be populated with the request's response once the request completes
2221// successfully.
2222//
2223// Use "Send" method on the returned Request to send the API call to the service.
2224// the "output" return value is not valid until after Send returns without error.
2225//
2226// See ListAccountSettings for more information on using the ListAccountSettings
2227// API call, and error handling.
2228//
2229// This method is useful when you want to inject custom logic or configuration
2230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2231//
2232//
2233//    // Example sending a request using the ListAccountSettingsRequest method.
2234//    req, resp := client.ListAccountSettingsRequest(params)
2235//
2236//    err := req.Send()
2237//    if err == nil { // resp is now filled
2238//        fmt.Println(resp)
2239//    }
2240//
2241// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2242func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
2243	op := &request.Operation{
2244		Name:       opListAccountSettings,
2245		HTTPMethod: "POST",
2246		HTTPPath:   "/",
2247		Paginator: &request.Paginator{
2248			InputTokens:     []string{"nextToken"},
2249			OutputTokens:    []string{"nextToken"},
2250			LimitToken:      "maxResults",
2251			TruncationToken: "",
2252		},
2253	}
2254
2255	if input == nil {
2256		input = &ListAccountSettingsInput{}
2257	}
2258
2259	output = &ListAccountSettingsOutput{}
2260	req = c.newRequest(op, input, output)
2261	return
2262}
2263
2264// ListAccountSettings API operation for Amazon EC2 Container Service.
2265//
2266// Lists the account settings for a specified principal.
2267//
2268// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2269// with awserr.Error's Code and Message methods to get detailed information about
2270// the error.
2271//
2272// See the AWS API reference guide for Amazon EC2 Container Service's
2273// API operation ListAccountSettings for usage and error information.
2274//
2275// Returned Error Types:
2276//   * ServerException
2277//   These errors are usually caused by a server issue.
2278//
2279//   * ClientException
2280//   These errors are usually caused by a client action, such as using an action
2281//   or resource on behalf of a user that doesn't have permissions to use the
2282//   action or resource, or specifying an identifier that is not valid.
2283//
2284//   * InvalidParameterException
2285//   The specified parameter is invalid. Review the available parameters for the
2286//   API request.
2287//
2288// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2289func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
2290	req, out := c.ListAccountSettingsRequest(input)
2291	return out, req.Send()
2292}
2293
2294// ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
2295// the ability to pass a context and additional request options.
2296//
2297// See ListAccountSettings for details on how to use this API operation.
2298//
2299// The context must be non-nil and will be used for request cancellation. If
2300// the context is nil a panic will occur. In the future the SDK may create
2301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2302// for more information on using Contexts.
2303func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
2304	req, out := c.ListAccountSettingsRequest(input)
2305	req.SetContext(ctx)
2306	req.ApplyOptions(opts...)
2307	return out, req.Send()
2308}
2309
2310// ListAccountSettingsPages iterates over the pages of a ListAccountSettings operation,
2311// calling the "fn" function with the response data for each page. To stop
2312// iterating, return false from the fn function.
2313//
2314// See ListAccountSettings method for more information on how to use this operation.
2315//
2316// Note: This operation can generate multiple requests to a service.
2317//
2318//    // Example iterating over at most 3 pages of a ListAccountSettings operation.
2319//    pageNum := 0
2320//    err := client.ListAccountSettingsPages(params,
2321//        func(page *ecs.ListAccountSettingsOutput, lastPage bool) bool {
2322//            pageNum++
2323//            fmt.Println(page)
2324//            return pageNum <= 3
2325//        })
2326//
2327func (c *ECS) ListAccountSettingsPages(input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool) error {
2328	return c.ListAccountSettingsPagesWithContext(aws.BackgroundContext(), input, fn)
2329}
2330
2331// ListAccountSettingsPagesWithContext same as ListAccountSettingsPages except
2332// it takes a Context and allows setting request options on the pages.
2333//
2334// The context must be non-nil and will be used for request cancellation. If
2335// the context is nil a panic will occur. In the future the SDK may create
2336// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2337// for more information on using Contexts.
2338func (c *ECS) ListAccountSettingsPagesWithContext(ctx aws.Context, input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool, opts ...request.Option) error {
2339	p := request.Pagination{
2340		NewRequest: func() (*request.Request, error) {
2341			var inCpy *ListAccountSettingsInput
2342			if input != nil {
2343				tmp := *input
2344				inCpy = &tmp
2345			}
2346			req, _ := c.ListAccountSettingsRequest(inCpy)
2347			req.SetContext(ctx)
2348			req.ApplyOptions(opts...)
2349			return req, nil
2350		},
2351	}
2352
2353	for p.Next() {
2354		if !fn(p.Page().(*ListAccountSettingsOutput), !p.HasNextPage()) {
2355			break
2356		}
2357	}
2358
2359	return p.Err()
2360}
2361
2362const opListAttributes = "ListAttributes"
2363
2364// ListAttributesRequest generates a "aws/request.Request" representing the
2365// client's request for the ListAttributes operation. The "output" return
2366// value will be populated with the request's response once the request completes
2367// successfully.
2368//
2369// Use "Send" method on the returned Request to send the API call to the service.
2370// the "output" return value is not valid until after Send returns without error.
2371//
2372// See ListAttributes for more information on using the ListAttributes
2373// API call, and error handling.
2374//
2375// This method is useful when you want to inject custom logic or configuration
2376// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2377//
2378//
2379//    // Example sending a request using the ListAttributesRequest method.
2380//    req, resp := client.ListAttributesRequest(params)
2381//
2382//    err := req.Send()
2383//    if err == nil { // resp is now filled
2384//        fmt.Println(resp)
2385//    }
2386//
2387// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2388func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
2389	op := &request.Operation{
2390		Name:       opListAttributes,
2391		HTTPMethod: "POST",
2392		HTTPPath:   "/",
2393		Paginator: &request.Paginator{
2394			InputTokens:     []string{"nextToken"},
2395			OutputTokens:    []string{"nextToken"},
2396			LimitToken:      "maxResults",
2397			TruncationToken: "",
2398		},
2399	}
2400
2401	if input == nil {
2402		input = &ListAttributesInput{}
2403	}
2404
2405	output = &ListAttributesOutput{}
2406	req = c.newRequest(op, input, output)
2407	return
2408}
2409
2410// ListAttributes API operation for Amazon EC2 Container Service.
2411//
2412// Lists the attributes for Amazon ECS resources within a specified target type
2413// and cluster. When you specify a target type and cluster, ListAttributes returns
2414// a list of attribute objects, one for each attribute on each resource. You
2415// can filter the list of results to a single attribute name to only return
2416// results that have that name. You can also filter the results by attribute
2417// name and value, for example, to see which container instances in a cluster
2418// are running a Linux AMI (ecs.os-type=linux).
2419//
2420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2421// with awserr.Error's Code and Message methods to get detailed information about
2422// the error.
2423//
2424// See the AWS API reference guide for Amazon EC2 Container Service's
2425// API operation ListAttributes for usage and error information.
2426//
2427// Returned Error Types:
2428//   * ClusterNotFoundException
2429//   The specified cluster could not be found. You can view your available clusters
2430//   with ListClusters. Amazon ECS clusters are Region-specific.
2431//
2432//   * InvalidParameterException
2433//   The specified parameter is invalid. Review the available parameters for the
2434//   API request.
2435//
2436// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2437func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
2438	req, out := c.ListAttributesRequest(input)
2439	return out, req.Send()
2440}
2441
2442// ListAttributesWithContext is the same as ListAttributes with the addition of
2443// the ability to pass a context and additional request options.
2444//
2445// See ListAttributes for details on how to use this API operation.
2446//
2447// The context must be non-nil and will be used for request cancellation. If
2448// the context is nil a panic will occur. In the future the SDK may create
2449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2450// for more information on using Contexts.
2451func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
2452	req, out := c.ListAttributesRequest(input)
2453	req.SetContext(ctx)
2454	req.ApplyOptions(opts...)
2455	return out, req.Send()
2456}
2457
2458// ListAttributesPages iterates over the pages of a ListAttributes operation,
2459// calling the "fn" function with the response data for each page. To stop
2460// iterating, return false from the fn function.
2461//
2462// See ListAttributes method for more information on how to use this operation.
2463//
2464// Note: This operation can generate multiple requests to a service.
2465//
2466//    // Example iterating over at most 3 pages of a ListAttributes operation.
2467//    pageNum := 0
2468//    err := client.ListAttributesPages(params,
2469//        func(page *ecs.ListAttributesOutput, lastPage bool) bool {
2470//            pageNum++
2471//            fmt.Println(page)
2472//            return pageNum <= 3
2473//        })
2474//
2475func (c *ECS) ListAttributesPages(input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool) error {
2476	return c.ListAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
2477}
2478
2479// ListAttributesPagesWithContext same as ListAttributesPages except
2480// it takes a Context and allows setting request options on the pages.
2481//
2482// The context must be non-nil and will be used for request cancellation. If
2483// the context is nil a panic will occur. In the future the SDK may create
2484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2485// for more information on using Contexts.
2486func (c *ECS) ListAttributesPagesWithContext(ctx aws.Context, input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool, opts ...request.Option) error {
2487	p := request.Pagination{
2488		NewRequest: func() (*request.Request, error) {
2489			var inCpy *ListAttributesInput
2490			if input != nil {
2491				tmp := *input
2492				inCpy = &tmp
2493			}
2494			req, _ := c.ListAttributesRequest(inCpy)
2495			req.SetContext(ctx)
2496			req.ApplyOptions(opts...)
2497			return req, nil
2498		},
2499	}
2500
2501	for p.Next() {
2502		if !fn(p.Page().(*ListAttributesOutput), !p.HasNextPage()) {
2503			break
2504		}
2505	}
2506
2507	return p.Err()
2508}
2509
2510const opListClusters = "ListClusters"
2511
2512// ListClustersRequest generates a "aws/request.Request" representing the
2513// client's request for the ListClusters operation. The "output" return
2514// value will be populated with the request's response once the request completes
2515// successfully.
2516//
2517// Use "Send" method on the returned Request to send the API call to the service.
2518// the "output" return value is not valid until after Send returns without error.
2519//
2520// See ListClusters for more information on using the ListClusters
2521// API call, and error handling.
2522//
2523// This method is useful when you want to inject custom logic or configuration
2524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2525//
2526//
2527//    // Example sending a request using the ListClustersRequest method.
2528//    req, resp := client.ListClustersRequest(params)
2529//
2530//    err := req.Send()
2531//    if err == nil { // resp is now filled
2532//        fmt.Println(resp)
2533//    }
2534//
2535// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2536func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2537	op := &request.Operation{
2538		Name:       opListClusters,
2539		HTTPMethod: "POST",
2540		HTTPPath:   "/",
2541		Paginator: &request.Paginator{
2542			InputTokens:     []string{"nextToken"},
2543			OutputTokens:    []string{"nextToken"},
2544			LimitToken:      "maxResults",
2545			TruncationToken: "",
2546		},
2547	}
2548
2549	if input == nil {
2550		input = &ListClustersInput{}
2551	}
2552
2553	output = &ListClustersOutput{}
2554	req = c.newRequest(op, input, output)
2555	return
2556}
2557
2558// ListClusters API operation for Amazon EC2 Container Service.
2559//
2560// Returns a list of existing clusters.
2561//
2562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2563// with awserr.Error's Code and Message methods to get detailed information about
2564// the error.
2565//
2566// See the AWS API reference guide for Amazon EC2 Container Service's
2567// API operation ListClusters for usage and error information.
2568//
2569// Returned Error Types:
2570//   * ServerException
2571//   These errors are usually caused by a server issue.
2572//
2573//   * ClientException
2574//   These errors are usually caused by a client action, such as using an action
2575//   or resource on behalf of a user that doesn't have permissions to use the
2576//   action or resource, or specifying an identifier that is not valid.
2577//
2578//   * InvalidParameterException
2579//   The specified parameter is invalid. Review the available parameters for the
2580//   API request.
2581//
2582// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2583func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2584	req, out := c.ListClustersRequest(input)
2585	return out, req.Send()
2586}
2587
2588// ListClustersWithContext is the same as ListClusters with the addition of
2589// the ability to pass a context and additional request options.
2590//
2591// See ListClusters for details on how to use this API operation.
2592//
2593// The context must be non-nil and will be used for request cancellation. If
2594// the context is nil a panic will occur. In the future the SDK may create
2595// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2596// for more information on using Contexts.
2597func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2598	req, out := c.ListClustersRequest(input)
2599	req.SetContext(ctx)
2600	req.ApplyOptions(opts...)
2601	return out, req.Send()
2602}
2603
2604// ListClustersPages iterates over the pages of a ListClusters operation,
2605// calling the "fn" function with the response data for each page. To stop
2606// iterating, return false from the fn function.
2607//
2608// See ListClusters method for more information on how to use this operation.
2609//
2610// Note: This operation can generate multiple requests to a service.
2611//
2612//    // Example iterating over at most 3 pages of a ListClusters operation.
2613//    pageNum := 0
2614//    err := client.ListClustersPages(params,
2615//        func(page *ecs.ListClustersOutput, lastPage bool) bool {
2616//            pageNum++
2617//            fmt.Println(page)
2618//            return pageNum <= 3
2619//        })
2620//
2621func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2622	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2623}
2624
2625// ListClustersPagesWithContext same as ListClustersPages except
2626// it takes a Context and allows setting request options on the pages.
2627//
2628// The context must be non-nil and will be used for request cancellation. If
2629// the context is nil a panic will occur. In the future the SDK may create
2630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2631// for more information on using Contexts.
2632func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2633	p := request.Pagination{
2634		NewRequest: func() (*request.Request, error) {
2635			var inCpy *ListClustersInput
2636			if input != nil {
2637				tmp := *input
2638				inCpy = &tmp
2639			}
2640			req, _ := c.ListClustersRequest(inCpy)
2641			req.SetContext(ctx)
2642			req.ApplyOptions(opts...)
2643			return req, nil
2644		},
2645	}
2646
2647	for p.Next() {
2648		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2649			break
2650		}
2651	}
2652
2653	return p.Err()
2654}
2655
2656const opListContainerInstances = "ListContainerInstances"
2657
2658// ListContainerInstancesRequest generates a "aws/request.Request" representing the
2659// client's request for the ListContainerInstances operation. The "output" return
2660// value will be populated with the request's response once the request completes
2661// successfully.
2662//
2663// Use "Send" method on the returned Request to send the API call to the service.
2664// the "output" return value is not valid until after Send returns without error.
2665//
2666// See ListContainerInstances for more information on using the ListContainerInstances
2667// API call, and error handling.
2668//
2669// This method is useful when you want to inject custom logic or configuration
2670// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2671//
2672//
2673//    // Example sending a request using the ListContainerInstancesRequest method.
2674//    req, resp := client.ListContainerInstancesRequest(params)
2675//
2676//    err := req.Send()
2677//    if err == nil { // resp is now filled
2678//        fmt.Println(resp)
2679//    }
2680//
2681// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2682func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
2683	op := &request.Operation{
2684		Name:       opListContainerInstances,
2685		HTTPMethod: "POST",
2686		HTTPPath:   "/",
2687		Paginator: &request.Paginator{
2688			InputTokens:     []string{"nextToken"},
2689			OutputTokens:    []string{"nextToken"},
2690			LimitToken:      "maxResults",
2691			TruncationToken: "",
2692		},
2693	}
2694
2695	if input == nil {
2696		input = &ListContainerInstancesInput{}
2697	}
2698
2699	output = &ListContainerInstancesOutput{}
2700	req = c.newRequest(op, input, output)
2701	return
2702}
2703
2704// ListContainerInstances API operation for Amazon EC2 Container Service.
2705//
2706// Returns a list of container instances in a specified cluster. You can filter
2707// the results of a ListContainerInstances operation with cluster query language
2708// statements inside the filter parameter. For more information, see Cluster
2709// Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
2710// in the Amazon Elastic Container Service Developer Guide.
2711//
2712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2713// with awserr.Error's Code and Message methods to get detailed information about
2714// the error.
2715//
2716// See the AWS API reference guide for Amazon EC2 Container Service's
2717// API operation ListContainerInstances for usage and error information.
2718//
2719// Returned Error Types:
2720//   * ServerException
2721//   These errors are usually caused by a server issue.
2722//
2723//   * ClientException
2724//   These errors are usually caused by a client action, such as using an action
2725//   or resource on behalf of a user that doesn't have permissions to use the
2726//   action or resource, or specifying an identifier that is not valid.
2727//
2728//   * InvalidParameterException
2729//   The specified parameter is invalid. Review the available parameters for the
2730//   API request.
2731//
2732//   * ClusterNotFoundException
2733//   The specified cluster could not be found. You can view your available clusters
2734//   with ListClusters. Amazon ECS clusters are Region-specific.
2735//
2736// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2737func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
2738	req, out := c.ListContainerInstancesRequest(input)
2739	return out, req.Send()
2740}
2741
2742// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
2743// the ability to pass a context and additional request options.
2744//
2745// See ListContainerInstances for details on how to use this API operation.
2746//
2747// The context must be non-nil and will be used for request cancellation. If
2748// the context is nil a panic will occur. In the future the SDK may create
2749// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2750// for more information on using Contexts.
2751func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
2752	req, out := c.ListContainerInstancesRequest(input)
2753	req.SetContext(ctx)
2754	req.ApplyOptions(opts...)
2755	return out, req.Send()
2756}
2757
2758// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
2759// calling the "fn" function with the response data for each page. To stop
2760// iterating, return false from the fn function.
2761//
2762// See ListContainerInstances method for more information on how to use this operation.
2763//
2764// Note: This operation can generate multiple requests to a service.
2765//
2766//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
2767//    pageNum := 0
2768//    err := client.ListContainerInstancesPages(params,
2769//        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
2770//            pageNum++
2771//            fmt.Println(page)
2772//            return pageNum <= 3
2773//        })
2774//
2775func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
2776	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2777}
2778
2779// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
2780// it takes a Context and allows setting request options on the pages.
2781//
2782// The context must be non-nil and will be used for request cancellation. If
2783// the context is nil a panic will occur. In the future the SDK may create
2784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2785// for more information on using Contexts.
2786func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
2787	p := request.Pagination{
2788		NewRequest: func() (*request.Request, error) {
2789			var inCpy *ListContainerInstancesInput
2790			if input != nil {
2791				tmp := *input
2792				inCpy = &tmp
2793			}
2794			req, _ := c.ListContainerInstancesRequest(inCpy)
2795			req.SetContext(ctx)
2796			req.ApplyOptions(opts...)
2797			return req, nil
2798		},
2799	}
2800
2801	for p.Next() {
2802		if !fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage()) {
2803			break
2804		}
2805	}
2806
2807	return p.Err()
2808}
2809
2810const opListServices = "ListServices"
2811
2812// ListServicesRequest generates a "aws/request.Request" representing the
2813// client's request for the ListServices operation. The "output" return
2814// value will be populated with the request's response once the request completes
2815// successfully.
2816//
2817// Use "Send" method on the returned Request to send the API call to the service.
2818// the "output" return value is not valid until after Send returns without error.
2819//
2820// See ListServices for more information on using the ListServices
2821// API call, and error handling.
2822//
2823// This method is useful when you want to inject custom logic or configuration
2824// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2825//
2826//
2827//    // Example sending a request using the ListServicesRequest method.
2828//    req, resp := client.ListServicesRequest(params)
2829//
2830//    err := req.Send()
2831//    if err == nil { // resp is now filled
2832//        fmt.Println(resp)
2833//    }
2834//
2835// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2836func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
2837	op := &request.Operation{
2838		Name:       opListServices,
2839		HTTPMethod: "POST",
2840		HTTPPath:   "/",
2841		Paginator: &request.Paginator{
2842			InputTokens:     []string{"nextToken"},
2843			OutputTokens:    []string{"nextToken"},
2844			LimitToken:      "maxResults",
2845			TruncationToken: "",
2846		},
2847	}
2848
2849	if input == nil {
2850		input = &ListServicesInput{}
2851	}
2852
2853	output = &ListServicesOutput{}
2854	req = c.newRequest(op, input, output)
2855	return
2856}
2857
2858// ListServices API operation for Amazon EC2 Container Service.
2859//
2860// Returns a list of services. You can filter the results by cluster, launch
2861// type, and scheduling strategy.
2862//
2863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2864// with awserr.Error's Code and Message methods to get detailed information about
2865// the error.
2866//
2867// See the AWS API reference guide for Amazon EC2 Container Service's
2868// API operation ListServices for usage and error information.
2869//
2870// Returned Error Types:
2871//   * ServerException
2872//   These errors are usually caused by a server issue.
2873//
2874//   * ClientException
2875//   These errors are usually caused by a client action, such as using an action
2876//   or resource on behalf of a user that doesn't have permissions to use the
2877//   action or resource, or specifying an identifier that is not valid.
2878//
2879//   * InvalidParameterException
2880//   The specified parameter is invalid. Review the available parameters for the
2881//   API request.
2882//
2883//   * ClusterNotFoundException
2884//   The specified cluster could not be found. You can view your available clusters
2885//   with ListClusters. Amazon ECS clusters are Region-specific.
2886//
2887// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2888func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
2889	req, out := c.ListServicesRequest(input)
2890	return out, req.Send()
2891}
2892
2893// ListServicesWithContext is the same as ListServices with the addition of
2894// the ability to pass a context and additional request options.
2895//
2896// See ListServices for details on how to use this API operation.
2897//
2898// The context must be non-nil and will be used for request cancellation. If
2899// the context is nil a panic will occur. In the future the SDK may create
2900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2901// for more information on using Contexts.
2902func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
2903	req, out := c.ListServicesRequest(input)
2904	req.SetContext(ctx)
2905	req.ApplyOptions(opts...)
2906	return out, req.Send()
2907}
2908
2909// ListServicesPages iterates over the pages of a ListServices operation,
2910// calling the "fn" function with the response data for each page. To stop
2911// iterating, return false from the fn function.
2912//
2913// See ListServices method for more information on how to use this operation.
2914//
2915// Note: This operation can generate multiple requests to a service.
2916//
2917//    // Example iterating over at most 3 pages of a ListServices operation.
2918//    pageNum := 0
2919//    err := client.ListServicesPages(params,
2920//        func(page *ecs.ListServicesOutput, lastPage bool) bool {
2921//            pageNum++
2922//            fmt.Println(page)
2923//            return pageNum <= 3
2924//        })
2925//
2926func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
2927	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2928}
2929
2930// ListServicesPagesWithContext same as ListServicesPages except
2931// it takes a Context and allows setting request options on the pages.
2932//
2933// The context must be non-nil and will be used for request cancellation. If
2934// the context is nil a panic will occur. In the future the SDK may create
2935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2936// for more information on using Contexts.
2937func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
2938	p := request.Pagination{
2939		NewRequest: func() (*request.Request, error) {
2940			var inCpy *ListServicesInput
2941			if input != nil {
2942				tmp := *input
2943				inCpy = &tmp
2944			}
2945			req, _ := c.ListServicesRequest(inCpy)
2946			req.SetContext(ctx)
2947			req.ApplyOptions(opts...)
2948			return req, nil
2949		},
2950	}
2951
2952	for p.Next() {
2953		if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) {
2954			break
2955		}
2956	}
2957
2958	return p.Err()
2959}
2960
2961const opListTagsForResource = "ListTagsForResource"
2962
2963// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2964// client's request for the ListTagsForResource operation. The "output" return
2965// value will be populated with the request's response once the request completes
2966// successfully.
2967//
2968// Use "Send" method on the returned Request to send the API call to the service.
2969// the "output" return value is not valid until after Send returns without error.
2970//
2971// See ListTagsForResource for more information on using the ListTagsForResource
2972// API call, and error handling.
2973//
2974// This method is useful when you want to inject custom logic or configuration
2975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2976//
2977//
2978//    // Example sending a request using the ListTagsForResourceRequest method.
2979//    req, resp := client.ListTagsForResourceRequest(params)
2980//
2981//    err := req.Send()
2982//    if err == nil { // resp is now filled
2983//        fmt.Println(resp)
2984//    }
2985//
2986// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2987func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2988	op := &request.Operation{
2989		Name:       opListTagsForResource,
2990		HTTPMethod: "POST",
2991		HTTPPath:   "/",
2992	}
2993
2994	if input == nil {
2995		input = &ListTagsForResourceInput{}
2996	}
2997
2998	output = &ListTagsForResourceOutput{}
2999	req = c.newRequest(op, input, output)
3000	return
3001}
3002
3003// ListTagsForResource API operation for Amazon EC2 Container Service.
3004//
3005// List the tags for an Amazon ECS resource.
3006//
3007// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3008// with awserr.Error's Code and Message methods to get detailed information about
3009// the error.
3010//
3011// See the AWS API reference guide for Amazon EC2 Container Service's
3012// API operation ListTagsForResource for usage and error information.
3013//
3014// Returned Error Types:
3015//   * ServerException
3016//   These errors are usually caused by a server issue.
3017//
3018//   * ClientException
3019//   These errors are usually caused by a client action, such as using an action
3020//   or resource on behalf of a user that doesn't have permissions to use the
3021//   action or resource, or specifying an identifier that is not valid.
3022//
3023//   * ClusterNotFoundException
3024//   The specified cluster could not be found. You can view your available clusters
3025//   with ListClusters. Amazon ECS clusters are Region-specific.
3026//
3027//   * InvalidParameterException
3028//   The specified parameter is invalid. Review the available parameters for the
3029//   API request.
3030//
3031// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
3032func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3033	req, out := c.ListTagsForResourceRequest(input)
3034	return out, req.Send()
3035}
3036
3037// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3038// the ability to pass a context and additional request options.
3039//
3040// See ListTagsForResource for details on how to use this API operation.
3041//
3042// The context must be non-nil and will be used for request cancellation. If
3043// the context is nil a panic will occur. In the future the SDK may create
3044// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3045// for more information on using Contexts.
3046func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3047	req, out := c.ListTagsForResourceRequest(input)
3048	req.SetContext(ctx)
3049	req.ApplyOptions(opts...)
3050	return out, req.Send()
3051}
3052
3053const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
3054
3055// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
3056// client's request for the ListTaskDefinitionFamilies operation. The "output" return
3057// value will be populated with the request's response once the request completes
3058// successfully.
3059//
3060// Use "Send" method on the returned Request to send the API call to the service.
3061// the "output" return value is not valid until after Send returns without error.
3062//
3063// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
3064// API call, and error handling.
3065//
3066// This method is useful when you want to inject custom logic or configuration
3067// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3068//
3069//
3070//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
3071//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
3072//
3073//    err := req.Send()
3074//    if err == nil { // resp is now filled
3075//        fmt.Println(resp)
3076//    }
3077//
3078// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
3079func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
3080	op := &request.Operation{
3081		Name:       opListTaskDefinitionFamilies,
3082		HTTPMethod: "POST",
3083		HTTPPath:   "/",
3084		Paginator: &request.Paginator{
3085			InputTokens:     []string{"nextToken"},
3086			OutputTokens:    []string{"nextToken"},
3087			LimitToken:      "maxResults",
3088			TruncationToken: "",
3089		},
3090	}
3091
3092	if input == nil {
3093		input = &ListTaskDefinitionFamiliesInput{}
3094	}
3095
3096	output = &ListTaskDefinitionFamiliesOutput{}
3097	req = c.newRequest(op, input, output)
3098	return
3099}
3100
3101// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
3102//
3103// Returns a list of task definition families that are registered to your account
3104// (which may include task definition families that no longer have any ACTIVE
3105// task definition revisions).
3106//
3107// You can filter out task definition families that do not contain any ACTIVE
3108// task definition revisions by setting the status parameter to ACTIVE. You
3109// can also filter the results with the familyPrefix parameter.
3110//
3111// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3112// with awserr.Error's Code and Message methods to get detailed information about
3113// the error.
3114//
3115// See the AWS API reference guide for Amazon EC2 Container Service's
3116// API operation ListTaskDefinitionFamilies for usage and error information.
3117//
3118// Returned Error Types:
3119//   * ServerException
3120//   These errors are usually caused by a server issue.
3121//
3122//   * ClientException
3123//   These errors are usually caused by a client action, such as using an action
3124//   or resource on behalf of a user that doesn't have permissions to use the
3125//   action or resource, or specifying an identifier that is not valid.
3126//
3127//   * InvalidParameterException
3128//   The specified parameter is invalid. Review the available parameters for the
3129//   API request.
3130//
3131// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
3132func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
3133	req, out := c.ListTaskDefinitionFamiliesRequest(input)
3134	return out, req.Send()
3135}
3136
3137// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
3138// the ability to pass a context and additional request options.
3139//
3140// See ListTaskDefinitionFamilies for details on how to use this API operation.
3141//
3142// The context must be non-nil and will be used for request cancellation. If
3143// the context is nil a panic will occur. In the future the SDK may create
3144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3145// for more information on using Contexts.
3146func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
3147	req, out := c.ListTaskDefinitionFamiliesRequest(input)
3148	req.SetContext(ctx)
3149	req.ApplyOptions(opts...)
3150	return out, req.Send()
3151}
3152
3153// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
3154// calling the "fn" function with the response data for each page. To stop
3155// iterating, return false from the fn function.
3156//
3157// See ListTaskDefinitionFamilies method for more information on how to use this operation.
3158//
3159// Note: This operation can generate multiple requests to a service.
3160//
3161//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
3162//    pageNum := 0
3163//    err := client.ListTaskDefinitionFamiliesPages(params,
3164//        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
3165//            pageNum++
3166//            fmt.Println(page)
3167//            return pageNum <= 3
3168//        })
3169//
3170func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
3171	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
3172}
3173
3174// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
3175// it takes a Context and allows setting request options on the pages.
3176//
3177// The context must be non-nil and will be used for request cancellation. If
3178// the context is nil a panic will occur. In the future the SDK may create
3179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3180// for more information on using Contexts.
3181func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
3182	p := request.Pagination{
3183		NewRequest: func() (*request.Request, error) {
3184			var inCpy *ListTaskDefinitionFamiliesInput
3185			if input != nil {
3186				tmp := *input
3187				inCpy = &tmp
3188			}
3189			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
3190			req.SetContext(ctx)
3191			req.ApplyOptions(opts...)
3192			return req, nil
3193		},
3194	}
3195
3196	for p.Next() {
3197		if !fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage()) {
3198			break
3199		}
3200	}
3201
3202	return p.Err()
3203}
3204
3205const opListTaskDefinitions = "ListTaskDefinitions"
3206
3207// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
3208// client's request for the ListTaskDefinitions operation. The "output" return
3209// value will be populated with the request's response once the request completes
3210// successfully.
3211//
3212// Use "Send" method on the returned Request to send the API call to the service.
3213// the "output" return value is not valid until after Send returns without error.
3214//
3215// See ListTaskDefinitions for more information on using the ListTaskDefinitions
3216// API call, and error handling.
3217//
3218// This method is useful when you want to inject custom logic or configuration
3219// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3220//
3221//
3222//    // Example sending a request using the ListTaskDefinitionsRequest method.
3223//    req, resp := client.ListTaskDefinitionsRequest(params)
3224//
3225//    err := req.Send()
3226//    if err == nil { // resp is now filled
3227//        fmt.Println(resp)
3228//    }
3229//
3230// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3231func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
3232	op := &request.Operation{
3233		Name:       opListTaskDefinitions,
3234		HTTPMethod: "POST",
3235		HTTPPath:   "/",
3236		Paginator: &request.Paginator{
3237			InputTokens:     []string{"nextToken"},
3238			OutputTokens:    []string{"nextToken"},
3239			LimitToken:      "maxResults",
3240			TruncationToken: "",
3241		},
3242	}
3243
3244	if input == nil {
3245		input = &ListTaskDefinitionsInput{}
3246	}
3247
3248	output = &ListTaskDefinitionsOutput{}
3249	req = c.newRequest(op, input, output)
3250	return
3251}
3252
3253// ListTaskDefinitions API operation for Amazon EC2 Container Service.
3254//
3255// Returns a list of task definitions that are registered to your account. You
3256// can filter the results by family name with the familyPrefix parameter or
3257// by status with the status parameter.
3258//
3259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3260// with awserr.Error's Code and Message methods to get detailed information about
3261// the error.
3262//
3263// See the AWS API reference guide for Amazon EC2 Container Service's
3264// API operation ListTaskDefinitions for usage and error information.
3265//
3266// Returned Error Types:
3267//   * ServerException
3268//   These errors are usually caused by a server issue.
3269//
3270//   * ClientException
3271//   These errors are usually caused by a client action, such as using an action
3272//   or resource on behalf of a user that doesn't have permissions to use the
3273//   action or resource, or specifying an identifier that is not valid.
3274//
3275//   * InvalidParameterException
3276//   The specified parameter is invalid. Review the available parameters for the
3277//   API request.
3278//
3279// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3280func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
3281	req, out := c.ListTaskDefinitionsRequest(input)
3282	return out, req.Send()
3283}
3284
3285// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
3286// the ability to pass a context and additional request options.
3287//
3288// See ListTaskDefinitions for details on how to use this API operation.
3289//
3290// The context must be non-nil and will be used for request cancellation. If
3291// the context is nil a panic will occur. In the future the SDK may create
3292// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3293// for more information on using Contexts.
3294func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
3295	req, out := c.ListTaskDefinitionsRequest(input)
3296	req.SetContext(ctx)
3297	req.ApplyOptions(opts...)
3298	return out, req.Send()
3299}
3300
3301// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
3302// calling the "fn" function with the response data for each page. To stop
3303// iterating, return false from the fn function.
3304//
3305// See ListTaskDefinitions method for more information on how to use this operation.
3306//
3307// Note: This operation can generate multiple requests to a service.
3308//
3309//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
3310//    pageNum := 0
3311//    err := client.ListTaskDefinitionsPages(params,
3312//        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
3313//            pageNum++
3314//            fmt.Println(page)
3315//            return pageNum <= 3
3316//        })
3317//
3318func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
3319	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
3320}
3321
3322// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
3323// it takes a Context and allows setting request options on the pages.
3324//
3325// The context must be non-nil and will be used for request cancellation. If
3326// the context is nil a panic will occur. In the future the SDK may create
3327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3328// for more information on using Contexts.
3329func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
3330	p := request.Pagination{
3331		NewRequest: func() (*request.Request, error) {
3332			var inCpy *ListTaskDefinitionsInput
3333			if input != nil {
3334				tmp := *input
3335				inCpy = &tmp
3336			}
3337			req, _ := c.ListTaskDefinitionsRequest(inCpy)
3338			req.SetContext(ctx)
3339			req.ApplyOptions(opts...)
3340			return req, nil
3341		},
3342	}
3343
3344	for p.Next() {
3345		if !fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage()) {
3346			break
3347		}
3348	}
3349
3350	return p.Err()
3351}
3352
3353const opListTasks = "ListTasks"
3354
3355// ListTasksRequest generates a "aws/request.Request" representing the
3356// client's request for the ListTasks operation. The "output" return
3357// value will be populated with the request's response once the request completes
3358// successfully.
3359//
3360// Use "Send" method on the returned Request to send the API call to the service.
3361// the "output" return value is not valid until after Send returns without error.
3362//
3363// See ListTasks for more information on using the ListTasks
3364// API call, and error handling.
3365//
3366// This method is useful when you want to inject custom logic or configuration
3367// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3368//
3369//
3370//    // Example sending a request using the ListTasksRequest method.
3371//    req, resp := client.ListTasksRequest(params)
3372//
3373//    err := req.Send()
3374//    if err == nil { // resp is now filled
3375//        fmt.Println(resp)
3376//    }
3377//
3378// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3379func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
3380	op := &request.Operation{
3381		Name:       opListTasks,
3382		HTTPMethod: "POST",
3383		HTTPPath:   "/",
3384		Paginator: &request.Paginator{
3385			InputTokens:     []string{"nextToken"},
3386			OutputTokens:    []string{"nextToken"},
3387			LimitToken:      "maxResults",
3388			TruncationToken: "",
3389		},
3390	}
3391
3392	if input == nil {
3393		input = &ListTasksInput{}
3394	}
3395
3396	output = &ListTasksOutput{}
3397	req = c.newRequest(op, input, output)
3398	return
3399}
3400
3401// ListTasks API operation for Amazon EC2 Container Service.
3402//
3403// Returns a list of tasks. You can filter the results by cluster, task definition
3404// family, container instance, launch type, what IAM principal started the task,
3405// or by the desired status of the task.
3406//
3407// Recently stopped tasks might appear in the returned results. Currently, stopped
3408// tasks appear in the returned results for at least one hour.
3409//
3410// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3411// with awserr.Error's Code and Message methods to get detailed information about
3412// the error.
3413//
3414// See the AWS API reference guide for Amazon EC2 Container Service's
3415// API operation ListTasks for usage and error information.
3416//
3417// Returned Error Types:
3418//   * ServerException
3419//   These errors are usually caused by a server issue.
3420//
3421//   * ClientException
3422//   These errors are usually caused by a client action, such as using an action
3423//   or resource on behalf of a user that doesn't have permissions to use the
3424//   action or resource, or specifying an identifier that is not valid.
3425//
3426//   * InvalidParameterException
3427//   The specified parameter is invalid. Review the available parameters for the
3428//   API request.
3429//
3430//   * ClusterNotFoundException
3431//   The specified cluster could not be found. You can view your available clusters
3432//   with ListClusters. Amazon ECS clusters are Region-specific.
3433//
3434//   * ServiceNotFoundException
3435//   The specified service could not be found. You can view your available services
3436//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
3437//
3438// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3439func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
3440	req, out := c.ListTasksRequest(input)
3441	return out, req.Send()
3442}
3443
3444// ListTasksWithContext is the same as ListTasks with the addition of
3445// the ability to pass a context and additional request options.
3446//
3447// See ListTasks for details on how to use this API operation.
3448//
3449// The context must be non-nil and will be used for request cancellation. If
3450// the context is nil a panic will occur. In the future the SDK may create
3451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3452// for more information on using Contexts.
3453func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
3454	req, out := c.ListTasksRequest(input)
3455	req.SetContext(ctx)
3456	req.ApplyOptions(opts...)
3457	return out, req.Send()
3458}
3459
3460// ListTasksPages iterates over the pages of a ListTasks operation,
3461// calling the "fn" function with the response data for each page. To stop
3462// iterating, return false from the fn function.
3463//
3464// See ListTasks method for more information on how to use this operation.
3465//
3466// Note: This operation can generate multiple requests to a service.
3467//
3468//    // Example iterating over at most 3 pages of a ListTasks operation.
3469//    pageNum := 0
3470//    err := client.ListTasksPages(params,
3471//        func(page *ecs.ListTasksOutput, lastPage bool) bool {
3472//            pageNum++
3473//            fmt.Println(page)
3474//            return pageNum <= 3
3475//        })
3476//
3477func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
3478	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
3479}
3480
3481// ListTasksPagesWithContext same as ListTasksPages except
3482// it takes a Context and allows setting request options on the pages.
3483//
3484// The context must be non-nil and will be used for request cancellation. If
3485// the context is nil a panic will occur. In the future the SDK may create
3486// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3487// for more information on using Contexts.
3488func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
3489	p := request.Pagination{
3490		NewRequest: func() (*request.Request, error) {
3491			var inCpy *ListTasksInput
3492			if input != nil {
3493				tmp := *input
3494				inCpy = &tmp
3495			}
3496			req, _ := c.ListTasksRequest(inCpy)
3497			req.SetContext(ctx)
3498			req.ApplyOptions(opts...)
3499			return req, nil
3500		},
3501	}
3502
3503	for p.Next() {
3504		if !fn(p.Page().(*ListTasksOutput), !p.HasNextPage()) {
3505			break
3506		}
3507	}
3508
3509	return p.Err()
3510}
3511
3512const opPutAccountSetting = "PutAccountSetting"
3513
3514// PutAccountSettingRequest generates a "aws/request.Request" representing the
3515// client's request for the PutAccountSetting operation. The "output" return
3516// value will be populated with the request's response once the request completes
3517// successfully.
3518//
3519// Use "Send" method on the returned Request to send the API call to the service.
3520// the "output" return value is not valid until after Send returns without error.
3521//
3522// See PutAccountSetting for more information on using the PutAccountSetting
3523// API call, and error handling.
3524//
3525// This method is useful when you want to inject custom logic or configuration
3526// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3527//
3528//
3529//    // Example sending a request using the PutAccountSettingRequest method.
3530//    req, resp := client.PutAccountSettingRequest(params)
3531//
3532//    err := req.Send()
3533//    if err == nil { // resp is now filled
3534//        fmt.Println(resp)
3535//    }
3536//
3537// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3538func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
3539	op := &request.Operation{
3540		Name:       opPutAccountSetting,
3541		HTTPMethod: "POST",
3542		HTTPPath:   "/",
3543	}
3544
3545	if input == nil {
3546		input = &PutAccountSettingInput{}
3547	}
3548
3549	output = &PutAccountSettingOutput{}
3550	req = c.newRequest(op, input, output)
3551	return
3552}
3553
3554// PutAccountSetting API operation for Amazon EC2 Container Service.
3555//
3556// Modifies an account setting. Account settings are set on a per-Region basis.
3557//
3558// If you change the account setting for the root user, the default settings
3559// for all of the IAM users and roles for which no individual account setting
3560// has been specified are reset. For more information, see Account Settings
3561// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
3562// in the Amazon Elastic Container Service Developer Guide.
3563//
3564// When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
3565// are specified, the Amazon Resource Name (ARN) and resource ID format of the
3566// resource type for a specified IAM user, IAM role, or the root user for an
3567// account is affected. The opt-in and opt-out account setting must be set for
3568// each Amazon ECS resource separately. The ARN and resource ID format of a
3569// resource will be defined by the opt-in status of the IAM user or role that
3570// created the resource. You must enable this setting to use Amazon ECS features
3571// such as resource tagging.
3572//
3573// When awsvpcTrunking is specified, the elastic network interface (ENI) limit
3574// for any new container instances that support the feature is changed. If awsvpcTrunking
3575// is enabled, any new container instances that support the feature are launched
3576// have the increased ENI limits available to them. For more information, see
3577// Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
3578// in the Amazon Elastic Container Service Developer Guide.
3579//
3580// When containerInsights is specified, the default setting indicating whether
3581// CloudWatch Container Insights is enabled for your clusters is changed. If
3582// containerInsights is enabled, any new clusters that are created will have
3583// Container Insights enabled unless you disable it during cluster creation.
3584// For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
3585// in the Amazon Elastic Container Service Developer Guide.
3586//
3587// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3588// with awserr.Error's Code and Message methods to get detailed information about
3589// the error.
3590//
3591// See the AWS API reference guide for Amazon EC2 Container Service's
3592// API operation PutAccountSetting for usage and error information.
3593//
3594// Returned Error Types:
3595//   * ServerException
3596//   These errors are usually caused by a server issue.
3597//
3598//   * ClientException
3599//   These errors are usually caused by a client action, such as using an action
3600//   or resource on behalf of a user that doesn't have permissions to use the
3601//   action or resource, or specifying an identifier that is not valid.
3602//
3603//   * InvalidParameterException
3604//   The specified parameter is invalid. Review the available parameters for the
3605//   API request.
3606//
3607// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3608func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
3609	req, out := c.PutAccountSettingRequest(input)
3610	return out, req.Send()
3611}
3612
3613// PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
3614// the ability to pass a context and additional request options.
3615//
3616// See PutAccountSetting for details on how to use this API operation.
3617//
3618// The context must be non-nil and will be used for request cancellation. If
3619// the context is nil a panic will occur. In the future the SDK may create
3620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3621// for more information on using Contexts.
3622func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
3623	req, out := c.PutAccountSettingRequest(input)
3624	req.SetContext(ctx)
3625	req.ApplyOptions(opts...)
3626	return out, req.Send()
3627}
3628
3629const opPutAccountSettingDefault = "PutAccountSettingDefault"
3630
3631// PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
3632// client's request for the PutAccountSettingDefault operation. The "output" return
3633// value will be populated with the request's response once the request completes
3634// successfully.
3635//
3636// Use "Send" method on the returned Request to send the API call to the service.
3637// the "output" return value is not valid until after Send returns without error.
3638//
3639// See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
3640// API call, and error handling.
3641//
3642// This method is useful when you want to inject custom logic or configuration
3643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3644//
3645//
3646//    // Example sending a request using the PutAccountSettingDefaultRequest method.
3647//    req, resp := client.PutAccountSettingDefaultRequest(params)
3648//
3649//    err := req.Send()
3650//    if err == nil { // resp is now filled
3651//        fmt.Println(resp)
3652//    }
3653//
3654// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3655func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
3656	op := &request.Operation{
3657		Name:       opPutAccountSettingDefault,
3658		HTTPMethod: "POST",
3659		HTTPPath:   "/",
3660	}
3661
3662	if input == nil {
3663		input = &PutAccountSettingDefaultInput{}
3664	}
3665
3666	output = &PutAccountSettingDefaultOutput{}
3667	req = c.newRequest(op, input, output)
3668	return
3669}
3670
3671// PutAccountSettingDefault API operation for Amazon EC2 Container Service.
3672//
3673// Modifies an account setting for all IAM users on an account for whom no individual
3674// account setting has been specified. Account settings are set on a per-Region
3675// basis.
3676//
3677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3678// with awserr.Error's Code and Message methods to get detailed information about
3679// the error.
3680//
3681// See the AWS API reference guide for Amazon EC2 Container Service's
3682// API operation PutAccountSettingDefault for usage and error information.
3683//
3684// Returned Error Types:
3685//   * ServerException
3686//   These errors are usually caused by a server issue.
3687//
3688//   * ClientException
3689//   These errors are usually caused by a client action, such as using an action
3690//   or resource on behalf of a user that doesn't have permissions to use the
3691//   action or resource, or specifying an identifier that is not valid.
3692//
3693//   * InvalidParameterException
3694//   The specified parameter is invalid. Review the available parameters for the
3695//   API request.
3696//
3697// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3698func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
3699	req, out := c.PutAccountSettingDefaultRequest(input)
3700	return out, req.Send()
3701}
3702
3703// PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
3704// the ability to pass a context and additional request options.
3705//
3706// See PutAccountSettingDefault for details on how to use this API operation.
3707//
3708// The context must be non-nil and will be used for request cancellation. If
3709// the context is nil a panic will occur. In the future the SDK may create
3710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3711// for more information on using Contexts.
3712func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
3713	req, out := c.PutAccountSettingDefaultRequest(input)
3714	req.SetContext(ctx)
3715	req.ApplyOptions(opts...)
3716	return out, req.Send()
3717}
3718
3719const opPutAttributes = "PutAttributes"
3720
3721// PutAttributesRequest generates a "aws/request.Request" representing the
3722// client's request for the PutAttributes operation. The "output" return
3723// value will be populated with the request's response once the request completes
3724// successfully.
3725//
3726// Use "Send" method on the returned Request to send the API call to the service.
3727// the "output" return value is not valid until after Send returns without error.
3728//
3729// See PutAttributes for more information on using the PutAttributes
3730// API call, and error handling.
3731//
3732// This method is useful when you want to inject custom logic or configuration
3733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3734//
3735//
3736//    // Example sending a request using the PutAttributesRequest method.
3737//    req, resp := client.PutAttributesRequest(params)
3738//
3739//    err := req.Send()
3740//    if err == nil { // resp is now filled
3741//        fmt.Println(resp)
3742//    }
3743//
3744// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3745func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
3746	op := &request.Operation{
3747		Name:       opPutAttributes,
3748		HTTPMethod: "POST",
3749		HTTPPath:   "/",
3750	}
3751
3752	if input == nil {
3753		input = &PutAttributesInput{}
3754	}
3755
3756	output = &PutAttributesOutput{}
3757	req = c.newRequest(op, input, output)
3758	return
3759}
3760
3761// PutAttributes API operation for Amazon EC2 Container Service.
3762//
3763// Create or update an attribute on an Amazon ECS resource. If the attribute
3764// does not exist, it is created. If the attribute exists, its value is replaced
3765// with the specified value. To delete an attribute, use DeleteAttributes. For
3766// more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3767// in the Amazon Elastic Container Service Developer Guide.
3768//
3769// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3770// with awserr.Error's Code and Message methods to get detailed information about
3771// the error.
3772//
3773// See the AWS API reference guide for Amazon EC2 Container Service's
3774// API operation PutAttributes for usage and error information.
3775//
3776// Returned Error Types:
3777//   * ClusterNotFoundException
3778//   The specified cluster could not be found. You can view your available clusters
3779//   with ListClusters. Amazon ECS clusters are Region-specific.
3780//
3781//   * TargetNotFoundException
3782//   The specified target could not be found. You can view your available container
3783//   instances with ListContainerInstances. Amazon ECS container instances are
3784//   cluster-specific and Region-specific.
3785//
3786//   * AttributeLimitExceededException
3787//   You can apply up to 10 custom attributes per resource. You can view the attributes
3788//   of a resource with ListAttributes. You can remove existing attributes on
3789//   a resource with DeleteAttributes.
3790//
3791//   * InvalidParameterException
3792//   The specified parameter is invalid. Review the available parameters for the
3793//   API request.
3794//
3795// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3796func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
3797	req, out := c.PutAttributesRequest(input)
3798	return out, req.Send()
3799}
3800
3801// PutAttributesWithContext is the same as PutAttributes with the addition of
3802// the ability to pass a context and additional request options.
3803//
3804// See PutAttributes for details on how to use this API operation.
3805//
3806// The context must be non-nil and will be used for request cancellation. If
3807// the context is nil a panic will occur. In the future the SDK may create
3808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3809// for more information on using Contexts.
3810func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
3811	req, out := c.PutAttributesRequest(input)
3812	req.SetContext(ctx)
3813	req.ApplyOptions(opts...)
3814	return out, req.Send()
3815}
3816
3817const opPutClusterCapacityProviders = "PutClusterCapacityProviders"
3818
3819// PutClusterCapacityProvidersRequest generates a "aws/request.Request" representing the
3820// client's request for the PutClusterCapacityProviders operation. The "output" return
3821// value will be populated with the request's response once the request completes
3822// successfully.
3823//
3824// Use "Send" method on the returned Request to send the API call to the service.
3825// the "output" return value is not valid until after Send returns without error.
3826//
3827// See PutClusterCapacityProviders for more information on using the PutClusterCapacityProviders
3828// API call, and error handling.
3829//
3830// This method is useful when you want to inject custom logic or configuration
3831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3832//
3833//
3834//    // Example sending a request using the PutClusterCapacityProvidersRequest method.
3835//    req, resp := client.PutClusterCapacityProvidersRequest(params)
3836//
3837//    err := req.Send()
3838//    if err == nil { // resp is now filled
3839//        fmt.Println(resp)
3840//    }
3841//
3842// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3843func (c *ECS) PutClusterCapacityProvidersRequest(input *PutClusterCapacityProvidersInput) (req *request.Request, output *PutClusterCapacityProvidersOutput) {
3844	op := &request.Operation{
3845		Name:       opPutClusterCapacityProviders,
3846		HTTPMethod: "POST",
3847		HTTPPath:   "/",
3848	}
3849
3850	if input == nil {
3851		input = &PutClusterCapacityProvidersInput{}
3852	}
3853
3854	output = &PutClusterCapacityProvidersOutput{}
3855	req = c.newRequest(op, input, output)
3856	return
3857}
3858
3859// PutClusterCapacityProviders API operation for Amazon EC2 Container Service.
3860//
3861// Modifies the available capacity providers and the default capacity provider
3862// strategy for a cluster.
3863//
3864// You must specify both the available capacity providers and a default capacity
3865// provider strategy for the cluster. If the specified cluster has existing
3866// capacity providers associated with it, you must specify all existing capacity
3867// providers in addition to any new ones you want to add. Any existing capacity
3868// providers associated with a cluster that are omitted from a PutClusterCapacityProviders
3869// API call will be disassociated with the cluster. You can only disassociate
3870// an existing capacity provider from a cluster if it's not being used by any
3871// existing tasks.
3872//
3873// When creating a service or running a task on a cluster, if no capacity provider
3874// or launch type is specified, then the cluster's default capacity provider
3875// strategy is used. It is recommended to define a default capacity provider
3876// strategy for your cluster, however you may specify an empty array ([]) to
3877// bypass defining a default strategy.
3878//
3879// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3880// with awserr.Error's Code and Message methods to get detailed information about
3881// the error.
3882//
3883// See the AWS API reference guide for Amazon EC2 Container Service's
3884// API operation PutClusterCapacityProviders for usage and error information.
3885//
3886// Returned Error Types:
3887//   * ServerException
3888//   These errors are usually caused by a server issue.
3889//
3890//   * ClientException
3891//   These errors are usually caused by a client action, such as using an action
3892//   or resource on behalf of a user that doesn't have permissions to use the
3893//   action or resource, or specifying an identifier that is not valid.
3894//
3895//   * InvalidParameterException
3896//   The specified parameter is invalid. Review the available parameters for the
3897//   API request.
3898//
3899//   * ClusterNotFoundException
3900//   The specified cluster could not be found. You can view your available clusters
3901//   with ListClusters. Amazon ECS clusters are Region-specific.
3902//
3903//   * ResourceInUseException
3904//   The specified resource is in-use and cannot be removed.
3905//
3906//   * UpdateInProgressException
3907//   There is already a current Amazon ECS container agent update in progress
3908//   on the specified container instance. If the container agent becomes disconnected
3909//   while it is in a transitional stage, such as PENDING or STAGING, the update
3910//   process can get stuck in that state. However, when the agent reconnects,
3911//   it resumes where it stopped previously.
3912//
3913// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3914func (c *ECS) PutClusterCapacityProviders(input *PutClusterCapacityProvidersInput) (*PutClusterCapacityProvidersOutput, error) {
3915	req, out := c.PutClusterCapacityProvidersRequest(input)
3916	return out, req.Send()
3917}
3918
3919// PutClusterCapacityProvidersWithContext is the same as PutClusterCapacityProviders with the addition of
3920// the ability to pass a context and additional request options.
3921//
3922// See PutClusterCapacityProviders for details on how to use this API operation.
3923//
3924// The context must be non-nil and will be used for request cancellation. If
3925// the context is nil a panic will occur. In the future the SDK may create
3926// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3927// for more information on using Contexts.
3928func (c *ECS) PutClusterCapacityProvidersWithContext(ctx aws.Context, input *PutClusterCapacityProvidersInput, opts ...request.Option) (*PutClusterCapacityProvidersOutput, error) {
3929	req, out := c.PutClusterCapacityProvidersRequest(input)
3930	req.SetContext(ctx)
3931	req.ApplyOptions(opts...)
3932	return out, req.Send()
3933}
3934
3935const opRegisterContainerInstance = "RegisterContainerInstance"
3936
3937// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
3938// client's request for the RegisterContainerInstance operation. The "output" return
3939// value will be populated with the request's response once the request completes
3940// successfully.
3941//
3942// Use "Send" method on the returned Request to send the API call to the service.
3943// the "output" return value is not valid until after Send returns without error.
3944//
3945// See RegisterContainerInstance for more information on using the RegisterContainerInstance
3946// API call, and error handling.
3947//
3948// This method is useful when you want to inject custom logic or configuration
3949// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3950//
3951//
3952//    // Example sending a request using the RegisterContainerInstanceRequest method.
3953//    req, resp := client.RegisterContainerInstanceRequest(params)
3954//
3955//    err := req.Send()
3956//    if err == nil { // resp is now filled
3957//        fmt.Println(resp)
3958//    }
3959//
3960// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3961func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
3962	op := &request.Operation{
3963		Name:       opRegisterContainerInstance,
3964		HTTPMethod: "POST",
3965		HTTPPath:   "/",
3966	}
3967
3968	if input == nil {
3969		input = &RegisterContainerInstanceInput{}
3970	}
3971
3972	output = &RegisterContainerInstanceOutput{}
3973	req = c.newRequest(op, input, output)
3974	return
3975}
3976
3977// RegisterContainerInstance API operation for Amazon EC2 Container Service.
3978//
3979//
3980// This action is only used by the Amazon ECS agent, and it is not intended
3981// for use outside of the agent.
3982//
3983// Registers an EC2 instance into the specified cluster. This instance becomes
3984// available to place containers on.
3985//
3986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3987// with awserr.Error's Code and Message methods to get detailed information about
3988// the error.
3989//
3990// See the AWS API reference guide for Amazon EC2 Container Service's
3991// API operation RegisterContainerInstance for usage and error information.
3992//
3993// Returned Error Types:
3994//   * ServerException
3995//   These errors are usually caused by a server issue.
3996//
3997//   * ClientException
3998//   These errors are usually caused by a client action, such as using an action
3999//   or resource on behalf of a user that doesn't have permissions to use the
4000//   action or resource, or specifying an identifier that is not valid.
4001//
4002//   * InvalidParameterException
4003//   The specified parameter is invalid. Review the available parameters for the
4004//   API request.
4005//
4006// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
4007func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
4008	req, out := c.RegisterContainerInstanceRequest(input)
4009	return out, req.Send()
4010}
4011
4012// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
4013// the ability to pass a context and additional request options.
4014//
4015// See RegisterContainerInstance for details on how to use this API operation.
4016//
4017// The context must be non-nil and will be used for request cancellation. If
4018// the context is nil a panic will occur. In the future the SDK may create
4019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4020// for more information on using Contexts.
4021func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
4022	req, out := c.RegisterContainerInstanceRequest(input)
4023	req.SetContext(ctx)
4024	req.ApplyOptions(opts...)
4025	return out, req.Send()
4026}
4027
4028const opRegisterTaskDefinition = "RegisterTaskDefinition"
4029
4030// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
4031// client's request for the RegisterTaskDefinition operation. The "output" return
4032// value will be populated with the request's response once the request completes
4033// successfully.
4034//
4035// Use "Send" method on the returned Request to send the API call to the service.
4036// the "output" return value is not valid until after Send returns without error.
4037//
4038// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
4039// API call, and error handling.
4040//
4041// This method is useful when you want to inject custom logic or configuration
4042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4043//
4044//
4045//    // Example sending a request using the RegisterTaskDefinitionRequest method.
4046//    req, resp := client.RegisterTaskDefinitionRequest(params)
4047//
4048//    err := req.Send()
4049//    if err == nil { // resp is now filled
4050//        fmt.Println(resp)
4051//    }
4052//
4053// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
4054func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
4055	op := &request.Operation{
4056		Name:       opRegisterTaskDefinition,
4057		HTTPMethod: "POST",
4058		HTTPPath:   "/",
4059	}
4060
4061	if input == nil {
4062		input = &RegisterTaskDefinitionInput{}
4063	}
4064
4065	output = &RegisterTaskDefinitionOutput{}
4066	req = c.newRequest(op, input, output)
4067	return
4068}
4069
4070// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
4071//
4072// Registers a new task definition from the supplied family and containerDefinitions.
4073// Optionally, you can add data volumes to your containers with the volumes
4074// parameter. For more information about task definition parameters and defaults,
4075// see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
4076// in the Amazon Elastic Container Service Developer Guide.
4077//
4078// You can specify an IAM role for your task with the taskRoleArn parameter.
4079// When you specify an IAM role for a task, its containers can then use the
4080// latest versions of the CLI or SDKs to make API requests to the Amazon Web
4081// Services services that are specified in the IAM policy associated with the
4082// role. For more information, see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
4083// in the Amazon Elastic Container Service Developer Guide.
4084//
4085// You can specify a Docker networking mode for the containers in your task
4086// definition with the networkMode parameter. The available network modes correspond
4087// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
4088// in the Docker run reference. If you specify the awsvpc network mode, the
4089// task is allocated an elastic network interface, and you must specify a NetworkConfiguration
4090// when you create a service or run a task with the task definition. For more
4091// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
4092// in the Amazon Elastic Container Service Developer Guide.
4093//
4094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4095// with awserr.Error's Code and Message methods to get detailed information about
4096// the error.
4097//
4098// See the AWS API reference guide for Amazon EC2 Container Service's
4099// API operation RegisterTaskDefinition for usage and error information.
4100//
4101// Returned Error Types:
4102//   * ServerException
4103//   These errors are usually caused by a server issue.
4104//
4105//   * ClientException
4106//   These errors are usually caused by a client action, such as using an action
4107//   or resource on behalf of a user that doesn't have permissions to use the
4108//   action or resource, or specifying an identifier that is not valid.
4109//
4110//   * InvalidParameterException
4111//   The specified parameter is invalid. Review the available parameters for the
4112//   API request.
4113//
4114// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
4115func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
4116	req, out := c.RegisterTaskDefinitionRequest(input)
4117	return out, req.Send()
4118}
4119
4120// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
4121// the ability to pass a context and additional request options.
4122//
4123// See RegisterTaskDefinition for details on how to use this API operation.
4124//
4125// The context must be non-nil and will be used for request cancellation. If
4126// the context is nil a panic will occur. In the future the SDK may create
4127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4128// for more information on using Contexts.
4129func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
4130	req, out := c.RegisterTaskDefinitionRequest(input)
4131	req.SetContext(ctx)
4132	req.ApplyOptions(opts...)
4133	return out, req.Send()
4134}
4135
4136const opRunTask = "RunTask"
4137
4138// RunTaskRequest generates a "aws/request.Request" representing the
4139// client's request for the RunTask operation. The "output" return
4140// value will be populated with the request's response once the request completes
4141// successfully.
4142//
4143// Use "Send" method on the returned Request to send the API call to the service.
4144// the "output" return value is not valid until after Send returns without error.
4145//
4146// See RunTask for more information on using the RunTask
4147// API call, and error handling.
4148//
4149// This method is useful when you want to inject custom logic or configuration
4150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4151//
4152//
4153//    // Example sending a request using the RunTaskRequest method.
4154//    req, resp := client.RunTaskRequest(params)
4155//
4156//    err := req.Send()
4157//    if err == nil { // resp is now filled
4158//        fmt.Println(resp)
4159//    }
4160//
4161// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
4162func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
4163	op := &request.Operation{
4164		Name:       opRunTask,
4165		HTTPMethod: "POST",
4166		HTTPPath:   "/",
4167	}
4168
4169	if input == nil {
4170		input = &RunTaskInput{}
4171	}
4172
4173	output = &RunTaskOutput{}
4174	req = c.newRequest(op, input, output)
4175	return
4176}
4177
4178// RunTask API operation for Amazon EC2 Container Service.
4179//
4180// Starts a new task using the specified task definition.
4181//
4182// You can allow Amazon ECS to place tasks for you, or you can customize how
4183// Amazon ECS places tasks using placement constraints and placement strategies.
4184// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4185// in the Amazon Elastic Container Service Developer Guide.
4186//
4187// Alternatively, you can use StartTask to use your own scheduler or place tasks
4188// manually on specific container instances.
4189//
4190// The Amazon ECS API follows an eventual consistency model, due to the distributed
4191// nature of the system supporting the API. This means that the result of an
4192// API command you run that affects your Amazon ECS resources might not be immediately
4193// visible to all subsequent commands you run. Keep this in mind when you carry
4194// out an API command that immediately follows a previous API command.
4195//
4196// To manage eventual consistency, you can do the following:
4197//
4198//    * Confirm the state of the resource before you run a command to modify
4199//    it. Run the DescribeTasks command using an exponential backoff algorithm
4200//    to ensure that you allow enough time for the previous command to propagate
4201//    through the system. To do this, run the DescribeTasks command repeatedly,
4202//    starting with a couple of seconds of wait time and increasing gradually
4203//    up to five minutes of wait time.
4204//
4205//    * Add wait time between subsequent commands, even if the DescribeTasks
4206//    command returns an accurate response. Apply an exponential backoff algorithm
4207//    starting with a couple of seconds of wait time, and increase gradually
4208//    up to about five minutes of wait time.
4209//
4210// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4211// with awserr.Error's Code and Message methods to get detailed information about
4212// the error.
4213//
4214// See the AWS API reference guide for Amazon EC2 Container Service's
4215// API operation RunTask for usage and error information.
4216//
4217// Returned Error Types:
4218//   * ServerException
4219//   These errors are usually caused by a server issue.
4220//
4221//   * ClientException
4222//   These errors are usually caused by a client action, such as using an action
4223//   or resource on behalf of a user that doesn't have permissions to use the
4224//   action or resource, or specifying an identifier that is not valid.
4225//
4226//   * InvalidParameterException
4227//   The specified parameter is invalid. Review the available parameters for the
4228//   API request.
4229//
4230//   * ClusterNotFoundException
4231//   The specified cluster could not be found. You can view your available clusters
4232//   with ListClusters. Amazon ECS clusters are Region-specific.
4233//
4234//   * UnsupportedFeatureException
4235//   The specified task is not supported in this Region.
4236//
4237//   * PlatformUnknownException
4238//   The specified platform version does not exist.
4239//
4240//   * PlatformTaskDefinitionIncompatibilityException
4241//   The specified platform version does not satisfy the task definition's required
4242//   capabilities.
4243//
4244//   * AccessDeniedException
4245//   You do not have authorization to perform the requested action.
4246//
4247//   * BlockedException
4248//   Your Amazon Web Services account has been blocked. For more information,
4249//   contact Amazon Web Services Support (http://aws.amazon.com/contact-us/).
4250//
4251// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
4252func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
4253	req, out := c.RunTaskRequest(input)
4254	return out, req.Send()
4255}
4256
4257// RunTaskWithContext is the same as RunTask with the addition of
4258// the ability to pass a context and additional request options.
4259//
4260// See RunTask for details on how to use this API operation.
4261//
4262// The context must be non-nil and will be used for request cancellation. If
4263// the context is nil a panic will occur. In the future the SDK may create
4264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4265// for more information on using Contexts.
4266func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
4267	req, out := c.RunTaskRequest(input)
4268	req.SetContext(ctx)
4269	req.ApplyOptions(opts...)
4270	return out, req.Send()
4271}
4272
4273const opStartTask = "StartTask"
4274
4275// StartTaskRequest generates a "aws/request.Request" representing the
4276// client's request for the StartTask operation. The "output" return
4277// value will be populated with the request's response once the request completes
4278// successfully.
4279//
4280// Use "Send" method on the returned Request to send the API call to the service.
4281// the "output" return value is not valid until after Send returns without error.
4282//
4283// See StartTask for more information on using the StartTask
4284// API call, and error handling.
4285//
4286// This method is useful when you want to inject custom logic or configuration
4287// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4288//
4289//
4290//    // Example sending a request using the StartTaskRequest method.
4291//    req, resp := client.StartTaskRequest(params)
4292//
4293//    err := req.Send()
4294//    if err == nil { // resp is now filled
4295//        fmt.Println(resp)
4296//    }
4297//
4298// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4299func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
4300	op := &request.Operation{
4301		Name:       opStartTask,
4302		HTTPMethod: "POST",
4303		HTTPPath:   "/",
4304	}
4305
4306	if input == nil {
4307		input = &StartTaskInput{}
4308	}
4309
4310	output = &StartTaskOutput{}
4311	req = c.newRequest(op, input, output)
4312	return
4313}
4314
4315// StartTask API operation for Amazon EC2 Container Service.
4316//
4317// Starts a new task from the specified task definition on the specified container
4318// instance or instances.
4319//
4320// Alternatively, you can use RunTask to place tasks for you. For more information,
4321// see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4322// in the Amazon Elastic Container Service Developer Guide.
4323//
4324// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4325// with awserr.Error's Code and Message methods to get detailed information about
4326// the error.
4327//
4328// See the AWS API reference guide for Amazon EC2 Container Service's
4329// API operation StartTask for usage and error information.
4330//
4331// Returned Error Types:
4332//   * ServerException
4333//   These errors are usually caused by a server issue.
4334//
4335//   * ClientException
4336//   These errors are usually caused by a client action, such as using an action
4337//   or resource on behalf of a user that doesn't have permissions to use the
4338//   action or resource, or specifying an identifier that is not valid.
4339//
4340//   * InvalidParameterException
4341//   The specified parameter is invalid. Review the available parameters for the
4342//   API request.
4343//
4344//   * ClusterNotFoundException
4345//   The specified cluster could not be found. You can view your available clusters
4346//   with ListClusters. Amazon ECS clusters are Region-specific.
4347//
4348// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4349func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
4350	req, out := c.StartTaskRequest(input)
4351	return out, req.Send()
4352}
4353
4354// StartTaskWithContext is the same as StartTask with the addition of
4355// the ability to pass a context and additional request options.
4356//
4357// See StartTask for details on how to use this API operation.
4358//
4359// The context must be non-nil and will be used for request cancellation. If
4360// the context is nil a panic will occur. In the future the SDK may create
4361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4362// for more information on using Contexts.
4363func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
4364	req, out := c.StartTaskRequest(input)
4365	req.SetContext(ctx)
4366	req.ApplyOptions(opts...)
4367	return out, req.Send()
4368}
4369
4370const opStopTask = "StopTask"
4371
4372// StopTaskRequest generates a "aws/request.Request" representing the
4373// client's request for the StopTask operation. The "output" return
4374// value will be populated with the request's response once the request completes
4375// successfully.
4376//
4377// Use "Send" method on the returned Request to send the API call to the service.
4378// the "output" return value is not valid until after Send returns without error.
4379//
4380// See StopTask for more information on using the StopTask
4381// API call, and error handling.
4382//
4383// This method is useful when you want to inject custom logic or configuration
4384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4385//
4386//
4387//    // Example sending a request using the StopTaskRequest method.
4388//    req, resp := client.StopTaskRequest(params)
4389//
4390//    err := req.Send()
4391//    if err == nil { // resp is now filled
4392//        fmt.Println(resp)
4393//    }
4394//
4395// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4396func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
4397	op := &request.Operation{
4398		Name:       opStopTask,
4399		HTTPMethod: "POST",
4400		HTTPPath:   "/",
4401	}
4402
4403	if input == nil {
4404		input = &StopTaskInput{}
4405	}
4406
4407	output = &StopTaskOutput{}
4408	req = c.newRequest(op, input, output)
4409	return
4410}
4411
4412// StopTask API operation for Amazon EC2 Container Service.
4413//
4414// Stops a running task. Any tags associated with the task will be deleted.
4415//
4416// When StopTask is called on a task, the equivalent of docker stop is issued
4417// to the containers running in the task. This results in a SIGTERM value and
4418// a default 30-second timeout, after which the SIGKILL value is sent and the
4419// containers are forcibly stopped. If the container handles the SIGTERM value
4420// gracefully and exits within 30 seconds from receiving it, no SIGKILL value
4421// is sent.
4422//
4423// The default 30-second timeout can be configured on the Amazon ECS container
4424// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
4425// see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
4426// in the Amazon Elastic Container Service Developer Guide.
4427//
4428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4429// with awserr.Error's Code and Message methods to get detailed information about
4430// the error.
4431//
4432// See the AWS API reference guide for Amazon EC2 Container Service's
4433// API operation StopTask for usage and error information.
4434//
4435// Returned Error Types:
4436//   * ServerException
4437//   These errors are usually caused by a server issue.
4438//
4439//   * ClientException
4440//   These errors are usually caused by a client action, such as using an action
4441//   or resource on behalf of a user that doesn't have permissions to use the
4442//   action or resource, or specifying an identifier that is not valid.
4443//
4444//   * InvalidParameterException
4445//   The specified parameter is invalid. Review the available parameters for the
4446//   API request.
4447//
4448//   * ClusterNotFoundException
4449//   The specified cluster could not be found. You can view your available clusters
4450//   with ListClusters. Amazon ECS clusters are Region-specific.
4451//
4452// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4453func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
4454	req, out := c.StopTaskRequest(input)
4455	return out, req.Send()
4456}
4457
4458// StopTaskWithContext is the same as StopTask with the addition of
4459// the ability to pass a context and additional request options.
4460//
4461// See StopTask for details on how to use this API operation.
4462//
4463// The context must be non-nil and will be used for request cancellation. If
4464// the context is nil a panic will occur. In the future the SDK may create
4465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4466// for more information on using Contexts.
4467func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
4468	req, out := c.StopTaskRequest(input)
4469	req.SetContext(ctx)
4470	req.ApplyOptions(opts...)
4471	return out, req.Send()
4472}
4473
4474const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
4475
4476// SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
4477// client's request for the SubmitAttachmentStateChanges operation. The "output" return
4478// value will be populated with the request's response once the request completes
4479// successfully.
4480//
4481// Use "Send" method on the returned Request to send the API call to the service.
4482// the "output" return value is not valid until after Send returns without error.
4483//
4484// See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
4485// API call, and error handling.
4486//
4487// This method is useful when you want to inject custom logic or configuration
4488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4489//
4490//
4491//    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
4492//    req, resp := client.SubmitAttachmentStateChangesRequest(params)
4493//
4494//    err := req.Send()
4495//    if err == nil { // resp is now filled
4496//        fmt.Println(resp)
4497//    }
4498//
4499// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4500func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
4501	op := &request.Operation{
4502		Name:       opSubmitAttachmentStateChanges,
4503		HTTPMethod: "POST",
4504		HTTPPath:   "/",
4505	}
4506
4507	if input == nil {
4508		input = &SubmitAttachmentStateChangesInput{}
4509	}
4510
4511	output = &SubmitAttachmentStateChangesOutput{}
4512	req = c.newRequest(op, input, output)
4513	return
4514}
4515
4516// SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
4517//
4518//
4519// This action is only used by the Amazon ECS agent, and it is not intended
4520// for use outside of the agent.
4521//
4522// Sent to acknowledge that an attachment changed states.
4523//
4524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4525// with awserr.Error's Code and Message methods to get detailed information about
4526// the error.
4527//
4528// See the AWS API reference guide for Amazon EC2 Container Service's
4529// API operation SubmitAttachmentStateChanges for usage and error information.
4530//
4531// Returned Error Types:
4532//   * ServerException
4533//   These errors are usually caused by a server issue.
4534//
4535//   * ClientException
4536//   These errors are usually caused by a client action, such as using an action
4537//   or resource on behalf of a user that doesn't have permissions to use the
4538//   action or resource, or specifying an identifier that is not valid.
4539//
4540//   * AccessDeniedException
4541//   You do not have authorization to perform the requested action.
4542//
4543//   * InvalidParameterException
4544//   The specified parameter is invalid. Review the available parameters for the
4545//   API request.
4546//
4547// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4548func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
4549	req, out := c.SubmitAttachmentStateChangesRequest(input)
4550	return out, req.Send()
4551}
4552
4553// SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
4554// the ability to pass a context and additional request options.
4555//
4556// See SubmitAttachmentStateChanges for details on how to use this API operation.
4557//
4558// The context must be non-nil and will be used for request cancellation. If
4559// the context is nil a panic will occur. In the future the SDK may create
4560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4561// for more information on using Contexts.
4562func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
4563	req, out := c.SubmitAttachmentStateChangesRequest(input)
4564	req.SetContext(ctx)
4565	req.ApplyOptions(opts...)
4566	return out, req.Send()
4567}
4568
4569const opSubmitContainerStateChange = "SubmitContainerStateChange"
4570
4571// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
4572// client's request for the SubmitContainerStateChange operation. The "output" return
4573// value will be populated with the request's response once the request completes
4574// successfully.
4575//
4576// Use "Send" method on the returned Request to send the API call to the service.
4577// the "output" return value is not valid until after Send returns without error.
4578//
4579// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
4580// API call, and error handling.
4581//
4582// This method is useful when you want to inject custom logic or configuration
4583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4584//
4585//
4586//    // Example sending a request using the SubmitContainerStateChangeRequest method.
4587//    req, resp := client.SubmitContainerStateChangeRequest(params)
4588//
4589//    err := req.Send()
4590//    if err == nil { // resp is now filled
4591//        fmt.Println(resp)
4592//    }
4593//
4594// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4595func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
4596	op := &request.Operation{
4597		Name:       opSubmitContainerStateChange,
4598		HTTPMethod: "POST",
4599		HTTPPath:   "/",
4600	}
4601
4602	if input == nil {
4603		input = &SubmitContainerStateChangeInput{}
4604	}
4605
4606	output = &SubmitContainerStateChangeOutput{}
4607	req = c.newRequest(op, input, output)
4608	return
4609}
4610
4611// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
4612//
4613//
4614// This action is only used by the Amazon ECS agent, and it is not intended
4615// for use outside of the agent.
4616//
4617// Sent to acknowledge that a container changed states.
4618//
4619// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4620// with awserr.Error's Code and Message methods to get detailed information about
4621// the error.
4622//
4623// See the AWS API reference guide for Amazon EC2 Container Service's
4624// API operation SubmitContainerStateChange for usage and error information.
4625//
4626// Returned Error Types:
4627//   * ServerException
4628//   These errors are usually caused by a server issue.
4629//
4630//   * ClientException
4631//   These errors are usually caused by a client action, such as using an action
4632//   or resource on behalf of a user that doesn't have permissions to use the
4633//   action or resource, or specifying an identifier that is not valid.
4634//
4635//   * AccessDeniedException
4636//   You do not have authorization to perform the requested action.
4637//
4638// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4639func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
4640	req, out := c.SubmitContainerStateChangeRequest(input)
4641	return out, req.Send()
4642}
4643
4644// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
4645// the ability to pass a context and additional request options.
4646//
4647// See SubmitContainerStateChange for details on how to use this API operation.
4648//
4649// The context must be non-nil and will be used for request cancellation. If
4650// the context is nil a panic will occur. In the future the SDK may create
4651// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4652// for more information on using Contexts.
4653func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
4654	req, out := c.SubmitContainerStateChangeRequest(input)
4655	req.SetContext(ctx)
4656	req.ApplyOptions(opts...)
4657	return out, req.Send()
4658}
4659
4660const opSubmitTaskStateChange = "SubmitTaskStateChange"
4661
4662// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
4663// client's request for the SubmitTaskStateChange operation. The "output" return
4664// value will be populated with the request's response once the request completes
4665// successfully.
4666//
4667// Use "Send" method on the returned Request to send the API call to the service.
4668// the "output" return value is not valid until after Send returns without error.
4669//
4670// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
4671// API call, and error handling.
4672//
4673// This method is useful when you want to inject custom logic or configuration
4674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4675//
4676//
4677//    // Example sending a request using the SubmitTaskStateChangeRequest method.
4678//    req, resp := client.SubmitTaskStateChangeRequest(params)
4679//
4680//    err := req.Send()
4681//    if err == nil { // resp is now filled
4682//        fmt.Println(resp)
4683//    }
4684//
4685// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4686func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
4687	op := &request.Operation{
4688		Name:       opSubmitTaskStateChange,
4689		HTTPMethod: "POST",
4690		HTTPPath:   "/",
4691	}
4692
4693	if input == nil {
4694		input = &SubmitTaskStateChangeInput{}
4695	}
4696
4697	output = &SubmitTaskStateChangeOutput{}
4698	req = c.newRequest(op, input, output)
4699	return
4700}
4701
4702// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
4703//
4704//
4705// This action is only used by the Amazon ECS agent, and it is not intended
4706// for use outside of the agent.
4707//
4708// Sent to acknowledge that a task changed states.
4709//
4710// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4711// with awserr.Error's Code and Message methods to get detailed information about
4712// the error.
4713//
4714// See the AWS API reference guide for Amazon EC2 Container Service's
4715// API operation SubmitTaskStateChange for usage and error information.
4716//
4717// Returned Error Types:
4718//   * ServerException
4719//   These errors are usually caused by a server issue.
4720//
4721//   * ClientException
4722//   These errors are usually caused by a client action, such as using an action
4723//   or resource on behalf of a user that doesn't have permissions to use the
4724//   action or resource, or specifying an identifier that is not valid.
4725//
4726//   * AccessDeniedException
4727//   You do not have authorization to perform the requested action.
4728//
4729//   * InvalidParameterException
4730//   The specified parameter is invalid. Review the available parameters for the
4731//   API request.
4732//
4733// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4734func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
4735	req, out := c.SubmitTaskStateChangeRequest(input)
4736	return out, req.Send()
4737}
4738
4739// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
4740// the ability to pass a context and additional request options.
4741//
4742// See SubmitTaskStateChange for details on how to use this API operation.
4743//
4744// The context must be non-nil and will be used for request cancellation. If
4745// the context is nil a panic will occur. In the future the SDK may create
4746// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4747// for more information on using Contexts.
4748func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
4749	req, out := c.SubmitTaskStateChangeRequest(input)
4750	req.SetContext(ctx)
4751	req.ApplyOptions(opts...)
4752	return out, req.Send()
4753}
4754
4755const opTagResource = "TagResource"
4756
4757// TagResourceRequest generates a "aws/request.Request" representing the
4758// client's request for the TagResource operation. The "output" return
4759// value will be populated with the request's response once the request completes
4760// successfully.
4761//
4762// Use "Send" method on the returned Request to send the API call to the service.
4763// the "output" return value is not valid until after Send returns without error.
4764//
4765// See TagResource for more information on using the TagResource
4766// API call, and error handling.
4767//
4768// This method is useful when you want to inject custom logic or configuration
4769// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4770//
4771//
4772//    // Example sending a request using the TagResourceRequest method.
4773//    req, resp := client.TagResourceRequest(params)
4774//
4775//    err := req.Send()
4776//    if err == nil { // resp is now filled
4777//        fmt.Println(resp)
4778//    }
4779//
4780// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4781func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4782	op := &request.Operation{
4783		Name:       opTagResource,
4784		HTTPMethod: "POST",
4785		HTTPPath:   "/",
4786	}
4787
4788	if input == nil {
4789		input = &TagResourceInput{}
4790	}
4791
4792	output = &TagResourceOutput{}
4793	req = c.newRequest(op, input, output)
4794	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4795	return
4796}
4797
4798// TagResource API operation for Amazon EC2 Container Service.
4799//
4800// Associates the specified tags to a resource with the specified resourceArn.
4801// If existing tags on a resource are not specified in the request parameters,
4802// they are not changed. When a resource is deleted, the tags associated with
4803// that resource are deleted as well.
4804//
4805// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4806// with awserr.Error's Code and Message methods to get detailed information about
4807// the error.
4808//
4809// See the AWS API reference guide for Amazon EC2 Container Service's
4810// API operation TagResource for usage and error information.
4811//
4812// Returned Error Types:
4813//   * ServerException
4814//   These errors are usually caused by a server issue.
4815//
4816//   * ClientException
4817//   These errors are usually caused by a client action, such as using an action
4818//   or resource on behalf of a user that doesn't have permissions to use the
4819//   action or resource, or specifying an identifier that is not valid.
4820//
4821//   * ClusterNotFoundException
4822//   The specified cluster could not be found. You can view your available clusters
4823//   with ListClusters. Amazon ECS clusters are Region-specific.
4824//
4825//   * ResourceNotFoundException
4826//   The specified resource could not be found.
4827//
4828//   * InvalidParameterException
4829//   The specified parameter is invalid. Review the available parameters for the
4830//   API request.
4831//
4832// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4833func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4834	req, out := c.TagResourceRequest(input)
4835	return out, req.Send()
4836}
4837
4838// TagResourceWithContext is the same as TagResource with the addition of
4839// the ability to pass a context and additional request options.
4840//
4841// See TagResource for details on how to use this API operation.
4842//
4843// The context must be non-nil and will be used for request cancellation. If
4844// the context is nil a panic will occur. In the future the SDK may create
4845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4846// for more information on using Contexts.
4847func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4848	req, out := c.TagResourceRequest(input)
4849	req.SetContext(ctx)
4850	req.ApplyOptions(opts...)
4851	return out, req.Send()
4852}
4853
4854const opUntagResource = "UntagResource"
4855
4856// UntagResourceRequest generates a "aws/request.Request" representing the
4857// client's request for the UntagResource operation. The "output" return
4858// value will be populated with the request's response once the request completes
4859// successfully.
4860//
4861// Use "Send" method on the returned Request to send the API call to the service.
4862// the "output" return value is not valid until after Send returns without error.
4863//
4864// See UntagResource for more information on using the UntagResource
4865// API call, and error handling.
4866//
4867// This method is useful when you want to inject custom logic or configuration
4868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4869//
4870//
4871//    // Example sending a request using the UntagResourceRequest method.
4872//    req, resp := client.UntagResourceRequest(params)
4873//
4874//    err := req.Send()
4875//    if err == nil { // resp is now filled
4876//        fmt.Println(resp)
4877//    }
4878//
4879// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4880func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4881	op := &request.Operation{
4882		Name:       opUntagResource,
4883		HTTPMethod: "POST",
4884		HTTPPath:   "/",
4885	}
4886
4887	if input == nil {
4888		input = &UntagResourceInput{}
4889	}
4890
4891	output = &UntagResourceOutput{}
4892	req = c.newRequest(op, input, output)
4893	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4894	return
4895}
4896
4897// UntagResource API operation for Amazon EC2 Container Service.
4898//
4899// Deletes specified tags from a resource.
4900//
4901// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4902// with awserr.Error's Code and Message methods to get detailed information about
4903// the error.
4904//
4905// See the AWS API reference guide for Amazon EC2 Container Service's
4906// API operation UntagResource for usage and error information.
4907//
4908// Returned Error Types:
4909//   * ServerException
4910//   These errors are usually caused by a server issue.
4911//
4912//   * ClientException
4913//   These errors are usually caused by a client action, such as using an action
4914//   or resource on behalf of a user that doesn't have permissions to use the
4915//   action or resource, or specifying an identifier that is not valid.
4916//
4917//   * ClusterNotFoundException
4918//   The specified cluster could not be found. You can view your available clusters
4919//   with ListClusters. Amazon ECS clusters are Region-specific.
4920//
4921//   * ResourceNotFoundException
4922//   The specified resource could not be found.
4923//
4924//   * InvalidParameterException
4925//   The specified parameter is invalid. Review the available parameters for the
4926//   API request.
4927//
4928// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4929func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4930	req, out := c.UntagResourceRequest(input)
4931	return out, req.Send()
4932}
4933
4934// UntagResourceWithContext is the same as UntagResource with the addition of
4935// the ability to pass a context and additional request options.
4936//
4937// See UntagResource for details on how to use this API operation.
4938//
4939// The context must be non-nil and will be used for request cancellation. If
4940// the context is nil a panic will occur. In the future the SDK may create
4941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4942// for more information on using Contexts.
4943func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4944	req, out := c.UntagResourceRequest(input)
4945	req.SetContext(ctx)
4946	req.ApplyOptions(opts...)
4947	return out, req.Send()
4948}
4949
4950const opUpdateCapacityProvider = "UpdateCapacityProvider"
4951
4952// UpdateCapacityProviderRequest generates a "aws/request.Request" representing the
4953// client's request for the UpdateCapacityProvider operation. The "output" return
4954// value will be populated with the request's response once the request completes
4955// successfully.
4956//
4957// Use "Send" method on the returned Request to send the API call to the service.
4958// the "output" return value is not valid until after Send returns without error.
4959//
4960// See UpdateCapacityProvider for more information on using the UpdateCapacityProvider
4961// API call, and error handling.
4962//
4963// This method is useful when you want to inject custom logic or configuration
4964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4965//
4966//
4967//    // Example sending a request using the UpdateCapacityProviderRequest method.
4968//    req, resp := client.UpdateCapacityProviderRequest(params)
4969//
4970//    err := req.Send()
4971//    if err == nil { // resp is now filled
4972//        fmt.Println(resp)
4973//    }
4974//
4975// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCapacityProvider
4976func (c *ECS) UpdateCapacityProviderRequest(input *UpdateCapacityProviderInput) (req *request.Request, output *UpdateCapacityProviderOutput) {
4977	op := &request.Operation{
4978		Name:       opUpdateCapacityProvider,
4979		HTTPMethod: "POST",
4980		HTTPPath:   "/",
4981	}
4982
4983	if input == nil {
4984		input = &UpdateCapacityProviderInput{}
4985	}
4986
4987	output = &UpdateCapacityProviderOutput{}
4988	req = c.newRequest(op, input, output)
4989	return
4990}
4991
4992// UpdateCapacityProvider API operation for Amazon EC2 Container Service.
4993//
4994// Modifies the parameters for a capacity provider.
4995//
4996// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4997// with awserr.Error's Code and Message methods to get detailed information about
4998// the error.
4999//
5000// See the AWS API reference guide for Amazon EC2 Container Service's
5001// API operation UpdateCapacityProvider for usage and error information.
5002//
5003// Returned Error Types:
5004//   * ServerException
5005//   These errors are usually caused by a server issue.
5006//
5007//   * ClientException
5008//   These errors are usually caused by a client action, such as using an action
5009//   or resource on behalf of a user that doesn't have permissions to use the
5010//   action or resource, or specifying an identifier that is not valid.
5011//
5012//   * InvalidParameterException
5013//   The specified parameter is invalid. Review the available parameters for the
5014//   API request.
5015//
5016// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCapacityProvider
5017func (c *ECS) UpdateCapacityProvider(input *UpdateCapacityProviderInput) (*UpdateCapacityProviderOutput, error) {
5018	req, out := c.UpdateCapacityProviderRequest(input)
5019	return out, req.Send()
5020}
5021
5022// UpdateCapacityProviderWithContext is the same as UpdateCapacityProvider with the addition of
5023// the ability to pass a context and additional request options.
5024//
5025// See UpdateCapacityProvider for details on how to use this API operation.
5026//
5027// The context must be non-nil and will be used for request cancellation. If
5028// the context is nil a panic will occur. In the future the SDK may create
5029// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5030// for more information on using Contexts.
5031func (c *ECS) UpdateCapacityProviderWithContext(ctx aws.Context, input *UpdateCapacityProviderInput, opts ...request.Option) (*UpdateCapacityProviderOutput, error) {
5032	req, out := c.UpdateCapacityProviderRequest(input)
5033	req.SetContext(ctx)
5034	req.ApplyOptions(opts...)
5035	return out, req.Send()
5036}
5037
5038const opUpdateCluster = "UpdateCluster"
5039
5040// UpdateClusterRequest generates a "aws/request.Request" representing the
5041// client's request for the UpdateCluster operation. The "output" return
5042// value will be populated with the request's response once the request completes
5043// successfully.
5044//
5045// Use "Send" method on the returned Request to send the API call to the service.
5046// the "output" return value is not valid until after Send returns without error.
5047//
5048// See UpdateCluster for more information on using the UpdateCluster
5049// API call, and error handling.
5050//
5051// This method is useful when you want to inject custom logic or configuration
5052// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5053//
5054//
5055//    // Example sending a request using the UpdateClusterRequest method.
5056//    req, resp := client.UpdateClusterRequest(params)
5057//
5058//    err := req.Send()
5059//    if err == nil { // resp is now filled
5060//        fmt.Println(resp)
5061//    }
5062//
5063// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster
5064func (c *ECS) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) {
5065	op := &request.Operation{
5066		Name:       opUpdateCluster,
5067		HTTPMethod: "POST",
5068		HTTPPath:   "/",
5069	}
5070
5071	if input == nil {
5072		input = &UpdateClusterInput{}
5073	}
5074
5075	output = &UpdateClusterOutput{}
5076	req = c.newRequest(op, input, output)
5077	return
5078}
5079
5080// UpdateCluster API operation for Amazon EC2 Container Service.
5081//
5082// Updates the cluster.
5083//
5084// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5085// with awserr.Error's Code and Message methods to get detailed information about
5086// the error.
5087//
5088// See the AWS API reference guide for Amazon EC2 Container Service's
5089// API operation UpdateCluster for usage and error information.
5090//
5091// Returned Error Types:
5092//   * ServerException
5093//   These errors are usually caused by a server issue.
5094//
5095//   * ClientException
5096//   These errors are usually caused by a client action, such as using an action
5097//   or resource on behalf of a user that doesn't have permissions to use the
5098//   action or resource, or specifying an identifier that is not valid.
5099//
5100//   * ClusterNotFoundException
5101//   The specified cluster could not be found. You can view your available clusters
5102//   with ListClusters. Amazon ECS clusters are Region-specific.
5103//
5104//   * InvalidParameterException
5105//   The specified parameter is invalid. Review the available parameters for the
5106//   API request.
5107//
5108// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster
5109func (c *ECS) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) {
5110	req, out := c.UpdateClusterRequest(input)
5111	return out, req.Send()
5112}
5113
5114// UpdateClusterWithContext is the same as UpdateCluster with the addition of
5115// the ability to pass a context and additional request options.
5116//
5117// See UpdateCluster for details on how to use this API operation.
5118//
5119// The context must be non-nil and will be used for request cancellation. If
5120// the context is nil a panic will occur. In the future the SDK may create
5121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5122// for more information on using Contexts.
5123func (c *ECS) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) {
5124	req, out := c.UpdateClusterRequest(input)
5125	req.SetContext(ctx)
5126	req.ApplyOptions(opts...)
5127	return out, req.Send()
5128}
5129
5130const opUpdateClusterSettings = "UpdateClusterSettings"
5131
5132// UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
5133// client's request for the UpdateClusterSettings operation. The "output" return
5134// value will be populated with the request's response once the request completes
5135// successfully.
5136//
5137// Use "Send" method on the returned Request to send the API call to the service.
5138// the "output" return value is not valid until after Send returns without error.
5139//
5140// See UpdateClusterSettings for more information on using the UpdateClusterSettings
5141// API call, and error handling.
5142//
5143// This method is useful when you want to inject custom logic or configuration
5144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5145//
5146//
5147//    // Example sending a request using the UpdateClusterSettingsRequest method.
5148//    req, resp := client.UpdateClusterSettingsRequest(params)
5149//
5150//    err := req.Send()
5151//    if err == nil { // resp is now filled
5152//        fmt.Println(resp)
5153//    }
5154//
5155// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
5156func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
5157	op := &request.Operation{
5158		Name:       opUpdateClusterSettings,
5159		HTTPMethod: "POST",
5160		HTTPPath:   "/",
5161	}
5162
5163	if input == nil {
5164		input = &UpdateClusterSettingsInput{}
5165	}
5166
5167	output = &UpdateClusterSettingsOutput{}
5168	req = c.newRequest(op, input, output)
5169	return
5170}
5171
5172// UpdateClusterSettings API operation for Amazon EC2 Container Service.
5173//
5174// Modifies the settings to use for a cluster.
5175//
5176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5177// with awserr.Error's Code and Message methods to get detailed information about
5178// the error.
5179//
5180// See the AWS API reference guide for Amazon EC2 Container Service's
5181// API operation UpdateClusterSettings for usage and error information.
5182//
5183// Returned Error Types:
5184//   * ServerException
5185//   These errors are usually caused by a server issue.
5186//
5187//   * ClientException
5188//   These errors are usually caused by a client action, such as using an action
5189//   or resource on behalf of a user that doesn't have permissions to use the
5190//   action or resource, or specifying an identifier that is not valid.
5191//
5192//   * ClusterNotFoundException
5193//   The specified cluster could not be found. You can view your available clusters
5194//   with ListClusters. Amazon ECS clusters are Region-specific.
5195//
5196//   * InvalidParameterException
5197//   The specified parameter is invalid. Review the available parameters for the
5198//   API request.
5199//
5200// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
5201func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
5202	req, out := c.UpdateClusterSettingsRequest(input)
5203	return out, req.Send()
5204}
5205
5206// UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
5207// the ability to pass a context and additional request options.
5208//
5209// See UpdateClusterSettings for details on how to use this API operation.
5210//
5211// The context must be non-nil and will be used for request cancellation. If
5212// the context is nil a panic will occur. In the future the SDK may create
5213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5214// for more information on using Contexts.
5215func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
5216	req, out := c.UpdateClusterSettingsRequest(input)
5217	req.SetContext(ctx)
5218	req.ApplyOptions(opts...)
5219	return out, req.Send()
5220}
5221
5222const opUpdateContainerAgent = "UpdateContainerAgent"
5223
5224// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
5225// client's request for the UpdateContainerAgent operation. The "output" return
5226// value will be populated with the request's response once the request completes
5227// successfully.
5228//
5229// Use "Send" method on the returned Request to send the API call to the service.
5230// the "output" return value is not valid until after Send returns without error.
5231//
5232// See UpdateContainerAgent for more information on using the UpdateContainerAgent
5233// API call, and error handling.
5234//
5235// This method is useful when you want to inject custom logic or configuration
5236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5237//
5238//
5239//    // Example sending a request using the UpdateContainerAgentRequest method.
5240//    req, resp := client.UpdateContainerAgentRequest(params)
5241//
5242//    err := req.Send()
5243//    if err == nil { // resp is now filled
5244//        fmt.Println(resp)
5245//    }
5246//
5247// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
5248func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
5249	op := &request.Operation{
5250		Name:       opUpdateContainerAgent,
5251		HTTPMethod: "POST",
5252		HTTPPath:   "/",
5253	}
5254
5255	if input == nil {
5256		input = &UpdateContainerAgentInput{}
5257	}
5258
5259	output = &UpdateContainerAgentOutput{}
5260	req = c.newRequest(op, input, output)
5261	return
5262}
5263
5264// UpdateContainerAgent API operation for Amazon EC2 Container Service.
5265//
5266// Updates the Amazon ECS container agent on a specified container instance.
5267// Updating the Amazon ECS container agent does not interrupt running tasks
5268// or services on the container instance. The process for updating the agent
5269// differs depending on whether your container instance was launched with the
5270// Amazon ECS-optimized AMI or another operating system.
5271//
5272// The UpdateContainerAgent API isn't supported for container instances using
5273// the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container
5274// agent, you can update the ecs-init package which will update the agent. For
5275// more information, see Updating the Amazon ECS container agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/agent-update-ecs-ami.html)
5276// in the Amazon Elastic Container Service Developer Guide.
5277//
5278// The UpdateContainerAgent API requires an Amazon ECS-optimized AMI or Amazon
5279// Linux AMI with the ecs-init service installed and running. For help updating
5280// the Amazon ECS container agent on other operating systems, see Manually updating
5281// the Amazon ECS container agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
5282// in the Amazon Elastic Container Service Developer Guide.
5283//
5284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5285// with awserr.Error's Code and Message methods to get detailed information about
5286// the error.
5287//
5288// See the AWS API reference guide for Amazon EC2 Container Service's
5289// API operation UpdateContainerAgent for usage and error information.
5290//
5291// Returned Error Types:
5292//   * ServerException
5293//   These errors are usually caused by a server issue.
5294//
5295//   * ClientException
5296//   These errors are usually caused by a client action, such as using an action
5297//   or resource on behalf of a user that doesn't have permissions to use the
5298//   action or resource, or specifying an identifier that is not valid.
5299//
5300//   * InvalidParameterException
5301//   The specified parameter is invalid. Review the available parameters for the
5302//   API request.
5303//
5304//   * ClusterNotFoundException
5305//   The specified cluster could not be found. You can view your available clusters
5306//   with ListClusters. Amazon ECS clusters are Region-specific.
5307//
5308//   * UpdateInProgressException
5309//   There is already a current Amazon ECS container agent update in progress
5310//   on the specified container instance. If the container agent becomes disconnected
5311//   while it is in a transitional stage, such as PENDING or STAGING, the update
5312//   process can get stuck in that state. However, when the agent reconnects,
5313//   it resumes where it stopped previously.
5314//
5315//   * NoUpdateAvailableException
5316//   There is no update available for this Amazon ECS container agent. This could
5317//   be because the agent is already running the latest version, or it is so old
5318//   that there is no update path to the current version.
5319//
5320//   * MissingVersionException
5321//   Amazon ECS is unable to determine the current version of the Amazon ECS container
5322//   agent on the container instance and does not have enough information to proceed
5323//   with an update. This could be because the agent running on the container
5324//   instance is an older or custom version that does not use our version information.
5325//
5326// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
5327func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
5328	req, out := c.UpdateContainerAgentRequest(input)
5329	return out, req.Send()
5330}
5331
5332// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
5333// the ability to pass a context and additional request options.
5334//
5335// See UpdateContainerAgent for details on how to use this API operation.
5336//
5337// The context must be non-nil and will be used for request cancellation. If
5338// the context is nil a panic will occur. In the future the SDK may create
5339// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5340// for more information on using Contexts.
5341func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
5342	req, out := c.UpdateContainerAgentRequest(input)
5343	req.SetContext(ctx)
5344	req.ApplyOptions(opts...)
5345	return out, req.Send()
5346}
5347
5348const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
5349
5350// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
5351// client's request for the UpdateContainerInstancesState operation. The "output" return
5352// value will be populated with the request's response once the request completes
5353// successfully.
5354//
5355// Use "Send" method on the returned Request to send the API call to the service.
5356// the "output" return value is not valid until after Send returns without error.
5357//
5358// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
5359// API call, and error handling.
5360//
5361// This method is useful when you want to inject custom logic or configuration
5362// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5363//
5364//
5365//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
5366//    req, resp := client.UpdateContainerInstancesStateRequest(params)
5367//
5368//    err := req.Send()
5369//    if err == nil { // resp is now filled
5370//        fmt.Println(resp)
5371//    }
5372//
5373// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5374func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
5375	op := &request.Operation{
5376		Name:       opUpdateContainerInstancesState,
5377		HTTPMethod: "POST",
5378		HTTPPath:   "/",
5379	}
5380
5381	if input == nil {
5382		input = &UpdateContainerInstancesStateInput{}
5383	}
5384
5385	output = &UpdateContainerInstancesStateOutput{}
5386	req = c.newRequest(op, input, output)
5387	return
5388}
5389
5390// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
5391//
5392// Modifies the status of an Amazon ECS container instance.
5393//
5394// Once a container instance has reached an ACTIVE state, you can change the
5395// status of a container instance to DRAINING to manually remove an instance
5396// from a cluster, for example to perform system updates, update the Docker
5397// daemon, or scale down the cluster size.
5398//
5399// A container instance cannot be changed to DRAINING until it has reached an
5400// ACTIVE status. If the instance is in any other status, an error will be received.
5401//
5402// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
5403// from being scheduled for placement on the container instance and replacement
5404// service tasks are started on other container instances in the cluster if
5405// the resources are available. Service tasks on the container instance that
5406// are in the PENDING state are stopped immediately.
5407//
5408// Service tasks on the container instance that are in the RUNNING state are
5409// stopped and replaced according to the service's deployment configuration
5410// parameters, minimumHealthyPercent and maximumPercent. You can change the
5411// deployment configuration of your service using UpdateService.
5412//
5413//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5414//    temporarily during task replacement. For example, desiredCount is four
5415//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5416//    before starting two new tasks. If the minimum is 100%, the service scheduler
5417//    can't remove existing tasks until the replacement tasks are considered
5418//    healthy. Tasks for services that do not use a load balancer are considered
5419//    healthy if they are in the RUNNING state. Tasks for services that use
5420//    a load balancer are considered healthy if they are in the RUNNING state
5421//    and the container instance they are hosted on is reported as healthy by
5422//    the load balancer.
5423//
5424//    * The maximumPercent parameter represents an upper limit on the number
5425//    of running tasks during task replacement, which enables you to define
5426//    the replacement batch size. For example, if desiredCount is four tasks,
5427//    a maximum of 200% starts four new tasks before stopping the four tasks
5428//    to be drained, provided that the cluster resources required to do this
5429//    are available. If the maximum is 100%, then replacement tasks can't start
5430//    until the draining tasks have stopped.
5431//
5432// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
5433// You must wait for them to finish or stop them manually.
5434//
5435// A container instance has completed draining when it has no more RUNNING tasks.
5436// You can verify this using ListTasks.
5437//
5438// When a container instance has been drained, you can set a container instance
5439// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
5440// can begin scheduling tasks on the instance again.
5441//
5442// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5443// with awserr.Error's Code and Message methods to get detailed information about
5444// the error.
5445//
5446// See the AWS API reference guide for Amazon EC2 Container Service's
5447// API operation UpdateContainerInstancesState for usage and error information.
5448//
5449// Returned Error Types:
5450//   * ServerException
5451//   These errors are usually caused by a server issue.
5452//
5453//   * ClientException
5454//   These errors are usually caused by a client action, such as using an action
5455//   or resource on behalf of a user that doesn't have permissions to use the
5456//   action or resource, or specifying an identifier that is not valid.
5457//
5458//   * InvalidParameterException
5459//   The specified parameter is invalid. Review the available parameters for the
5460//   API request.
5461//
5462//   * ClusterNotFoundException
5463//   The specified cluster could not be found. You can view your available clusters
5464//   with ListClusters. Amazon ECS clusters are Region-specific.
5465//
5466// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5467func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
5468	req, out := c.UpdateContainerInstancesStateRequest(input)
5469	return out, req.Send()
5470}
5471
5472// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
5473// the ability to pass a context and additional request options.
5474//
5475// See UpdateContainerInstancesState for details on how to use this API operation.
5476//
5477// The context must be non-nil and will be used for request cancellation. If
5478// the context is nil a panic will occur. In the future the SDK may create
5479// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5480// for more information on using Contexts.
5481func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
5482	req, out := c.UpdateContainerInstancesStateRequest(input)
5483	req.SetContext(ctx)
5484	req.ApplyOptions(opts...)
5485	return out, req.Send()
5486}
5487
5488const opUpdateService = "UpdateService"
5489
5490// UpdateServiceRequest generates a "aws/request.Request" representing the
5491// client's request for the UpdateService operation. The "output" return
5492// value will be populated with the request's response once the request completes
5493// successfully.
5494//
5495// Use "Send" method on the returned Request to send the API call to the service.
5496// the "output" return value is not valid until after Send returns without error.
5497//
5498// See UpdateService for more information on using the UpdateService
5499// API call, and error handling.
5500//
5501// This method is useful when you want to inject custom logic or configuration
5502// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5503//
5504//
5505//    // Example sending a request using the UpdateServiceRequest method.
5506//    req, resp := client.UpdateServiceRequest(params)
5507//
5508//    err := req.Send()
5509//    if err == nil { // resp is now filled
5510//        fmt.Println(resp)
5511//    }
5512//
5513// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5514func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
5515	op := &request.Operation{
5516		Name:       opUpdateService,
5517		HTTPMethod: "POST",
5518		HTTPPath:   "/",
5519	}
5520
5521	if input == nil {
5522		input = &UpdateServiceInput{}
5523	}
5524
5525	output = &UpdateServiceOutput{}
5526	req = c.newRequest(op, input, output)
5527	return
5528}
5529
5530// UpdateService API operation for Amazon EC2 Container Service.
5531//
5532//
5533// Updating the task placement strategies and constraints on an Amazon ECS service
5534// remains in preview and is a Beta Service as defined by and subject to the
5535// Beta Service Participation Service Terms located at https://aws.amazon.com/service-terms
5536// (https://aws.amazon.com/service-terms) ("Beta Terms"). These Beta Terms apply
5537// to your participation in this preview.
5538//
5539// Modifies the parameters of a service.
5540//
5541// For services using the rolling update (ECS) deployment controller, the desired
5542// count, deployment configuration, network configuration, task placement constraints
5543// and strategies, or task definition used can be updated.
5544//
5545// For services using the blue/green (CODE_DEPLOY) deployment controller, only
5546// the desired count, deployment configuration, task placement constraints and
5547// strategies, and health check grace period can be updated using this API.
5548// If the network configuration, platform version, or task definition need to
5549// be updated, a new CodeDeploy deployment should be created. For more information,
5550// see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
5551// in the CodeDeploy API Reference.
5552//
5553// For services using an external deployment controller, you can update only
5554// the desired count, task placement constraints and strategies, and health
5555// check grace period using this API. If the launch type, load balancer, network
5556// configuration, platform version, or task definition need to be updated, you
5557// should create a new task set. For more information, see CreateTaskSet.
5558//
5559// You can add to or subtract from the number of instantiations of a task definition
5560// in a service by specifying the cluster that the service is running in and
5561// a new desiredCount parameter.
5562//
5563// If you have updated the Docker image of your application, you can create
5564// a new task definition with that image and deploy it to your service. The
5565// service scheduler uses the minimum healthy percent and maximum percent parameters
5566// (in the service's deployment configuration) to determine the deployment strategy.
5567//
5568// If your updated Docker image uses the same tag as what is in the existing
5569// task definition for your service (for example, my_image:latest), you do not
5570// need to create a new revision of your task definition. You can update the
5571// service using the forceNewDeployment option. The new tasks launched by the
5572// deployment pull the current image/tag combination from your repository when
5573// they start.
5574//
5575// You can also update the deployment configuration of a service. When a deployment
5576// is triggered by updating the task definition of a service, the service scheduler
5577// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
5578// to determine the deployment strategy.
5579//
5580//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5581//    temporarily during a deployment. For example, if desiredCount is four
5582//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5583//    before starting two new tasks. Tasks for services that do not use a load
5584//    balancer are considered healthy if they are in the RUNNING state. Tasks
5585//    for services that use a load balancer are considered healthy if they are
5586//    in the RUNNING state and the container instance they are hosted on is
5587//    reported as healthy by the load balancer.
5588//
5589//    * The maximumPercent parameter represents an upper limit on the number
5590//    of running tasks during a deployment, which enables you to define the
5591//    deployment batch size. For example, if desiredCount is four tasks, a maximum
5592//    of 200% starts four new tasks before stopping the four older tasks (provided
5593//    that the cluster resources required to do this are available).
5594//
5595// When UpdateService stops a task during a deployment, the equivalent of docker
5596// stop is issued to the containers running in the task. This results in a SIGTERM
5597// and a 30-second timeout, after which SIGKILL is sent and the containers are
5598// forcibly stopped. If the container handles the SIGTERM gracefully and exits
5599// within 30 seconds from receiving it, no SIGKILL is sent.
5600//
5601// When the service scheduler launches new tasks, it determines task placement
5602// in your cluster with the following logic:
5603//
5604//    * Determine which of the container instances in your cluster can support
5605//    your service's task definition (for example, they have the required CPU,
5606//    memory, ports, and container instance attributes).
5607//
5608//    * By default, the service scheduler attempts to balance tasks across Availability
5609//    Zones in this manner (although you can choose a different placement strategy):
5610//    Sort the valid container instances by the fewest number of running tasks
5611//    for this service in the same Availability Zone as the instance. For example,
5612//    if zone A has one running service task and zones B and C each have zero,
5613//    valid container instances in either zone B or C are considered optimal
5614//    for placement. Place the new service task on a valid container instance
5615//    in an optimal Availability Zone (based on the previous steps), favoring
5616//    container instances with the fewest number of running tasks for this service.
5617//
5618// When the service scheduler stops running tasks, it attempts to maintain balance
5619// across the Availability Zones in your cluster using the following logic:
5620//
5621//    * Sort the container instances by the largest number of running tasks
5622//    for this service in the same Availability Zone as the instance. For example,
5623//    if zone A has one running service task and zones B and C each have two,
5624//    container instances in either zone B or C are considered optimal for termination.
5625//
5626//    * Stop the task on a container instance in an optimal Availability Zone
5627//    (based on the previous steps), favoring container instances with the largest
5628//    number of running tasks for this service.
5629//
5630// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5631// with awserr.Error's Code and Message methods to get detailed information about
5632// the error.
5633//
5634// See the AWS API reference guide for Amazon EC2 Container Service's
5635// API operation UpdateService for usage and error information.
5636//
5637// Returned Error Types:
5638//   * ServerException
5639//   These errors are usually caused by a server issue.
5640//
5641//   * ClientException
5642//   These errors are usually caused by a client action, such as using an action
5643//   or resource on behalf of a user that doesn't have permissions to use the
5644//   action or resource, or specifying an identifier that is not valid.
5645//
5646//   * InvalidParameterException
5647//   The specified parameter is invalid. Review the available parameters for the
5648//   API request.
5649//
5650//   * ClusterNotFoundException
5651//   The specified cluster could not be found. You can view your available clusters
5652//   with ListClusters. Amazon ECS clusters are Region-specific.
5653//
5654//   * ServiceNotFoundException
5655//   The specified service could not be found. You can view your available services
5656//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5657//
5658//   * ServiceNotActiveException
5659//   The specified service is not active. You can't update a service that is inactive.
5660//   If you have previously deleted a service, you can re-create it with CreateService.
5661//
5662//   * PlatformUnknownException
5663//   The specified platform version does not exist.
5664//
5665//   * PlatformTaskDefinitionIncompatibilityException
5666//   The specified platform version does not satisfy the task definition's required
5667//   capabilities.
5668//
5669//   * AccessDeniedException
5670//   You do not have authorization to perform the requested action.
5671//
5672// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5673func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
5674	req, out := c.UpdateServiceRequest(input)
5675	return out, req.Send()
5676}
5677
5678// UpdateServiceWithContext is the same as UpdateService with the addition of
5679// the ability to pass a context and additional request options.
5680//
5681// See UpdateService for details on how to use this API operation.
5682//
5683// The context must be non-nil and will be used for request cancellation. If
5684// the context is nil a panic will occur. In the future the SDK may create
5685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5686// for more information on using Contexts.
5687func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
5688	req, out := c.UpdateServiceRequest(input)
5689	req.SetContext(ctx)
5690	req.ApplyOptions(opts...)
5691	return out, req.Send()
5692}
5693
5694const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
5695
5696// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
5697// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
5698// value will be populated with the request's response once the request completes
5699// successfully.
5700//
5701// Use "Send" method on the returned Request to send the API call to the service.
5702// the "output" return value is not valid until after Send returns without error.
5703//
5704// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
5705// API call, and error handling.
5706//
5707// This method is useful when you want to inject custom logic or configuration
5708// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5709//
5710//
5711//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
5712//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
5713//
5714//    err := req.Send()
5715//    if err == nil { // resp is now filled
5716//        fmt.Println(resp)
5717//    }
5718//
5719// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5720func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
5721	op := &request.Operation{
5722		Name:       opUpdateServicePrimaryTaskSet,
5723		HTTPMethod: "POST",
5724		HTTPPath:   "/",
5725	}
5726
5727	if input == nil {
5728		input = &UpdateServicePrimaryTaskSetInput{}
5729	}
5730
5731	output = &UpdateServicePrimaryTaskSetOutput{}
5732	req = c.newRequest(op, input, output)
5733	return
5734}
5735
5736// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
5737//
5738// Modifies which task set in a service is the primary task set. Any parameters
5739// that are updated on the primary task set in a service will transition to
5740// the service. This is used when a service uses the EXTERNAL deployment controller
5741// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5742// in the Amazon Elastic Container Service Developer Guide.
5743//
5744// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5745// with awserr.Error's Code and Message methods to get detailed information about
5746// the error.
5747//
5748// See the AWS API reference guide for Amazon EC2 Container Service's
5749// API operation UpdateServicePrimaryTaskSet for usage and error information.
5750//
5751// Returned Error Types:
5752//   * ServerException
5753//   These errors are usually caused by a server issue.
5754//
5755//   * ClientException
5756//   These errors are usually caused by a client action, such as using an action
5757//   or resource on behalf of a user that doesn't have permissions to use the
5758//   action or resource, or specifying an identifier that is not valid.
5759//
5760//   * InvalidParameterException
5761//   The specified parameter is invalid. Review the available parameters for the
5762//   API request.
5763//
5764//   * ClusterNotFoundException
5765//   The specified cluster could not be found. You can view your available clusters
5766//   with ListClusters. Amazon ECS clusters are Region-specific.
5767//
5768//   * UnsupportedFeatureException
5769//   The specified task is not supported in this Region.
5770//
5771//   * ServiceNotFoundException
5772//   The specified service could not be found. You can view your available services
5773//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5774//
5775//   * ServiceNotActiveException
5776//   The specified service is not active. You can't update a service that is inactive.
5777//   If you have previously deleted a service, you can re-create it with CreateService.
5778//
5779//   * TaskSetNotFoundException
5780//   The specified task set could not be found. You can view your available task
5781//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5782//   and Region.
5783//
5784//   * AccessDeniedException
5785//   You do not have authorization to perform the requested action.
5786//
5787// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5788func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
5789	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5790	return out, req.Send()
5791}
5792
5793// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
5794// the ability to pass a context and additional request options.
5795//
5796// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
5797//
5798// The context must be non-nil and will be used for request cancellation. If
5799// the context is nil a panic will occur. In the future the SDK may create
5800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5801// for more information on using Contexts.
5802func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
5803	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5804	req.SetContext(ctx)
5805	req.ApplyOptions(opts...)
5806	return out, req.Send()
5807}
5808
5809const opUpdateTaskSet = "UpdateTaskSet"
5810
5811// UpdateTaskSetRequest generates a "aws/request.Request" representing the
5812// client's request for the UpdateTaskSet operation. The "output" return
5813// value will be populated with the request's response once the request completes
5814// successfully.
5815//
5816// Use "Send" method on the returned Request to send the API call to the service.
5817// the "output" return value is not valid until after Send returns without error.
5818//
5819// See UpdateTaskSet for more information on using the UpdateTaskSet
5820// API call, and error handling.
5821//
5822// This method is useful when you want to inject custom logic or configuration
5823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5824//
5825//
5826//    // Example sending a request using the UpdateTaskSetRequest method.
5827//    req, resp := client.UpdateTaskSetRequest(params)
5828//
5829//    err := req.Send()
5830//    if err == nil { // resp is now filled
5831//        fmt.Println(resp)
5832//    }
5833//
5834// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5835func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
5836	op := &request.Operation{
5837		Name:       opUpdateTaskSet,
5838		HTTPMethod: "POST",
5839		HTTPPath:   "/",
5840	}
5841
5842	if input == nil {
5843		input = &UpdateTaskSetInput{}
5844	}
5845
5846	output = &UpdateTaskSetOutput{}
5847	req = c.newRequest(op, input, output)
5848	return
5849}
5850
5851// UpdateTaskSet API operation for Amazon EC2 Container Service.
5852//
5853// Modifies a task set. This is used when a service uses the EXTERNAL deployment
5854// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5855// in the Amazon Elastic Container Service Developer Guide.
5856//
5857// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5858// with awserr.Error's Code and Message methods to get detailed information about
5859// the error.
5860//
5861// See the AWS API reference guide for Amazon EC2 Container Service's
5862// API operation UpdateTaskSet for usage and error information.
5863//
5864// Returned Error Types:
5865//   * ServerException
5866//   These errors are usually caused by a server issue.
5867//
5868//   * ClientException
5869//   These errors are usually caused by a client action, such as using an action
5870//   or resource on behalf of a user that doesn't have permissions to use the
5871//   action or resource, or specifying an identifier that is not valid.
5872//
5873//   * InvalidParameterException
5874//   The specified parameter is invalid. Review the available parameters for the
5875//   API request.
5876//
5877//   * ClusterNotFoundException
5878//   The specified cluster could not be found. You can view your available clusters
5879//   with ListClusters. Amazon ECS clusters are Region-specific.
5880//
5881//   * UnsupportedFeatureException
5882//   The specified task is not supported in this Region.
5883//
5884//   * AccessDeniedException
5885//   You do not have authorization to perform the requested action.
5886//
5887//   * ServiceNotFoundException
5888//   The specified service could not be found. You can view your available services
5889//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5890//
5891//   * ServiceNotActiveException
5892//   The specified service is not active. You can't update a service that is inactive.
5893//   If you have previously deleted a service, you can re-create it with CreateService.
5894//
5895//   * TaskSetNotFoundException
5896//   The specified task set could not be found. You can view your available task
5897//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5898//   and Region.
5899//
5900// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5901func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
5902	req, out := c.UpdateTaskSetRequest(input)
5903	return out, req.Send()
5904}
5905
5906// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
5907// the ability to pass a context and additional request options.
5908//
5909// See UpdateTaskSet for details on how to use this API operation.
5910//
5911// The context must be non-nil and will be used for request cancellation. If
5912// the context is nil a panic will occur. In the future the SDK may create
5913// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5914// for more information on using Contexts.
5915func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
5916	req, out := c.UpdateTaskSetRequest(input)
5917	req.SetContext(ctx)
5918	req.ApplyOptions(opts...)
5919	return out, req.Send()
5920}
5921
5922// You do not have authorization to perform the requested action.
5923type AccessDeniedException struct {
5924	_            struct{}                  `type:"structure"`
5925	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5926
5927	Message_ *string `locationName:"message" type:"string"`
5928}
5929
5930// String returns the string representation
5931func (s AccessDeniedException) String() string {
5932	return awsutil.Prettify(s)
5933}
5934
5935// GoString returns the string representation
5936func (s AccessDeniedException) GoString() string {
5937	return s.String()
5938}
5939
5940func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5941	return &AccessDeniedException{
5942		RespMetadata: v,
5943	}
5944}
5945
5946// Code returns the exception type name.
5947func (s *AccessDeniedException) Code() string {
5948	return "AccessDeniedException"
5949}
5950
5951// Message returns the exception's message.
5952func (s *AccessDeniedException) Message() string {
5953	if s.Message_ != nil {
5954		return *s.Message_
5955	}
5956	return ""
5957}
5958
5959// OrigErr always returns nil, satisfies awserr.Error interface.
5960func (s *AccessDeniedException) OrigErr() error {
5961	return nil
5962}
5963
5964func (s *AccessDeniedException) Error() string {
5965	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5966}
5967
5968// Status code returns the HTTP status code for the request's response error.
5969func (s *AccessDeniedException) StatusCode() int {
5970	return s.RespMetadata.StatusCode
5971}
5972
5973// RequestID returns the service's response RequestID for request.
5974func (s *AccessDeniedException) RequestID() string {
5975	return s.RespMetadata.RequestID
5976}
5977
5978// An object representing a container instance or task attachment.
5979type Attachment struct {
5980	_ struct{} `type:"structure"`
5981
5982	// Details of the attachment. For elastic network interfaces, this includes
5983	// the network interface ID, the MAC address, the subnet ID, and the private
5984	// IPv4 address.
5985	Details []*KeyValuePair `locationName:"details" type:"list"`
5986
5987	// The unique identifier for the attachment.
5988	Id *string `locationName:"id" type:"string"`
5989
5990	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
5991	// ATTACHED, DETACHING, DETACHED, and DELETED.
5992	Status *string `locationName:"status" type:"string"`
5993
5994	// The type of the attachment, such as ElasticNetworkInterface.
5995	Type *string `locationName:"type" type:"string"`
5996}
5997
5998// String returns the string representation
5999func (s Attachment) String() string {
6000	return awsutil.Prettify(s)
6001}
6002
6003// GoString returns the string representation
6004func (s Attachment) GoString() string {
6005	return s.String()
6006}
6007
6008// SetDetails sets the Details field's value.
6009func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
6010	s.Details = v
6011	return s
6012}
6013
6014// SetId sets the Id field's value.
6015func (s *Attachment) SetId(v string) *Attachment {
6016	s.Id = &v
6017	return s
6018}
6019
6020// SetStatus sets the Status field's value.
6021func (s *Attachment) SetStatus(v string) *Attachment {
6022	s.Status = &v
6023	return s
6024}
6025
6026// SetType sets the Type field's value.
6027func (s *Attachment) SetType(v string) *Attachment {
6028	s.Type = &v
6029	return s
6030}
6031
6032// An object representing a change in state for a task attachment.
6033type AttachmentStateChange struct {
6034	_ struct{} `type:"structure"`
6035
6036	// The Amazon Resource Name (ARN) of the attachment.
6037	//
6038	// AttachmentArn is a required field
6039	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
6040
6041	// The status of the attachment.
6042	//
6043	// Status is a required field
6044	Status *string `locationName:"status" type:"string" required:"true"`
6045}
6046
6047// String returns the string representation
6048func (s AttachmentStateChange) String() string {
6049	return awsutil.Prettify(s)
6050}
6051
6052// GoString returns the string representation
6053func (s AttachmentStateChange) GoString() string {
6054	return s.String()
6055}
6056
6057// Validate inspects the fields of the type to determine if they are valid.
6058func (s *AttachmentStateChange) Validate() error {
6059	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
6060	if s.AttachmentArn == nil {
6061		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
6062	}
6063	if s.Status == nil {
6064		invalidParams.Add(request.NewErrParamRequired("Status"))
6065	}
6066
6067	if invalidParams.Len() > 0 {
6068		return invalidParams
6069	}
6070	return nil
6071}
6072
6073// SetAttachmentArn sets the AttachmentArn field's value.
6074func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
6075	s.AttachmentArn = &v
6076	return s
6077}
6078
6079// SetStatus sets the Status field's value.
6080func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
6081	s.Status = &v
6082	return s
6083}
6084
6085// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
6086// enable you to extend the Amazon ECS data model by adding custom metadata
6087// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
6088// in the Amazon Elastic Container Service Developer Guide.
6089type Attribute struct {
6090	_ struct{} `type:"structure"`
6091
6092	// The name of the attribute. The name must contain between 1 and 128 characters
6093	// and name may contain letters (uppercase and lowercase), numbers, hyphens,
6094	// underscores, forward slashes, back slashes, or periods.
6095	//
6096	// Name is a required field
6097	Name *string `locationName:"name" type:"string" required:"true"`
6098
6099	// The ID of the target. You can specify the short form ID for a resource or
6100	// the full Amazon Resource Name (ARN).
6101	TargetId *string `locationName:"targetId" type:"string"`
6102
6103	// The type of the target with which to attach the attribute. This parameter
6104	// is required if you use the short form ID for a resource instead of the full
6105	// ARN.
6106	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
6107
6108	// The value of the attribute. The value must contain between 1 and 128 characters
6109	// and may contain letters (uppercase and lowercase), numbers, hyphens, underscores,
6110	// periods, at signs (@), forward slashes, back slashes, colons, or spaces.
6111	// The value cannot contain any leading or trailing whitespace.
6112	Value *string `locationName:"value" type:"string"`
6113}
6114
6115// String returns the string representation
6116func (s Attribute) String() string {
6117	return awsutil.Prettify(s)
6118}
6119
6120// GoString returns the string representation
6121func (s Attribute) GoString() string {
6122	return s.String()
6123}
6124
6125// Validate inspects the fields of the type to determine if they are valid.
6126func (s *Attribute) Validate() error {
6127	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
6128	if s.Name == nil {
6129		invalidParams.Add(request.NewErrParamRequired("Name"))
6130	}
6131
6132	if invalidParams.Len() > 0 {
6133		return invalidParams
6134	}
6135	return nil
6136}
6137
6138// SetName sets the Name field's value.
6139func (s *Attribute) SetName(v string) *Attribute {
6140	s.Name = &v
6141	return s
6142}
6143
6144// SetTargetId sets the TargetId field's value.
6145func (s *Attribute) SetTargetId(v string) *Attribute {
6146	s.TargetId = &v
6147	return s
6148}
6149
6150// SetTargetType sets the TargetType field's value.
6151func (s *Attribute) SetTargetType(v string) *Attribute {
6152	s.TargetType = &v
6153	return s
6154}
6155
6156// SetValue sets the Value field's value.
6157func (s *Attribute) SetValue(v string) *Attribute {
6158	s.Value = &v
6159	return s
6160}
6161
6162// You can apply up to 10 custom attributes per resource. You can view the attributes
6163// of a resource with ListAttributes. You can remove existing attributes on
6164// a resource with DeleteAttributes.
6165type AttributeLimitExceededException struct {
6166	_            struct{}                  `type:"structure"`
6167	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6168
6169	Message_ *string `locationName:"message" type:"string"`
6170}
6171
6172// String returns the string representation
6173func (s AttributeLimitExceededException) String() string {
6174	return awsutil.Prettify(s)
6175}
6176
6177// GoString returns the string representation
6178func (s AttributeLimitExceededException) GoString() string {
6179	return s.String()
6180}
6181
6182func newErrorAttributeLimitExceededException(v protocol.ResponseMetadata) error {
6183	return &AttributeLimitExceededException{
6184		RespMetadata: v,
6185	}
6186}
6187
6188// Code returns the exception type name.
6189func (s *AttributeLimitExceededException) Code() string {
6190	return "AttributeLimitExceededException"
6191}
6192
6193// Message returns the exception's message.
6194func (s *AttributeLimitExceededException) Message() string {
6195	if s.Message_ != nil {
6196		return *s.Message_
6197	}
6198	return ""
6199}
6200
6201// OrigErr always returns nil, satisfies awserr.Error interface.
6202func (s *AttributeLimitExceededException) OrigErr() error {
6203	return nil
6204}
6205
6206func (s *AttributeLimitExceededException) Error() string {
6207	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6208}
6209
6210// Status code returns the HTTP status code for the request's response error.
6211func (s *AttributeLimitExceededException) StatusCode() int {
6212	return s.RespMetadata.StatusCode
6213}
6214
6215// RequestID returns the service's response RequestID for request.
6216func (s *AttributeLimitExceededException) RequestID() string {
6217	return s.RespMetadata.RequestID
6218}
6219
6220// The details of the Auto Scaling group for the capacity provider.
6221type AutoScalingGroupProvider struct {
6222	_ struct{} `type:"structure"`
6223
6224	// The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
6225	//
6226	// AutoScalingGroupArn is a required field
6227	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"`
6228
6229	// The managed scaling settings for the Auto Scaling group capacity provider.
6230	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
6231
6232	// The managed termination protection setting to use for the Auto Scaling group
6233	// capacity provider. This determines whether the Auto Scaling group has managed
6234	// termination protection.
6235	//
6236	// When using managed termination protection, managed scaling must also be used
6237	// otherwise managed termination protection will not work.
6238	//
6239	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
6240	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
6241	// during a scale-in action. The Auto Scaling group and each instance in the
6242	// Auto Scaling group must have instance protection from scale-in actions enabled
6243	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
6244	// in the Auto Scaling User Guide.
6245	//
6246	// When managed termination protection is disabled, your Amazon EC2 instances
6247	// are not protected from termination when the Auto Scaling group scales in.
6248	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
6249}
6250
6251// String returns the string representation
6252func (s AutoScalingGroupProvider) String() string {
6253	return awsutil.Prettify(s)
6254}
6255
6256// GoString returns the string representation
6257func (s AutoScalingGroupProvider) GoString() string {
6258	return s.String()
6259}
6260
6261// Validate inspects the fields of the type to determine if they are valid.
6262func (s *AutoScalingGroupProvider) Validate() error {
6263	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProvider"}
6264	if s.AutoScalingGroupArn == nil {
6265		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupArn"))
6266	}
6267	if s.ManagedScaling != nil {
6268		if err := s.ManagedScaling.Validate(); err != nil {
6269			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
6270		}
6271	}
6272
6273	if invalidParams.Len() > 0 {
6274		return invalidParams
6275	}
6276	return nil
6277}
6278
6279// SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
6280func (s *AutoScalingGroupProvider) SetAutoScalingGroupArn(v string) *AutoScalingGroupProvider {
6281	s.AutoScalingGroupArn = &v
6282	return s
6283}
6284
6285// SetManagedScaling sets the ManagedScaling field's value.
6286func (s *AutoScalingGroupProvider) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProvider {
6287	s.ManagedScaling = v
6288	return s
6289}
6290
6291// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
6292func (s *AutoScalingGroupProvider) SetManagedTerminationProtection(v string) *AutoScalingGroupProvider {
6293	s.ManagedTerminationProtection = &v
6294	return s
6295}
6296
6297// The details of the Auto Scaling group capacity provider to update.
6298type AutoScalingGroupProviderUpdate struct {
6299	_ struct{} `type:"structure"`
6300
6301	// The managed scaling settings for the Auto Scaling group capacity provider.
6302	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
6303
6304	// The managed termination protection setting to use for the Auto Scaling group
6305	// capacity provider. This determines whether the Auto Scaling group has managed
6306	// termination protection.
6307	//
6308	// When using managed termination protection, managed scaling must also be used
6309	// otherwise managed termination protection will not work.
6310	//
6311	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
6312	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
6313	// during a scale-in action. The Auto Scaling group and each instance in the
6314	// Auto Scaling group must have instance protection from scale-in actions enabled
6315	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
6316	// in the Auto Scaling User Guide.
6317	//
6318	// When managed termination protection is disabled, your Amazon EC2 instances
6319	// are not protected from termination when the Auto Scaling group scales in.
6320	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
6321}
6322
6323// String returns the string representation
6324func (s AutoScalingGroupProviderUpdate) String() string {
6325	return awsutil.Prettify(s)
6326}
6327
6328// GoString returns the string representation
6329func (s AutoScalingGroupProviderUpdate) GoString() string {
6330	return s.String()
6331}
6332
6333// Validate inspects the fields of the type to determine if they are valid.
6334func (s *AutoScalingGroupProviderUpdate) Validate() error {
6335	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProviderUpdate"}
6336	if s.ManagedScaling != nil {
6337		if err := s.ManagedScaling.Validate(); err != nil {
6338			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
6339		}
6340	}
6341
6342	if invalidParams.Len() > 0 {
6343		return invalidParams
6344	}
6345	return nil
6346}
6347
6348// SetManagedScaling sets the ManagedScaling field's value.
6349func (s *AutoScalingGroupProviderUpdate) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProviderUpdate {
6350	s.ManagedScaling = v
6351	return s
6352}
6353
6354// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
6355func (s *AutoScalingGroupProviderUpdate) SetManagedTerminationProtection(v string) *AutoScalingGroupProviderUpdate {
6356	s.ManagedTerminationProtection = &v
6357	return s
6358}
6359
6360// An object representing the networking details for a task or service.
6361type AwsVpcConfiguration struct {
6362	_ struct{} `type:"structure"`
6363
6364	// Whether the task's elastic network interface receives a public IP address.
6365	// The default value is DISABLED.
6366	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
6367
6368	// The IDs of the security groups associated with the task or service. If you
6369	// do not specify a security group, the default security group for the VPC is
6370	// used. There is a limit of 5 security groups that can be specified per AwsVpcConfiguration.
6371	//
6372	// All specified security groups must be from the same VPC.
6373	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
6374
6375	// The IDs of the subnets associated with the task or service. There is a limit
6376	// of 16 subnets that can be specified per AwsVpcConfiguration.
6377	//
6378	// All specified subnets must be from the same VPC.
6379	//
6380	// Subnets is a required field
6381	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
6382}
6383
6384// String returns the string representation
6385func (s AwsVpcConfiguration) String() string {
6386	return awsutil.Prettify(s)
6387}
6388
6389// GoString returns the string representation
6390func (s AwsVpcConfiguration) GoString() string {
6391	return s.String()
6392}
6393
6394// Validate inspects the fields of the type to determine if they are valid.
6395func (s *AwsVpcConfiguration) Validate() error {
6396	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
6397	if s.Subnets == nil {
6398		invalidParams.Add(request.NewErrParamRequired("Subnets"))
6399	}
6400
6401	if invalidParams.Len() > 0 {
6402		return invalidParams
6403	}
6404	return nil
6405}
6406
6407// SetAssignPublicIp sets the AssignPublicIp field's value.
6408func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
6409	s.AssignPublicIp = &v
6410	return s
6411}
6412
6413// SetSecurityGroups sets the SecurityGroups field's value.
6414func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
6415	s.SecurityGroups = v
6416	return s
6417}
6418
6419// SetSubnets sets the Subnets field's value.
6420func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
6421	s.Subnets = v
6422	return s
6423}
6424
6425// Your Amazon Web Services account has been blocked. For more information,
6426// contact Amazon Web Services Support (http://aws.amazon.com/contact-us/).
6427type BlockedException struct {
6428	_            struct{}                  `type:"structure"`
6429	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6430
6431	Message_ *string `locationName:"message" type:"string"`
6432}
6433
6434// String returns the string representation
6435func (s BlockedException) String() string {
6436	return awsutil.Prettify(s)
6437}
6438
6439// GoString returns the string representation
6440func (s BlockedException) GoString() string {
6441	return s.String()
6442}
6443
6444func newErrorBlockedException(v protocol.ResponseMetadata) error {
6445	return &BlockedException{
6446		RespMetadata: v,
6447	}
6448}
6449
6450// Code returns the exception type name.
6451func (s *BlockedException) Code() string {
6452	return "BlockedException"
6453}
6454
6455// Message returns the exception's message.
6456func (s *BlockedException) Message() string {
6457	if s.Message_ != nil {
6458		return *s.Message_
6459	}
6460	return ""
6461}
6462
6463// OrigErr always returns nil, satisfies awserr.Error interface.
6464func (s *BlockedException) OrigErr() error {
6465	return nil
6466}
6467
6468func (s *BlockedException) Error() string {
6469	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6470}
6471
6472// Status code returns the HTTP status code for the request's response error.
6473func (s *BlockedException) StatusCode() int {
6474	return s.RespMetadata.StatusCode
6475}
6476
6477// RequestID returns the service's response RequestID for request.
6478func (s *BlockedException) RequestID() string {
6479	return s.RespMetadata.RequestID
6480}
6481
6482// The details of a capacity provider.
6483type CapacityProvider struct {
6484	_ struct{} `type:"structure"`
6485
6486	// The Auto Scaling group settings for the capacity provider.
6487	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"`
6488
6489	// The Amazon Resource Name (ARN) that identifies the capacity provider.
6490	CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"`
6491
6492	// The name of the capacity provider.
6493	Name *string `locationName:"name" type:"string"`
6494
6495	// The current status of the capacity provider. Only capacity providers in an
6496	// ACTIVE state can be used in a cluster. When a capacity provider is successfully
6497	// deleted, it will have an INACTIVE status.
6498	Status *string `locationName:"status" type:"string" enum:"CapacityProviderStatus"`
6499
6500	// The metadata that you apply to the capacity provider to help you categorize
6501	// and organize it. Each tag consists of a key and an optional value, both of
6502	// which you define.
6503	//
6504	// The following basic restrictions apply to tags:
6505	//
6506	//    * Maximum number of tags per resource - 50
6507	//
6508	//    * For each resource, each tag key must be unique, and each tag key can
6509	//    have only one value.
6510	//
6511	//    * Maximum key length - 128 Unicode characters in UTF-8
6512	//
6513	//    * Maximum value length - 256 Unicode characters in UTF-8
6514	//
6515	//    * If your tagging schema is used across multiple services and resources,
6516	//    remember that other services may have restrictions on allowed characters.
6517	//    Generally allowed characters are: letters, numbers, and spaces representable
6518	//    in UTF-8, and the following characters: + - = . _ : / @.
6519	//
6520	//    * Tag keys and values are case-sensitive.
6521	//
6522	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6523	//    as a prefix for either keys or values as it is reserved for Amazon Web
6524	//    Services use. You cannot edit or delete tag keys or values with this prefix.
6525	//    Tags with this prefix do not count against your tags per resource limit.
6526	Tags []*Tag `locationName:"tags" type:"list"`
6527
6528	// The update status of the capacity provider. The following are the possible
6529	// states that will be returned.
6530	//
6531	// DELETE_IN_PROGRESS
6532	//
6533	// The capacity provider is in the process of being deleted.
6534	//
6535	// DELETE_COMPLETE
6536	//
6537	// The capacity provider has been successfully deleted and will have an INACTIVE
6538	// status.
6539	//
6540	// DELETE_FAILED
6541	//
6542	// The capacity provider was unable to be deleted. The update status reason
6543	// will provide further details about why the delete failed.
6544	UpdateStatus *string `locationName:"updateStatus" type:"string" enum:"CapacityProviderUpdateStatus"`
6545
6546	// The update status reason. This provides further details about the update
6547	// status for the capacity provider.
6548	UpdateStatusReason *string `locationName:"updateStatusReason" type:"string"`
6549}
6550
6551// String returns the string representation
6552func (s CapacityProvider) String() string {
6553	return awsutil.Prettify(s)
6554}
6555
6556// GoString returns the string representation
6557func (s CapacityProvider) GoString() string {
6558	return s.String()
6559}
6560
6561// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
6562func (s *CapacityProvider) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CapacityProvider {
6563	s.AutoScalingGroupProvider = v
6564	return s
6565}
6566
6567// SetCapacityProviderArn sets the CapacityProviderArn field's value.
6568func (s *CapacityProvider) SetCapacityProviderArn(v string) *CapacityProvider {
6569	s.CapacityProviderArn = &v
6570	return s
6571}
6572
6573// SetName sets the Name field's value.
6574func (s *CapacityProvider) SetName(v string) *CapacityProvider {
6575	s.Name = &v
6576	return s
6577}
6578
6579// SetStatus sets the Status field's value.
6580func (s *CapacityProvider) SetStatus(v string) *CapacityProvider {
6581	s.Status = &v
6582	return s
6583}
6584
6585// SetTags sets the Tags field's value.
6586func (s *CapacityProvider) SetTags(v []*Tag) *CapacityProvider {
6587	s.Tags = v
6588	return s
6589}
6590
6591// SetUpdateStatus sets the UpdateStatus field's value.
6592func (s *CapacityProvider) SetUpdateStatus(v string) *CapacityProvider {
6593	s.UpdateStatus = &v
6594	return s
6595}
6596
6597// SetUpdateStatusReason sets the UpdateStatusReason field's value.
6598func (s *CapacityProvider) SetUpdateStatusReason(v string) *CapacityProvider {
6599	s.UpdateStatusReason = &v
6600	return s
6601}
6602
6603// The details of a capacity provider strategy. A capacity provider strategy
6604// can be set when using the RunTask or CreateCluster APIs or as the default
6605// capacity provider strategy for a cluster with the CreateCluster API.
6606//
6607// Only capacity providers that are already associated with a cluster and have
6608// an ACTIVE or UPDATING status can be used in a capacity provider strategy.
6609// The PutClusterCapacityProviders API is used to associate a capacity provider
6610// with a cluster.
6611//
6612// If specifying a capacity provider that uses an Auto Scaling group, the capacity
6613// provider must already be created. New Auto Scaling group capacity providers
6614// can be created with the CreateCapacityProvider API operation.
6615//
6616// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
6617// capacity providers. The Fargate capacity providers are available to all accounts
6618// and only need to be associated with a cluster to be used in a capacity provider
6619// strategy.
6620//
6621// A capacity provider strategy may contain a maximum of 6 capacity providers.
6622type CapacityProviderStrategyItem struct {
6623	_ struct{} `type:"structure"`
6624
6625	// The base value designates how many tasks, at a minimum, to run on the specified
6626	// capacity provider. Only one capacity provider in a capacity provider strategy
6627	// can have a base defined. If no value is specified, the default value of 0
6628	// is used.
6629	Base *int64 `locationName:"base" type:"integer"`
6630
6631	// The short name of the capacity provider.
6632	//
6633	// CapacityProvider is a required field
6634	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
6635
6636	// The weight value designates the relative percentage of the total number of
6637	// tasks launched that should use the specified capacity provider. The weight
6638	// value is taken into consideration after the base value, if defined, is satisfied.
6639	//
6640	// If no weight value is specified, the default value of 0 is used. When multiple
6641	// capacity providers are specified within a capacity provider strategy, at
6642	// least one of the capacity providers must have a weight value greater than
6643	// zero and any capacity providers with a weight of 0 will not be used to place
6644	// tasks. If you specify multiple capacity providers in a strategy that all
6645	// have a weight of 0, any RunTask or CreateService actions using the capacity
6646	// provider strategy will fail.
6647	//
6648	// An example scenario for using weights is defining a strategy that contains
6649	// two capacity providers and both have a weight of 1, then when the base is
6650	// satisfied, the tasks will be split evenly across the two capacity providers.
6651	// Using that same logic, if you specify a weight of 1 for capacityProviderA
6652	// and a weight of 4 for capacityProviderB, then for every one task that is
6653	// run using capacityProviderA, four tasks would use capacityProviderB.
6654	Weight *int64 `locationName:"weight" type:"integer"`
6655}
6656
6657// String returns the string representation
6658func (s CapacityProviderStrategyItem) String() string {
6659	return awsutil.Prettify(s)
6660}
6661
6662// GoString returns the string representation
6663func (s CapacityProviderStrategyItem) GoString() string {
6664	return s.String()
6665}
6666
6667// Validate inspects the fields of the type to determine if they are valid.
6668func (s *CapacityProviderStrategyItem) Validate() error {
6669	invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
6670	if s.CapacityProvider == nil {
6671		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
6672	}
6673
6674	if invalidParams.Len() > 0 {
6675		return invalidParams
6676	}
6677	return nil
6678}
6679
6680// SetBase sets the Base field's value.
6681func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
6682	s.Base = &v
6683	return s
6684}
6685
6686// SetCapacityProvider sets the CapacityProvider field's value.
6687func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
6688	s.CapacityProvider = &v
6689	return s
6690}
6691
6692// SetWeight sets the Weight field's value.
6693func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
6694	s.Weight = &v
6695	return s
6696}
6697
6698// These errors are usually caused by a client action, such as using an action
6699// or resource on behalf of a user that doesn't have permissions to use the
6700// action or resource, or specifying an identifier that is not valid.
6701type ClientException struct {
6702	_            struct{}                  `type:"structure"`
6703	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6704
6705	Message_ *string `locationName:"message" type:"string"`
6706}
6707
6708// String returns the string representation
6709func (s ClientException) String() string {
6710	return awsutil.Prettify(s)
6711}
6712
6713// GoString returns the string representation
6714func (s ClientException) GoString() string {
6715	return s.String()
6716}
6717
6718func newErrorClientException(v protocol.ResponseMetadata) error {
6719	return &ClientException{
6720		RespMetadata: v,
6721	}
6722}
6723
6724// Code returns the exception type name.
6725func (s *ClientException) Code() string {
6726	return "ClientException"
6727}
6728
6729// Message returns the exception's message.
6730func (s *ClientException) Message() string {
6731	if s.Message_ != nil {
6732		return *s.Message_
6733	}
6734	return ""
6735}
6736
6737// OrigErr always returns nil, satisfies awserr.Error interface.
6738func (s *ClientException) OrigErr() error {
6739	return nil
6740}
6741
6742func (s *ClientException) Error() string {
6743	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6744}
6745
6746// Status code returns the HTTP status code for the request's response error.
6747func (s *ClientException) StatusCode() int {
6748	return s.RespMetadata.StatusCode
6749}
6750
6751// RequestID returns the service's response RequestID for request.
6752func (s *ClientException) RequestID() string {
6753	return s.RespMetadata.RequestID
6754}
6755
6756// A regional grouping of one or more container instances on which you can run
6757// task requests. Each account receives a default cluster the first time you
6758// use the Amazon ECS service, but you may also create other clusters. Clusters
6759// may contain more than one instance type simultaneously.
6760type Cluster struct {
6761	_ struct{} `type:"structure"`
6762
6763	// The number of services that are running on the cluster in an ACTIVE state.
6764	// You can view these services with ListServices.
6765	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
6766
6767	// The resources attached to a cluster. When using a capacity provider with
6768	// a cluster, the Auto Scaling plan that is created will be returned as a cluster
6769	// attachment.
6770	Attachments []*Attachment `locationName:"attachments" type:"list"`
6771
6772	// The status of the capacity providers associated with the cluster. The following
6773	// are the states that will be returned:
6774	//
6775	// UPDATE_IN_PROGRESS
6776	//
6777	// The available capacity providers for the cluster are updating. This occurs
6778	// when the Auto Scaling plan is provisioning or deprovisioning.
6779	//
6780	// UPDATE_COMPLETE
6781	//
6782	// The capacity providers have successfully updated.
6783	//
6784	// UPDATE_FAILED
6785	//
6786	// The capacity provider updates failed.
6787	AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"`
6788
6789	// The capacity providers associated with the cluster.
6790	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
6791
6792	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
6793	// the arn:aws:ecs namespace, followed by the Region of the cluster, the Amazon
6794	// Web Services account ID of the cluster owner, the cluster namespace, and
6795	// then the cluster name. For example, arn:aws:ecs:region:012345678910:cluster/test.
6796	ClusterArn *string `locationName:"clusterArn" type:"string"`
6797
6798	// A user-generated string that you use to identify your cluster.
6799	ClusterName *string `locationName:"clusterName" type:"string"`
6800
6801	// The execute command configuration for the cluster.
6802	Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"`
6803
6804	// The default capacity provider strategy for the cluster. When services or
6805	// tasks are run in the cluster with no launch type or capacity provider strategy
6806	// specified, the default capacity provider strategy is used.
6807	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
6808
6809	// The number of tasks in the cluster that are in the PENDING state.
6810	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
6811
6812	// The number of container instances registered into the cluster. This includes
6813	// container instances in both ACTIVE and DRAINING status.
6814	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
6815
6816	// The number of tasks in the cluster that are in the RUNNING state.
6817	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
6818
6819	// The settings for the cluster. This parameter indicates whether CloudWatch
6820	// Container Insights is enabled or disabled for a cluster.
6821	Settings []*ClusterSetting `locationName:"settings" type:"list"`
6822
6823	// Additional information about your clusters that are separated by launch type,
6824	// including:
6825	//
6826	//    * runningEC2TasksCount
6827	//
6828	//    * RunningFargateTasksCount
6829	//
6830	//    * pendingEC2TasksCount
6831	//
6832	//    * pendingFargateTasksCount
6833	//
6834	//    * activeEC2ServiceCount
6835	//
6836	//    * activeFargateServiceCount
6837	//
6838	//    * drainingEC2ServiceCount
6839	//
6840	//    * drainingFargateServiceCount
6841	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
6842
6843	// The status of the cluster. The following are the possible states that will
6844	// be returned.
6845	//
6846	// ACTIVE
6847	//
6848	// The cluster is ready to accept tasks and if applicable you can register container
6849	// instances with the cluster.
6850	//
6851	// PROVISIONING
6852	//
6853	// The cluster has capacity providers associated with it and the resources needed
6854	// for the capacity provider are being created.
6855	//
6856	// DEPROVISIONING
6857	//
6858	// The cluster has capacity providers associated with it and the resources needed
6859	// for the capacity provider are being deleted.
6860	//
6861	// FAILED
6862	//
6863	// The cluster has capacity providers associated with it and the resources needed
6864	// for the capacity provider have failed to create.
6865	//
6866	// INACTIVE
6867	//
6868	// The cluster has been deleted. Clusters with an INACTIVE status may remain
6869	// discoverable in your account for a period of time. However, this behavior
6870	// is subject to change in the future, so you should not rely on INACTIVE clusters
6871	// persisting.
6872	Status *string `locationName:"status" type:"string"`
6873
6874	// The metadata that you apply to the cluster to help you categorize and organize
6875	// them. Each tag consists of a key and an optional value, both of which you
6876	// define.
6877	//
6878	// The following basic restrictions apply to tags:
6879	//
6880	//    * Maximum number of tags per resource - 50
6881	//
6882	//    * For each resource, each tag key must be unique, and each tag key can
6883	//    have only one value.
6884	//
6885	//    * Maximum key length - 128 Unicode characters in UTF-8
6886	//
6887	//    * Maximum value length - 256 Unicode characters in UTF-8
6888	//
6889	//    * If your tagging schema is used across multiple services and resources,
6890	//    remember that other services may have restrictions on allowed characters.
6891	//    Generally allowed characters are: letters, numbers, and spaces representable
6892	//    in UTF-8, and the following characters: + - = . _ : / @.
6893	//
6894	//    * Tag keys and values are case-sensitive.
6895	//
6896	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6897	//    as a prefix for either keys or values as it is reserved for Amazon Web
6898	//    Services use. You cannot edit or delete tag keys or values with this prefix.
6899	//    Tags with this prefix do not count against your tags per resource limit.
6900	Tags []*Tag `locationName:"tags" type:"list"`
6901}
6902
6903// String returns the string representation
6904func (s Cluster) String() string {
6905	return awsutil.Prettify(s)
6906}
6907
6908// GoString returns the string representation
6909func (s Cluster) GoString() string {
6910	return s.String()
6911}
6912
6913// SetActiveServicesCount sets the ActiveServicesCount field's value.
6914func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
6915	s.ActiveServicesCount = &v
6916	return s
6917}
6918
6919// SetAttachments sets the Attachments field's value.
6920func (s *Cluster) SetAttachments(v []*Attachment) *Cluster {
6921	s.Attachments = v
6922	return s
6923}
6924
6925// SetAttachmentsStatus sets the AttachmentsStatus field's value.
6926func (s *Cluster) SetAttachmentsStatus(v string) *Cluster {
6927	s.AttachmentsStatus = &v
6928	return s
6929}
6930
6931// SetCapacityProviders sets the CapacityProviders field's value.
6932func (s *Cluster) SetCapacityProviders(v []*string) *Cluster {
6933	s.CapacityProviders = v
6934	return s
6935}
6936
6937// SetClusterArn sets the ClusterArn field's value.
6938func (s *Cluster) SetClusterArn(v string) *Cluster {
6939	s.ClusterArn = &v
6940	return s
6941}
6942
6943// SetClusterName sets the ClusterName field's value.
6944func (s *Cluster) SetClusterName(v string) *Cluster {
6945	s.ClusterName = &v
6946	return s
6947}
6948
6949// SetConfiguration sets the Configuration field's value.
6950func (s *Cluster) SetConfiguration(v *ClusterConfiguration) *Cluster {
6951	s.Configuration = v
6952	return s
6953}
6954
6955// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
6956func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster {
6957	s.DefaultCapacityProviderStrategy = v
6958	return s
6959}
6960
6961// SetPendingTasksCount sets the PendingTasksCount field's value.
6962func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
6963	s.PendingTasksCount = &v
6964	return s
6965}
6966
6967// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
6968func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
6969	s.RegisteredContainerInstancesCount = &v
6970	return s
6971}
6972
6973// SetRunningTasksCount sets the RunningTasksCount field's value.
6974func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
6975	s.RunningTasksCount = &v
6976	return s
6977}
6978
6979// SetSettings sets the Settings field's value.
6980func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
6981	s.Settings = v
6982	return s
6983}
6984
6985// SetStatistics sets the Statistics field's value.
6986func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
6987	s.Statistics = v
6988	return s
6989}
6990
6991// SetStatus sets the Status field's value.
6992func (s *Cluster) SetStatus(v string) *Cluster {
6993	s.Status = &v
6994	return s
6995}
6996
6997// SetTags sets the Tags field's value.
6998func (s *Cluster) SetTags(v []*Tag) *Cluster {
6999	s.Tags = v
7000	return s
7001}
7002
7003// The execute command configuration for the cluster.
7004type ClusterConfiguration struct {
7005	_ struct{} `type:"structure"`
7006
7007	// The details of the execute command configuration.
7008	ExecuteCommandConfiguration *ExecuteCommandConfiguration `locationName:"executeCommandConfiguration" type:"structure"`
7009}
7010
7011// String returns the string representation
7012func (s ClusterConfiguration) String() string {
7013	return awsutil.Prettify(s)
7014}
7015
7016// GoString returns the string representation
7017func (s ClusterConfiguration) GoString() string {
7018	return s.String()
7019}
7020
7021// SetExecuteCommandConfiguration sets the ExecuteCommandConfiguration field's value.
7022func (s *ClusterConfiguration) SetExecuteCommandConfiguration(v *ExecuteCommandConfiguration) *ClusterConfiguration {
7023	s.ExecuteCommandConfiguration = v
7024	return s
7025}
7026
7027// You cannot delete a cluster that has registered container instances. First,
7028// deregister the container instances before you can delete the cluster. For
7029// more information, see DeregisterContainerInstance.
7030type ClusterContainsContainerInstancesException struct {
7031	_            struct{}                  `type:"structure"`
7032	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7033
7034	Message_ *string `locationName:"message" type:"string"`
7035}
7036
7037// String returns the string representation
7038func (s ClusterContainsContainerInstancesException) String() string {
7039	return awsutil.Prettify(s)
7040}
7041
7042// GoString returns the string representation
7043func (s ClusterContainsContainerInstancesException) GoString() string {
7044	return s.String()
7045}
7046
7047func newErrorClusterContainsContainerInstancesException(v protocol.ResponseMetadata) error {
7048	return &ClusterContainsContainerInstancesException{
7049		RespMetadata: v,
7050	}
7051}
7052
7053// Code returns the exception type name.
7054func (s *ClusterContainsContainerInstancesException) Code() string {
7055	return "ClusterContainsContainerInstancesException"
7056}
7057
7058// Message returns the exception's message.
7059func (s *ClusterContainsContainerInstancesException) Message() string {
7060	if s.Message_ != nil {
7061		return *s.Message_
7062	}
7063	return ""
7064}
7065
7066// OrigErr always returns nil, satisfies awserr.Error interface.
7067func (s *ClusterContainsContainerInstancesException) OrigErr() error {
7068	return nil
7069}
7070
7071func (s *ClusterContainsContainerInstancesException) Error() string {
7072	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7073}
7074
7075// Status code returns the HTTP status code for the request's response error.
7076func (s *ClusterContainsContainerInstancesException) StatusCode() int {
7077	return s.RespMetadata.StatusCode
7078}
7079
7080// RequestID returns the service's response RequestID for request.
7081func (s *ClusterContainsContainerInstancesException) RequestID() string {
7082	return s.RespMetadata.RequestID
7083}
7084
7085// You cannot delete a cluster that contains services. First, update the service
7086// to reduce its desired task count to 0 and then delete the service. For more
7087// information, see UpdateService and DeleteService.
7088type ClusterContainsServicesException struct {
7089	_            struct{}                  `type:"structure"`
7090	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7091
7092	Message_ *string `locationName:"message" type:"string"`
7093}
7094
7095// String returns the string representation
7096func (s ClusterContainsServicesException) String() string {
7097	return awsutil.Prettify(s)
7098}
7099
7100// GoString returns the string representation
7101func (s ClusterContainsServicesException) GoString() string {
7102	return s.String()
7103}
7104
7105func newErrorClusterContainsServicesException(v protocol.ResponseMetadata) error {
7106	return &ClusterContainsServicesException{
7107		RespMetadata: v,
7108	}
7109}
7110
7111// Code returns the exception type name.
7112func (s *ClusterContainsServicesException) Code() string {
7113	return "ClusterContainsServicesException"
7114}
7115
7116// Message returns the exception's message.
7117func (s *ClusterContainsServicesException) Message() string {
7118	if s.Message_ != nil {
7119		return *s.Message_
7120	}
7121	return ""
7122}
7123
7124// OrigErr always returns nil, satisfies awserr.Error interface.
7125func (s *ClusterContainsServicesException) OrigErr() error {
7126	return nil
7127}
7128
7129func (s *ClusterContainsServicesException) Error() string {
7130	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7131}
7132
7133// Status code returns the HTTP status code for the request's response error.
7134func (s *ClusterContainsServicesException) StatusCode() int {
7135	return s.RespMetadata.StatusCode
7136}
7137
7138// RequestID returns the service's response RequestID for request.
7139func (s *ClusterContainsServicesException) RequestID() string {
7140	return s.RespMetadata.RequestID
7141}
7142
7143// You cannot delete a cluster that has active tasks.
7144type ClusterContainsTasksException struct {
7145	_            struct{}                  `type:"structure"`
7146	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7147
7148	Message_ *string `locationName:"message" type:"string"`
7149}
7150
7151// String returns the string representation
7152func (s ClusterContainsTasksException) String() string {
7153	return awsutil.Prettify(s)
7154}
7155
7156// GoString returns the string representation
7157func (s ClusterContainsTasksException) GoString() string {
7158	return s.String()
7159}
7160
7161func newErrorClusterContainsTasksException(v protocol.ResponseMetadata) error {
7162	return &ClusterContainsTasksException{
7163		RespMetadata: v,
7164	}
7165}
7166
7167// Code returns the exception type name.
7168func (s *ClusterContainsTasksException) Code() string {
7169	return "ClusterContainsTasksException"
7170}
7171
7172// Message returns the exception's message.
7173func (s *ClusterContainsTasksException) Message() string {
7174	if s.Message_ != nil {
7175		return *s.Message_
7176	}
7177	return ""
7178}
7179
7180// OrigErr always returns nil, satisfies awserr.Error interface.
7181func (s *ClusterContainsTasksException) OrigErr() error {
7182	return nil
7183}
7184
7185func (s *ClusterContainsTasksException) Error() string {
7186	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7187}
7188
7189// Status code returns the HTTP status code for the request's response error.
7190func (s *ClusterContainsTasksException) StatusCode() int {
7191	return s.RespMetadata.StatusCode
7192}
7193
7194// RequestID returns the service's response RequestID for request.
7195func (s *ClusterContainsTasksException) RequestID() string {
7196	return s.RespMetadata.RequestID
7197}
7198
7199// The specified cluster could not be found. You can view your available clusters
7200// with ListClusters. Amazon ECS clusters are Region-specific.
7201type ClusterNotFoundException struct {
7202	_            struct{}                  `type:"structure"`
7203	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7204
7205	Message_ *string `locationName:"message" type:"string"`
7206}
7207
7208// String returns the string representation
7209func (s ClusterNotFoundException) String() string {
7210	return awsutil.Prettify(s)
7211}
7212
7213// GoString returns the string representation
7214func (s ClusterNotFoundException) GoString() string {
7215	return s.String()
7216}
7217
7218func newErrorClusterNotFoundException(v protocol.ResponseMetadata) error {
7219	return &ClusterNotFoundException{
7220		RespMetadata: v,
7221	}
7222}
7223
7224// Code returns the exception type name.
7225func (s *ClusterNotFoundException) Code() string {
7226	return "ClusterNotFoundException"
7227}
7228
7229// Message returns the exception's message.
7230func (s *ClusterNotFoundException) Message() string {
7231	if s.Message_ != nil {
7232		return *s.Message_
7233	}
7234	return ""
7235}
7236
7237// OrigErr always returns nil, satisfies awserr.Error interface.
7238func (s *ClusterNotFoundException) OrigErr() error {
7239	return nil
7240}
7241
7242func (s *ClusterNotFoundException) Error() string {
7243	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7244}
7245
7246// Status code returns the HTTP status code for the request's response error.
7247func (s *ClusterNotFoundException) StatusCode() int {
7248	return s.RespMetadata.StatusCode
7249}
7250
7251// RequestID returns the service's response RequestID for request.
7252func (s *ClusterNotFoundException) RequestID() string {
7253	return s.RespMetadata.RequestID
7254}
7255
7256// The settings to use when creating a cluster. This parameter is used to enable
7257// CloudWatch Container Insights for a cluster.
7258type ClusterSetting struct {
7259	_ struct{} `type:"structure"`
7260
7261	// The name of the cluster setting. The only supported value is containerInsights.
7262	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
7263
7264	// The value to set for the cluster setting. The supported values are enabled
7265	// and disabled. If enabled is specified, CloudWatch Container Insights will
7266	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
7267	// account setting is enabled. If a cluster value is specified, it will override
7268	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
7269	Value *string `locationName:"value" type:"string"`
7270}
7271
7272// String returns the string representation
7273func (s ClusterSetting) String() string {
7274	return awsutil.Prettify(s)
7275}
7276
7277// GoString returns the string representation
7278func (s ClusterSetting) GoString() string {
7279	return s.String()
7280}
7281
7282// SetName sets the Name field's value.
7283func (s *ClusterSetting) SetName(v string) *ClusterSetting {
7284	s.Name = &v
7285	return s
7286}
7287
7288// SetValue sets the Value field's value.
7289func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
7290	s.Value = &v
7291	return s
7292}
7293
7294// A Docker container that is part of a task.
7295type Container struct {
7296	_ struct{} `type:"structure"`
7297
7298	// The Amazon Resource Name (ARN) of the container.
7299	ContainerArn *string `locationName:"containerArn" type:"string"`
7300
7301	// The number of CPU units set for the container. The value will be 0 if no
7302	// value was specified in the container definition when the task definition
7303	// was registered.
7304	Cpu *string `locationName:"cpu" type:"string"`
7305
7306	// The exit code returned from the container.
7307	ExitCode *int64 `locationName:"exitCode" type:"integer"`
7308
7309	// The IDs of each GPU assigned to the container.
7310	GpuIds []*string `locationName:"gpuIds" type:"list"`
7311
7312	// The health status of the container. If health checks are not configured for
7313	// this container in its task definition, then it reports the health status
7314	// as UNKNOWN.
7315	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
7316
7317	// The image used for the container.
7318	Image *string `locationName:"image" type:"string"`
7319
7320	// The container image manifest digest.
7321	//
7322	// The imageDigest is only returned if the container is using an image hosted
7323	// in Amazon ECR, otherwise it is omitted.
7324	ImageDigest *string `locationName:"imageDigest" type:"string"`
7325
7326	// The last known status of the container.
7327	LastStatus *string `locationName:"lastStatus" type:"string"`
7328
7329	// The details of any Amazon ECS managed agents associated with the container.
7330	ManagedAgents []*ManagedAgent `locationName:"managedAgents" type:"list"`
7331
7332	// The hard limit (in MiB) of memory set for the container.
7333	Memory *string `locationName:"memory" type:"string"`
7334
7335	// The soft limit (in MiB) of memory set for the container.
7336	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
7337
7338	// The name of the container.
7339	Name *string `locationName:"name" type:"string"`
7340
7341	// The network bindings associated with the container.
7342	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
7343
7344	// The network interfaces associated with the container.
7345	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
7346
7347	// A short (255 max characters) human-readable string to provide additional
7348	// details about a running or stopped container.
7349	Reason *string `locationName:"reason" type:"string"`
7350
7351	// The ID of the Docker container.
7352	RuntimeId *string `locationName:"runtimeId" type:"string"`
7353
7354	// The ARN of the task.
7355	TaskArn *string `locationName:"taskArn" type:"string"`
7356}
7357
7358// String returns the string representation
7359func (s Container) String() string {
7360	return awsutil.Prettify(s)
7361}
7362
7363// GoString returns the string representation
7364func (s Container) GoString() string {
7365	return s.String()
7366}
7367
7368// SetContainerArn sets the ContainerArn field's value.
7369func (s *Container) SetContainerArn(v string) *Container {
7370	s.ContainerArn = &v
7371	return s
7372}
7373
7374// SetCpu sets the Cpu field's value.
7375func (s *Container) SetCpu(v string) *Container {
7376	s.Cpu = &v
7377	return s
7378}
7379
7380// SetExitCode sets the ExitCode field's value.
7381func (s *Container) SetExitCode(v int64) *Container {
7382	s.ExitCode = &v
7383	return s
7384}
7385
7386// SetGpuIds sets the GpuIds field's value.
7387func (s *Container) SetGpuIds(v []*string) *Container {
7388	s.GpuIds = v
7389	return s
7390}
7391
7392// SetHealthStatus sets the HealthStatus field's value.
7393func (s *Container) SetHealthStatus(v string) *Container {
7394	s.HealthStatus = &v
7395	return s
7396}
7397
7398// SetImage sets the Image field's value.
7399func (s *Container) SetImage(v string) *Container {
7400	s.Image = &v
7401	return s
7402}
7403
7404// SetImageDigest sets the ImageDigest field's value.
7405func (s *Container) SetImageDigest(v string) *Container {
7406	s.ImageDigest = &v
7407	return s
7408}
7409
7410// SetLastStatus sets the LastStatus field's value.
7411func (s *Container) SetLastStatus(v string) *Container {
7412	s.LastStatus = &v
7413	return s
7414}
7415
7416// SetManagedAgents sets the ManagedAgents field's value.
7417func (s *Container) SetManagedAgents(v []*ManagedAgent) *Container {
7418	s.ManagedAgents = v
7419	return s
7420}
7421
7422// SetMemory sets the Memory field's value.
7423func (s *Container) SetMemory(v string) *Container {
7424	s.Memory = &v
7425	return s
7426}
7427
7428// SetMemoryReservation sets the MemoryReservation field's value.
7429func (s *Container) SetMemoryReservation(v string) *Container {
7430	s.MemoryReservation = &v
7431	return s
7432}
7433
7434// SetName sets the Name field's value.
7435func (s *Container) SetName(v string) *Container {
7436	s.Name = &v
7437	return s
7438}
7439
7440// SetNetworkBindings sets the NetworkBindings field's value.
7441func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
7442	s.NetworkBindings = v
7443	return s
7444}
7445
7446// SetNetworkInterfaces sets the NetworkInterfaces field's value.
7447func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
7448	s.NetworkInterfaces = v
7449	return s
7450}
7451
7452// SetReason sets the Reason field's value.
7453func (s *Container) SetReason(v string) *Container {
7454	s.Reason = &v
7455	return s
7456}
7457
7458// SetRuntimeId sets the RuntimeId field's value.
7459func (s *Container) SetRuntimeId(v string) *Container {
7460	s.RuntimeId = &v
7461	return s
7462}
7463
7464// SetTaskArn sets the TaskArn field's value.
7465func (s *Container) SetTaskArn(v string) *Container {
7466	s.TaskArn = &v
7467	return s
7468}
7469
7470// Container definitions are used in task definitions to describe the different
7471// containers that are launched as part of a task.
7472type ContainerDefinition struct {
7473	_ struct{} `type:"structure"`
7474
7475	// The command that is passed to the container. This parameter maps to Cmd in
7476	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7477	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7478	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7479	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
7480	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
7481	// arguments, each argument should be a separated string in the array.
7482	Command []*string `locationName:"command" type:"list"`
7483
7484	// The number of cpu units reserved for the container. This parameter maps to
7485	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7486	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7487	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7488	//
7489	// This field is optional for tasks using the Fargate launch type, and the only
7490	// requirement is that the total amount of CPU reserved for all containers within
7491	// a task be lower than the task-level cpu value.
7492	//
7493	// You can determine the number of CPU units that are available per EC2 instance
7494	// type by multiplying the vCPUs listed for that instance type on the Amazon
7495	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
7496	// 1,024.
7497	//
7498	// Linux containers share unallocated CPU units with other containers on the
7499	// container instance with the same ratio as their allocated amount. For example,
7500	// if you run a single-container task on a single-core instance type with 512
7501	// CPU units specified for that container, and that is the only task running
7502	// on the container instance, that container could use the full 1,024 CPU unit
7503	// share at any given time. However, if you launched another copy of the same
7504	// task on that container instance, each task would be guaranteed a minimum
7505	// of 512 CPU units when needed, and each container could float to higher CPU
7506	// usage if the other container was not using it, but if both tasks were 100%
7507	// active all of the time, they would be limited to 512 CPU units.
7508	//
7509	// On Linux container instances, the Docker daemon on the container instance
7510	// uses the CPU value to calculate the relative CPU share ratios for running
7511	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
7512	// in the Docker documentation. The minimum valid CPU share value that the Linux
7513	// kernel allows is 2. However, the CPU parameter is not required, and you can
7514	// use CPU values below 2 in your container definitions. For CPU values below
7515	// 2 (including null), the behavior varies based on your Amazon ECS container
7516	// agent version:
7517	//
7518	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
7519	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
7520	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
7521	//    to two CPU shares.
7522	//
7523	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
7524	//    of 1 are passed to Docker as 2.
7525	//
7526	// On Windows container instances, the CPU limit is enforced as an absolute
7527	// limit, or a quota. Windows containers only have access to the specified amount
7528	// of CPU that is described in the task definition. A null or zero CPU value
7529	// is passed to Docker as 0, which Windows interprets as 1% of one CPU.
7530	Cpu *int64 `locationName:"cpu" type:"integer"`
7531
7532	// The dependencies defined for container startup and shutdown. A container
7533	// can contain multiple dependencies. When a dependency is defined for container
7534	// startup, for container shutdown it is reversed.
7535	//
7536	// For tasks using the EC2 launch type, the container instances require at least
7537	// version 1.26.0 of the container agent to enable container dependencies. However,
7538	// we recommend using the latest container agent version. For information about
7539	// checking your agent version and updating to the latest version, see Updating
7540	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7541	// in the Amazon Elastic Container Service Developer Guide. If you are using
7542	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7543	// of the ecs-init package. If your container instances are launched from version
7544	// 20190301 or later, then they contain the required versions of the container
7545	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7546	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7547	// in the Amazon Elastic Container Service Developer Guide.
7548	//
7549	// For tasks using the Fargate launch type, the task or service requires platform
7550	// version 1.3.0 or later.
7551	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
7552
7553	// When this parameter is true, networking is disabled within the container.
7554	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7555	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
7556	//
7557	// This parameter is not supported for Windows containers.
7558	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
7559
7560	// A list of DNS search domains that are presented to the container. This parameter
7561	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7562	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7563	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7564	//
7565	// This parameter is not supported for Windows containers.
7566	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
7567
7568	// A list of DNS servers that are presented to the container. This parameter
7569	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7570	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7571	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7572	//
7573	// This parameter is not supported for Windows containers.
7574	DnsServers []*string `locationName:"dnsServers" type:"list"`
7575
7576	// A key/value map of labels to add to the container. This parameter maps to
7577	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7578	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7579	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7580	// This parameter requires version 1.18 of the Docker Remote API or greater
7581	// on your container instance. To check the Docker Remote API version on your
7582	// container instance, log in to your container instance and run the following
7583	// command: sudo docker version --format '{{.Server.APIVersion}}'
7584	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
7585
7586	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
7587	// security systems. This field is not valid for containers in tasks using the
7588	// Fargate launch type.
7589	//
7590	// With Windows containers, this parameter can be used to reference a credential
7591	// spec file when configuring a container for Active Directory authentication.
7592	// For more information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html)
7593	// in the Amazon Elastic Container Service Developer Guide.
7594	//
7595	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7596	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7597	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7598	//
7599	// The Amazon ECS container agent running on a container instance must register
7600	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
7601	// variables before containers placed on that instance can use these security
7602	// options. For more information, see Amazon ECS Container Agent Configuration
7603	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7604	// in the Amazon Elastic Container Service Developer Guide.
7605	//
7606	// For more information about valid values, see Docker Run Security Configuration
7607	// (https://docs.docker.com/engine/reference/run/#security-configuration).
7608	//
7609	// Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" |
7610	// "credentialspec:CredentialSpecFilePath"
7611	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
7612
7613	//
7614	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
7615	// parameters. If you have problems using entryPoint, update your container
7616	// agent or enter your commands and arguments as command array items instead.
7617	//
7618	// The entry point that is passed to the container. This parameter maps to Entrypoint
7619	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7620	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7621	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7622	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
7623	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
7624	EntryPoint []*string `locationName:"entryPoint" type:"list"`
7625
7626	// The environment variables to pass to a container. This parameter maps to
7627	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7628	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7629	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7630	//
7631	// We do not recommend using plaintext environment variables for sensitive information,
7632	// such as credential data.
7633	Environment []*KeyValuePair `locationName:"environment" type:"list"`
7634
7635	// A list of files containing the environment variables to pass to a container.
7636	// This parameter maps to the --env-file option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7637	//
7638	// You can specify up to ten environment files. The file must have a .env file
7639	// extension. Each line in an environment file should contain an environment
7640	// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
7641	// comments and are ignored. For more information on the environment variable
7642	// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
7643	//
7644	// If there are environment variables specified using the environment parameter
7645	// in a container definition, they take precedence over the variables contained
7646	// within an environment file. If multiple environment files are specified that
7647	// contain the same variable, they are processed from the top down. It is recommended
7648	// to use unique variable names. For more information, see Specifying Environment
7649	// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
7650	// in the Amazon Elastic Container Service Developer Guide.
7651	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
7652
7653	// If the essential parameter of a container is marked as true, and that container
7654	// fails or stops for any reason, all other containers that are part of the
7655	// task are stopped. If the essential parameter of a container is marked as
7656	// false, then its failure does not affect the rest of the containers in a task.
7657	// If this parameter is omitted, a container is assumed to be essential.
7658	//
7659	// All tasks must have at least one essential container. If you have an application
7660	// that is composed of multiple containers, you should group containers that
7661	// are used for a common purpose into components, and separate the different
7662	// components into multiple task definitions. For more information, see Application
7663	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
7664	// in the Amazon Elastic Container Service Developer Guide.
7665	Essential *bool `locationName:"essential" type:"boolean"`
7666
7667	// A list of hostnames and IP address mappings to append to the /etc/hosts file
7668	// on the container. This parameter maps to ExtraHosts in the Create a container
7669	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7670	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7671	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7672	//
7673	// This parameter is not supported for Windows containers or tasks that use
7674	// the awsvpc network mode.
7675	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
7676
7677	// The FireLens configuration for the container. This is used to specify and
7678	// configure a log router for container logs. For more information, see Custom
7679	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
7680	// in the Amazon Elastic Container Service Developer Guide.
7681	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
7682
7683	// The container health check command and associated configuration parameters
7684	// for the container. This parameter maps to HealthCheck in the Create a container
7685	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7686	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7687	// the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7688	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
7689
7690	// The hostname to use for your container. This parameter maps to Hostname in
7691	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7692	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7693	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7694	//
7695	// The hostname parameter is not supported if you are using the awsvpc network
7696	// mode.
7697	Hostname *string `locationName:"hostname" type:"string"`
7698
7699	// The image used to start a container. This string is passed directly to the
7700	// Docker daemon. Images in the Docker Hub registry are available by default.
7701	// Other repositories are specified with either repository-url/image:tag or
7702	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
7703	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
7704	// signs are allowed. This parameter maps to Image in the Create a container
7705	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7706	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7707	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7708	//
7709	//    * When a new task starts, the Amazon ECS container agent pulls the latest
7710	//    version of the specified image and tag for the container to use. However,
7711	//    subsequent updates to a repository image are not propagated to already
7712	//    running tasks.
7713	//
7714	//    * Images in Amazon ECR repositories can be specified by either using the
7715	//    full registry/repository:tag or registry/repository@digest. For example,
7716	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
7717	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
7718	//
7719	//    * Images in official repositories on Docker Hub use a single name (for
7720	//    example, ubuntu or mongo).
7721	//
7722	//    * Images in other repositories on Docker Hub are qualified with an organization
7723	//    name (for example, amazon/amazon-ecs-agent).
7724	//
7725	//    * Images in other online repositories are qualified further by a domain
7726	//    name (for example, quay.io/assemblyline/ubuntu).
7727	Image *string `locationName:"image" type:"string"`
7728
7729	// When this parameter is true, this allows you to deploy containerized applications
7730	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
7731	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7732	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7733	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7734	Interactive *bool `locationName:"interactive" type:"boolean"`
7735
7736	// The links parameter allows containers to communicate with each other without
7737	// the need for port mappings. This parameter is only supported if the network
7738	// mode of a task definition is bridge. The name:internalName construct is analogous
7739	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
7740	// numbers, underscores, and hyphens are allowed. For more information about
7741	// linking Docker containers, go to Legacy container links (https://docs.docker.com/network/links/)
7742	// in the Docker documentation. This parameter maps to Links in the Create a
7743	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7744	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7745	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7746	//
7747	// This parameter is not supported for Windows containers.
7748	//
7749	// Containers that are collocated on a single container instance may be able
7750	// to communicate with each other without requiring links or host port mappings.
7751	// Network isolation is achieved on the container instance using security groups
7752	// and VPC settings.
7753	Links []*string `locationName:"links" type:"list"`
7754
7755	// Linux-specific modifications that are applied to the container, such as Linux
7756	// kernel capabilities. For more information see KernelCapabilities.
7757	//
7758	// This parameter is not supported for Windows containers.
7759	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
7760
7761	// The log configuration specification for the container.
7762	//
7763	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7764	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7765	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7766	// By default, containers use the same logging driver that the Docker daemon
7767	// uses. However the container may use a different logging driver than the Docker
7768	// daemon by specifying a log driver with this parameter in the container definition.
7769	// To use a different logging driver for a container, the log system must be
7770	// configured properly on the container instance (or on a different log server
7771	// for remote logging options). For more information on the options for different
7772	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
7773	// in the Docker documentation.
7774	//
7775	// Amazon ECS currently supports a subset of the logging drivers available to
7776	// the Docker daemon (shown in the LogConfiguration data type). Additional log
7777	// drivers may be available in future releases of the Amazon ECS container agent.
7778	//
7779	// This parameter requires version 1.18 of the Docker Remote API or greater
7780	// on your container instance. To check the Docker Remote API version on your
7781	// container instance, log in to your container instance and run the following
7782	// command: sudo docker version --format '{{.Server.APIVersion}}'
7783	//
7784	// The Amazon ECS container agent running on a container instance must register
7785	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
7786	// environment variable before containers placed on that instance can use these
7787	// log configuration options. For more information, see Amazon ECS Container
7788	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7789	// in the Amazon Elastic Container Service Developer Guide.
7790	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
7791
7792	// The amount (in MiB) of memory to present to the container. If your container
7793	// attempts to exceed the memory specified here, the container is killed. The
7794	// total amount of memory reserved for all containers within a task must be
7795	// lower than the task memory value, if one is specified. This parameter maps
7796	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7797	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7798	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7799	//
7800	// If using the Fargate launch type, this parameter is optional.
7801	//
7802	// If using the EC2 launch type, you must specify either a task-level memory
7803	// value or a container-level memory value. If you specify both a container-level
7804	// memory and memoryReservation value, memory must be greater than memoryReservation.
7805	// If you specify memoryReservation, then that value is subtracted from the
7806	// available memory resources for the container instance on which the container
7807	// is placed. Otherwise, the value of memory is used.
7808	//
7809	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7810	// so you should not specify fewer than 4 MiB of memory for your containers.
7811	Memory *int64 `locationName:"memory" type:"integer"`
7812
7813	// The soft limit (in MiB) of memory to reserve for the container. When system
7814	// memory is under heavy contention, Docker attempts to keep the container memory
7815	// to this soft limit. However, your container can consume more memory when
7816	// it needs to, up to either the hard limit specified with the memory parameter
7817	// (if applicable), or all of the available memory on the container instance,
7818	// whichever comes first. This parameter maps to MemoryReservation in the Create
7819	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7820	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7821	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7822	//
7823	// If a task-level memory value is not specified, you must specify a non-zero
7824	// integer for one or both of memory or memoryReservation in a container definition.
7825	// If you specify both, memory must be greater than memoryReservation. If you
7826	// specify memoryReservation, then that value is subtracted from the available
7827	// memory resources for the container instance on which the container is placed.
7828	// Otherwise, the value of memory is used.
7829	//
7830	// For example, if your container normally uses 128 MiB of memory, but occasionally
7831	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
7832	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
7833	// allow the container to only reserve 128 MiB of memory from the remaining
7834	// resources on the container instance, but also allow the container to consume
7835	// more memory resources when needed.
7836	//
7837	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7838	// so you should not specify fewer than 4 MiB of memory for your containers.
7839	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
7840
7841	// The mount points for data volumes in your container.
7842	//
7843	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7844	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7845	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7846	//
7847	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
7848	// Windows containers cannot mount directories on a different drive, and mount
7849	// point cannot be across drives.
7850	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
7851
7852	// The name of a container. If you are linking multiple containers together
7853	// in a task definition, the name of one container can be entered in the links
7854	// of another container to connect the containers. Up to 255 letters (uppercase
7855	// and lowercase), numbers, underscores, and hyphens are allowed. This parameter
7856	// maps to name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7857	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7858	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7859	Name *string `locationName:"name" type:"string"`
7860
7861	// The list of port mappings for the container. Port mappings allow containers
7862	// to access ports on the host container instance to send or receive traffic.
7863	//
7864	// For task definitions that use the awsvpc network mode, you should only specify
7865	// the containerPort. The hostPort can be left blank or it must be the same
7866	// value as the containerPort.
7867	//
7868	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
7869	// There is no loopback for port mappings on Windows, so you cannot access a
7870	// container's mapped port from the host itself.
7871	//
7872	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7873	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7874	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7875	// If the network mode of a task definition is set to none, then you can't specify
7876	// port mappings. If the network mode of a task definition is set to host, then
7877	// host ports must either be undefined or they must match the container port
7878	// in the port mapping.
7879	//
7880	// After a task reaches the RUNNING status, manual and automatic host and container
7881	// port assignments are visible in the Network Bindings section of a container
7882	// description for a selected task in the Amazon ECS console. The assignments
7883	// are also visible in the networkBindings section DescribeTasks responses.
7884	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
7885
7886	// When this parameter is true, the container is given elevated privileges on
7887	// the host container instance (similar to the root user). This parameter maps
7888	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7889	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7890	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7891	//
7892	// This parameter is not supported for Windows containers or tasks run on Fargate.
7893	Privileged *bool `locationName:"privileged" type:"boolean"`
7894
7895	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
7896	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7897	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7898	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7899	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
7900
7901	// When this parameter is true, the container is given read-only access to its
7902	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
7903	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7904	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7905	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7906	//
7907	// This parameter is not supported for Windows containers.
7908	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
7909
7910	// The private repository authentication credentials to use.
7911	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
7912
7913	// The type and amount of a resource to assign to a container. The only supported
7914	// resource is a GPU.
7915	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
7916
7917	// The secrets to pass to the container. For more information, see Specifying
7918	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
7919	// in the Amazon Elastic Container Service Developer Guide.
7920	Secrets []*Secret `locationName:"secrets" type:"list"`
7921
7922	// Time duration (in seconds) to wait before giving up on resolving dependencies
7923	// for a container. For example, you specify two containers in a task definition
7924	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
7925	// or HEALTHY status. If a startTimeout value is specified for containerB and
7926	// it does not reach the desired status within that time then containerA will
7927	// give up and not start. This results in the task transitioning to a STOPPED
7928	// state.
7929	//
7930	// When the ECS_CONTAINER_START_TIMEOUT container agent configuration variable
7931	// is used, it is enforced indendently from this start timeout value.
7932	//
7933	// For tasks using the Fargate launch type, this parameter requires that the
7934	// task or service uses platform version 1.3.0 or later.
7935	//
7936	// For tasks using the EC2 launch type, your container instances require at
7937	// least version 1.26.0 of the container agent to enable a container start timeout
7938	// value. However, we recommend using the latest container agent version. For
7939	// information about checking your agent version and updating to the latest
7940	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7941	// in the Amazon Elastic Container Service Developer Guide. If you are using
7942	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7943	// of the ecs-init package. If your container instances are launched from version
7944	// 20190301 or later, then they contain the required versions of the container
7945	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7946	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7947	// in the Amazon Elastic Container Service Developer Guide.
7948	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
7949
7950	// Time duration (in seconds) to wait before the container is forcefully killed
7951	// if it doesn't exit normally on its own.
7952	//
7953	// For tasks using the Fargate launch type, the task or service requires platform
7954	// version 1.3.0 or later. The max stop timeout value is 120 seconds and if
7955	// the parameter is not specified, the default value of 30 seconds is used.
7956	//
7957	// For tasks using the EC2 launch type, if the stopTimeout parameter is not
7958	// specified, the value set for the Amazon ECS container agent configuration
7959	// variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout
7960	// parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable
7961	// are set, then the default values of 30 seconds for Linux containers and 30
7962	// seconds on Windows containers are used. Your container instances require
7963	// at least version 1.26.0 of the container agent to enable a container stop
7964	// timeout value. However, we recommend using the latest container agent version.
7965	// For information about checking your agent version and updating to the latest
7966	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7967	// in the Amazon Elastic Container Service Developer Guide. If you are using
7968	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7969	// of the ecs-init package. If your container instances are launched from version
7970	// 20190301 or later, then they contain the required versions of the container
7971	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7972	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7973	// in the Amazon Elastic Container Service Developer Guide.
7974	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
7975
7976	// A list of namespaced kernel parameters to set in the container. This parameter
7977	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7978	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7979	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7980	//
7981	// It is not recommended that you specify network-related systemControls parameters
7982	// for multiple containers in a single task that also uses either the awsvpc
7983	// or host network modes. For tasks that use the awsvpc network mode, the container
7984	// that is started last determines which systemControls parameters take effect.
7985	// For tasks that use the host network mode, it changes the container instance's
7986	// namespaced kernel parameters as well as the containers.
7987	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
7988
7989	// A list of ulimits to set in the container. If a ulimit value is specified
7990	// in a task definition, it will override the default values set by Docker.
7991	// This parameter maps to Ulimits in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7992	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7993	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7994	// Valid naming values are displayed in the Ulimit data type.
7995	//
7996	// Amazon ECS tasks hosted on Fargate use the default resource limit values
7997	// set by the operating system with the exception of the nofile resource limit
7998	// parameter which Fargate overrides. The nofile resource limit sets a restriction
7999	// on the number of open files that a container can use. The default nofile
8000	// soft limit is 1024 and hard limit is 4096.
8001	//
8002	// This parameter requires version 1.18 of the Docker Remote API or greater
8003	// on your container instance. To check the Docker Remote API version on your
8004	// container instance, log in to your container instance and run the following
8005	// command: sudo docker version --format '{{.Server.APIVersion}}'
8006	//
8007	// This parameter is not supported for Windows containers.
8008	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
8009
8010	// The user to use inside the container. This parameter maps to User in the
8011	// Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
8012	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
8013	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
8014	//
8015	// When running tasks using the host network mode, you should not run containers
8016	// using the root user (UID 0). It is considered best practice to use a non-root
8017	// user.
8018	//
8019	// You can specify the user using the following formats. If specifying a UID
8020	// or GID, you must specify it as a positive integer.
8021	//
8022	//    * user
8023	//
8024	//    * user:group
8025	//
8026	//    * uid
8027	//
8028	//    * uid:gid
8029	//
8030	//    * user:gid
8031	//
8032	//    * uid:group
8033	//
8034	// This parameter is not supported for Windows containers.
8035	User *string `locationName:"user" type:"string"`
8036
8037	// Data volumes to mount from another container. This parameter maps to VolumesFrom
8038	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
8039	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
8040	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
8041	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
8042
8043	// The working directory in which to run commands inside the container. This
8044	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
8045	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
8046	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
8047	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
8048}
8049
8050// String returns the string representation
8051func (s ContainerDefinition) String() string {
8052	return awsutil.Prettify(s)
8053}
8054
8055// GoString returns the string representation
8056func (s ContainerDefinition) GoString() string {
8057	return s.String()
8058}
8059
8060// Validate inspects the fields of the type to determine if they are valid.
8061func (s *ContainerDefinition) Validate() error {
8062	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
8063	if s.DependsOn != nil {
8064		for i, v := range s.DependsOn {
8065			if v == nil {
8066				continue
8067			}
8068			if err := v.Validate(); err != nil {
8069				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
8070			}
8071		}
8072	}
8073	if s.EnvironmentFiles != nil {
8074		for i, v := range s.EnvironmentFiles {
8075			if v == nil {
8076				continue
8077			}
8078			if err := v.Validate(); err != nil {
8079				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
8080			}
8081		}
8082	}
8083	if s.ExtraHosts != nil {
8084		for i, v := range s.ExtraHosts {
8085			if v == nil {
8086				continue
8087			}
8088			if err := v.Validate(); err != nil {
8089				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
8090			}
8091		}
8092	}
8093	if s.FirelensConfiguration != nil {
8094		if err := s.FirelensConfiguration.Validate(); err != nil {
8095			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
8096		}
8097	}
8098	if s.HealthCheck != nil {
8099		if err := s.HealthCheck.Validate(); err != nil {
8100			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
8101		}
8102	}
8103	if s.LinuxParameters != nil {
8104		if err := s.LinuxParameters.Validate(); err != nil {
8105			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
8106		}
8107	}
8108	if s.LogConfiguration != nil {
8109		if err := s.LogConfiguration.Validate(); err != nil {
8110			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
8111		}
8112	}
8113	if s.RepositoryCredentials != nil {
8114		if err := s.RepositoryCredentials.Validate(); err != nil {
8115			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
8116		}
8117	}
8118	if s.ResourceRequirements != nil {
8119		for i, v := range s.ResourceRequirements {
8120			if v == nil {
8121				continue
8122			}
8123			if err := v.Validate(); err != nil {
8124				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
8125			}
8126		}
8127	}
8128	if s.Secrets != nil {
8129		for i, v := range s.Secrets {
8130			if v == nil {
8131				continue
8132			}
8133			if err := v.Validate(); err != nil {
8134				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
8135			}
8136		}
8137	}
8138	if s.Ulimits != nil {
8139		for i, v := range s.Ulimits {
8140			if v == nil {
8141				continue
8142			}
8143			if err := v.Validate(); err != nil {
8144				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
8145			}
8146		}
8147	}
8148
8149	if invalidParams.Len() > 0 {
8150		return invalidParams
8151	}
8152	return nil
8153}
8154
8155// SetCommand sets the Command field's value.
8156func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
8157	s.Command = v
8158	return s
8159}
8160
8161// SetCpu sets the Cpu field's value.
8162func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
8163	s.Cpu = &v
8164	return s
8165}
8166
8167// SetDependsOn sets the DependsOn field's value.
8168func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
8169	s.DependsOn = v
8170	return s
8171}
8172
8173// SetDisableNetworking sets the DisableNetworking field's value.
8174func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
8175	s.DisableNetworking = &v
8176	return s
8177}
8178
8179// SetDnsSearchDomains sets the DnsSearchDomains field's value.
8180func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
8181	s.DnsSearchDomains = v
8182	return s
8183}
8184
8185// SetDnsServers sets the DnsServers field's value.
8186func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
8187	s.DnsServers = v
8188	return s
8189}
8190
8191// SetDockerLabels sets the DockerLabels field's value.
8192func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
8193	s.DockerLabels = v
8194	return s
8195}
8196
8197// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
8198func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
8199	s.DockerSecurityOptions = v
8200	return s
8201}
8202
8203// SetEntryPoint sets the EntryPoint field's value.
8204func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
8205	s.EntryPoint = v
8206	return s
8207}
8208
8209// SetEnvironment sets the Environment field's value.
8210func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
8211	s.Environment = v
8212	return s
8213}
8214
8215// SetEnvironmentFiles sets the EnvironmentFiles field's value.
8216func (s *ContainerDefinition) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerDefinition {
8217	s.EnvironmentFiles = v
8218	return s
8219}
8220
8221// SetEssential sets the Essential field's value.
8222func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
8223	s.Essential = &v
8224	return s
8225}
8226
8227// SetExtraHosts sets the ExtraHosts field's value.
8228func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
8229	s.ExtraHosts = v
8230	return s
8231}
8232
8233// SetFirelensConfiguration sets the FirelensConfiguration field's value.
8234func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
8235	s.FirelensConfiguration = v
8236	return s
8237}
8238
8239// SetHealthCheck sets the HealthCheck field's value.
8240func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
8241	s.HealthCheck = v
8242	return s
8243}
8244
8245// SetHostname sets the Hostname field's value.
8246func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
8247	s.Hostname = &v
8248	return s
8249}
8250
8251// SetImage sets the Image field's value.
8252func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
8253	s.Image = &v
8254	return s
8255}
8256
8257// SetInteractive sets the Interactive field's value.
8258func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
8259	s.Interactive = &v
8260	return s
8261}
8262
8263// SetLinks sets the Links field's value.
8264func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
8265	s.Links = v
8266	return s
8267}
8268
8269// SetLinuxParameters sets the LinuxParameters field's value.
8270func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
8271	s.LinuxParameters = v
8272	return s
8273}
8274
8275// SetLogConfiguration sets the LogConfiguration field's value.
8276func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
8277	s.LogConfiguration = v
8278	return s
8279}
8280
8281// SetMemory sets the Memory field's value.
8282func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
8283	s.Memory = &v
8284	return s
8285}
8286
8287// SetMemoryReservation sets the MemoryReservation field's value.
8288func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
8289	s.MemoryReservation = &v
8290	return s
8291}
8292
8293// SetMountPoints sets the MountPoints field's value.
8294func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
8295	s.MountPoints = v
8296	return s
8297}
8298
8299// SetName sets the Name field's value.
8300func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
8301	s.Name = &v
8302	return s
8303}
8304
8305// SetPortMappings sets the PortMappings field's value.
8306func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
8307	s.PortMappings = v
8308	return s
8309}
8310
8311// SetPrivileged sets the Privileged field's value.
8312func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
8313	s.Privileged = &v
8314	return s
8315}
8316
8317// SetPseudoTerminal sets the PseudoTerminal field's value.
8318func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
8319	s.PseudoTerminal = &v
8320	return s
8321}
8322
8323// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
8324func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
8325	s.ReadonlyRootFilesystem = &v
8326	return s
8327}
8328
8329// SetRepositoryCredentials sets the RepositoryCredentials field's value.
8330func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
8331	s.RepositoryCredentials = v
8332	return s
8333}
8334
8335// SetResourceRequirements sets the ResourceRequirements field's value.
8336func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
8337	s.ResourceRequirements = v
8338	return s
8339}
8340
8341// SetSecrets sets the Secrets field's value.
8342func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
8343	s.Secrets = v
8344	return s
8345}
8346
8347// SetStartTimeout sets the StartTimeout field's value.
8348func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
8349	s.StartTimeout = &v
8350	return s
8351}
8352
8353// SetStopTimeout sets the StopTimeout field's value.
8354func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
8355	s.StopTimeout = &v
8356	return s
8357}
8358
8359// SetSystemControls sets the SystemControls field's value.
8360func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
8361	s.SystemControls = v
8362	return s
8363}
8364
8365// SetUlimits sets the Ulimits field's value.
8366func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
8367	s.Ulimits = v
8368	return s
8369}
8370
8371// SetUser sets the User field's value.
8372func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
8373	s.User = &v
8374	return s
8375}
8376
8377// SetVolumesFrom sets the VolumesFrom field's value.
8378func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
8379	s.VolumesFrom = v
8380	return s
8381}
8382
8383// SetWorkingDirectory sets the WorkingDirectory field's value.
8384func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
8385	s.WorkingDirectory = &v
8386	return s
8387}
8388
8389// The dependencies defined for container startup and shutdown. A container
8390// can contain multiple dependencies. When a dependency is defined for container
8391// startup, for container shutdown it is reversed.
8392//
8393// Your Amazon ECS container instances require at least version 1.26.0 of the
8394// container agent to enable container dependencies. However, we recommend using
8395// the latest container agent version. For information about checking your agent
8396// version and updating to the latest version, see Updating the Amazon ECS Container
8397// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
8398// in the Amazon Elastic Container Service Developer Guide. If you are using
8399// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
8400// of the ecs-init package. If your container instances are launched from version
8401// 20190301 or later, then they contain the required versions of the container
8402// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
8403// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
8404// in the Amazon Elastic Container Service Developer Guide.
8405//
8406// For tasks using the Fargate launch type, this parameter requires that the
8407// task or service uses platform version 1.3.0 or later.
8408type ContainerDependency struct {
8409	_ struct{} `type:"structure"`
8410
8411	// The dependency condition of the container. The following are the available
8412	// conditions and their behavior:
8413	//
8414	//    * START - This condition emulates the behavior of links and volumes today.
8415	//    It validates that a dependent container is started before permitting other
8416	//    containers to start.
8417	//
8418	//    * COMPLETE - This condition validates that a dependent container runs
8419	//    to completion (exits) before permitting other containers to start. This
8420	//    can be useful for nonessential containers that run a script and then exit.
8421	//    This condition cannot be set on an essential container.
8422	//
8423	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
8424	//    that the container exits with a zero status. This condition cannot be
8425	//    set on an essential container.
8426	//
8427	//    * HEALTHY - This condition validates that the dependent container passes
8428	//    its Docker health check before permitting other containers to start. This
8429	//    requires that the dependent container has health checks configured. This
8430	//    condition is confirmed only at task startup.
8431	//
8432	// Condition is a required field
8433	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
8434
8435	// The name of a container.
8436	//
8437	// ContainerName is a required field
8438	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
8439}
8440
8441// String returns the string representation
8442func (s ContainerDependency) String() string {
8443	return awsutil.Prettify(s)
8444}
8445
8446// GoString returns the string representation
8447func (s ContainerDependency) GoString() string {
8448	return s.String()
8449}
8450
8451// Validate inspects the fields of the type to determine if they are valid.
8452func (s *ContainerDependency) Validate() error {
8453	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
8454	if s.Condition == nil {
8455		invalidParams.Add(request.NewErrParamRequired("Condition"))
8456	}
8457	if s.ContainerName == nil {
8458		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
8459	}
8460
8461	if invalidParams.Len() > 0 {
8462		return invalidParams
8463	}
8464	return nil
8465}
8466
8467// SetCondition sets the Condition field's value.
8468func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
8469	s.Condition = &v
8470	return s
8471}
8472
8473// SetContainerName sets the ContainerName field's value.
8474func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
8475	s.ContainerName = &v
8476	return s
8477}
8478
8479// An EC2 instance that is running the Amazon ECS agent and has been registered
8480// with a cluster.
8481type ContainerInstance struct {
8482	_ struct{} `type:"structure"`
8483
8484	// This parameter returns true if the agent is connected to Amazon ECS. Registered
8485	// instances with an agent that may be unhealthy or stopped return false. Only
8486	// instances connected to an agent can accept placement requests.
8487	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
8488
8489	// The status of the most recent agent update. If an update has never been requested,
8490	// this value is NULL.
8491	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
8492
8493	// The resources attached to a container instance, such as elastic network interfaces.
8494	Attachments []*Attachment `locationName:"attachments" type:"list"`
8495
8496	// The attributes set for the container instance, either by the Amazon ECS container
8497	// agent at instance registration or manually with the PutAttributes operation.
8498	Attributes []*Attribute `locationName:"attributes" type:"list"`
8499
8500	// The capacity provider associated with the container instance.
8501	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
8502
8503	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
8504	// the arn:aws:ecs namespace, followed by the Region of the container instance,
8505	// the Amazon Web Services account ID of the container instance owner, the container-instance
8506	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
8507	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
8508
8509	// The ID of the container instance. For Amazon EC2 instances, this value is
8510	// the Amazon EC2 instance ID. For external instances, this value is the Amazon
8511	// Web Services Systems Manager managed instance ID.
8512	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
8513
8514	// The number of tasks on the container instance that are in the PENDING status.
8515	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
8516
8517	// The Unix timestamp for when the container instance was registered.
8518	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
8519
8520	// For CPU and memory resource types, this parameter describes the amount of
8521	// each resource that was available on the container instance when the container
8522	// agent registered it with Amazon ECS. This value represents the total amount
8523	// of CPU and memory that can be allocated on this container instance to tasks.
8524	// For port resource types, this parameter describes the ports that were reserved
8525	// by the Amazon ECS container agent when it registered the container instance
8526	// with Amazon ECS.
8527	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
8528
8529	// For CPU and memory resource types, this parameter describes the remaining
8530	// CPU and memory that has not already been allocated to tasks and is therefore
8531	// available for new tasks. For port resource types, this parameter describes
8532	// the ports that were reserved by the Amazon ECS container agent (at instance
8533	// registration time) and any task containers that have reserved port mappings
8534	// on the host (with the host or bridge network mode). Any port that is not
8535	// specified here is available for new tasks.
8536	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
8537
8538	// The number of tasks on the container instance that are in the RUNNING status.
8539	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
8540
8541	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
8542	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
8543	//
8544	// If your account has opted in to the awsvpcTrunking account setting, then
8545	// any newly registered container instance will transition to a REGISTERING
8546	// status while the trunk elastic network interface is provisioned for the instance.
8547	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
8548	// status. You can describe the container instance and see the reason for failure
8549	// in the statusReason parameter. Once the container instance is terminated,
8550	// the instance transitions to a DEREGISTERING status while the trunk elastic
8551	// network interface is deprovisioned. The instance then transitions to an INACTIVE
8552	// status.
8553	//
8554	// The ACTIVE status indicates that the container instance can accept tasks.
8555	// The DRAINING indicates that new tasks are not placed on the container instance
8556	// and any service tasks running on the container instance are removed if possible.
8557	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
8558	// in the Amazon Elastic Container Service Developer Guide.
8559	Status *string `locationName:"status" type:"string"`
8560
8561	// The reason that the container instance reached its current status.
8562	StatusReason *string `locationName:"statusReason" type:"string"`
8563
8564	// The metadata that you apply to the container instance to help you categorize
8565	// and organize them. Each tag consists of a key and an optional value, both
8566	// of which you define.
8567	//
8568	// The following basic restrictions apply to tags:
8569	//
8570	//    * Maximum number of tags per resource - 50
8571	//
8572	//    * For each resource, each tag key must be unique, and each tag key can
8573	//    have only one value.
8574	//
8575	//    * Maximum key length - 128 Unicode characters in UTF-8
8576	//
8577	//    * Maximum value length - 256 Unicode characters in UTF-8
8578	//
8579	//    * If your tagging schema is used across multiple services and resources,
8580	//    remember that other services may have restrictions on allowed characters.
8581	//    Generally allowed characters are: letters, numbers, and spaces representable
8582	//    in UTF-8, and the following characters: + - = . _ : / @.
8583	//
8584	//    * Tag keys and values are case-sensitive.
8585	//
8586	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8587	//    as a prefix for either keys or values as it is reserved for Amazon Web
8588	//    Services use. You cannot edit or delete tag keys or values with this prefix.
8589	//    Tags with this prefix do not count against your tags per resource limit.
8590	Tags []*Tag `locationName:"tags" type:"list"`
8591
8592	// The version counter for the container instance. Every time a container instance
8593	// experiences a change that triggers a CloudWatch event, the version counter
8594	// is incremented. If you are replicating your Amazon ECS container instance
8595	// state with CloudWatch Events, you can compare the version of a container
8596	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
8597	// Events for the container instance (inside the detail object) to verify that
8598	// the version in your event stream is current.
8599	Version *int64 `locationName:"version" type:"long"`
8600
8601	// The version information for the Amazon ECS container agent and Docker daemon
8602	// running on the container instance.
8603	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
8604}
8605
8606// String returns the string representation
8607func (s ContainerInstance) String() string {
8608	return awsutil.Prettify(s)
8609}
8610
8611// GoString returns the string representation
8612func (s ContainerInstance) GoString() string {
8613	return s.String()
8614}
8615
8616// SetAgentConnected sets the AgentConnected field's value.
8617func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
8618	s.AgentConnected = &v
8619	return s
8620}
8621
8622// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
8623func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
8624	s.AgentUpdateStatus = &v
8625	return s
8626}
8627
8628// SetAttachments sets the Attachments field's value.
8629func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
8630	s.Attachments = v
8631	return s
8632}
8633
8634// SetAttributes sets the Attributes field's value.
8635func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
8636	s.Attributes = v
8637	return s
8638}
8639
8640// SetCapacityProviderName sets the CapacityProviderName field's value.
8641func (s *ContainerInstance) SetCapacityProviderName(v string) *ContainerInstance {
8642	s.CapacityProviderName = &v
8643	return s
8644}
8645
8646// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
8647func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
8648	s.ContainerInstanceArn = &v
8649	return s
8650}
8651
8652// SetEc2InstanceId sets the Ec2InstanceId field's value.
8653func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
8654	s.Ec2InstanceId = &v
8655	return s
8656}
8657
8658// SetPendingTasksCount sets the PendingTasksCount field's value.
8659func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
8660	s.PendingTasksCount = &v
8661	return s
8662}
8663
8664// SetRegisteredAt sets the RegisteredAt field's value.
8665func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
8666	s.RegisteredAt = &v
8667	return s
8668}
8669
8670// SetRegisteredResources sets the RegisteredResources field's value.
8671func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
8672	s.RegisteredResources = v
8673	return s
8674}
8675
8676// SetRemainingResources sets the RemainingResources field's value.
8677func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
8678	s.RemainingResources = v
8679	return s
8680}
8681
8682// SetRunningTasksCount sets the RunningTasksCount field's value.
8683func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
8684	s.RunningTasksCount = &v
8685	return s
8686}
8687
8688// SetStatus sets the Status field's value.
8689func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
8690	s.Status = &v
8691	return s
8692}
8693
8694// SetStatusReason sets the StatusReason field's value.
8695func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
8696	s.StatusReason = &v
8697	return s
8698}
8699
8700// SetTags sets the Tags field's value.
8701func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
8702	s.Tags = v
8703	return s
8704}
8705
8706// SetVersion sets the Version field's value.
8707func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
8708	s.Version = &v
8709	return s
8710}
8711
8712// SetVersionInfo sets the VersionInfo field's value.
8713func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
8714	s.VersionInfo = v
8715	return s
8716}
8717
8718// The overrides that should be sent to a container. An empty container override
8719// can be passed in. An example of an empty container override would be {"containerOverrides":
8720// [ ] }. If a non-empty container override is specified, the name parameter
8721// must be included.
8722type ContainerOverride struct {
8723	_ struct{} `type:"structure"`
8724
8725	// The command to send to the container that overrides the default command from
8726	// the Docker image or the task definition. You must also specify a container
8727	// name.
8728	Command []*string `locationName:"command" type:"list"`
8729
8730	// The number of cpu units reserved for the container, instead of the default
8731	// value from the task definition. You must also specify a container name.
8732	Cpu *int64 `locationName:"cpu" type:"integer"`
8733
8734	// The environment variables to send to the container. You can add new environment
8735	// variables, which are added to the container at launch, or you can override
8736	// the existing environment variables from the Docker image or the task definition.
8737	// You must also specify a container name.
8738	Environment []*KeyValuePair `locationName:"environment" type:"list"`
8739
8740	// A list of files containing the environment variables to pass to a container,
8741	// instead of the value from the container definition.
8742	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
8743
8744	// The hard limit (in MiB) of memory to present to the container, instead of
8745	// the default value from the task definition. If your container attempts to
8746	// exceed the memory specified here, the container is killed. You must also
8747	// specify a container name.
8748	Memory *int64 `locationName:"memory" type:"integer"`
8749
8750	// The soft limit (in MiB) of memory to reserve for the container, instead of
8751	// the default value from the task definition. You must also specify a container
8752	// name.
8753	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
8754
8755	// The name of the container that receives the override. This parameter is required
8756	// if any override is specified.
8757	Name *string `locationName:"name" type:"string"`
8758
8759	// The type and amount of a resource to assign to a container, instead of the
8760	// default value from the task definition. The only supported resource is a
8761	// GPU.
8762	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
8763}
8764
8765// String returns the string representation
8766func (s ContainerOverride) String() string {
8767	return awsutil.Prettify(s)
8768}
8769
8770// GoString returns the string representation
8771func (s ContainerOverride) GoString() string {
8772	return s.String()
8773}
8774
8775// Validate inspects the fields of the type to determine if they are valid.
8776func (s *ContainerOverride) Validate() error {
8777	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
8778	if s.EnvironmentFiles != nil {
8779		for i, v := range s.EnvironmentFiles {
8780			if v == nil {
8781				continue
8782			}
8783			if err := v.Validate(); err != nil {
8784				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
8785			}
8786		}
8787	}
8788	if s.ResourceRequirements != nil {
8789		for i, v := range s.ResourceRequirements {
8790			if v == nil {
8791				continue
8792			}
8793			if err := v.Validate(); err != nil {
8794				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
8795			}
8796		}
8797	}
8798
8799	if invalidParams.Len() > 0 {
8800		return invalidParams
8801	}
8802	return nil
8803}
8804
8805// SetCommand sets the Command field's value.
8806func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
8807	s.Command = v
8808	return s
8809}
8810
8811// SetCpu sets the Cpu field's value.
8812func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
8813	s.Cpu = &v
8814	return s
8815}
8816
8817// SetEnvironment sets the Environment field's value.
8818func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
8819	s.Environment = v
8820	return s
8821}
8822
8823// SetEnvironmentFiles sets the EnvironmentFiles field's value.
8824func (s *ContainerOverride) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerOverride {
8825	s.EnvironmentFiles = v
8826	return s
8827}
8828
8829// SetMemory sets the Memory field's value.
8830func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
8831	s.Memory = &v
8832	return s
8833}
8834
8835// SetMemoryReservation sets the MemoryReservation field's value.
8836func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
8837	s.MemoryReservation = &v
8838	return s
8839}
8840
8841// SetName sets the Name field's value.
8842func (s *ContainerOverride) SetName(v string) *ContainerOverride {
8843	s.Name = &v
8844	return s
8845}
8846
8847// SetResourceRequirements sets the ResourceRequirements field's value.
8848func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
8849	s.ResourceRequirements = v
8850	return s
8851}
8852
8853// An object representing a change in state for a container.
8854type ContainerStateChange struct {
8855	_ struct{} `type:"structure"`
8856
8857	// The name of the container.
8858	ContainerName *string `locationName:"containerName" type:"string"`
8859
8860	// The exit code for the container, if the state change is a result of the container
8861	// exiting.
8862	ExitCode *int64 `locationName:"exitCode" type:"integer"`
8863
8864	// The container image SHA 256 digest.
8865	ImageDigest *string `locationName:"imageDigest" type:"string"`
8866
8867	// Any network bindings associated with the container.
8868	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
8869
8870	// The reason for the state change.
8871	Reason *string `locationName:"reason" type:"string"`
8872
8873	// The ID of the Docker container.
8874	RuntimeId *string `locationName:"runtimeId" type:"string"`
8875
8876	// The status of the container.
8877	Status *string `locationName:"status" type:"string"`
8878}
8879
8880// String returns the string representation
8881func (s ContainerStateChange) String() string {
8882	return awsutil.Prettify(s)
8883}
8884
8885// GoString returns the string representation
8886func (s ContainerStateChange) GoString() string {
8887	return s.String()
8888}
8889
8890// SetContainerName sets the ContainerName field's value.
8891func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
8892	s.ContainerName = &v
8893	return s
8894}
8895
8896// SetExitCode sets the ExitCode field's value.
8897func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
8898	s.ExitCode = &v
8899	return s
8900}
8901
8902// SetImageDigest sets the ImageDigest field's value.
8903func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
8904	s.ImageDigest = &v
8905	return s
8906}
8907
8908// SetNetworkBindings sets the NetworkBindings field's value.
8909func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
8910	s.NetworkBindings = v
8911	return s
8912}
8913
8914// SetReason sets the Reason field's value.
8915func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
8916	s.Reason = &v
8917	return s
8918}
8919
8920// SetRuntimeId sets the RuntimeId field's value.
8921func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
8922	s.RuntimeId = &v
8923	return s
8924}
8925
8926// SetStatus sets the Status field's value.
8927func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
8928	s.Status = &v
8929	return s
8930}
8931
8932type CreateCapacityProviderInput struct {
8933	_ struct{} `type:"structure"`
8934
8935	// The details of the Auto Scaling group for the capacity provider.
8936	//
8937	// AutoScalingGroupProvider is a required field
8938	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
8939
8940	// The name of the capacity provider. Up to 255 characters are allowed, including
8941	// letters (upper and lowercase), numbers, underscores, and hyphens. The name
8942	// cannot be prefixed with "aws", "ecs", or "fargate".
8943	//
8944	// Name is a required field
8945	Name *string `locationName:"name" type:"string" required:"true"`
8946
8947	// The metadata that you apply to the capacity provider to help you categorize
8948	// and organize them. Each tag consists of a key and an optional value, both
8949	// of which you define.
8950	//
8951	// The following basic restrictions apply to tags:
8952	//
8953	//    * Maximum number of tags per resource - 50
8954	//
8955	//    * For each resource, each tag key must be unique, and each tag key can
8956	//    have only one value.
8957	//
8958	//    * Maximum key length - 128 Unicode characters in UTF-8
8959	//
8960	//    * Maximum value length - 256 Unicode characters in UTF-8
8961	//
8962	//    * If your tagging schema is used across multiple services and resources,
8963	//    remember that other services may have restrictions on allowed characters.
8964	//    Generally allowed characters are: letters, numbers, and spaces representable
8965	//    in UTF-8, and the following characters: + - = . _ : / @.
8966	//
8967	//    * Tag keys and values are case-sensitive.
8968	//
8969	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8970	//    as a prefix for either keys or values as it is reserved for Amazon Web
8971	//    Services use. You cannot edit or delete tag keys or values with this prefix.
8972	//    Tags with this prefix do not count against your tags per resource limit.
8973	Tags []*Tag `locationName:"tags" type:"list"`
8974}
8975
8976// String returns the string representation
8977func (s CreateCapacityProviderInput) String() string {
8978	return awsutil.Prettify(s)
8979}
8980
8981// GoString returns the string representation
8982func (s CreateCapacityProviderInput) GoString() string {
8983	return s.String()
8984}
8985
8986// Validate inspects the fields of the type to determine if they are valid.
8987func (s *CreateCapacityProviderInput) Validate() error {
8988	invalidParams := request.ErrInvalidParams{Context: "CreateCapacityProviderInput"}
8989	if s.AutoScalingGroupProvider == nil {
8990		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
8991	}
8992	if s.Name == nil {
8993		invalidParams.Add(request.NewErrParamRequired("Name"))
8994	}
8995	if s.AutoScalingGroupProvider != nil {
8996		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
8997			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
8998		}
8999	}
9000	if s.Tags != nil {
9001		for i, v := range s.Tags {
9002			if v == nil {
9003				continue
9004			}
9005			if err := v.Validate(); err != nil {
9006				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9007			}
9008		}
9009	}
9010
9011	if invalidParams.Len() > 0 {
9012		return invalidParams
9013	}
9014	return nil
9015}
9016
9017// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
9018func (s *CreateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CreateCapacityProviderInput {
9019	s.AutoScalingGroupProvider = v
9020	return s
9021}
9022
9023// SetName sets the Name field's value.
9024func (s *CreateCapacityProviderInput) SetName(v string) *CreateCapacityProviderInput {
9025	s.Name = &v
9026	return s
9027}
9028
9029// SetTags sets the Tags field's value.
9030func (s *CreateCapacityProviderInput) SetTags(v []*Tag) *CreateCapacityProviderInput {
9031	s.Tags = v
9032	return s
9033}
9034
9035type CreateCapacityProviderOutput struct {
9036	_ struct{} `type:"structure"`
9037
9038	// The full description of the new capacity provider.
9039	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
9040}
9041
9042// String returns the string representation
9043func (s CreateCapacityProviderOutput) String() string {
9044	return awsutil.Prettify(s)
9045}
9046
9047// GoString returns the string representation
9048func (s CreateCapacityProviderOutput) GoString() string {
9049	return s.String()
9050}
9051
9052// SetCapacityProvider sets the CapacityProvider field's value.
9053func (s *CreateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *CreateCapacityProviderOutput {
9054	s.CapacityProvider = v
9055	return s
9056}
9057
9058type CreateClusterInput struct {
9059	_ struct{} `type:"structure"`
9060
9061	// The short name of one or more capacity providers to associate with the cluster.
9062	// A capacity provider must be associated with a cluster before it can be included
9063	// as part of the default capacity provider strategy of the cluster or used
9064	// in a capacity provider strategy when calling the CreateService or RunTask
9065	// actions.
9066	//
9067	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
9068	// provider must already be created and not already associated with another
9069	// cluster. New Auto Scaling group capacity providers can be created with the
9070	// CreateCapacityProvider API operation.
9071	//
9072	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
9073	// capacity providers. The Fargate capacity providers are available to all accounts
9074	// and only need to be associated with a cluster to be used.
9075	//
9076	// The PutClusterCapacityProviders API operation is used to update the list
9077	// of available capacity providers for a cluster after the cluster is created.
9078	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
9079
9080	// The name of your cluster. If you do not specify a name for your cluster,
9081	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
9082	// numbers, underscores, and hyphens are allowed.
9083	ClusterName *string `locationName:"clusterName" type:"string"`
9084
9085	// The execute command configuration for the cluster.
9086	Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"`
9087
9088	// The capacity provider strategy to set as the default for the cluster. When
9089	// a default capacity provider strategy is set for a cluster, when calling the
9090	// RunTask or CreateService APIs with no capacity provider strategy or launch
9091	// type specified, the default capacity provider strategy for the cluster is
9092	// used.
9093	//
9094	// If a default capacity provider strategy is not defined for a cluster during
9095	// creation, it can be defined later with the PutClusterCapacityProviders API
9096	// operation.
9097	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
9098
9099	// The setting to use when creating a cluster. This parameter is used to enable
9100	// CloudWatch Container Insights for a cluster. If this value is specified,
9101	// it will override the containerInsights value set with PutAccountSetting or
9102	// PutAccountSettingDefault.
9103	Settings []*ClusterSetting `locationName:"settings" type:"list"`
9104
9105	// The metadata that you apply to the cluster to help you categorize and organize
9106	// them. Each tag consists of a key and an optional value, both of which you
9107	// define.
9108	//
9109	// The following basic restrictions apply to tags:
9110	//
9111	//    * Maximum number of tags per resource - 50
9112	//
9113	//    * For each resource, each tag key must be unique, and each tag key can
9114	//    have only one value.
9115	//
9116	//    * Maximum key length - 128 Unicode characters in UTF-8
9117	//
9118	//    * Maximum value length - 256 Unicode characters in UTF-8
9119	//
9120	//    * If your tagging schema is used across multiple services and resources,
9121	//    remember that other services may have restrictions on allowed characters.
9122	//    Generally allowed characters are: letters, numbers, and spaces representable
9123	//    in UTF-8, and the following characters: + - = . _ : / @.
9124	//
9125	//    * Tag keys and values are case-sensitive.
9126	//
9127	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9128	//    as a prefix for either keys or values as it is reserved for Amazon Web
9129	//    Services use. You cannot edit or delete tag keys or values with this prefix.
9130	//    Tags with this prefix do not count against your tags per resource limit.
9131	Tags []*Tag `locationName:"tags" type:"list"`
9132}
9133
9134// String returns the string representation
9135func (s CreateClusterInput) String() string {
9136	return awsutil.Prettify(s)
9137}
9138
9139// GoString returns the string representation
9140func (s CreateClusterInput) GoString() string {
9141	return s.String()
9142}
9143
9144// Validate inspects the fields of the type to determine if they are valid.
9145func (s *CreateClusterInput) Validate() error {
9146	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
9147	if s.DefaultCapacityProviderStrategy != nil {
9148		for i, v := range s.DefaultCapacityProviderStrategy {
9149			if v == nil {
9150				continue
9151			}
9152			if err := v.Validate(); err != nil {
9153				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9154			}
9155		}
9156	}
9157	if s.Tags != nil {
9158		for i, v := range s.Tags {
9159			if v == nil {
9160				continue
9161			}
9162			if err := v.Validate(); err != nil {
9163				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9164			}
9165		}
9166	}
9167
9168	if invalidParams.Len() > 0 {
9169		return invalidParams
9170	}
9171	return nil
9172}
9173
9174// SetCapacityProviders sets the CapacityProviders field's value.
9175func (s *CreateClusterInput) SetCapacityProviders(v []*string) *CreateClusterInput {
9176	s.CapacityProviders = v
9177	return s
9178}
9179
9180// SetClusterName sets the ClusterName field's value.
9181func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
9182	s.ClusterName = &v
9183	return s
9184}
9185
9186// SetConfiguration sets the Configuration field's value.
9187func (s *CreateClusterInput) SetConfiguration(v *ClusterConfiguration) *CreateClusterInput {
9188	s.Configuration = v
9189	return s
9190}
9191
9192// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
9193func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput {
9194	s.DefaultCapacityProviderStrategy = v
9195	return s
9196}
9197
9198// SetSettings sets the Settings field's value.
9199func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
9200	s.Settings = v
9201	return s
9202}
9203
9204// SetTags sets the Tags field's value.
9205func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
9206	s.Tags = v
9207	return s
9208}
9209
9210type CreateClusterOutput struct {
9211	_ struct{} `type:"structure"`
9212
9213	// The full description of your new cluster.
9214	Cluster *Cluster `locationName:"cluster" type:"structure"`
9215}
9216
9217// String returns the string representation
9218func (s CreateClusterOutput) String() string {
9219	return awsutil.Prettify(s)
9220}
9221
9222// GoString returns the string representation
9223func (s CreateClusterOutput) GoString() string {
9224	return s.String()
9225}
9226
9227// SetCluster sets the Cluster field's value.
9228func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
9229	s.Cluster = v
9230	return s
9231}
9232
9233type CreateServiceInput struct {
9234	_ struct{} `type:"structure"`
9235
9236	// The capacity provider strategy to use for the service.
9237	//
9238	// If a capacityProviderStrategy is specified, the launchType parameter must
9239	// be omitted. If no capacityProviderStrategy or launchType is specified, the
9240	// defaultCapacityProviderStrategy for the cluster is used.
9241	//
9242	// A capacity provider strategy may contain a maximum of 6 capacity providers.
9243	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9244
9245	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9246	// of the request. Up to 32 ASCII characters are allowed.
9247	ClientToken *string `locationName:"clientToken" type:"string"`
9248
9249	// The short name or full Amazon Resource Name (ARN) of the cluster on which
9250	// to run your service. If you do not specify a cluster, the default cluster
9251	// is assumed.
9252	Cluster *string `locationName:"cluster" type:"string"`
9253
9254	// Optional deployment parameters that control how many tasks run during the
9255	// deployment and the ordering of stopping and starting tasks.
9256	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
9257
9258	// The deployment controller to use for the service. If no deployment controller
9259	// is specified, the default value of ECS is used.
9260	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
9261
9262	// The number of instantiations of the specified task definition to place and
9263	// keep running on your cluster.
9264	//
9265	// This is required if schedulingStrategy is REPLICA or is not specified. If
9266	// schedulingStrategy is DAEMON then this is not required.
9267	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
9268
9269	// Specifies whether to enable Amazon ECS managed tags for the tasks within
9270	// the service. For more information, see Tagging Your Amazon ECS Resources
9271	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
9272	// in the Amazon Elastic Container Service Developer Guide.
9273	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
9274
9275	// Whether or not the execute command functionality is enabled for the service.
9276	// If true, this enables execute command functionality on all containers in
9277	// the service tasks.
9278	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
9279
9280	// The period of time, in seconds, that the Amazon ECS service scheduler should
9281	// ignore unhealthy Elastic Load Balancing target health checks after a task
9282	// has first started. This is only used when your service is configured to use
9283	// a load balancer. If your service has a load balancer defined and you don't
9284	// specify a health check grace period value, the default value of 0 is used.
9285	//
9286	// If your service's tasks take a while to start and respond to Elastic Load
9287	// Balancing health checks, you can specify a health check grace period of up
9288	// to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler
9289	// ignores health check status. This grace period can prevent the service scheduler
9290	// from marking tasks as unhealthy and stopping them before they have time to
9291	// come up.
9292	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
9293
9294	// The infrastructure on which to run your service. For more information, see
9295	// Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9296	// in the Amazon Elastic Container Service Developer Guide.
9297	//
9298	// The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.
9299	//
9300	// Fargate Spot infrastructure is available for use but a capacity provider
9301	// strategy must be used. For more information, see Fargate capacity providers
9302	// (https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html)
9303	// in the Amazon ECS User Guide for Fargate.
9304	//
9305	// The EC2 launch type runs your tasks on Amazon EC2 instances registered to
9306	// your cluster.
9307	//
9308	// The EXTERNAL launch type runs your tasks on your on-premise server or virtual
9309	// machine (VM) capacity registered to your cluster.
9310	//
9311	// A service can use either a launch type or a capacity provider strategy. If
9312	// a launchType is specified, the capacityProviderStrategy parameter must be
9313	// omitted.
9314	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9315
9316	// A load balancer object representing the load balancers to use with your service.
9317	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
9318	// in the Amazon Elastic Container Service Developer Guide.
9319	//
9320	// If the service is using the rolling update (ECS) deployment controller and
9321	// using either an Application Load Balancer or Network Load Balancer, you must
9322	// specify one or more target group ARNs to attach to the service. The service-linked
9323	// role is required for services that make use of multiple target groups. For
9324	// more information, see Using service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
9325	// in the Amazon Elastic Container Service Developer Guide.
9326	//
9327	// If the service is using the CODE_DEPLOY deployment controller, the service
9328	// is required to use either an Application Load Balancer or Network Load Balancer.
9329	// When creating an CodeDeploy deployment group, you specify two target groups
9330	// (referred to as a targetGroupPair). During a deployment, CodeDeploy determines
9331	// which task set in your service has the status PRIMARY and associates one
9332	// target group with it, and then associates the other target group with the
9333	// replacement task set. The load balancer can also have up to two listeners:
9334	// a required listener for production traffic and an optional listener that
9335	// allows you perform validation tests with Lambda functions before routing
9336	// production traffic to it.
9337	//
9338	// After you create a service using the ECS deployment controller, the load
9339	// balancer name or target group ARN, container name, and container port specified
9340	// in the service definition are immutable. If you are using the CODE_DEPLOY
9341	// deployment controller, these values can be changed when updating the service.
9342	//
9343	// For Application Load Balancers and Network Load Balancers, this object must
9344	// contain the load balancer target group ARN, the container name (as it appears
9345	// in a container definition), and the container port to access from the load
9346	// balancer. The load balancer name parameter must be omitted. When a task from
9347	// this service is placed on a container instance, the container instance and
9348	// port combination is registered as a target in the target group specified
9349	// here.
9350	//
9351	// For Classic Load Balancers, this object must contain the load balancer name,
9352	// the container name (as it appears in a container definition), and the container
9353	// port to access from the load balancer. The target group ARN parameter must
9354	// be omitted. When a task from this service is placed on a container instance,
9355	// the container instance is registered with the load balancer specified here.
9356	//
9357	// Services with tasks that use the awsvpc network mode (for example, those
9358	// with the Fargate launch type) only support Application Load Balancers and
9359	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
9360	// you create any target groups for these services, you must choose ip as the
9361	// target type, not instance, because tasks that use the awsvpc network mode
9362	// are associated with an elastic network interface, not an Amazon EC2 instance.
9363	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
9364
9365	// The network configuration for the service. This parameter is required for
9366	// task definitions that use the awsvpc network mode to receive their own elastic
9367	// network interface, and it is not supported for other network modes. For more
9368	// information, see Task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
9369	// in the Amazon Elastic Container Service Developer Guide.
9370	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9371
9372	// An array of placement constraint objects to use for tasks in your service.
9373	// You can specify a maximum of 10 constraints per task (this limit includes
9374	// constraints in the task definition and those specified at runtime).
9375	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
9376
9377	// The placement strategy objects to use for tasks in your service. You can
9378	// specify a maximum of 5 strategy rules per service.
9379	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
9380
9381	// The platform version that your tasks in the service are running on. A platform
9382	// version is specified only for tasks using the Fargate launch type. If one
9383	// isn't specified, the LATEST platform version is used by default. For more
9384	// information, see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
9385	// in the Amazon Elastic Container Service Developer Guide.
9386	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9387
9388	// Specifies whether to propagate the tags from the task definition or the service
9389	// to the tasks in the service. If no value is specified, the tags are not propagated.
9390	// Tags can only be propagated to the tasks within the service during service
9391	// creation. To add tags to a task after service creation, use the TagResource
9392	// API action.
9393	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
9394
9395	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
9396	// ECS to make calls to your load balancer on your behalf. This parameter is
9397	// only permitted if you are using a load balancer with your service and your
9398	// task definition does not use the awsvpc network mode. If you specify the
9399	// role parameter, you must also specify a load balancer object with the loadBalancers
9400	// parameter.
9401	//
9402	// If your account has already created the Amazon ECS service-linked role, that
9403	// role is used by default for your service unless you specify a role here.
9404	// The service-linked role is required if your task definition uses the awsvpc
9405	// network mode or if the service is configured to use service discovery, an
9406	// external deployment controller, multiple target groups, or Elastic Inference
9407	// accelerators in which case you should not specify a role here. For more information,
9408	// see Using service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
9409	// in the Amazon Elastic Container Service Developer Guide.
9410	//
9411	// If your specified role has a path other than /, then you must either specify
9412	// the full role ARN (this is recommended) or prefix the role name with the
9413	// path. For example, if a role with the name bar has a path of /foo/ then you
9414	// would specify /foo/bar as the role name. For more information, see Friendly
9415	// names and paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
9416	// in the IAM User Guide.
9417	Role *string `locationName:"role" type:"string"`
9418
9419	// The scheduling strategy to use for the service. For more information, see
9420	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
9421	//
9422	// There are two service scheduler strategies available:
9423	//
9424	//    * REPLICA-The replica scheduling strategy places and maintains the desired
9425	//    number of tasks across your cluster. By default, the service scheduler
9426	//    spreads tasks across Availability Zones. You can use task placement strategies
9427	//    and constraints to customize task placement decisions. This scheduler
9428	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
9429	//    deployment controller types.
9430	//
9431	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
9432	//    active container instance that meets all of the task placement constraints
9433	//    that you specify in your cluster. The service scheduler also evaluates
9434	//    the task placement constraints for running tasks and will stop tasks that
9435	//    do not meet the placement constraints. When you're using this strategy,
9436	//    you don't need to specify a desired number of tasks, a task placement
9437	//    strategy, or use Service Auto Scaling policies. Tasks using the Fargate
9438	//    launch type or the CODE_DEPLOY or EXTERNAL deployment controller types
9439	//    don't support the DAEMON scheduling strategy.
9440	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
9441
9442	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
9443	// underscores, and hyphens are allowed. Service names must be unique within
9444	// a cluster, but you can have similarly named services in multiple clusters
9445	// within a Region or across multiple Regions.
9446	//
9447	// ServiceName is a required field
9448	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
9449
9450	// The details of the service discovery registry to associate with this service.
9451	// For more information, see Service discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9452	//
9453	// Each service may be associated with one service registry. Multiple service
9454	// registries per service isn't supported.
9455	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9456
9457	// The metadata that you apply to the service to help you categorize and organize
9458	// them. Each tag consists of a key and an optional value, both of which you
9459	// define. When a service is deleted, the tags are deleted as well.
9460	//
9461	// The following basic restrictions apply to tags:
9462	//
9463	//    * Maximum number of tags per resource - 50
9464	//
9465	//    * For each resource, each tag key must be unique, and each tag key can
9466	//    have only one value.
9467	//
9468	//    * Maximum key length - 128 Unicode characters in UTF-8
9469	//
9470	//    * Maximum value length - 256 Unicode characters in UTF-8
9471	//
9472	//    * If your tagging schema is used across multiple services and resources,
9473	//    remember that other services may have restrictions on allowed characters.
9474	//    Generally allowed characters are: letters, numbers, and spaces representable
9475	//    in UTF-8, and the following characters: + - = . _ : / @.
9476	//
9477	//    * Tag keys and values are case-sensitive.
9478	//
9479	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9480	//    as a prefix for either keys or values as it is reserved for Amazon Web
9481	//    Services use. You cannot edit or delete tag keys or values with this prefix.
9482	//    Tags with this prefix do not count against your tags per resource limit.
9483	Tags []*Tag `locationName:"tags" type:"list"`
9484
9485	// The family and revision (family:revision) or full ARN of the task definition
9486	// to run in your service. If a revision is not specified, the latest ACTIVE
9487	// revision is used.
9488	//
9489	// A task definition must be specified if the service is using either the ECS
9490	// or CODE_DEPLOY deployment controllers.
9491	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
9492}
9493
9494// String returns the string representation
9495func (s CreateServiceInput) String() string {
9496	return awsutil.Prettify(s)
9497}
9498
9499// GoString returns the string representation
9500func (s CreateServiceInput) GoString() string {
9501	return s.String()
9502}
9503
9504// Validate inspects the fields of the type to determine if they are valid.
9505func (s *CreateServiceInput) Validate() error {
9506	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
9507	if s.ServiceName == nil {
9508		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
9509	}
9510	if s.CapacityProviderStrategy != nil {
9511		for i, v := range s.CapacityProviderStrategy {
9512			if v == nil {
9513				continue
9514			}
9515			if err := v.Validate(); err != nil {
9516				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9517			}
9518		}
9519	}
9520	if s.DeploymentConfiguration != nil {
9521		if err := s.DeploymentConfiguration.Validate(); err != nil {
9522			invalidParams.AddNested("DeploymentConfiguration", err.(request.ErrInvalidParams))
9523		}
9524	}
9525	if s.DeploymentController != nil {
9526		if err := s.DeploymentController.Validate(); err != nil {
9527			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
9528		}
9529	}
9530	if s.NetworkConfiguration != nil {
9531		if err := s.NetworkConfiguration.Validate(); err != nil {
9532			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9533		}
9534	}
9535	if s.Tags != nil {
9536		for i, v := range s.Tags {
9537			if v == nil {
9538				continue
9539			}
9540			if err := v.Validate(); err != nil {
9541				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9542			}
9543		}
9544	}
9545
9546	if invalidParams.Len() > 0 {
9547		return invalidParams
9548	}
9549	return nil
9550}
9551
9552// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9553func (s *CreateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateServiceInput {
9554	s.CapacityProviderStrategy = v
9555	return s
9556}
9557
9558// SetClientToken sets the ClientToken field's value.
9559func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
9560	s.ClientToken = &v
9561	return s
9562}
9563
9564// SetCluster sets the Cluster field's value.
9565func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
9566	s.Cluster = &v
9567	return s
9568}
9569
9570// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
9571func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
9572	s.DeploymentConfiguration = v
9573	return s
9574}
9575
9576// SetDeploymentController sets the DeploymentController field's value.
9577func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
9578	s.DeploymentController = v
9579	return s
9580}
9581
9582// SetDesiredCount sets the DesiredCount field's value.
9583func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
9584	s.DesiredCount = &v
9585	return s
9586}
9587
9588// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
9589func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
9590	s.EnableECSManagedTags = &v
9591	return s
9592}
9593
9594// SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
9595func (s *CreateServiceInput) SetEnableExecuteCommand(v bool) *CreateServiceInput {
9596	s.EnableExecuteCommand = &v
9597	return s
9598}
9599
9600// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
9601func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
9602	s.HealthCheckGracePeriodSeconds = &v
9603	return s
9604}
9605
9606// SetLaunchType sets the LaunchType field's value.
9607func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
9608	s.LaunchType = &v
9609	return s
9610}
9611
9612// SetLoadBalancers sets the LoadBalancers field's value.
9613func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
9614	s.LoadBalancers = v
9615	return s
9616}
9617
9618// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9619func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
9620	s.NetworkConfiguration = v
9621	return s
9622}
9623
9624// SetPlacementConstraints sets the PlacementConstraints field's value.
9625func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
9626	s.PlacementConstraints = v
9627	return s
9628}
9629
9630// SetPlacementStrategy sets the PlacementStrategy field's value.
9631func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
9632	s.PlacementStrategy = v
9633	return s
9634}
9635
9636// SetPlatformVersion sets the PlatformVersion field's value.
9637func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
9638	s.PlatformVersion = &v
9639	return s
9640}
9641
9642// SetPropagateTags sets the PropagateTags field's value.
9643func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
9644	s.PropagateTags = &v
9645	return s
9646}
9647
9648// SetRole sets the Role field's value.
9649func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
9650	s.Role = &v
9651	return s
9652}
9653
9654// SetSchedulingStrategy sets the SchedulingStrategy field's value.
9655func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
9656	s.SchedulingStrategy = &v
9657	return s
9658}
9659
9660// SetServiceName sets the ServiceName field's value.
9661func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
9662	s.ServiceName = &v
9663	return s
9664}
9665
9666// SetServiceRegistries sets the ServiceRegistries field's value.
9667func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
9668	s.ServiceRegistries = v
9669	return s
9670}
9671
9672// SetTags sets the Tags field's value.
9673func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
9674	s.Tags = v
9675	return s
9676}
9677
9678// SetTaskDefinition sets the TaskDefinition field's value.
9679func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
9680	s.TaskDefinition = &v
9681	return s
9682}
9683
9684type CreateServiceOutput struct {
9685	_ struct{} `type:"structure"`
9686
9687	// The full description of your service following the create call.
9688	//
9689	// A service will return either a capacityProviderStrategy or launchType parameter,
9690	// but not both, depending on which one was specified during creation.
9691	//
9692	// If a service is using the ECS deployment controller, the deploymentController
9693	// and taskSets parameters will not be returned.
9694	//
9695	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
9696	// taskSets and deployments parameters will be returned, however the deployments
9697	// parameter will be an empty list.
9698	Service *Service `locationName:"service" type:"structure"`
9699}
9700
9701// String returns the string representation
9702func (s CreateServiceOutput) String() string {
9703	return awsutil.Prettify(s)
9704}
9705
9706// GoString returns the string representation
9707func (s CreateServiceOutput) GoString() string {
9708	return s.String()
9709}
9710
9711// SetService sets the Service field's value.
9712func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
9713	s.Service = v
9714	return s
9715}
9716
9717type CreateTaskSetInput struct {
9718	_ struct{} `type:"structure"`
9719
9720	// The capacity provider strategy to use for the task set.
9721	//
9722	// A capacity provider strategy consists of one or more capacity providers along
9723	// with the base and weight to assign to them. A capacity provider must be associated
9724	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
9725	// API is used to associate a capacity provider with a cluster. Only capacity
9726	// providers with an ACTIVE or UPDATING status can be used.
9727	//
9728	// If a capacityProviderStrategy is specified, the launchType parameter must
9729	// be omitted. If no capacityProviderStrategy or launchType is specified, the
9730	// defaultCapacityProviderStrategy for the cluster is used.
9731	//
9732	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
9733	// provider must already be created. New capacity providers can be created with
9734	// the CreateCapacityProvider API operation.
9735	//
9736	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
9737	// capacity providers. The Fargate capacity providers are available to all accounts
9738	// and only need to be associated with a cluster to be used.
9739	//
9740	// The PutClusterCapacityProviders API operation is used to update the list
9741	// of available capacity providers for a cluster after the cluster is created.
9742	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9743
9744	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9745	// of the request. Up to 32 ASCII characters are allowed.
9746	ClientToken *string `locationName:"clientToken" type:"string"`
9747
9748	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9749	// the service to create the task set in.
9750	//
9751	// Cluster is a required field
9752	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9753
9754	// An optional non-unique tag that identifies this task set in external systems.
9755	// If the task set is associated with a service discovery registry, the tasks
9756	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map attribute
9757	// set to the provided value.
9758	ExternalId *string `locationName:"externalId" type:"string"`
9759
9760	// The launch type that new tasks in the task set will use. For more information,
9761	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9762	// in the Amazon Elastic Container Service Developer Guide.
9763	//
9764	// If a launchType is specified, the capacityProviderStrategy parameter must
9765	// be omitted.
9766	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9767
9768	// A load balancer object representing the load balancer to use with the task
9769	// set. The supported load balancer types are either an Application Load Balancer
9770	// or a Network Load Balancer.
9771	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
9772
9773	// An object representing the network configuration for a task set.
9774	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9775
9776	// The platform version that the tasks in the task set should use. A platform
9777	// version is specified only for tasks using the Fargate launch type. If one
9778	// isn't specified, the LATEST platform version is used by default.
9779	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9780
9781	// A floating-point percentage of the desired number of tasks to place and keep
9782	// running in the task set.
9783	Scale *Scale `locationName:"scale" type:"structure"`
9784
9785	// The short name or full Amazon Resource Name (ARN) of the service to create
9786	// the task set in.
9787	//
9788	// Service is a required field
9789	Service *string `locationName:"service" type:"string" required:"true"`
9790
9791	// The details of the service discovery registries to assign to this task set.
9792	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9793	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9794
9795	// The metadata that you apply to the task set to help you categorize and organize
9796	// them. Each tag consists of a key and an optional value, both of which you
9797	// define. When a service is deleted, the tags are deleted as well.
9798	//
9799	// The following basic restrictions apply to tags:
9800	//
9801	//    * Maximum number of tags per resource - 50
9802	//
9803	//    * For each resource, each tag key must be unique, and each tag key can
9804	//    have only one value.
9805	//
9806	//    * Maximum key length - 128 Unicode characters in UTF-8
9807	//
9808	//    * Maximum value length - 256 Unicode characters in UTF-8
9809	//
9810	//    * If your tagging schema is used across multiple services and resources,
9811	//    remember that other services may have restrictions on allowed characters.
9812	//    Generally allowed characters are: letters, numbers, and spaces representable
9813	//    in UTF-8, and the following characters: + - = . _ : / @.
9814	//
9815	//    * Tag keys and values are case-sensitive.
9816	//
9817	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9818	//    as a prefix for either keys or values as it is reserved for Amazon Web
9819	//    Services use. You cannot edit or delete tag keys or values with this prefix.
9820	//    Tags with this prefix do not count against your tags per resource limit.
9821	Tags []*Tag `locationName:"tags" type:"list"`
9822
9823	// The task definition for the tasks in the task set to use.
9824	//
9825	// TaskDefinition is a required field
9826	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
9827}
9828
9829// String returns the string representation
9830func (s CreateTaskSetInput) String() string {
9831	return awsutil.Prettify(s)
9832}
9833
9834// GoString returns the string representation
9835func (s CreateTaskSetInput) GoString() string {
9836	return s.String()
9837}
9838
9839// Validate inspects the fields of the type to determine if they are valid.
9840func (s *CreateTaskSetInput) Validate() error {
9841	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
9842	if s.Cluster == nil {
9843		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9844	}
9845	if s.Service == nil {
9846		invalidParams.Add(request.NewErrParamRequired("Service"))
9847	}
9848	if s.TaskDefinition == nil {
9849		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
9850	}
9851	if s.CapacityProviderStrategy != nil {
9852		for i, v := range s.CapacityProviderStrategy {
9853			if v == nil {
9854				continue
9855			}
9856			if err := v.Validate(); err != nil {
9857				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9858			}
9859		}
9860	}
9861	if s.NetworkConfiguration != nil {
9862		if err := s.NetworkConfiguration.Validate(); err != nil {
9863			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9864		}
9865	}
9866	if s.Tags != nil {
9867		for i, v := range s.Tags {
9868			if v == nil {
9869				continue
9870			}
9871			if err := v.Validate(); err != nil {
9872				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9873			}
9874		}
9875	}
9876
9877	if invalidParams.Len() > 0 {
9878		return invalidParams
9879	}
9880	return nil
9881}
9882
9883// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9884func (s *CreateTaskSetInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateTaskSetInput {
9885	s.CapacityProviderStrategy = v
9886	return s
9887}
9888
9889// SetClientToken sets the ClientToken field's value.
9890func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
9891	s.ClientToken = &v
9892	return s
9893}
9894
9895// SetCluster sets the Cluster field's value.
9896func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
9897	s.Cluster = &v
9898	return s
9899}
9900
9901// SetExternalId sets the ExternalId field's value.
9902func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
9903	s.ExternalId = &v
9904	return s
9905}
9906
9907// SetLaunchType sets the LaunchType field's value.
9908func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
9909	s.LaunchType = &v
9910	return s
9911}
9912
9913// SetLoadBalancers sets the LoadBalancers field's value.
9914func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
9915	s.LoadBalancers = v
9916	return s
9917}
9918
9919// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9920func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
9921	s.NetworkConfiguration = v
9922	return s
9923}
9924
9925// SetPlatformVersion sets the PlatformVersion field's value.
9926func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
9927	s.PlatformVersion = &v
9928	return s
9929}
9930
9931// SetScale sets the Scale field's value.
9932func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
9933	s.Scale = v
9934	return s
9935}
9936
9937// SetService sets the Service field's value.
9938func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
9939	s.Service = &v
9940	return s
9941}
9942
9943// SetServiceRegistries sets the ServiceRegistries field's value.
9944func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
9945	s.ServiceRegistries = v
9946	return s
9947}
9948
9949// SetTags sets the Tags field's value.
9950func (s *CreateTaskSetInput) SetTags(v []*Tag) *CreateTaskSetInput {
9951	s.Tags = v
9952	return s
9953}
9954
9955// SetTaskDefinition sets the TaskDefinition field's value.
9956func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
9957	s.TaskDefinition = &v
9958	return s
9959}
9960
9961type CreateTaskSetOutput struct {
9962	_ struct{} `type:"structure"`
9963
9964	// Information about a set of Amazon ECS tasks in either an CodeDeploy or an
9965	// EXTERNAL deployment. A task set includes details such as the desired number
9966	// of tasks, how many tasks are running, and whether the task set serves production
9967	// traffic.
9968	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9969}
9970
9971// String returns the string representation
9972func (s CreateTaskSetOutput) String() string {
9973	return awsutil.Prettify(s)
9974}
9975
9976// GoString returns the string representation
9977func (s CreateTaskSetOutput) GoString() string {
9978	return s.String()
9979}
9980
9981// SetTaskSet sets the TaskSet field's value.
9982func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
9983	s.TaskSet = v
9984	return s
9985}
9986
9987type DeleteAccountSettingInput struct {
9988	_ struct{} `type:"structure"`
9989
9990	// The resource name for which to disable the account setting. If serviceLongArnFormat
9991	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
9992	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
9993	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
9994	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
9995	// the ENI limit for your Amazon ECS container instances is affected.
9996	//
9997	// Name is a required field
9998	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
9999
10000	// The ARN of the principal, which can be an IAM user, IAM role, or the root
10001	// user. If you specify the root user, it disables the account setting for all
10002	// IAM users, IAM roles, and the root user of the account unless an IAM user
10003	// or role explicitly overrides these settings. If this field is omitted, the
10004	// setting is changed only for the authenticated user.
10005	PrincipalArn *string `locationName:"principalArn" type:"string"`
10006}
10007
10008// String returns the string representation
10009func (s DeleteAccountSettingInput) String() string {
10010	return awsutil.Prettify(s)
10011}
10012
10013// GoString returns the string representation
10014func (s DeleteAccountSettingInput) GoString() string {
10015	return s.String()
10016}
10017
10018// Validate inspects the fields of the type to determine if they are valid.
10019func (s *DeleteAccountSettingInput) Validate() error {
10020	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
10021	if s.Name == nil {
10022		invalidParams.Add(request.NewErrParamRequired("Name"))
10023	}
10024
10025	if invalidParams.Len() > 0 {
10026		return invalidParams
10027	}
10028	return nil
10029}
10030
10031// SetName sets the Name field's value.
10032func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
10033	s.Name = &v
10034	return s
10035}
10036
10037// SetPrincipalArn sets the PrincipalArn field's value.
10038func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
10039	s.PrincipalArn = &v
10040	return s
10041}
10042
10043type DeleteAccountSettingOutput struct {
10044	_ struct{} `type:"structure"`
10045
10046	// The account setting for the specified principal ARN.
10047	Setting *Setting `locationName:"setting" type:"structure"`
10048}
10049
10050// String returns the string representation
10051func (s DeleteAccountSettingOutput) String() string {
10052	return awsutil.Prettify(s)
10053}
10054
10055// GoString returns the string representation
10056func (s DeleteAccountSettingOutput) GoString() string {
10057	return s.String()
10058}
10059
10060// SetSetting sets the Setting field's value.
10061func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
10062	s.Setting = v
10063	return s
10064}
10065
10066type DeleteAttributesInput struct {
10067	_ struct{} `type:"structure"`
10068
10069	// The attributes to delete from your resource. You can specify up to 10 attributes
10070	// per request. For custom attributes, specify the attribute name and target
10071	// ID, but do not specify the value. If you specify the target ID using the
10072	// short form, you must also specify the target type.
10073	//
10074	// Attributes is a required field
10075	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
10076
10077	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
10078	// the resource to delete attributes. If you do not specify a cluster, the default
10079	// cluster is assumed.
10080	Cluster *string `locationName:"cluster" type:"string"`
10081}
10082
10083// String returns the string representation
10084func (s DeleteAttributesInput) String() string {
10085	return awsutil.Prettify(s)
10086}
10087
10088// GoString returns the string representation
10089func (s DeleteAttributesInput) GoString() string {
10090	return s.String()
10091}
10092
10093// Validate inspects the fields of the type to determine if they are valid.
10094func (s *DeleteAttributesInput) Validate() error {
10095	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
10096	if s.Attributes == nil {
10097		invalidParams.Add(request.NewErrParamRequired("Attributes"))
10098	}
10099	if s.Attributes != nil {
10100		for i, v := range s.Attributes {
10101			if v == nil {
10102				continue
10103			}
10104			if err := v.Validate(); err != nil {
10105				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
10106			}
10107		}
10108	}
10109
10110	if invalidParams.Len() > 0 {
10111		return invalidParams
10112	}
10113	return nil
10114}
10115
10116// SetAttributes sets the Attributes field's value.
10117func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
10118	s.Attributes = v
10119	return s
10120}
10121
10122// SetCluster sets the Cluster field's value.
10123func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
10124	s.Cluster = &v
10125	return s
10126}
10127
10128type DeleteAttributesOutput struct {
10129	_ struct{} `type:"structure"`
10130
10131	// A list of attribute objects that were successfully deleted from your resource.
10132	Attributes []*Attribute `locationName:"attributes" type:"list"`
10133}
10134
10135// String returns the string representation
10136func (s DeleteAttributesOutput) String() string {
10137	return awsutil.Prettify(s)
10138}
10139
10140// GoString returns the string representation
10141func (s DeleteAttributesOutput) GoString() string {
10142	return s.String()
10143}
10144
10145// SetAttributes sets the Attributes field's value.
10146func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
10147	s.Attributes = v
10148	return s
10149}
10150
10151type DeleteCapacityProviderInput struct {
10152	_ struct{} `type:"structure"`
10153
10154	// The short name or full Amazon Resource Name (ARN) of the capacity provider
10155	// to delete.
10156	//
10157	// CapacityProvider is a required field
10158	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
10159}
10160
10161// String returns the string representation
10162func (s DeleteCapacityProviderInput) String() string {
10163	return awsutil.Prettify(s)
10164}
10165
10166// GoString returns the string representation
10167func (s DeleteCapacityProviderInput) GoString() string {
10168	return s.String()
10169}
10170
10171// Validate inspects the fields of the type to determine if they are valid.
10172func (s *DeleteCapacityProviderInput) Validate() error {
10173	invalidParams := request.ErrInvalidParams{Context: "DeleteCapacityProviderInput"}
10174	if s.CapacityProvider == nil {
10175		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
10176	}
10177
10178	if invalidParams.Len() > 0 {
10179		return invalidParams
10180	}
10181	return nil
10182}
10183
10184// SetCapacityProvider sets the CapacityProvider field's value.
10185func (s *DeleteCapacityProviderInput) SetCapacityProvider(v string) *DeleteCapacityProviderInput {
10186	s.CapacityProvider = &v
10187	return s
10188}
10189
10190type DeleteCapacityProviderOutput struct {
10191	_ struct{} `type:"structure"`
10192
10193	// The details of the capacity provider.
10194	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
10195}
10196
10197// String returns the string representation
10198func (s DeleteCapacityProviderOutput) String() string {
10199	return awsutil.Prettify(s)
10200}
10201
10202// GoString returns the string representation
10203func (s DeleteCapacityProviderOutput) GoString() string {
10204	return s.String()
10205}
10206
10207// SetCapacityProvider sets the CapacityProvider field's value.
10208func (s *DeleteCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *DeleteCapacityProviderOutput {
10209	s.CapacityProvider = v
10210	return s
10211}
10212
10213type DeleteClusterInput struct {
10214	_ struct{} `type:"structure"`
10215
10216	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
10217	//
10218	// Cluster is a required field
10219	Cluster *string `locationName:"cluster" type:"string" required:"true"`
10220}
10221
10222// String returns the string representation
10223func (s DeleteClusterInput) String() string {
10224	return awsutil.Prettify(s)
10225}
10226
10227// GoString returns the string representation
10228func (s DeleteClusterInput) GoString() string {
10229	return s.String()
10230}
10231
10232// Validate inspects the fields of the type to determine if they are valid.
10233func (s *DeleteClusterInput) Validate() error {
10234	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
10235	if s.Cluster == nil {
10236		invalidParams.Add(request.NewErrParamRequired("Cluster"))
10237	}
10238
10239	if invalidParams.Len() > 0 {
10240		return invalidParams
10241	}
10242	return nil
10243}
10244
10245// SetCluster sets the Cluster field's value.
10246func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
10247	s.Cluster = &v
10248	return s
10249}
10250
10251type DeleteClusterOutput struct {
10252	_ struct{} `type:"structure"`
10253
10254	// The full description of the deleted cluster.
10255	Cluster *Cluster `locationName:"cluster" type:"structure"`
10256}
10257
10258// String returns the string representation
10259func (s DeleteClusterOutput) String() string {
10260	return awsutil.Prettify(s)
10261}
10262
10263// GoString returns the string representation
10264func (s DeleteClusterOutput) GoString() string {
10265	return s.String()
10266}
10267
10268// SetCluster sets the Cluster field's value.
10269func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
10270	s.Cluster = v
10271	return s
10272}
10273
10274type DeleteServiceInput struct {
10275	_ struct{} `type:"structure"`
10276
10277	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10278	// the service to delete. If you do not specify a cluster, the default cluster
10279	// is assumed.
10280	Cluster *string `locationName:"cluster" type:"string"`
10281
10282	// If true, allows you to delete a service even if it has not been scaled down
10283	// to zero tasks. It is only necessary to use this if the service is using the
10284	// REPLICA scheduling strategy.
10285	Force *bool `locationName:"force" type:"boolean"`
10286
10287	// The name of the service to delete.
10288	//
10289	// Service is a required field
10290	Service *string `locationName:"service" type:"string" required:"true"`
10291}
10292
10293// String returns the string representation
10294func (s DeleteServiceInput) String() string {
10295	return awsutil.Prettify(s)
10296}
10297
10298// GoString returns the string representation
10299func (s DeleteServiceInput) GoString() string {
10300	return s.String()
10301}
10302
10303// Validate inspects the fields of the type to determine if they are valid.
10304func (s *DeleteServiceInput) Validate() error {
10305	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
10306	if s.Service == nil {
10307		invalidParams.Add(request.NewErrParamRequired("Service"))
10308	}
10309
10310	if invalidParams.Len() > 0 {
10311		return invalidParams
10312	}
10313	return nil
10314}
10315
10316// SetCluster sets the Cluster field's value.
10317func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
10318	s.Cluster = &v
10319	return s
10320}
10321
10322// SetForce sets the Force field's value.
10323func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
10324	s.Force = &v
10325	return s
10326}
10327
10328// SetService sets the Service field's value.
10329func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
10330	s.Service = &v
10331	return s
10332}
10333
10334type DeleteServiceOutput struct {
10335	_ struct{} `type:"structure"`
10336
10337	// The full description of the deleted service.
10338	Service *Service `locationName:"service" type:"structure"`
10339}
10340
10341// String returns the string representation
10342func (s DeleteServiceOutput) String() string {
10343	return awsutil.Prettify(s)
10344}
10345
10346// GoString returns the string representation
10347func (s DeleteServiceOutput) GoString() string {
10348	return s.String()
10349}
10350
10351// SetService sets the Service field's value.
10352func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
10353	s.Service = v
10354	return s
10355}
10356
10357type DeleteTaskSetInput struct {
10358	_ struct{} `type:"structure"`
10359
10360	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10361	// the service that the task set exists in to delete.
10362	//
10363	// Cluster is a required field
10364	Cluster *string `locationName:"cluster" type:"string" required:"true"`
10365
10366	// If true, this allows you to delete a task set even if it hasn't been scaled
10367	// down to zero.
10368	Force *bool `locationName:"force" type:"boolean"`
10369
10370	// The short name or full Amazon Resource Name (ARN) of the service that hosts
10371	// the task set to delete.
10372	//
10373	// Service is a required field
10374	Service *string `locationName:"service" type:"string" required:"true"`
10375
10376	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
10377	//
10378	// TaskSet is a required field
10379	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
10380}
10381
10382// String returns the string representation
10383func (s DeleteTaskSetInput) String() string {
10384	return awsutil.Prettify(s)
10385}
10386
10387// GoString returns the string representation
10388func (s DeleteTaskSetInput) GoString() string {
10389	return s.String()
10390}
10391
10392// Validate inspects the fields of the type to determine if they are valid.
10393func (s *DeleteTaskSetInput) Validate() error {
10394	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
10395	if s.Cluster == nil {
10396		invalidParams.Add(request.NewErrParamRequired("Cluster"))
10397	}
10398	if s.Service == nil {
10399		invalidParams.Add(request.NewErrParamRequired("Service"))
10400	}
10401	if s.TaskSet == nil {
10402		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
10403	}
10404
10405	if invalidParams.Len() > 0 {
10406		return invalidParams
10407	}
10408	return nil
10409}
10410
10411// SetCluster sets the Cluster field's value.
10412func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
10413	s.Cluster = &v
10414	return s
10415}
10416
10417// SetForce sets the Force field's value.
10418func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
10419	s.Force = &v
10420	return s
10421}
10422
10423// SetService sets the Service field's value.
10424func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
10425	s.Service = &v
10426	return s
10427}
10428
10429// SetTaskSet sets the TaskSet field's value.
10430func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
10431	s.TaskSet = &v
10432	return s
10433}
10434
10435type DeleteTaskSetOutput struct {
10436	_ struct{} `type:"structure"`
10437
10438	// Details about the task set.
10439	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
10440}
10441
10442// String returns the string representation
10443func (s DeleteTaskSetOutput) String() string {
10444	return awsutil.Prettify(s)
10445}
10446
10447// GoString returns the string representation
10448func (s DeleteTaskSetOutput) GoString() string {
10449	return s.String()
10450}
10451
10452// SetTaskSet sets the TaskSet field's value.
10453func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
10454	s.TaskSet = v
10455	return s
10456}
10457
10458// The details of an Amazon ECS service deployment. This is used only when a
10459// service uses the ECS deployment controller type.
10460type Deployment struct {
10461	_ struct{} `type:"structure"`
10462
10463	// The capacity provider strategy that the deployment is using.
10464	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
10465
10466	// The Unix timestamp for when the service deployment was created.
10467	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
10468
10469	// The most recent desired count of tasks that was specified for the service
10470	// to deploy or maintain.
10471	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
10472
10473	// The number of consecutively failed tasks in the deployment. A task is considered
10474	// a failure if the service scheduler can't launch the task, the task doesn't
10475	// transition to a RUNNING state, or if it fails any of its defined health checks
10476	// and is stopped.
10477	//
10478	// Once a service deployment has one or more successfully running tasks, the
10479	// failed task count resets to zero and stops being evaluated.
10480	FailedTasks *int64 `locationName:"failedTasks" type:"integer"`
10481
10482	// The ID of the deployment.
10483	Id *string `locationName:"id" type:"string"`
10484
10485	// The launch type the tasks in the service are using. For more information,
10486	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
10487	// in the Amazon Elastic Container Service Developer Guide.
10488	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10489
10490	// The VPC subnet and security group configuration for tasks that receive their
10491	// own elastic network interface by using the awsvpc networking mode.
10492	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
10493
10494	// The number of tasks in the deployment that are in the PENDING status.
10495	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
10496
10497	// The platform version on which your tasks in the service are running. A platform
10498	// version is only specified for tasks using the Fargate launch type. If one
10499	// is not specified, the LATEST platform version is used by default. For more
10500	// information, see Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
10501	// in the Amazon Elastic Container Service Developer Guide.
10502	PlatformVersion *string `locationName:"platformVersion" type:"string"`
10503
10504	//
10505	// The rolloutState of a service is only returned for services that use the
10506	// rolling update (ECS) deployment type that are not behind a Classic Load Balancer.
10507	//
10508	// The rollout state of the deployment. When a service deployment is started,
10509	// it begins in an IN_PROGRESS state. When the service reaches a steady state,
10510	// the deployment will transition to a COMPLETED state. If the service fails
10511	// to reach a steady state and circuit breaker is enabled, the deployment will
10512	// transition to a FAILED state. A deployment in FAILED state will launch no
10513	// new tasks. For more information, see DeploymentCircuitBreaker.
10514	RolloutState *string `locationName:"rolloutState" type:"string" enum:"DeploymentRolloutState"`
10515
10516	// A description of the rollout state of a deployment.
10517	RolloutStateReason *string `locationName:"rolloutStateReason" type:"string"`
10518
10519	// The number of tasks in the deployment that are in the RUNNING status.
10520	RunningCount *int64 `locationName:"runningCount" type:"integer"`
10521
10522	// The status of the deployment. The following describes each state:
10523	//
10524	// PRIMARY
10525	//
10526	// The most recent deployment of a service.
10527	//
10528	// ACTIVE
10529	//
10530	// A service deployment that still has running tasks, but are in the process
10531	// of being replaced with a new PRIMARY deployment.
10532	//
10533	// INACTIVE
10534	//
10535	// A deployment that has been completely replaced.
10536	Status *string `locationName:"status" type:"string"`
10537
10538	// The most recent task definition that was specified for the tasks in the service
10539	// to use.
10540	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
10541
10542	// The Unix timestamp for when the service deployment was last updated.
10543	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
10544}
10545
10546// String returns the string representation
10547func (s Deployment) String() string {
10548	return awsutil.Prettify(s)
10549}
10550
10551// GoString returns the string representation
10552func (s Deployment) GoString() string {
10553	return s.String()
10554}
10555
10556// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
10557func (s *Deployment) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Deployment {
10558	s.CapacityProviderStrategy = v
10559	return s
10560}
10561
10562// SetCreatedAt sets the CreatedAt field's value.
10563func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
10564	s.CreatedAt = &v
10565	return s
10566}
10567
10568// SetDesiredCount sets the DesiredCount field's value.
10569func (s *Deployment) SetDesiredCount(v int64) *Deployment {
10570	s.DesiredCount = &v
10571	return s
10572}
10573
10574// SetFailedTasks sets the FailedTasks field's value.
10575func (s *Deployment) SetFailedTasks(v int64) *Deployment {
10576	s.FailedTasks = &v
10577	return s
10578}
10579
10580// SetId sets the Id field's value.
10581func (s *Deployment) SetId(v string) *Deployment {
10582	s.Id = &v
10583	return s
10584}
10585
10586// SetLaunchType sets the LaunchType field's value.
10587func (s *Deployment) SetLaunchType(v string) *Deployment {
10588	s.LaunchType = &v
10589	return s
10590}
10591
10592// SetNetworkConfiguration sets the NetworkConfiguration field's value.
10593func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
10594	s.NetworkConfiguration = v
10595	return s
10596}
10597
10598// SetPendingCount sets the PendingCount field's value.
10599func (s *Deployment) SetPendingCount(v int64) *Deployment {
10600	s.PendingCount = &v
10601	return s
10602}
10603
10604// SetPlatformVersion sets the PlatformVersion field's value.
10605func (s *Deployment) SetPlatformVersion(v string) *Deployment {
10606	s.PlatformVersion = &v
10607	return s
10608}
10609
10610// SetRolloutState sets the RolloutState field's value.
10611func (s *Deployment) SetRolloutState(v string) *Deployment {
10612	s.RolloutState = &v
10613	return s
10614}
10615
10616// SetRolloutStateReason sets the RolloutStateReason field's value.
10617func (s *Deployment) SetRolloutStateReason(v string) *Deployment {
10618	s.RolloutStateReason = &v
10619	return s
10620}
10621
10622// SetRunningCount sets the RunningCount field's value.
10623func (s *Deployment) SetRunningCount(v int64) *Deployment {
10624	s.RunningCount = &v
10625	return s
10626}
10627
10628// SetStatus sets the Status field's value.
10629func (s *Deployment) SetStatus(v string) *Deployment {
10630	s.Status = &v
10631	return s
10632}
10633
10634// SetTaskDefinition sets the TaskDefinition field's value.
10635func (s *Deployment) SetTaskDefinition(v string) *Deployment {
10636	s.TaskDefinition = &v
10637	return s
10638}
10639
10640// SetUpdatedAt sets the UpdatedAt field's value.
10641func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
10642	s.UpdatedAt = &v
10643	return s
10644}
10645
10646//
10647// The deployment circuit breaker can only be used for services using the rolling
10648// update (ECS) deployment type that are not behind a Classic Load Balancer.
10649//
10650// The deployment circuit breaker determines whether a service deployment will
10651// fail if the service can't reach a steady state. If enabled, a service deployment
10652// will transition to a failed state and stop launching new tasks. You can also
10653// enable Amazon ECS to roll back your service to the last completed deployment
10654// after a failure. For more information, see Rolling update (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html)
10655// in the Amazon Elastic Container Service Developer Guide.
10656type DeploymentCircuitBreaker struct {
10657	_ struct{} `type:"structure"`
10658
10659	// Whether to enable the deployment circuit breaker logic for the service.
10660	//
10661	// Enable is a required field
10662	Enable *bool `locationName:"enable" type:"boolean" required:"true"`
10663
10664	// Whether to enable Amazon ECS to roll back the service if a service deployment
10665	// fails. If rollback is enabled, when a service deployment fails, the service
10666	// is rolled back to the last deployment that completed successfully.
10667	//
10668	// Rollback is a required field
10669	Rollback *bool `locationName:"rollback" type:"boolean" required:"true"`
10670}
10671
10672// String returns the string representation
10673func (s DeploymentCircuitBreaker) String() string {
10674	return awsutil.Prettify(s)
10675}
10676
10677// GoString returns the string representation
10678func (s DeploymentCircuitBreaker) GoString() string {
10679	return s.String()
10680}
10681
10682// Validate inspects the fields of the type to determine if they are valid.
10683func (s *DeploymentCircuitBreaker) Validate() error {
10684	invalidParams := request.ErrInvalidParams{Context: "DeploymentCircuitBreaker"}
10685	if s.Enable == nil {
10686		invalidParams.Add(request.NewErrParamRequired("Enable"))
10687	}
10688	if s.Rollback == nil {
10689		invalidParams.Add(request.NewErrParamRequired("Rollback"))
10690	}
10691
10692	if invalidParams.Len() > 0 {
10693		return invalidParams
10694	}
10695	return nil
10696}
10697
10698// SetEnable sets the Enable field's value.
10699func (s *DeploymentCircuitBreaker) SetEnable(v bool) *DeploymentCircuitBreaker {
10700	s.Enable = &v
10701	return s
10702}
10703
10704// SetRollback sets the Rollback field's value.
10705func (s *DeploymentCircuitBreaker) SetRollback(v bool) *DeploymentCircuitBreaker {
10706	s.Rollback = &v
10707	return s
10708}
10709
10710// Optional deployment parameters that control how many tasks run during a deployment
10711// and the ordering of stopping and starting tasks.
10712type DeploymentConfiguration struct {
10713	_ struct{} `type:"structure"`
10714
10715	//
10716	// The deployment circuit breaker can only be used for services using the rolling
10717	// update (ECS) deployment type.
10718	//
10719	// The deployment circuit breaker determines whether a service deployment will
10720	// fail if the service can't reach a steady state. If deployment circuit breaker
10721	// is enabled, a service deployment will transition to a failed state and stop
10722	// launching new tasks. If rollback is enabled, when a service deployment fails,
10723	// the service is rolled back to the last deployment that completed successfully.
10724	DeploymentCircuitBreaker *DeploymentCircuitBreaker `locationName:"deploymentCircuitBreaker" type:"structure"`
10725
10726	// If a service is using the rolling update (ECS) deployment type, the maximum
10727	// percent parameter represents an upper limit on the number of tasks in a service
10728	// that are allowed in the RUNNING or PENDING state during a deployment, as
10729	// a percentage of the desired number of tasks (rounded down to the nearest
10730	// integer), and while any container instances are in the DRAINING state if
10731	// the service contains tasks using the EC2 launch type. This parameter enables
10732	// you to define the deployment batch size. For example, if your service has
10733	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
10734	// may start four new tasks before stopping the four older tasks (provided that
10735	// the cluster resources required to do this are available). The default value
10736	// for maximum percent is 200%.
10737	//
10738	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10739	// types and tasks that use the EC2 launch type, the maximum percent value is
10740	// set to the default value and is used to define the upper limit on the number
10741	// of the tasks in the service that remain in the RUNNING state while the container
10742	// instances are in the DRAINING state. If the tasks in the service use the
10743	// Fargate launch type, the maximum percent value is not used, although it is
10744	// returned when describing your service.
10745	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
10746
10747	// If a service is using the rolling update (ECS) deployment type, the minimum
10748	// healthy percent represents a lower limit on the number of tasks in a service
10749	// that must remain in the RUNNING state during a deployment, as a percentage
10750	// of the desired number of tasks (rounded up to the nearest integer), and while
10751	// any container instances are in the DRAINING state if the service contains
10752	// tasks using the EC2 launch type. This parameter enables you to deploy without
10753	// using additional cluster capacity. For example, if your service has a desired
10754	// number of four tasks and a minimum healthy percent of 50%, the scheduler
10755	// may stop two existing tasks to free up cluster capacity before starting two
10756	// new tasks. Tasks for services that do not use a load balancer are considered
10757	// healthy if they are in the RUNNING state; tasks for services that do use
10758	// a load balancer are considered healthy if they are in the RUNNING state and
10759	// they are reported as healthy by the load balancer. The default value for
10760	// minimum healthy percent is 100%.
10761	//
10762	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10763	// types and tasks that use the EC2 launch type, the minimum healthy percent
10764	// value is set to the default value and is used to define the lower limit on
10765	// the number of the tasks in the service that remain in the RUNNING state while
10766	// the container instances are in the DRAINING state. If the tasks in the service
10767	// use the Fargate launch type, the minimum healthy percent value is not used,
10768	// although it is returned when describing your service.
10769	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
10770}
10771
10772// String returns the string representation
10773func (s DeploymentConfiguration) String() string {
10774	return awsutil.Prettify(s)
10775}
10776
10777// GoString returns the string representation
10778func (s DeploymentConfiguration) GoString() string {
10779	return s.String()
10780}
10781
10782// Validate inspects the fields of the type to determine if they are valid.
10783func (s *DeploymentConfiguration) Validate() error {
10784	invalidParams := request.ErrInvalidParams{Context: "DeploymentConfiguration"}
10785	if s.DeploymentCircuitBreaker != nil {
10786		if err := s.DeploymentCircuitBreaker.Validate(); err != nil {
10787			invalidParams.AddNested("DeploymentCircuitBreaker", err.(request.ErrInvalidParams))
10788		}
10789	}
10790
10791	if invalidParams.Len() > 0 {
10792		return invalidParams
10793	}
10794	return nil
10795}
10796
10797// SetDeploymentCircuitBreaker sets the DeploymentCircuitBreaker field's value.
10798func (s *DeploymentConfiguration) SetDeploymentCircuitBreaker(v *DeploymentCircuitBreaker) *DeploymentConfiguration {
10799	s.DeploymentCircuitBreaker = v
10800	return s
10801}
10802
10803// SetMaximumPercent sets the MaximumPercent field's value.
10804func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
10805	s.MaximumPercent = &v
10806	return s
10807}
10808
10809// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
10810func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
10811	s.MinimumHealthyPercent = &v
10812	return s
10813}
10814
10815// The deployment controller to use for the service. For more information, see
10816// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
10817// in the Amazon Elastic Container Service Developer Guide.
10818type DeploymentController struct {
10819	_ struct{} `type:"structure"`
10820
10821	// The deployment controller type to use.
10822	//
10823	// There are three deployment controller types available:
10824	//
10825	// ECS
10826	//
10827	// The rolling update (ECS) deployment type involves replacing the current running
10828	// version of the container with the latest version. The number of containers
10829	// Amazon ECS adds or removes from the service during a rolling update is controlled
10830	// by adjusting the minimum and maximum number of healthy tasks allowed during
10831	// a service deployment, as specified in the DeploymentConfiguration.
10832	//
10833	// CODE_DEPLOY
10834	//
10835	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
10836	// model powered by CodeDeploy, which allows you to verify a new deployment
10837	// of a service before sending production traffic to it.
10838	//
10839	// EXTERNAL
10840	//
10841	// The external (EXTERNAL) deployment type enables you to use any third-party
10842	// deployment controller for full control over the deployment process for an
10843	// Amazon ECS service.
10844	//
10845	// Type is a required field
10846	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
10847}
10848
10849// String returns the string representation
10850func (s DeploymentController) String() string {
10851	return awsutil.Prettify(s)
10852}
10853
10854// GoString returns the string representation
10855func (s DeploymentController) GoString() string {
10856	return s.String()
10857}
10858
10859// Validate inspects the fields of the type to determine if they are valid.
10860func (s *DeploymentController) Validate() error {
10861	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
10862	if s.Type == nil {
10863		invalidParams.Add(request.NewErrParamRequired("Type"))
10864	}
10865
10866	if invalidParams.Len() > 0 {
10867		return invalidParams
10868	}
10869	return nil
10870}
10871
10872// SetType sets the Type field's value.
10873func (s *DeploymentController) SetType(v string) *DeploymentController {
10874	s.Type = &v
10875	return s
10876}
10877
10878type DeregisterContainerInstanceInput struct {
10879	_ struct{} `type:"structure"`
10880
10881	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10882	// the container instance to deregister. If you do not specify a cluster, the
10883	// default cluster is assumed.
10884	Cluster *string `locationName:"cluster" type:"string"`
10885
10886	// The container instance ID or full ARN of the container instance to deregister.
10887	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
10888	// container instance, the Amazon Web Services account ID of the container instance
10889	// owner, the container-instance namespace, and then the container instance
10890	// ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
10891	//
10892	// ContainerInstance is a required field
10893	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
10894
10895	// Forces the deregistration of the container instance. If you have tasks running
10896	// on the container instance when you deregister it with the force option, these
10897	// tasks remain running until you terminate the instance or the tasks stop through
10898	// some other means, but they are orphaned (no longer monitored or accounted
10899	// for by Amazon ECS). If an orphaned task on your container instance is part
10900	// of an Amazon ECS service, then the service scheduler starts another copy
10901	// of that task, on a different container instance if possible.
10902	//
10903	// Any containers in orphaned service tasks that are registered with a Classic
10904	// Load Balancer or an Application Load Balancer target group are deregistered.
10905	// They begin connection draining according to the settings on the load balancer
10906	// or target group.
10907	Force *bool `locationName:"force" type:"boolean"`
10908}
10909
10910// String returns the string representation
10911func (s DeregisterContainerInstanceInput) String() string {
10912	return awsutil.Prettify(s)
10913}
10914
10915// GoString returns the string representation
10916func (s DeregisterContainerInstanceInput) GoString() string {
10917	return s.String()
10918}
10919
10920// Validate inspects the fields of the type to determine if they are valid.
10921func (s *DeregisterContainerInstanceInput) Validate() error {
10922	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
10923	if s.ContainerInstance == nil {
10924		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
10925	}
10926
10927	if invalidParams.Len() > 0 {
10928		return invalidParams
10929	}
10930	return nil
10931}
10932
10933// SetCluster sets the Cluster field's value.
10934func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
10935	s.Cluster = &v
10936	return s
10937}
10938
10939// SetContainerInstance sets the ContainerInstance field's value.
10940func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
10941	s.ContainerInstance = &v
10942	return s
10943}
10944
10945// SetForce sets the Force field's value.
10946func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
10947	s.Force = &v
10948	return s
10949}
10950
10951type DeregisterContainerInstanceOutput struct {
10952	_ struct{} `type:"structure"`
10953
10954	// The container instance that was deregistered.
10955	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
10956}
10957
10958// String returns the string representation
10959func (s DeregisterContainerInstanceOutput) String() string {
10960	return awsutil.Prettify(s)
10961}
10962
10963// GoString returns the string representation
10964func (s DeregisterContainerInstanceOutput) GoString() string {
10965	return s.String()
10966}
10967
10968// SetContainerInstance sets the ContainerInstance field's value.
10969func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
10970	s.ContainerInstance = v
10971	return s
10972}
10973
10974type DeregisterTaskDefinitionInput struct {
10975	_ struct{} `type:"structure"`
10976
10977	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
10978	// of the task definition to deregister. You must specify a revision.
10979	//
10980	// TaskDefinition is a required field
10981	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10982}
10983
10984// String returns the string representation
10985func (s DeregisterTaskDefinitionInput) String() string {
10986	return awsutil.Prettify(s)
10987}
10988
10989// GoString returns the string representation
10990func (s DeregisterTaskDefinitionInput) GoString() string {
10991	return s.String()
10992}
10993
10994// Validate inspects the fields of the type to determine if they are valid.
10995func (s *DeregisterTaskDefinitionInput) Validate() error {
10996	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
10997	if s.TaskDefinition == nil {
10998		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10999	}
11000
11001	if invalidParams.Len() > 0 {
11002		return invalidParams
11003	}
11004	return nil
11005}
11006
11007// SetTaskDefinition sets the TaskDefinition field's value.
11008func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
11009	s.TaskDefinition = &v
11010	return s
11011}
11012
11013type DeregisterTaskDefinitionOutput struct {
11014	_ struct{} `type:"structure"`
11015
11016	// The full description of the deregistered task.
11017	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
11018}
11019
11020// String returns the string representation
11021func (s DeregisterTaskDefinitionOutput) String() string {
11022	return awsutil.Prettify(s)
11023}
11024
11025// GoString returns the string representation
11026func (s DeregisterTaskDefinitionOutput) GoString() string {
11027	return s.String()
11028}
11029
11030// SetTaskDefinition sets the TaskDefinition field's value.
11031func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
11032	s.TaskDefinition = v
11033	return s
11034}
11035
11036type DescribeCapacityProvidersInput struct {
11037	_ struct{} `type:"structure"`
11038
11039	// The short name or full Amazon Resource Name (ARN) of one or more capacity
11040	// providers. Up to 100 capacity providers can be described in an action.
11041	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
11042
11043	// Specifies whether or not you want to see the resource tags for the capacity
11044	// provider. If TAGS is specified, the tags are included in the response. If
11045	// this field is omitted, tags are not included in the response.
11046	Include []*string `locationName:"include" type:"list"`
11047
11048	// The maximum number of account setting results returned by DescribeCapacityProviders
11049	// in paginated output. When this parameter is used, DescribeCapacityProviders
11050	// only returns maxResults results in a single page along with a nextToken response
11051	// element. The remaining results of the initial request can be seen by sending
11052	// another DescribeCapacityProviders request with the returned nextToken value.
11053	// This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders
11054	// returns up to 10 results and a nextToken value if applicable.
11055	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11056
11057	// The nextToken value returned from a previous paginated DescribeCapacityProviders
11058	// request where maxResults was used and the results exceeded the value of that
11059	// parameter. Pagination continues from the end of the previous results that
11060	// returned the nextToken value.
11061	//
11062	// This token should be treated as an opaque identifier that is only used to
11063	// retrieve the next items in a list and not for other programmatic purposes.
11064	NextToken *string `locationName:"nextToken" type:"string"`
11065}
11066
11067// String returns the string representation
11068func (s DescribeCapacityProvidersInput) String() string {
11069	return awsutil.Prettify(s)
11070}
11071
11072// GoString returns the string representation
11073func (s DescribeCapacityProvidersInput) GoString() string {
11074	return s.String()
11075}
11076
11077// SetCapacityProviders sets the CapacityProviders field's value.
11078func (s *DescribeCapacityProvidersInput) SetCapacityProviders(v []*string) *DescribeCapacityProvidersInput {
11079	s.CapacityProviders = v
11080	return s
11081}
11082
11083// SetInclude sets the Include field's value.
11084func (s *DescribeCapacityProvidersInput) SetInclude(v []*string) *DescribeCapacityProvidersInput {
11085	s.Include = v
11086	return s
11087}
11088
11089// SetMaxResults sets the MaxResults field's value.
11090func (s *DescribeCapacityProvidersInput) SetMaxResults(v int64) *DescribeCapacityProvidersInput {
11091	s.MaxResults = &v
11092	return s
11093}
11094
11095// SetNextToken sets the NextToken field's value.
11096func (s *DescribeCapacityProvidersInput) SetNextToken(v string) *DescribeCapacityProvidersInput {
11097	s.NextToken = &v
11098	return s
11099}
11100
11101type DescribeCapacityProvidersOutput struct {
11102	_ struct{} `type:"structure"`
11103
11104	// The list of capacity providers.
11105	CapacityProviders []*CapacityProvider `locationName:"capacityProviders" type:"list"`
11106
11107	// Any failures associated with the call.
11108	Failures []*Failure `locationName:"failures" type:"list"`
11109
11110	// The nextToken value to include in a future DescribeCapacityProviders request.
11111	// When the results of a DescribeCapacityProviders request exceed maxResults,
11112	// this value can be used to retrieve the next page of results. This value is
11113	// null when there are no more results to return.
11114	NextToken *string `locationName:"nextToken" type:"string"`
11115}
11116
11117// String returns the string representation
11118func (s DescribeCapacityProvidersOutput) String() string {
11119	return awsutil.Prettify(s)
11120}
11121
11122// GoString returns the string representation
11123func (s DescribeCapacityProvidersOutput) GoString() string {
11124	return s.String()
11125}
11126
11127// SetCapacityProviders sets the CapacityProviders field's value.
11128func (s *DescribeCapacityProvidersOutput) SetCapacityProviders(v []*CapacityProvider) *DescribeCapacityProvidersOutput {
11129	s.CapacityProviders = v
11130	return s
11131}
11132
11133// SetFailures sets the Failures field's value.
11134func (s *DescribeCapacityProvidersOutput) SetFailures(v []*Failure) *DescribeCapacityProvidersOutput {
11135	s.Failures = v
11136	return s
11137}
11138
11139// SetNextToken sets the NextToken field's value.
11140func (s *DescribeCapacityProvidersOutput) SetNextToken(v string) *DescribeCapacityProvidersOutput {
11141	s.NextToken = &v
11142	return s
11143}
11144
11145type DescribeClustersInput struct {
11146	_ struct{} `type:"structure"`
11147
11148	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
11149	// entries. If you do not specify a cluster, the default cluster is assumed.
11150	Clusters []*string `locationName:"clusters" type:"list"`
11151
11152	// Whether to include additional information about the clusters in the response.
11153	// If this field is omitted, this information isn't included.
11154	//
11155	// If ATTACHMENTS is specified, the attachments for the container instances
11156	// or tasks within the cluster are included.
11157	//
11158	// If SETTINGS is specified, the settings for the cluster are included.
11159	//
11160	// If CONFIGURATIONS is specified, the configuration for the cluster is included.
11161	//
11162	// If STATISTICS is specified, the task and service count is included, separated
11163	// by launch type.
11164	//
11165	// If TAGS is specified, the metadata tags associated with the cluster are included.
11166	Include []*string `locationName:"include" type:"list"`
11167}
11168
11169// String returns the string representation
11170func (s DescribeClustersInput) String() string {
11171	return awsutil.Prettify(s)
11172}
11173
11174// GoString returns the string representation
11175func (s DescribeClustersInput) GoString() string {
11176	return s.String()
11177}
11178
11179// SetClusters sets the Clusters field's value.
11180func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
11181	s.Clusters = v
11182	return s
11183}
11184
11185// SetInclude sets the Include field's value.
11186func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
11187	s.Include = v
11188	return s
11189}
11190
11191type DescribeClustersOutput struct {
11192	_ struct{} `type:"structure"`
11193
11194	// The list of clusters.
11195	Clusters []*Cluster `locationName:"clusters" type:"list"`
11196
11197	// Any failures associated with the call.
11198	Failures []*Failure `locationName:"failures" type:"list"`
11199}
11200
11201// String returns the string representation
11202func (s DescribeClustersOutput) String() string {
11203	return awsutil.Prettify(s)
11204}
11205
11206// GoString returns the string representation
11207func (s DescribeClustersOutput) GoString() string {
11208	return s.String()
11209}
11210
11211// SetClusters sets the Clusters field's value.
11212func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
11213	s.Clusters = v
11214	return s
11215}
11216
11217// SetFailures sets the Failures field's value.
11218func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
11219	s.Failures = v
11220	return s
11221}
11222
11223type DescribeContainerInstancesInput struct {
11224	_ struct{} `type:"structure"`
11225
11226	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11227	// the container instances to describe. If you do not specify a cluster, the
11228	// default cluster is assumed. This parameter is required if the container instance
11229	// or container instances you are describing were launched in any cluster other
11230	// than the default cluster.
11231	Cluster *string `locationName:"cluster" type:"string"`
11232
11233	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
11234	// entries.
11235	//
11236	// ContainerInstances is a required field
11237	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
11238
11239	// Specifies whether you want to see the resource tags for the container instance.
11240	// If TAGS is specified, the tags are included in the response. If this field
11241	// is omitted, tags are not included in the response.
11242	Include []*string `locationName:"include" type:"list"`
11243}
11244
11245// String returns the string representation
11246func (s DescribeContainerInstancesInput) String() string {
11247	return awsutil.Prettify(s)
11248}
11249
11250// GoString returns the string representation
11251func (s DescribeContainerInstancesInput) GoString() string {
11252	return s.String()
11253}
11254
11255// Validate inspects the fields of the type to determine if they are valid.
11256func (s *DescribeContainerInstancesInput) Validate() error {
11257	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
11258	if s.ContainerInstances == nil {
11259		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
11260	}
11261
11262	if invalidParams.Len() > 0 {
11263		return invalidParams
11264	}
11265	return nil
11266}
11267
11268// SetCluster sets the Cluster field's value.
11269func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
11270	s.Cluster = &v
11271	return s
11272}
11273
11274// SetContainerInstances sets the ContainerInstances field's value.
11275func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
11276	s.ContainerInstances = v
11277	return s
11278}
11279
11280// SetInclude sets the Include field's value.
11281func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
11282	s.Include = v
11283	return s
11284}
11285
11286type DescribeContainerInstancesOutput struct {
11287	_ struct{} `type:"structure"`
11288
11289	// The list of container instances.
11290	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
11291
11292	// Any failures associated with the call.
11293	Failures []*Failure `locationName:"failures" type:"list"`
11294}
11295
11296// String returns the string representation
11297func (s DescribeContainerInstancesOutput) String() string {
11298	return awsutil.Prettify(s)
11299}
11300
11301// GoString returns the string representation
11302func (s DescribeContainerInstancesOutput) GoString() string {
11303	return s.String()
11304}
11305
11306// SetContainerInstances sets the ContainerInstances field's value.
11307func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
11308	s.ContainerInstances = v
11309	return s
11310}
11311
11312// SetFailures sets the Failures field's value.
11313func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
11314	s.Failures = v
11315	return s
11316}
11317
11318type DescribeServicesInput struct {
11319	_ struct{} `type:"structure"`
11320
11321	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
11322	// service to describe. If you do not specify a cluster, the default cluster
11323	// is assumed. This parameter is required if the service or services you are
11324	// describing were launched in any cluster other than the default cluster.
11325	Cluster *string `locationName:"cluster" type:"string"`
11326
11327	// Specifies whether you want to see the resource tags for the service. If TAGS
11328	// is specified, the tags are included in the response. If this field is omitted,
11329	// tags are not included in the response.
11330	Include []*string `locationName:"include" type:"list"`
11331
11332	// A list of services to describe. You may specify up to 10 services to describe
11333	// in a single operation.
11334	//
11335	// Services is a required field
11336	Services []*string `locationName:"services" type:"list" required:"true"`
11337}
11338
11339// String returns the string representation
11340func (s DescribeServicesInput) String() string {
11341	return awsutil.Prettify(s)
11342}
11343
11344// GoString returns the string representation
11345func (s DescribeServicesInput) GoString() string {
11346	return s.String()
11347}
11348
11349// Validate inspects the fields of the type to determine if they are valid.
11350func (s *DescribeServicesInput) Validate() error {
11351	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
11352	if s.Services == nil {
11353		invalidParams.Add(request.NewErrParamRequired("Services"))
11354	}
11355
11356	if invalidParams.Len() > 0 {
11357		return invalidParams
11358	}
11359	return nil
11360}
11361
11362// SetCluster sets the Cluster field's value.
11363func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
11364	s.Cluster = &v
11365	return s
11366}
11367
11368// SetInclude sets the Include field's value.
11369func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
11370	s.Include = v
11371	return s
11372}
11373
11374// SetServices sets the Services field's value.
11375func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
11376	s.Services = v
11377	return s
11378}
11379
11380type DescribeServicesOutput struct {
11381	_ struct{} `type:"structure"`
11382
11383	// Any failures associated with the call.
11384	Failures []*Failure `locationName:"failures" type:"list"`
11385
11386	// The list of services described.
11387	Services []*Service `locationName:"services" type:"list"`
11388}
11389
11390// String returns the string representation
11391func (s DescribeServicesOutput) String() string {
11392	return awsutil.Prettify(s)
11393}
11394
11395// GoString returns the string representation
11396func (s DescribeServicesOutput) GoString() string {
11397	return s.String()
11398}
11399
11400// SetFailures sets the Failures field's value.
11401func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
11402	s.Failures = v
11403	return s
11404}
11405
11406// SetServices sets the Services field's value.
11407func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
11408	s.Services = v
11409	return s
11410}
11411
11412type DescribeTaskDefinitionInput struct {
11413	_ struct{} `type:"structure"`
11414
11415	// Specifies whether to see the resource tags for the task definition. If TAGS
11416	// is specified, the tags are included in the response. If this field is omitted,
11417	// tags are not included in the response.
11418	Include []*string `locationName:"include" type:"list"`
11419
11420	// The family for the latest ACTIVE revision, family and revision (family:revision)
11421	// for a specific revision in the family, or full Amazon Resource Name (ARN)
11422	// of the task definition to describe.
11423	//
11424	// TaskDefinition is a required field
11425	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
11426}
11427
11428// String returns the string representation
11429func (s DescribeTaskDefinitionInput) String() string {
11430	return awsutil.Prettify(s)
11431}
11432
11433// GoString returns the string representation
11434func (s DescribeTaskDefinitionInput) GoString() string {
11435	return s.String()
11436}
11437
11438// Validate inspects the fields of the type to determine if they are valid.
11439func (s *DescribeTaskDefinitionInput) Validate() error {
11440	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
11441	if s.TaskDefinition == nil {
11442		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
11443	}
11444
11445	if invalidParams.Len() > 0 {
11446		return invalidParams
11447	}
11448	return nil
11449}
11450
11451// SetInclude sets the Include field's value.
11452func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
11453	s.Include = v
11454	return s
11455}
11456
11457// SetTaskDefinition sets the TaskDefinition field's value.
11458func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
11459	s.TaskDefinition = &v
11460	return s
11461}
11462
11463type DescribeTaskDefinitionOutput struct {
11464	_ struct{} `type:"structure"`
11465
11466	// The metadata that is applied to the task definition to help you categorize
11467	// and organize them. Each tag consists of a key and an optional value, both
11468	// of which you define.
11469	//
11470	// The following basic restrictions apply to tags:
11471	//
11472	//    * Maximum number of tags per resource - 50
11473	//
11474	//    * For each resource, each tag key must be unique, and each tag key can
11475	//    have only one value.
11476	//
11477	//    * Maximum key length - 128 Unicode characters in UTF-8
11478	//
11479	//    * Maximum value length - 256 Unicode characters in UTF-8
11480	//
11481	//    * If your tagging schema is used across multiple services and resources,
11482	//    remember that other services may have restrictions on allowed characters.
11483	//    Generally allowed characters are: letters, numbers, and spaces representable
11484	//    in UTF-8, and the following characters: + - = . _ : / @.
11485	//
11486	//    * Tag keys and values are case-sensitive.
11487	//
11488	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
11489	//    as a prefix for either keys or values as it is reserved for Amazon Web
11490	//    Services use. You cannot edit or delete tag keys or values with this prefix.
11491	//    Tags with this prefix do not count against your tags per resource limit.
11492	Tags []*Tag `locationName:"tags" type:"list"`
11493
11494	// The full task definition description.
11495	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
11496}
11497
11498// String returns the string representation
11499func (s DescribeTaskDefinitionOutput) String() string {
11500	return awsutil.Prettify(s)
11501}
11502
11503// GoString returns the string representation
11504func (s DescribeTaskDefinitionOutput) GoString() string {
11505	return s.String()
11506}
11507
11508// SetTags sets the Tags field's value.
11509func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
11510	s.Tags = v
11511	return s
11512}
11513
11514// SetTaskDefinition sets the TaskDefinition field's value.
11515func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
11516	s.TaskDefinition = v
11517	return s
11518}
11519
11520type DescribeTaskSetsInput struct {
11521	_ struct{} `type:"structure"`
11522
11523	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11524	// the service that the task sets exist in.
11525	//
11526	// Cluster is a required field
11527	Cluster *string `locationName:"cluster" type:"string" required:"true"`
11528
11529	// Specifies whether to see the resource tags for the task set. If TAGS is specified,
11530	// the tags are included in the response. If this field is omitted, tags are
11531	// not included in the response.
11532	Include []*string `locationName:"include" type:"list"`
11533
11534	// The short name or full Amazon Resource Name (ARN) of the service that the
11535	// task sets exist in.
11536	//
11537	// Service is a required field
11538	Service *string `locationName:"service" type:"string" required:"true"`
11539
11540	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
11541	TaskSets []*string `locationName:"taskSets" type:"list"`
11542}
11543
11544// String returns the string representation
11545func (s DescribeTaskSetsInput) String() string {
11546	return awsutil.Prettify(s)
11547}
11548
11549// GoString returns the string representation
11550func (s DescribeTaskSetsInput) GoString() string {
11551	return s.String()
11552}
11553
11554// Validate inspects the fields of the type to determine if they are valid.
11555func (s *DescribeTaskSetsInput) Validate() error {
11556	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
11557	if s.Cluster == nil {
11558		invalidParams.Add(request.NewErrParamRequired("Cluster"))
11559	}
11560	if s.Service == nil {
11561		invalidParams.Add(request.NewErrParamRequired("Service"))
11562	}
11563
11564	if invalidParams.Len() > 0 {
11565		return invalidParams
11566	}
11567	return nil
11568}
11569
11570// SetCluster sets the Cluster field's value.
11571func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
11572	s.Cluster = &v
11573	return s
11574}
11575
11576// SetInclude sets the Include field's value.
11577func (s *DescribeTaskSetsInput) SetInclude(v []*string) *DescribeTaskSetsInput {
11578	s.Include = v
11579	return s
11580}
11581
11582// SetService sets the Service field's value.
11583func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
11584	s.Service = &v
11585	return s
11586}
11587
11588// SetTaskSets sets the TaskSets field's value.
11589func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
11590	s.TaskSets = v
11591	return s
11592}
11593
11594type DescribeTaskSetsOutput struct {
11595	_ struct{} `type:"structure"`
11596
11597	// Any failures associated with the call.
11598	Failures []*Failure `locationName:"failures" type:"list"`
11599
11600	// The list of task sets described.
11601	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
11602}
11603
11604// String returns the string representation
11605func (s DescribeTaskSetsOutput) String() string {
11606	return awsutil.Prettify(s)
11607}
11608
11609// GoString returns the string representation
11610func (s DescribeTaskSetsOutput) GoString() string {
11611	return s.String()
11612}
11613
11614// SetFailures sets the Failures field's value.
11615func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
11616	s.Failures = v
11617	return s
11618}
11619
11620// SetTaskSets sets the TaskSets field's value.
11621func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
11622	s.TaskSets = v
11623	return s
11624}
11625
11626type DescribeTasksInput struct {
11627	_ struct{} `type:"structure"`
11628
11629	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11630	// the task or tasks to describe. If you do not specify a cluster, the default
11631	// cluster is assumed. This parameter is required if the task or tasks you are
11632	// describing were launched in any cluster other than the default cluster.
11633	Cluster *string `locationName:"cluster" type:"string"`
11634
11635	// Specifies whether you want to see the resource tags for the task. If TAGS
11636	// is specified, the tags are included in the response. If this field is omitted,
11637	// tags are not included in the response.
11638	Include []*string `locationName:"include" type:"list"`
11639
11640	// A list of up to 100 task IDs or full ARN entries.
11641	//
11642	// Tasks is a required field
11643	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
11644}
11645
11646// String returns the string representation
11647func (s DescribeTasksInput) String() string {
11648	return awsutil.Prettify(s)
11649}
11650
11651// GoString returns the string representation
11652func (s DescribeTasksInput) GoString() string {
11653	return s.String()
11654}
11655
11656// Validate inspects the fields of the type to determine if they are valid.
11657func (s *DescribeTasksInput) Validate() error {
11658	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
11659	if s.Tasks == nil {
11660		invalidParams.Add(request.NewErrParamRequired("Tasks"))
11661	}
11662
11663	if invalidParams.Len() > 0 {
11664		return invalidParams
11665	}
11666	return nil
11667}
11668
11669// SetCluster sets the Cluster field's value.
11670func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
11671	s.Cluster = &v
11672	return s
11673}
11674
11675// SetInclude sets the Include field's value.
11676func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
11677	s.Include = v
11678	return s
11679}
11680
11681// SetTasks sets the Tasks field's value.
11682func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
11683	s.Tasks = v
11684	return s
11685}
11686
11687type DescribeTasksOutput struct {
11688	_ struct{} `type:"structure"`
11689
11690	// Any failures associated with the call.
11691	Failures []*Failure `locationName:"failures" type:"list"`
11692
11693	// The list of tasks.
11694	Tasks []*Task `locationName:"tasks" type:"list"`
11695}
11696
11697// String returns the string representation
11698func (s DescribeTasksOutput) String() string {
11699	return awsutil.Prettify(s)
11700}
11701
11702// GoString returns the string representation
11703func (s DescribeTasksOutput) GoString() string {
11704	return s.String()
11705}
11706
11707// SetFailures sets the Failures field's value.
11708func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
11709	s.Failures = v
11710	return s
11711}
11712
11713// SetTasks sets the Tasks field's value.
11714func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
11715	s.Tasks = v
11716	return s
11717}
11718
11719// An object representing a container instance host device.
11720type Device struct {
11721	_ struct{} `type:"structure"`
11722
11723	// The path inside the container at which to expose the host device.
11724	ContainerPath *string `locationName:"containerPath" type:"string"`
11725
11726	// The path for the device on the host container instance.
11727	//
11728	// HostPath is a required field
11729	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
11730
11731	// The explicit permissions to provide to the container for the device. By default,
11732	// the container has permissions for read, write, and mknod for the device.
11733	Permissions []*string `locationName:"permissions" type:"list"`
11734}
11735
11736// String returns the string representation
11737func (s Device) String() string {
11738	return awsutil.Prettify(s)
11739}
11740
11741// GoString returns the string representation
11742func (s Device) GoString() string {
11743	return s.String()
11744}
11745
11746// Validate inspects the fields of the type to determine if they are valid.
11747func (s *Device) Validate() error {
11748	invalidParams := request.ErrInvalidParams{Context: "Device"}
11749	if s.HostPath == nil {
11750		invalidParams.Add(request.NewErrParamRequired("HostPath"))
11751	}
11752
11753	if invalidParams.Len() > 0 {
11754		return invalidParams
11755	}
11756	return nil
11757}
11758
11759// SetContainerPath sets the ContainerPath field's value.
11760func (s *Device) SetContainerPath(v string) *Device {
11761	s.ContainerPath = &v
11762	return s
11763}
11764
11765// SetHostPath sets the HostPath field's value.
11766func (s *Device) SetHostPath(v string) *Device {
11767	s.HostPath = &v
11768	return s
11769}
11770
11771// SetPermissions sets the Permissions field's value.
11772func (s *Device) SetPermissions(v []*string) *Device {
11773	s.Permissions = v
11774	return s
11775}
11776
11777type DiscoverPollEndpointInput struct {
11778	_ struct{} `type:"structure"`
11779
11780	// The short name or full Amazon Resource Name (ARN) of the cluster to which
11781	// the container instance belongs.
11782	Cluster *string `locationName:"cluster" type:"string"`
11783
11784	// The container instance ID or full ARN of the container instance. The ARN
11785	// contains the arn:aws:ecs namespace, followed by the Region of the container
11786	// instance, the Amazon Web Services account ID of the container instance owner,
11787	// the container-instance namespace, and then the container instance ID. For
11788	// example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
11789	ContainerInstance *string `locationName:"containerInstance" type:"string"`
11790}
11791
11792// String returns the string representation
11793func (s DiscoverPollEndpointInput) String() string {
11794	return awsutil.Prettify(s)
11795}
11796
11797// GoString returns the string representation
11798func (s DiscoverPollEndpointInput) GoString() string {
11799	return s.String()
11800}
11801
11802// SetCluster sets the Cluster field's value.
11803func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
11804	s.Cluster = &v
11805	return s
11806}
11807
11808// SetContainerInstance sets the ContainerInstance field's value.
11809func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
11810	s.ContainerInstance = &v
11811	return s
11812}
11813
11814type DiscoverPollEndpointOutput struct {
11815	_ struct{} `type:"structure"`
11816
11817	// The endpoint for the Amazon ECS agent to poll.
11818	Endpoint *string `locationName:"endpoint" type:"string"`
11819
11820	// The telemetry endpoint for the Amazon ECS agent.
11821	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
11822}
11823
11824// String returns the string representation
11825func (s DiscoverPollEndpointOutput) String() string {
11826	return awsutil.Prettify(s)
11827}
11828
11829// GoString returns the string representation
11830func (s DiscoverPollEndpointOutput) GoString() string {
11831	return s.String()
11832}
11833
11834// SetEndpoint sets the Endpoint field's value.
11835func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
11836	s.Endpoint = &v
11837	return s
11838}
11839
11840// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
11841func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
11842	s.TelemetryEndpoint = &v
11843	return s
11844}
11845
11846// This parameter is specified when you are using Docker volumes. Docker volumes
11847// are only supported when you are using the EC2 launch type. Windows containers
11848// only support the use of the local driver. To use bind mounts, specify a host
11849// instead.
11850type DockerVolumeConfiguration struct {
11851	_ struct{} `type:"structure"`
11852
11853	// If this value is true, the Docker volume is created if it does not already
11854	// exist.
11855	//
11856	// This field is only used if the scope is shared.
11857	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
11858
11859	// The Docker volume driver to use. The driver value must match the driver name
11860	// provided by Docker because it is used for task placement. If the driver was
11861	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
11862	// driver name from your container instance. If the driver was installed using
11863	// another method, use Docker plugin discovery to retrieve the driver name.
11864	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
11865	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11866	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11867	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11868	Driver *string `locationName:"driver" type:"string"`
11869
11870	// A map of Docker driver-specific options passed through. This parameter maps
11871	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11872	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11873	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11874	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
11875
11876	// Custom metadata to add to your Docker volume. This parameter maps to Labels
11877	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11878	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11879	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11880	Labels map[string]*string `locationName:"labels" type:"map"`
11881
11882	// The scope for the Docker volume that determines its lifecycle. Docker volumes
11883	// that are scoped to a task are automatically provisioned when the task starts
11884	// and destroyed when the task stops. Docker volumes that are scoped as shared
11885	// persist after the task stops.
11886	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
11887}
11888
11889// String returns the string representation
11890func (s DockerVolumeConfiguration) String() string {
11891	return awsutil.Prettify(s)
11892}
11893
11894// GoString returns the string representation
11895func (s DockerVolumeConfiguration) GoString() string {
11896	return s.String()
11897}
11898
11899// SetAutoprovision sets the Autoprovision field's value.
11900func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
11901	s.Autoprovision = &v
11902	return s
11903}
11904
11905// SetDriver sets the Driver field's value.
11906func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
11907	s.Driver = &v
11908	return s
11909}
11910
11911// SetDriverOpts sets the DriverOpts field's value.
11912func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
11913	s.DriverOpts = v
11914	return s
11915}
11916
11917// SetLabels sets the Labels field's value.
11918func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
11919	s.Labels = v
11920	return s
11921}
11922
11923// SetScope sets the Scope field's value.
11924func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
11925	s.Scope = &v
11926	return s
11927}
11928
11929// The authorization configuration details for the Amazon EFS file system.
11930type EFSAuthorizationConfig struct {
11931	_ struct{} `type:"structure"`
11932
11933	// The Amazon EFS access point ID to use. If an access point is specified, the
11934	// root directory value specified in the EFSVolumeConfiguration must either
11935	// be omitted or set to / which will enforce the path set on the EFS access
11936	// point. If an access point is used, transit encryption must be enabled in
11937	// the EFSVolumeConfiguration. For more information, see Working with Amazon
11938	// EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)
11939	// in the Amazon Elastic File System User Guide.
11940	AccessPointId *string `locationName:"accessPointId" type:"string"`
11941
11942	// Whether or not to use the Amazon ECS task IAM role defined in a task definition
11943	// when mounting the Amazon EFS file system. If enabled, transit encryption
11944	// must be enabled in the EFSVolumeConfiguration. If this parameter is omitted,
11945	// the default value of DISABLED is used. For more information, see Using Amazon
11946	// EFS Access Points (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints)
11947	// in the Amazon Elastic Container Service Developer Guide.
11948	Iam *string `locationName:"iam" type:"string" enum:"EFSAuthorizationConfigIAM"`
11949}
11950
11951// String returns the string representation
11952func (s EFSAuthorizationConfig) String() string {
11953	return awsutil.Prettify(s)
11954}
11955
11956// GoString returns the string representation
11957func (s EFSAuthorizationConfig) GoString() string {
11958	return s.String()
11959}
11960
11961// SetAccessPointId sets the AccessPointId field's value.
11962func (s *EFSAuthorizationConfig) SetAccessPointId(v string) *EFSAuthorizationConfig {
11963	s.AccessPointId = &v
11964	return s
11965}
11966
11967// SetIam sets the Iam field's value.
11968func (s *EFSAuthorizationConfig) SetIam(v string) *EFSAuthorizationConfig {
11969	s.Iam = &v
11970	return s
11971}
11972
11973// This parameter is specified when you are using an Amazon Elastic File System
11974// file system for task storage. For more information, see Amazon EFS Volumes
11975// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html)
11976// in the Amazon Elastic Container Service Developer Guide.
11977type EFSVolumeConfiguration struct {
11978	_ struct{} `type:"structure"`
11979
11980	// The authorization configuration details for the Amazon EFS file system.
11981	AuthorizationConfig *EFSAuthorizationConfig `locationName:"authorizationConfig" type:"structure"`
11982
11983	// The Amazon EFS file system ID to use.
11984	//
11985	// FileSystemId is a required field
11986	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
11987
11988	// The directory within the Amazon EFS file system to mount as the root directory
11989	// inside the host. If this parameter is omitted, the root of the Amazon EFS
11990	// volume will be used. Specifying / will have the same effect as omitting this
11991	// parameter.
11992	//
11993	// If an EFS access point is specified in the authorizationConfig, the root
11994	// directory parameter must either be omitted or set to / which will enforce
11995	// the path set on the EFS access point.
11996	RootDirectory *string `locationName:"rootDirectory" type:"string"`
11997
11998	// Whether or not to enable encryption for Amazon EFS data in transit between
11999	// the Amazon ECS host and the Amazon EFS server. Transit encryption must be
12000	// enabled if Amazon EFS IAM authorization is used. If this parameter is omitted,
12001	// the default value of DISABLED is used. For more information, see Encrypting
12002	// Data in Transit (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)
12003	// in the Amazon Elastic File System User Guide.
12004	TransitEncryption *string `locationName:"transitEncryption" type:"string" enum:"EFSTransitEncryption"`
12005
12006	// The port to use when sending encrypted data between the Amazon ECS host and
12007	// the Amazon EFS server. If you do not specify a transit encryption port, it
12008	// will use the port selection strategy that the Amazon EFS mount helper uses.
12009	// For more information, see EFS Mount Helper (https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html)
12010	// in the Amazon Elastic File System User Guide.
12011	TransitEncryptionPort *int64 `locationName:"transitEncryptionPort" type:"integer"`
12012}
12013
12014// String returns the string representation
12015func (s EFSVolumeConfiguration) String() string {
12016	return awsutil.Prettify(s)
12017}
12018
12019// GoString returns the string representation
12020func (s EFSVolumeConfiguration) GoString() string {
12021	return s.String()
12022}
12023
12024// Validate inspects the fields of the type to determine if they are valid.
12025func (s *EFSVolumeConfiguration) Validate() error {
12026	invalidParams := request.ErrInvalidParams{Context: "EFSVolumeConfiguration"}
12027	if s.FileSystemId == nil {
12028		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
12029	}
12030
12031	if invalidParams.Len() > 0 {
12032		return invalidParams
12033	}
12034	return nil
12035}
12036
12037// SetAuthorizationConfig sets the AuthorizationConfig field's value.
12038func (s *EFSVolumeConfiguration) SetAuthorizationConfig(v *EFSAuthorizationConfig) *EFSVolumeConfiguration {
12039	s.AuthorizationConfig = v
12040	return s
12041}
12042
12043// SetFileSystemId sets the FileSystemId field's value.
12044func (s *EFSVolumeConfiguration) SetFileSystemId(v string) *EFSVolumeConfiguration {
12045	s.FileSystemId = &v
12046	return s
12047}
12048
12049// SetRootDirectory sets the RootDirectory field's value.
12050func (s *EFSVolumeConfiguration) SetRootDirectory(v string) *EFSVolumeConfiguration {
12051	s.RootDirectory = &v
12052	return s
12053}
12054
12055// SetTransitEncryption sets the TransitEncryption field's value.
12056func (s *EFSVolumeConfiguration) SetTransitEncryption(v string) *EFSVolumeConfiguration {
12057	s.TransitEncryption = &v
12058	return s
12059}
12060
12061// SetTransitEncryptionPort sets the TransitEncryptionPort field's value.
12062func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeConfiguration {
12063	s.TransitEncryptionPort = &v
12064	return s
12065}
12066
12067// A list of files containing the environment variables to pass to a container.
12068// You can specify up to ten environment files. The file must have a .env file
12069// extension. Each line in an environment file should contain an environment
12070// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
12071// comments and are ignored. For more information on the environment variable
12072// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
12073//
12074// If there are environment variables specified using the environment parameter
12075// in a container definition, they take precedence over the variables contained
12076// within an environment file. If multiple environment files are specified that
12077// contain the same variable, they are processed from the top down. It is recommended
12078// to use unique variable names. For more information, see Specifying environment
12079// variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
12080// in the Amazon Elastic Container Service Developer Guide.
12081//
12082// This field is only valid for containers in Fargate tasks that use platform
12083// version 1.4.0 or later.
12084type EnvironmentFile struct {
12085	_ struct{} `type:"structure"`
12086
12087	// The file type to use. The only supported value is s3.
12088	//
12089	// Type is a required field
12090	Type *string `locationName:"type" type:"string" required:"true" enum:"EnvironmentFileType"`
12091
12092	// The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment
12093	// variable file.
12094	//
12095	// Value is a required field
12096	Value *string `locationName:"value" type:"string" required:"true"`
12097}
12098
12099// String returns the string representation
12100func (s EnvironmentFile) String() string {
12101	return awsutil.Prettify(s)
12102}
12103
12104// GoString returns the string representation
12105func (s EnvironmentFile) GoString() string {
12106	return s.String()
12107}
12108
12109// Validate inspects the fields of the type to determine if they are valid.
12110func (s *EnvironmentFile) Validate() error {
12111	invalidParams := request.ErrInvalidParams{Context: "EnvironmentFile"}
12112	if s.Type == nil {
12113		invalidParams.Add(request.NewErrParamRequired("Type"))
12114	}
12115	if s.Value == nil {
12116		invalidParams.Add(request.NewErrParamRequired("Value"))
12117	}
12118
12119	if invalidParams.Len() > 0 {
12120		return invalidParams
12121	}
12122	return nil
12123}
12124
12125// SetType sets the Type field's value.
12126func (s *EnvironmentFile) SetType(v string) *EnvironmentFile {
12127	s.Type = &v
12128	return s
12129}
12130
12131// SetValue sets the Value field's value.
12132func (s *EnvironmentFile) SetValue(v string) *EnvironmentFile {
12133	s.Value = &v
12134	return s
12135}
12136
12137// The amount of ephemeral storage to allocate for the task. This parameter
12138// is used to expand the total amount of ephemeral storage available, beyond
12139// the default amount, for tasks hosted on Fargate. For more information, see
12140// Fargate task storage (https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html)
12141// in the Amazon ECS User Guide for Fargate.
12142//
12143// This parameter is only supported for tasks hosted on Fargate using platform
12144// version 1.4.0 or later.
12145type EphemeralStorage struct {
12146	_ struct{} `type:"structure"`
12147
12148	// The total amount, in GiB, of ephemeral storage to set for the task. The minimum
12149	// supported value is 21 GiB and the maximum supported value is 200 GiB.
12150	//
12151	// SizeInGiB is a required field
12152	SizeInGiB *int64 `locationName:"sizeInGiB" type:"integer" required:"true"`
12153}
12154
12155// String returns the string representation
12156func (s EphemeralStorage) String() string {
12157	return awsutil.Prettify(s)
12158}
12159
12160// GoString returns the string representation
12161func (s EphemeralStorage) GoString() string {
12162	return s.String()
12163}
12164
12165// Validate inspects the fields of the type to determine if they are valid.
12166func (s *EphemeralStorage) Validate() error {
12167	invalidParams := request.ErrInvalidParams{Context: "EphemeralStorage"}
12168	if s.SizeInGiB == nil {
12169		invalidParams.Add(request.NewErrParamRequired("SizeInGiB"))
12170	}
12171
12172	if invalidParams.Len() > 0 {
12173		return invalidParams
12174	}
12175	return nil
12176}
12177
12178// SetSizeInGiB sets the SizeInGiB field's value.
12179func (s *EphemeralStorage) SetSizeInGiB(v int64) *EphemeralStorage {
12180	s.SizeInGiB = &v
12181	return s
12182}
12183
12184// The details of the execute command configuration.
12185type ExecuteCommandConfiguration struct {
12186	_ struct{} `type:"structure"`
12187
12188	// Specify an Key Management Service key ID to encrypt the data between the
12189	// local client and the container.
12190	KmsKeyId *string `locationName:"kmsKeyId" type:"string"`
12191
12192	// The log configuration for the results of the execute command actions. The
12193	// logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When logging=OVERRIDE
12194	// is specified, a logConfiguration must be provided.
12195	LogConfiguration *ExecuteCommandLogConfiguration `locationName:"logConfiguration" type:"structure"`
12196
12197	// The log setting to use for redirecting logs for your execute command results.
12198	// The following log settings are available.
12199	//
12200	//    * NONE: The execute command session is not logged.
12201	//
12202	//    * DEFAULT: The awslogs configuration in the task definition is used. If
12203	//    no logging parameter is specified, it defaults to this value. If no awslogs
12204	//    log driver is configured in the task definition, the output won't be logged.
12205	//
12206	//    * OVERRIDE: Specify the logging details as a part of logConfiguration.
12207	//    If the OVERRIDE logging option is specified, the logConfiguration is required.
12208	Logging *string `locationName:"logging" type:"string" enum:"ExecuteCommandLogging"`
12209}
12210
12211// String returns the string representation
12212func (s ExecuteCommandConfiguration) String() string {
12213	return awsutil.Prettify(s)
12214}
12215
12216// GoString returns the string representation
12217func (s ExecuteCommandConfiguration) GoString() string {
12218	return s.String()
12219}
12220
12221// SetKmsKeyId sets the KmsKeyId field's value.
12222func (s *ExecuteCommandConfiguration) SetKmsKeyId(v string) *ExecuteCommandConfiguration {
12223	s.KmsKeyId = &v
12224	return s
12225}
12226
12227// SetLogConfiguration sets the LogConfiguration field's value.
12228func (s *ExecuteCommandConfiguration) SetLogConfiguration(v *ExecuteCommandLogConfiguration) *ExecuteCommandConfiguration {
12229	s.LogConfiguration = v
12230	return s
12231}
12232
12233// SetLogging sets the Logging field's value.
12234func (s *ExecuteCommandConfiguration) SetLogging(v string) *ExecuteCommandConfiguration {
12235	s.Logging = &v
12236	return s
12237}
12238
12239type ExecuteCommandInput struct {
12240	_ struct{} `type:"structure"`
12241
12242	// The Amazon Resource Name (ARN) or short name of the cluster the task is running
12243	// in. If you do not specify a cluster, the default cluster is assumed.
12244	Cluster *string `locationName:"cluster" type:"string"`
12245
12246	// The command to run on the container.
12247	//
12248	// Command is a required field
12249	Command *string `locationName:"command" type:"string" required:"true"`
12250
12251	// The name of the container to execute the command on. A container name only
12252	// needs to be specified for tasks containing multiple containers.
12253	Container *string `locationName:"container" type:"string"`
12254
12255	// Use this flag to run your command in interactive mode.
12256	//
12257	// Interactive is a required field
12258	Interactive *bool `locationName:"interactive" type:"boolean" required:"true"`
12259
12260	// The Amazon Resource Name (ARN) or ID of the task the container is part of.
12261	//
12262	// Task is a required field
12263	Task *string `locationName:"task" type:"string" required:"true"`
12264}
12265
12266// String returns the string representation
12267func (s ExecuteCommandInput) String() string {
12268	return awsutil.Prettify(s)
12269}
12270
12271// GoString returns the string representation
12272func (s ExecuteCommandInput) GoString() string {
12273	return s.String()
12274}
12275
12276// Validate inspects the fields of the type to determine if they are valid.
12277func (s *ExecuteCommandInput) Validate() error {
12278	invalidParams := request.ErrInvalidParams{Context: "ExecuteCommandInput"}
12279	if s.Command == nil {
12280		invalidParams.Add(request.NewErrParamRequired("Command"))
12281	}
12282	if s.Interactive == nil {
12283		invalidParams.Add(request.NewErrParamRequired("Interactive"))
12284	}
12285	if s.Task == nil {
12286		invalidParams.Add(request.NewErrParamRequired("Task"))
12287	}
12288
12289	if invalidParams.Len() > 0 {
12290		return invalidParams
12291	}
12292	return nil
12293}
12294
12295// SetCluster sets the Cluster field's value.
12296func (s *ExecuteCommandInput) SetCluster(v string) *ExecuteCommandInput {
12297	s.Cluster = &v
12298	return s
12299}
12300
12301// SetCommand sets the Command field's value.
12302func (s *ExecuteCommandInput) SetCommand(v string) *ExecuteCommandInput {
12303	s.Command = &v
12304	return s
12305}
12306
12307// SetContainer sets the Container field's value.
12308func (s *ExecuteCommandInput) SetContainer(v string) *ExecuteCommandInput {
12309	s.Container = &v
12310	return s
12311}
12312
12313// SetInteractive sets the Interactive field's value.
12314func (s *ExecuteCommandInput) SetInteractive(v bool) *ExecuteCommandInput {
12315	s.Interactive = &v
12316	return s
12317}
12318
12319// SetTask sets the Task field's value.
12320func (s *ExecuteCommandInput) SetTask(v string) *ExecuteCommandInput {
12321	s.Task = &v
12322	return s
12323}
12324
12325// The log configuration for the results of the execute command actions. The
12326// logs can be sent to CloudWatch Logs or an Amazon S3 bucket.
12327type ExecuteCommandLogConfiguration struct {
12328	_ struct{} `type:"structure"`
12329
12330	// Whether or not to enable encryption on the CloudWatch logs. If not specified,
12331	// encryption will be disabled.
12332	CloudWatchEncryptionEnabled *bool `locationName:"cloudWatchEncryptionEnabled" type:"boolean"`
12333
12334	// The name of the CloudWatch log group to send logs to.
12335	//
12336	// The CloudWatch log group must already be created.
12337	CloudWatchLogGroupName *string `locationName:"cloudWatchLogGroupName" type:"string"`
12338
12339	// The name of the S3 bucket to send logs to.
12340	//
12341	// The S3 bucket must already be created.
12342	S3BucketName *string `locationName:"s3BucketName" type:"string"`
12343
12344	// Whether or not to enable encryption on the CloudWatch logs. If not specified,
12345	// encryption will be disabled.
12346	S3EncryptionEnabled *bool `locationName:"s3EncryptionEnabled" type:"boolean"`
12347
12348	// An optional folder in the S3 bucket to place logs in.
12349	S3KeyPrefix *string `locationName:"s3KeyPrefix" type:"string"`
12350}
12351
12352// String returns the string representation
12353func (s ExecuteCommandLogConfiguration) String() string {
12354	return awsutil.Prettify(s)
12355}
12356
12357// GoString returns the string representation
12358func (s ExecuteCommandLogConfiguration) GoString() string {
12359	return s.String()
12360}
12361
12362// SetCloudWatchEncryptionEnabled sets the CloudWatchEncryptionEnabled field's value.
12363func (s *ExecuteCommandLogConfiguration) SetCloudWatchEncryptionEnabled(v bool) *ExecuteCommandLogConfiguration {
12364	s.CloudWatchEncryptionEnabled = &v
12365	return s
12366}
12367
12368// SetCloudWatchLogGroupName sets the CloudWatchLogGroupName field's value.
12369func (s *ExecuteCommandLogConfiguration) SetCloudWatchLogGroupName(v string) *ExecuteCommandLogConfiguration {
12370	s.CloudWatchLogGroupName = &v
12371	return s
12372}
12373
12374// SetS3BucketName sets the S3BucketName field's value.
12375func (s *ExecuteCommandLogConfiguration) SetS3BucketName(v string) *ExecuteCommandLogConfiguration {
12376	s.S3BucketName = &v
12377	return s
12378}
12379
12380// SetS3EncryptionEnabled sets the S3EncryptionEnabled field's value.
12381func (s *ExecuteCommandLogConfiguration) SetS3EncryptionEnabled(v bool) *ExecuteCommandLogConfiguration {
12382	s.S3EncryptionEnabled = &v
12383	return s
12384}
12385
12386// SetS3KeyPrefix sets the S3KeyPrefix field's value.
12387func (s *ExecuteCommandLogConfiguration) SetS3KeyPrefix(v string) *ExecuteCommandLogConfiguration {
12388	s.S3KeyPrefix = &v
12389	return s
12390}
12391
12392type ExecuteCommandOutput struct {
12393	_ struct{} `type:"structure"`
12394
12395	// The Amazon Resource Name (ARN) of the cluster.
12396	ClusterArn *string `locationName:"clusterArn" type:"string"`
12397
12398	// The Amazon Resource Name (ARN) of the container.
12399	ContainerArn *string `locationName:"containerArn" type:"string"`
12400
12401	// The name of the container.
12402	ContainerName *string `locationName:"containerName" type:"string"`
12403
12404	// Whether or not the execute command session is running in interactive mode.
12405	// Amazon ECS only supports initiating interactive sessions, so you must specify
12406	// true for this value.
12407	Interactive *bool `locationName:"interactive" type:"boolean"`
12408
12409	// The details of the SSM session that was created for this instance of execute-command.
12410	Session *Session `locationName:"session" type:"structure"`
12411
12412	// The Amazon Resource Name (ARN) of the task.
12413	TaskArn *string `locationName:"taskArn" type:"string"`
12414}
12415
12416// String returns the string representation
12417func (s ExecuteCommandOutput) String() string {
12418	return awsutil.Prettify(s)
12419}
12420
12421// GoString returns the string representation
12422func (s ExecuteCommandOutput) GoString() string {
12423	return s.String()
12424}
12425
12426// SetClusterArn sets the ClusterArn field's value.
12427func (s *ExecuteCommandOutput) SetClusterArn(v string) *ExecuteCommandOutput {
12428	s.ClusterArn = &v
12429	return s
12430}
12431
12432// SetContainerArn sets the ContainerArn field's value.
12433func (s *ExecuteCommandOutput) SetContainerArn(v string) *ExecuteCommandOutput {
12434	s.ContainerArn = &v
12435	return s
12436}
12437
12438// SetContainerName sets the ContainerName field's value.
12439func (s *ExecuteCommandOutput) SetContainerName(v string) *ExecuteCommandOutput {
12440	s.ContainerName = &v
12441	return s
12442}
12443
12444// SetInteractive sets the Interactive field's value.
12445func (s *ExecuteCommandOutput) SetInteractive(v bool) *ExecuteCommandOutput {
12446	s.Interactive = &v
12447	return s
12448}
12449
12450// SetSession sets the Session field's value.
12451func (s *ExecuteCommandOutput) SetSession(v *Session) *ExecuteCommandOutput {
12452	s.Session = v
12453	return s
12454}
12455
12456// SetTaskArn sets the TaskArn field's value.
12457func (s *ExecuteCommandOutput) SetTaskArn(v string) *ExecuteCommandOutput {
12458	s.TaskArn = &v
12459	return s
12460}
12461
12462// The authorization configuration details for Amazon FSx for Windows File Server
12463// file system. See FSxWindowsFileServerVolumeConfiguration (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FSxWindowsFileServerVolumeConfiguration.html)
12464// in the Amazon Elastic Container Service API Reference.
12465//
12466// For more information and the input format, see Amazon FSx for Windows File
12467// Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html)
12468// in the Amazon Elastic Container Service Developer Guide.
12469type FSxWindowsFileServerAuthorizationConfig struct {
12470	_ struct{} `type:"structure"`
12471
12472	// The authorization credential option to use. The authorization credential
12473	// options can be provided using either the Amazon Resource Name (ARN) of an
12474	// Secrets Manager secret or SSM Parameter Store parameter. The ARNs refer to
12475	// the stored credentials.
12476	//
12477	// CredentialsParameter is a required field
12478	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
12479
12480	// A fully qualified domain name hosted by an Directory Service (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)
12481	// Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
12482	//
12483	// Domain is a required field
12484	Domain *string `locationName:"domain" type:"string" required:"true"`
12485}
12486
12487// String returns the string representation
12488func (s FSxWindowsFileServerAuthorizationConfig) String() string {
12489	return awsutil.Prettify(s)
12490}
12491
12492// GoString returns the string representation
12493func (s FSxWindowsFileServerAuthorizationConfig) GoString() string {
12494	return s.String()
12495}
12496
12497// Validate inspects the fields of the type to determine if they are valid.
12498func (s *FSxWindowsFileServerAuthorizationConfig) Validate() error {
12499	invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerAuthorizationConfig"}
12500	if s.CredentialsParameter == nil {
12501		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
12502	}
12503	if s.Domain == nil {
12504		invalidParams.Add(request.NewErrParamRequired("Domain"))
12505	}
12506
12507	if invalidParams.Len() > 0 {
12508		return invalidParams
12509	}
12510	return nil
12511}
12512
12513// SetCredentialsParameter sets the CredentialsParameter field's value.
12514func (s *FSxWindowsFileServerAuthorizationConfig) SetCredentialsParameter(v string) *FSxWindowsFileServerAuthorizationConfig {
12515	s.CredentialsParameter = &v
12516	return s
12517}
12518
12519// SetDomain sets the Domain field's value.
12520func (s *FSxWindowsFileServerAuthorizationConfig) SetDomain(v string) *FSxWindowsFileServerAuthorizationConfig {
12521	s.Domain = &v
12522	return s
12523}
12524
12525// This parameter is specified when you are using Amazon FSx for Windows File
12526// Server (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html)
12527// file system for task storage.
12528//
12529// For more information and the input format, see Amazon FSx for Windows File
12530// Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html)
12531// in the Amazon Elastic Container Service Developer Guide.
12532type FSxWindowsFileServerVolumeConfiguration struct {
12533	_ struct{} `type:"structure"`
12534
12535	// The authorization configuration details for the Amazon FSx for Windows File
12536	// Server file system.
12537	//
12538	// AuthorizationConfig is a required field
12539	AuthorizationConfig *FSxWindowsFileServerAuthorizationConfig `locationName:"authorizationConfig" type:"structure" required:"true"`
12540
12541	// The Amazon FSx for Windows File Server file system ID to use.
12542	//
12543	// FileSystemId is a required field
12544	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
12545
12546	// The directory within the Amazon FSx for Windows File Server file system to
12547	// mount as the root directory inside the host.
12548	//
12549	// RootDirectory is a required field
12550	RootDirectory *string `locationName:"rootDirectory" type:"string" required:"true"`
12551}
12552
12553// String returns the string representation
12554func (s FSxWindowsFileServerVolumeConfiguration) String() string {
12555	return awsutil.Prettify(s)
12556}
12557
12558// GoString returns the string representation
12559func (s FSxWindowsFileServerVolumeConfiguration) GoString() string {
12560	return s.String()
12561}
12562
12563// Validate inspects the fields of the type to determine if they are valid.
12564func (s *FSxWindowsFileServerVolumeConfiguration) Validate() error {
12565	invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerVolumeConfiguration"}
12566	if s.AuthorizationConfig == nil {
12567		invalidParams.Add(request.NewErrParamRequired("AuthorizationConfig"))
12568	}
12569	if s.FileSystemId == nil {
12570		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
12571	}
12572	if s.RootDirectory == nil {
12573		invalidParams.Add(request.NewErrParamRequired("RootDirectory"))
12574	}
12575	if s.AuthorizationConfig != nil {
12576		if err := s.AuthorizationConfig.Validate(); err != nil {
12577			invalidParams.AddNested("AuthorizationConfig", err.(request.ErrInvalidParams))
12578		}
12579	}
12580
12581	if invalidParams.Len() > 0 {
12582		return invalidParams
12583	}
12584	return nil
12585}
12586
12587// SetAuthorizationConfig sets the AuthorizationConfig field's value.
12588func (s *FSxWindowsFileServerVolumeConfiguration) SetAuthorizationConfig(v *FSxWindowsFileServerAuthorizationConfig) *FSxWindowsFileServerVolumeConfiguration {
12589	s.AuthorizationConfig = v
12590	return s
12591}
12592
12593// SetFileSystemId sets the FileSystemId field's value.
12594func (s *FSxWindowsFileServerVolumeConfiguration) SetFileSystemId(v string) *FSxWindowsFileServerVolumeConfiguration {
12595	s.FileSystemId = &v
12596	return s
12597}
12598
12599// SetRootDirectory sets the RootDirectory field's value.
12600func (s *FSxWindowsFileServerVolumeConfiguration) SetRootDirectory(v string) *FSxWindowsFileServerVolumeConfiguration {
12601	s.RootDirectory = &v
12602	return s
12603}
12604
12605// A failed resource. For a list of common causes, see API failure reasons (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html)
12606// in the Amazon Elastic Container Service Developer Guide.
12607type Failure struct {
12608	_ struct{} `type:"structure"`
12609
12610	// The Amazon Resource Name (ARN) of the failed resource.
12611	Arn *string `locationName:"arn" type:"string"`
12612
12613	// The details of the failure.
12614	Detail *string `locationName:"detail" type:"string"`
12615
12616	// The reason for the failure.
12617	Reason *string `locationName:"reason" type:"string"`
12618}
12619
12620// String returns the string representation
12621func (s Failure) String() string {
12622	return awsutil.Prettify(s)
12623}
12624
12625// GoString returns the string representation
12626func (s Failure) GoString() string {
12627	return s.String()
12628}
12629
12630// SetArn sets the Arn field's value.
12631func (s *Failure) SetArn(v string) *Failure {
12632	s.Arn = &v
12633	return s
12634}
12635
12636// SetDetail sets the Detail field's value.
12637func (s *Failure) SetDetail(v string) *Failure {
12638	s.Detail = &v
12639	return s
12640}
12641
12642// SetReason sets the Reason field's value.
12643func (s *Failure) SetReason(v string) *Failure {
12644	s.Reason = &v
12645	return s
12646}
12647
12648// The FireLens configuration for the container. This is used to specify and
12649// configure a log router for container logs. For more information, see Custom
12650// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
12651// in the Amazon Elastic Container Service Developer Guide.
12652type FirelensConfiguration struct {
12653	_ struct{} `type:"structure"`
12654
12655	// The options to use when configuring the log router. This field is optional
12656	// and can be used to specify a custom configuration file or to add additional
12657	// metadata, such as the task, task definition, cluster, and container instance
12658	// details to the log event. If specified, the syntax to use is "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}.
12659	// For more information, see Creating a Task Definition that Uses a FireLens
12660	// Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef)
12661	// in the Amazon Elastic Container Service Developer Guide.
12662	//
12663	// Tasks hosted on Fargate only support the file configuration file type.
12664	Options map[string]*string `locationName:"options" type:"map"`
12665
12666	// The log router to use. The valid values are fluentd or fluentbit.
12667	//
12668	// Type is a required field
12669	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
12670}
12671
12672// String returns the string representation
12673func (s FirelensConfiguration) String() string {
12674	return awsutil.Prettify(s)
12675}
12676
12677// GoString returns the string representation
12678func (s FirelensConfiguration) GoString() string {
12679	return s.String()
12680}
12681
12682// Validate inspects the fields of the type to determine if they are valid.
12683func (s *FirelensConfiguration) Validate() error {
12684	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
12685	if s.Type == nil {
12686		invalidParams.Add(request.NewErrParamRequired("Type"))
12687	}
12688
12689	if invalidParams.Len() > 0 {
12690		return invalidParams
12691	}
12692	return nil
12693}
12694
12695// SetOptions sets the Options field's value.
12696func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
12697	s.Options = v
12698	return s
12699}
12700
12701// SetType sets the Type field's value.
12702func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
12703	s.Type = &v
12704	return s
12705}
12706
12707// An object representing a container health check. Health check parameters
12708// that are specified in a container definition override any Docker health checks
12709// that exist in the container image (such as those specified in a parent image
12710// or from the image's Dockerfile).
12711//
12712// You can view the health status of both individual containers and a task with
12713// the DescribeTasks API operation or when viewing the task details in the console.
12714//
12715// The following describes the possible healthStatus values for a container:
12716//
12717//    * HEALTHY-The container health check has passed successfully.
12718//
12719//    * UNHEALTHY-The container health check has failed.
12720//
12721//    * UNKNOWN-The container health check is being evaluated or there is no
12722//    container health check defined.
12723//
12724// The following describes the possible healthStatus values for a task. The
12725// container health check status of nonessential containers do not have an effect
12726// on the health status of a task.
12727//
12728//    * HEALTHY-All essential containers within the task have passed their health
12729//    checks.
12730//
12731//    * UNHEALTHY-One or more essential containers have failed their health
12732//    check.
12733//
12734//    * UNKNOWN-The essential containers within the task are still having their
12735//    health checks evaluated or there are no container health checks defined.
12736//
12737// If a task is run manually, and not as part of a service, the task will continue
12738// its lifecycle regardless of its health status. For tasks that are part of
12739// a service, if the task reports as unhealthy then the task will be stopped
12740// and the service scheduler will replace it.
12741//
12742// The following are notes about container health check support:
12743//
12744//    * Container health checks require version 1.17.0 or greater of the Amazon
12745//    ECS container agent. For more information, see Updating the Amazon ECS
12746//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
12747//
12748//    * Container health checks are supported for Fargate tasks if you are using
12749//    platform version 1.1.0 or greater. For more information, see Fargate Platform
12750//    Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
12751//
12752//    * Container health checks are not supported for tasks that are part of
12753//    a service that is configured to use a Classic Load Balancer.
12754type HealthCheck struct {
12755	_ struct{} `type:"structure"`
12756
12757	// A string array representing the command that the container runs to determine
12758	// if it is healthy. The string array must start with CMD to execute the command
12759	// arguments directly, or CMD-SHELL to run the command with the container's
12760	// default shell.
12761	//
12762	// When you use the Amazon Web Services Management Console JSON panel, the Command
12763	// Line Interface, or the APIs, you should enclose the list of commands in brackets,
12764	// as shown below.
12765	//
12766	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
12767	//
12768	// You do not need to include the brackets when you use the Amazon Web Services
12769	// Management Consoleas shown below.
12770	//
12771	// "CMD-SHELL", "curl -f http://localhost/ || exit 1"
12772	//
12773	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
12774	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12775	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
12776	//
12777	// Command is a required field
12778	Command []*string `locationName:"command" type:"list" required:"true"`
12779
12780	// The time period in seconds between each health check execution. You may specify
12781	// between 5 and 300 seconds. The default value is 30 seconds.
12782	Interval *int64 `locationName:"interval" type:"integer"`
12783
12784	// The number of times to retry a failed health check before the container is
12785	// considered unhealthy. You may specify between 1 and 10 retries. The default
12786	// value is 3.
12787	Retries *int64 `locationName:"retries" type:"integer"`
12788
12789	// The optional grace period within which to provide containers time to bootstrap
12790	// before failed health checks count towards the maximum number of retries.
12791	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
12792	// default.
12793	//
12794	// If a health check succeeds within the startPeriod, then the container is
12795	// considered healthy and any subsequent failures count toward the maximum number
12796	// of retries.
12797	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
12798
12799	// The time period in seconds to wait for a health check to succeed before it
12800	// is considered a failure. You may specify between 2 and 60 seconds. The default
12801	// value is 5.
12802	Timeout *int64 `locationName:"timeout" type:"integer"`
12803}
12804
12805// String returns the string representation
12806func (s HealthCheck) String() string {
12807	return awsutil.Prettify(s)
12808}
12809
12810// GoString returns the string representation
12811func (s HealthCheck) GoString() string {
12812	return s.String()
12813}
12814
12815// Validate inspects the fields of the type to determine if they are valid.
12816func (s *HealthCheck) Validate() error {
12817	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
12818	if s.Command == nil {
12819		invalidParams.Add(request.NewErrParamRequired("Command"))
12820	}
12821
12822	if invalidParams.Len() > 0 {
12823		return invalidParams
12824	}
12825	return nil
12826}
12827
12828// SetCommand sets the Command field's value.
12829func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
12830	s.Command = v
12831	return s
12832}
12833
12834// SetInterval sets the Interval field's value.
12835func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
12836	s.Interval = &v
12837	return s
12838}
12839
12840// SetRetries sets the Retries field's value.
12841func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
12842	s.Retries = &v
12843	return s
12844}
12845
12846// SetStartPeriod sets the StartPeriod field's value.
12847func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
12848	s.StartPeriod = &v
12849	return s
12850}
12851
12852// SetTimeout sets the Timeout field's value.
12853func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
12854	s.Timeout = &v
12855	return s
12856}
12857
12858// Hostnames and IP address entries that are added to the /etc/hosts file of
12859// a container via the extraHosts parameter of its ContainerDefinition.
12860type HostEntry struct {
12861	_ struct{} `type:"structure"`
12862
12863	// The hostname to use in the /etc/hosts entry.
12864	//
12865	// Hostname is a required field
12866	Hostname *string `locationName:"hostname" type:"string" required:"true"`
12867
12868	// The IP address to use in the /etc/hosts entry.
12869	//
12870	// IpAddress is a required field
12871	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
12872}
12873
12874// String returns the string representation
12875func (s HostEntry) String() string {
12876	return awsutil.Prettify(s)
12877}
12878
12879// GoString returns the string representation
12880func (s HostEntry) GoString() string {
12881	return s.String()
12882}
12883
12884// Validate inspects the fields of the type to determine if they are valid.
12885func (s *HostEntry) Validate() error {
12886	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
12887	if s.Hostname == nil {
12888		invalidParams.Add(request.NewErrParamRequired("Hostname"))
12889	}
12890	if s.IpAddress == nil {
12891		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
12892	}
12893
12894	if invalidParams.Len() > 0 {
12895		return invalidParams
12896	}
12897	return nil
12898}
12899
12900// SetHostname sets the Hostname field's value.
12901func (s *HostEntry) SetHostname(v string) *HostEntry {
12902	s.Hostname = &v
12903	return s
12904}
12905
12906// SetIpAddress sets the IpAddress field's value.
12907func (s *HostEntry) SetIpAddress(v string) *HostEntry {
12908	s.IpAddress = &v
12909	return s
12910}
12911
12912// Details on a container instance bind mount host volume.
12913type HostVolumeProperties struct {
12914	_ struct{} `type:"structure"`
12915
12916	// When the host parameter is used, specify a sourcePath to declare the path
12917	// on the host container instance that is presented to the container. If this
12918	// parameter is empty, then the Docker daemon has assigned a host path for you.
12919	// If the host parameter contains a sourcePath file location, then the data
12920	// volume persists at the specified location on the host container instance
12921	// until you delete it manually. If the sourcePath value does not exist on the
12922	// host container instance, the Docker daemon creates it. If the location does
12923	// exist, the contents of the source path folder are exported.
12924	//
12925	// If you are using the Fargate launch type, the sourcePath parameter is not
12926	// supported.
12927	SourcePath *string `locationName:"sourcePath" type:"string"`
12928}
12929
12930// String returns the string representation
12931func (s HostVolumeProperties) String() string {
12932	return awsutil.Prettify(s)
12933}
12934
12935// GoString returns the string representation
12936func (s HostVolumeProperties) GoString() string {
12937	return s.String()
12938}
12939
12940// SetSourcePath sets the SourcePath field's value.
12941func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
12942	s.SourcePath = &v
12943	return s
12944}
12945
12946// Details on a Elastic Inference accelerator. For more information, see Working
12947// with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
12948// in the Amazon Elastic Container Service Developer Guide.
12949type InferenceAccelerator struct {
12950	_ struct{} `type:"structure"`
12951
12952	// The Elastic Inference accelerator device name. The deviceName must also be
12953	// referenced in a container definition as a ResourceRequirement.
12954	//
12955	// DeviceName is a required field
12956	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
12957
12958	// The Elastic Inference accelerator type to use.
12959	//
12960	// DeviceType is a required field
12961	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
12962}
12963
12964// String returns the string representation
12965func (s InferenceAccelerator) String() string {
12966	return awsutil.Prettify(s)
12967}
12968
12969// GoString returns the string representation
12970func (s InferenceAccelerator) GoString() string {
12971	return s.String()
12972}
12973
12974// Validate inspects the fields of the type to determine if they are valid.
12975func (s *InferenceAccelerator) Validate() error {
12976	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
12977	if s.DeviceName == nil {
12978		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
12979	}
12980	if s.DeviceType == nil {
12981		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
12982	}
12983
12984	if invalidParams.Len() > 0 {
12985		return invalidParams
12986	}
12987	return nil
12988}
12989
12990// SetDeviceName sets the DeviceName field's value.
12991func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
12992	s.DeviceName = &v
12993	return s
12994}
12995
12996// SetDeviceType sets the DeviceType field's value.
12997func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
12998	s.DeviceType = &v
12999	return s
13000}
13001
13002// Details on an Elastic Inference accelerator task override. This parameter
13003// is used to override the Elastic Inference accelerator specified in the task
13004// definition. For more information, see Working with Amazon Elastic Inference
13005// on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
13006// in the Amazon Elastic Container Service Developer Guide.
13007type InferenceAcceleratorOverride struct {
13008	_ struct{} `type:"structure"`
13009
13010	// The Elastic Inference accelerator device name to override for the task. This
13011	// parameter must match a deviceName specified in the task definition.
13012	DeviceName *string `locationName:"deviceName" type:"string"`
13013
13014	// The Elastic Inference accelerator type to use.
13015	DeviceType *string `locationName:"deviceType" type:"string"`
13016}
13017
13018// String returns the string representation
13019func (s InferenceAcceleratorOverride) String() string {
13020	return awsutil.Prettify(s)
13021}
13022
13023// GoString returns the string representation
13024func (s InferenceAcceleratorOverride) GoString() string {
13025	return s.String()
13026}
13027
13028// SetDeviceName sets the DeviceName field's value.
13029func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
13030	s.DeviceName = &v
13031	return s
13032}
13033
13034// SetDeviceType sets the DeviceType field's value.
13035func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
13036	s.DeviceType = &v
13037	return s
13038}
13039
13040// The specified parameter is invalid. Review the available parameters for the
13041// API request.
13042type InvalidParameterException struct {
13043	_            struct{}                  `type:"structure"`
13044	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13045
13046	Message_ *string `locationName:"message" type:"string"`
13047}
13048
13049// String returns the string representation
13050func (s InvalidParameterException) String() string {
13051	return awsutil.Prettify(s)
13052}
13053
13054// GoString returns the string representation
13055func (s InvalidParameterException) GoString() string {
13056	return s.String()
13057}
13058
13059func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
13060	return &InvalidParameterException{
13061		RespMetadata: v,
13062	}
13063}
13064
13065// Code returns the exception type name.
13066func (s *InvalidParameterException) Code() string {
13067	return "InvalidParameterException"
13068}
13069
13070// Message returns the exception's message.
13071func (s *InvalidParameterException) Message() string {
13072	if s.Message_ != nil {
13073		return *s.Message_
13074	}
13075	return ""
13076}
13077
13078// OrigErr always returns nil, satisfies awserr.Error interface.
13079func (s *InvalidParameterException) OrigErr() error {
13080	return nil
13081}
13082
13083func (s *InvalidParameterException) Error() string {
13084	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13085}
13086
13087// Status code returns the HTTP status code for the request's response error.
13088func (s *InvalidParameterException) StatusCode() int {
13089	return s.RespMetadata.StatusCode
13090}
13091
13092// RequestID returns the service's response RequestID for request.
13093func (s *InvalidParameterException) RequestID() string {
13094	return s.RespMetadata.RequestID
13095}
13096
13097// The Linux capabilities for the container that are added to or dropped from
13098// the default configuration provided by Docker. For more information on the
13099// default capabilities and the non-default available capabilities, see Runtime
13100// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
13101// in the Docker run reference. For more detailed information on these Linux
13102// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
13103// Linux manual page.
13104type KernelCapabilities struct {
13105	_ struct{} `type:"structure"`
13106
13107	// The Linux capabilities for the container that have been added to the default
13108	// configuration provided by Docker. This parameter maps to CapAdd in the Create
13109	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13110	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13111	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
13112	//
13113	// Tasks launched on Fargate only support adding the SYS_PTRACE kernel capability.
13114	//
13115	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
13116	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
13117	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
13118	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
13119	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
13120	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
13121	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
13122	// "WAKE_ALARM"
13123	Add []*string `locationName:"add" type:"list"`
13124
13125	// The Linux capabilities for the container that have been removed from the
13126	// default configuration provided by Docker. This parameter maps to CapDrop
13127	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13128	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13129	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
13130	//
13131	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
13132	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
13133	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
13134	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
13135	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
13136	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
13137	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
13138	// "WAKE_ALARM"
13139	Drop []*string `locationName:"drop" type:"list"`
13140}
13141
13142// String returns the string representation
13143func (s KernelCapabilities) String() string {
13144	return awsutil.Prettify(s)
13145}
13146
13147// GoString returns the string representation
13148func (s KernelCapabilities) GoString() string {
13149	return s.String()
13150}
13151
13152// SetAdd sets the Add field's value.
13153func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
13154	s.Add = v
13155	return s
13156}
13157
13158// SetDrop sets the Drop field's value.
13159func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
13160	s.Drop = v
13161	return s
13162}
13163
13164// A key-value pair object.
13165type KeyValuePair struct {
13166	_ struct{} `type:"structure"`
13167
13168	// The name of the key-value pair. For environment variables, this is the name
13169	// of the environment variable.
13170	Name *string `locationName:"name" type:"string"`
13171
13172	// The value of the key-value pair. For environment variables, this is the value
13173	// of the environment variable.
13174	Value *string `locationName:"value" type:"string"`
13175}
13176
13177// String returns the string representation
13178func (s KeyValuePair) String() string {
13179	return awsutil.Prettify(s)
13180}
13181
13182// GoString returns the string representation
13183func (s KeyValuePair) GoString() string {
13184	return s.String()
13185}
13186
13187// SetName sets the Name field's value.
13188func (s *KeyValuePair) SetName(v string) *KeyValuePair {
13189	s.Name = &v
13190	return s
13191}
13192
13193// SetValue sets the Value field's value.
13194func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
13195	s.Value = &v
13196	return s
13197}
13198
13199// The limit for the resource has been exceeded.
13200type LimitExceededException struct {
13201	_            struct{}                  `type:"structure"`
13202	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13203
13204	Message_ *string `locationName:"message" type:"string"`
13205}
13206
13207// String returns the string representation
13208func (s LimitExceededException) String() string {
13209	return awsutil.Prettify(s)
13210}
13211
13212// GoString returns the string representation
13213func (s LimitExceededException) GoString() string {
13214	return s.String()
13215}
13216
13217func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
13218	return &LimitExceededException{
13219		RespMetadata: v,
13220	}
13221}
13222
13223// Code returns the exception type name.
13224func (s *LimitExceededException) Code() string {
13225	return "LimitExceededException"
13226}
13227
13228// Message returns the exception's message.
13229func (s *LimitExceededException) Message() string {
13230	if s.Message_ != nil {
13231		return *s.Message_
13232	}
13233	return ""
13234}
13235
13236// OrigErr always returns nil, satisfies awserr.Error interface.
13237func (s *LimitExceededException) OrigErr() error {
13238	return nil
13239}
13240
13241func (s *LimitExceededException) Error() string {
13242	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13243}
13244
13245// Status code returns the HTTP status code for the request's response error.
13246func (s *LimitExceededException) StatusCode() int {
13247	return s.RespMetadata.StatusCode
13248}
13249
13250// RequestID returns the service's response RequestID for request.
13251func (s *LimitExceededException) RequestID() string {
13252	return s.RespMetadata.RequestID
13253}
13254
13255// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
13256type LinuxParameters struct {
13257	_ struct{} `type:"structure"`
13258
13259	// The Linux capabilities for the container that are added to or dropped from
13260	// the default configuration provided by Docker.
13261	//
13262	// For tasks that use the Fargate launch type, capabilities is supported for
13263	// all platform versions but the add parameter is only supported if using platform
13264	// version 1.4.0 or later.
13265	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
13266
13267	// Any host devices to expose to the container. This parameter maps to Devices
13268	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13269	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13270	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
13271	//
13272	// If you are using tasks that use the Fargate launch type, the devices parameter
13273	// is not supported.
13274	Devices []*Device `locationName:"devices" type:"list"`
13275
13276	// Run an init process inside the container that forwards signals and reaps
13277	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
13278	// This parameter requires version 1.25 of the Docker Remote API or greater
13279	// on your container instance. To check the Docker Remote API version on your
13280	// container instance, log in to your container instance and run the following
13281	// command: sudo docker version --format '{{.Server.APIVersion}}'
13282	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
13283
13284	// The total amount of swap memory (in MiB) a container can use. This parameter
13285	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration)
13286	// where the value would be the sum of the container memory plus the maxSwap
13287	// value.
13288	//
13289	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
13290	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
13291	// the container will use the swap configuration for the container instance
13292	// it is running on. A maxSwap value must be set for the swappiness parameter
13293	// to be used.
13294	//
13295	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
13296	// is not supported.
13297	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
13298
13299	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
13300	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
13301	//
13302	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
13303	// parameter is not supported.
13304	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
13305
13306	// This allows you to tune a container's memory swappiness behavior. A swappiness
13307	// value of 0 will cause swapping to not happen unless absolutely necessary.
13308	// A swappiness value of 100 will cause pages to be swapped very aggressively.
13309	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
13310	// is not specified, a default value of 60 is used. If a value is not specified
13311	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
13312	// option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
13313	//
13314	// If you are using tasks that use the Fargate launch type, the swappiness parameter
13315	// is not supported.
13316	Swappiness *int64 `locationName:"swappiness" type:"integer"`
13317
13318	// The container path, mount options, and size (in MiB) of the tmpfs mount.
13319	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
13320	//
13321	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
13322	// is not supported.
13323	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
13324}
13325
13326// String returns the string representation
13327func (s LinuxParameters) String() string {
13328	return awsutil.Prettify(s)
13329}
13330
13331// GoString returns the string representation
13332func (s LinuxParameters) GoString() string {
13333	return s.String()
13334}
13335
13336// Validate inspects the fields of the type to determine if they are valid.
13337func (s *LinuxParameters) Validate() error {
13338	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
13339	if s.Devices != nil {
13340		for i, v := range s.Devices {
13341			if v == nil {
13342				continue
13343			}
13344			if err := v.Validate(); err != nil {
13345				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
13346			}
13347		}
13348	}
13349	if s.Tmpfs != nil {
13350		for i, v := range s.Tmpfs {
13351			if v == nil {
13352				continue
13353			}
13354			if err := v.Validate(); err != nil {
13355				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
13356			}
13357		}
13358	}
13359
13360	if invalidParams.Len() > 0 {
13361		return invalidParams
13362	}
13363	return nil
13364}
13365
13366// SetCapabilities sets the Capabilities field's value.
13367func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
13368	s.Capabilities = v
13369	return s
13370}
13371
13372// SetDevices sets the Devices field's value.
13373func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
13374	s.Devices = v
13375	return s
13376}
13377
13378// SetInitProcessEnabled sets the InitProcessEnabled field's value.
13379func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
13380	s.InitProcessEnabled = &v
13381	return s
13382}
13383
13384// SetMaxSwap sets the MaxSwap field's value.
13385func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
13386	s.MaxSwap = &v
13387	return s
13388}
13389
13390// SetSharedMemorySize sets the SharedMemorySize field's value.
13391func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
13392	s.SharedMemorySize = &v
13393	return s
13394}
13395
13396// SetSwappiness sets the Swappiness field's value.
13397func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
13398	s.Swappiness = &v
13399	return s
13400}
13401
13402// SetTmpfs sets the Tmpfs field's value.
13403func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
13404	s.Tmpfs = v
13405	return s
13406}
13407
13408type ListAccountSettingsInput struct {
13409	_ struct{} `type:"structure"`
13410
13411	// Specifies whether to return the effective settings. If true, the account
13412	// settings for the root user or the default setting for the principalArn are
13413	// returned. If false, the account settings for the principalArn are returned
13414	// if they are set. Otherwise, no account settings are returned.
13415	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
13416
13417	// The maximum number of account setting results returned by ListAccountSettings
13418	// in paginated output. When this parameter is used, ListAccountSettings only
13419	// returns maxResults results in a single page along with a nextToken response
13420	// element. The remaining results of the initial request can be seen by sending
13421	// another ListAccountSettings request with the returned nextToken value. This
13422	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
13423	// returns up to 10 results and a nextToken value if applicable.
13424	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13425
13426	// The name of the account setting you want to list the settings for.
13427	Name *string `locationName:"name" type:"string" enum:"SettingName"`
13428
13429	// The nextToken value returned from a ListAccountSettings request indicating
13430	// that more results are available to fulfill the request and further calls
13431	// will be needed. If maxResults was provided, it is possible the number of
13432	// results to be fewer than maxResults.
13433	//
13434	// This token should be treated as an opaque identifier that is only used to
13435	// retrieve the next items in a list and not for other programmatic purposes.
13436	NextToken *string `locationName:"nextToken" type:"string"`
13437
13438	// The ARN of the principal, which can be an IAM user, IAM role, or the root
13439	// user. If this field is omitted, the account settings are listed only for
13440	// the authenticated user.
13441	//
13442	// Federated users assume the account setting of the root user and can't have
13443	// explicit account settings set for them.
13444	PrincipalArn *string `locationName:"principalArn" type:"string"`
13445
13446	// The value of the account settings with which to filter results. You must
13447	// also specify an account setting name to use this parameter.
13448	Value *string `locationName:"value" type:"string"`
13449}
13450
13451// String returns the string representation
13452func (s ListAccountSettingsInput) String() string {
13453	return awsutil.Prettify(s)
13454}
13455
13456// GoString returns the string representation
13457func (s ListAccountSettingsInput) GoString() string {
13458	return s.String()
13459}
13460
13461// SetEffectiveSettings sets the EffectiveSettings field's value.
13462func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
13463	s.EffectiveSettings = &v
13464	return s
13465}
13466
13467// SetMaxResults sets the MaxResults field's value.
13468func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
13469	s.MaxResults = &v
13470	return s
13471}
13472
13473// SetName sets the Name field's value.
13474func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
13475	s.Name = &v
13476	return s
13477}
13478
13479// SetNextToken sets the NextToken field's value.
13480func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
13481	s.NextToken = &v
13482	return s
13483}
13484
13485// SetPrincipalArn sets the PrincipalArn field's value.
13486func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
13487	s.PrincipalArn = &v
13488	return s
13489}
13490
13491// SetValue sets the Value field's value.
13492func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
13493	s.Value = &v
13494	return s
13495}
13496
13497type ListAccountSettingsOutput struct {
13498	_ struct{} `type:"structure"`
13499
13500	// The nextToken value to include in a future ListAccountSettings request. When
13501	// the results of a ListAccountSettings request exceed maxResults, this value
13502	// can be used to retrieve the next page of results. This value is null when
13503	// there are no more results to return.
13504	NextToken *string `locationName:"nextToken" type:"string"`
13505
13506	// The account settings for the resource.
13507	Settings []*Setting `locationName:"settings" type:"list"`
13508}
13509
13510// String returns the string representation
13511func (s ListAccountSettingsOutput) String() string {
13512	return awsutil.Prettify(s)
13513}
13514
13515// GoString returns the string representation
13516func (s ListAccountSettingsOutput) GoString() string {
13517	return s.String()
13518}
13519
13520// SetNextToken sets the NextToken field's value.
13521func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
13522	s.NextToken = &v
13523	return s
13524}
13525
13526// SetSettings sets the Settings field's value.
13527func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
13528	s.Settings = v
13529	return s
13530}
13531
13532type ListAttributesInput struct {
13533	_ struct{} `type:"structure"`
13534
13535	// The name of the attribute with which to filter the results.
13536	AttributeName *string `locationName:"attributeName" type:"string"`
13537
13538	// The value of the attribute with which to filter results. You must also specify
13539	// an attribute name to use this parameter.
13540	AttributeValue *string `locationName:"attributeValue" type:"string"`
13541
13542	// The short name or full Amazon Resource Name (ARN) of the cluster to list
13543	// attributes. If you do not specify a cluster, the default cluster is assumed.
13544	Cluster *string `locationName:"cluster" type:"string"`
13545
13546	// The maximum number of cluster results returned by ListAttributes in paginated
13547	// output. When this parameter is used, ListAttributes only returns maxResults
13548	// results in a single page along with a nextToken response element. The remaining
13549	// results of the initial request can be seen by sending another ListAttributes
13550	// request with the returned nextToken value. This value can be between 1 and
13551	// 100. If this parameter is not used, then ListAttributes returns up to 100
13552	// results and a nextToken value if applicable.
13553	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13554
13555	// The nextToken value returned from a ListAttributes request indicating that
13556	// more results are available to fulfill the request and further calls will
13557	// be needed. If maxResults was provided, it is possible the number of results
13558	// to be fewer than maxResults.
13559	//
13560	// This token should be treated as an opaque identifier that is only used to
13561	// retrieve the next items in a list and not for other programmatic purposes.
13562	NextToken *string `locationName:"nextToken" type:"string"`
13563
13564	// The type of the target with which to list attributes.
13565	//
13566	// TargetType is a required field
13567	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
13568}
13569
13570// String returns the string representation
13571func (s ListAttributesInput) String() string {
13572	return awsutil.Prettify(s)
13573}
13574
13575// GoString returns the string representation
13576func (s ListAttributesInput) GoString() string {
13577	return s.String()
13578}
13579
13580// Validate inspects the fields of the type to determine if they are valid.
13581func (s *ListAttributesInput) Validate() error {
13582	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
13583	if s.TargetType == nil {
13584		invalidParams.Add(request.NewErrParamRequired("TargetType"))
13585	}
13586
13587	if invalidParams.Len() > 0 {
13588		return invalidParams
13589	}
13590	return nil
13591}
13592
13593// SetAttributeName sets the AttributeName field's value.
13594func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
13595	s.AttributeName = &v
13596	return s
13597}
13598
13599// SetAttributeValue sets the AttributeValue field's value.
13600func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
13601	s.AttributeValue = &v
13602	return s
13603}
13604
13605// SetCluster sets the Cluster field's value.
13606func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
13607	s.Cluster = &v
13608	return s
13609}
13610
13611// SetMaxResults sets the MaxResults field's value.
13612func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
13613	s.MaxResults = &v
13614	return s
13615}
13616
13617// SetNextToken sets the NextToken field's value.
13618func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
13619	s.NextToken = &v
13620	return s
13621}
13622
13623// SetTargetType sets the TargetType field's value.
13624func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
13625	s.TargetType = &v
13626	return s
13627}
13628
13629type ListAttributesOutput struct {
13630	_ struct{} `type:"structure"`
13631
13632	// A list of attribute objects that meet the criteria of the request.
13633	Attributes []*Attribute `locationName:"attributes" type:"list"`
13634
13635	// The nextToken value to include in a future ListAttributes request. When the
13636	// results of a ListAttributes request exceed maxResults, this value can be
13637	// used to retrieve the next page of results. This value is null when there
13638	// are no more results to return.
13639	NextToken *string `locationName:"nextToken" type:"string"`
13640}
13641
13642// String returns the string representation
13643func (s ListAttributesOutput) String() string {
13644	return awsutil.Prettify(s)
13645}
13646
13647// GoString returns the string representation
13648func (s ListAttributesOutput) GoString() string {
13649	return s.String()
13650}
13651
13652// SetAttributes sets the Attributes field's value.
13653func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
13654	s.Attributes = v
13655	return s
13656}
13657
13658// SetNextToken sets the NextToken field's value.
13659func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
13660	s.NextToken = &v
13661	return s
13662}
13663
13664type ListClustersInput struct {
13665	_ struct{} `type:"structure"`
13666
13667	// The maximum number of cluster results returned by ListClusters in paginated
13668	// output. When this parameter is used, ListClusters only returns maxResults
13669	// results in a single page along with a nextToken response element. The remaining
13670	// results of the initial request can be seen by sending another ListClusters
13671	// request with the returned nextToken value. This value can be between 1 and
13672	// 100. If this parameter is not used, then ListClusters returns up to 100 results
13673	// and a nextToken value if applicable.
13674	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13675
13676	// The nextToken value returned from a ListClusters request indicating that
13677	// more results are available to fulfill the request and further calls will
13678	// be needed. If maxResults was provided, it is possible the number of results
13679	// to be fewer than maxResults.
13680	//
13681	// This token should be treated as an opaque identifier that is only used to
13682	// retrieve the next items in a list and not for other programmatic purposes.
13683	NextToken *string `locationName:"nextToken" type:"string"`
13684}
13685
13686// String returns the string representation
13687func (s ListClustersInput) String() string {
13688	return awsutil.Prettify(s)
13689}
13690
13691// GoString returns the string representation
13692func (s ListClustersInput) GoString() string {
13693	return s.String()
13694}
13695
13696// SetMaxResults sets the MaxResults field's value.
13697func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
13698	s.MaxResults = &v
13699	return s
13700}
13701
13702// SetNextToken sets the NextToken field's value.
13703func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
13704	s.NextToken = &v
13705	return s
13706}
13707
13708type ListClustersOutput struct {
13709	_ struct{} `type:"structure"`
13710
13711	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
13712	// with your account.
13713	ClusterArns []*string `locationName:"clusterArns" type:"list"`
13714
13715	// The nextToken value to include in a future ListClusters request. When the
13716	// results of a ListClusters request exceed maxResults, this value can be used
13717	// to retrieve the next page of results. This value is null when there are no
13718	// more results to return.
13719	NextToken *string `locationName:"nextToken" type:"string"`
13720}
13721
13722// String returns the string representation
13723func (s ListClustersOutput) String() string {
13724	return awsutil.Prettify(s)
13725}
13726
13727// GoString returns the string representation
13728func (s ListClustersOutput) GoString() string {
13729	return s.String()
13730}
13731
13732// SetClusterArns sets the ClusterArns field's value.
13733func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
13734	s.ClusterArns = v
13735	return s
13736}
13737
13738// SetNextToken sets the NextToken field's value.
13739func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
13740	s.NextToken = &v
13741	return s
13742}
13743
13744type ListContainerInstancesInput struct {
13745	_ struct{} `type:"structure"`
13746
13747	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13748	// the container instances to list. If you do not specify a cluster, the default
13749	// cluster is assumed.
13750	Cluster *string `locationName:"cluster" type:"string"`
13751
13752	// You can filter the results of a ListContainerInstances operation with cluster
13753	// query language statements. For more information, see Cluster Query Language
13754	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
13755	// in the Amazon Elastic Container Service Developer Guide.
13756	Filter *string `locationName:"filter" type:"string"`
13757
13758	// The maximum number of container instance results returned by ListContainerInstances
13759	// in paginated output. When this parameter is used, ListContainerInstances
13760	// only returns maxResults results in a single page along with a nextToken response
13761	// element. The remaining results of the initial request can be seen by sending
13762	// another ListContainerInstances request with the returned nextToken value.
13763	// This value can be between 1 and 100. If this parameter is not used, then
13764	// ListContainerInstances returns up to 100 results and a nextToken value if
13765	// applicable.
13766	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13767
13768	// The nextToken value returned from a ListContainerInstances request indicating
13769	// that more results are available to fulfill the request and further calls
13770	// will be needed. If maxResults was provided, it is possible the number of
13771	// results to be fewer than maxResults.
13772	//
13773	// This token should be treated as an opaque identifier that is only used to
13774	// retrieve the next items in a list and not for other programmatic purposes.
13775	NextToken *string `locationName:"nextToken" type:"string"`
13776
13777	// Filters the container instances by status. For example, if you specify the
13778	// DRAINING status, the results include only container instances that have been
13779	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
13780	// this parameter, the default is to include container instances set to all
13781	// states other than INACTIVE.
13782	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
13783}
13784
13785// String returns the string representation
13786func (s ListContainerInstancesInput) String() string {
13787	return awsutil.Prettify(s)
13788}
13789
13790// GoString returns the string representation
13791func (s ListContainerInstancesInput) GoString() string {
13792	return s.String()
13793}
13794
13795// SetCluster sets the Cluster field's value.
13796func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
13797	s.Cluster = &v
13798	return s
13799}
13800
13801// SetFilter sets the Filter field's value.
13802func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
13803	s.Filter = &v
13804	return s
13805}
13806
13807// SetMaxResults sets the MaxResults field's value.
13808func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
13809	s.MaxResults = &v
13810	return s
13811}
13812
13813// SetNextToken sets the NextToken field's value.
13814func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
13815	s.NextToken = &v
13816	return s
13817}
13818
13819// SetStatus sets the Status field's value.
13820func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
13821	s.Status = &v
13822	return s
13823}
13824
13825type ListContainerInstancesOutput struct {
13826	_ struct{} `type:"structure"`
13827
13828	// The list of container instances with full ARN entries for each container
13829	// instance associated with the specified cluster.
13830	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
13831
13832	// The nextToken value to include in a future ListContainerInstances request.
13833	// When the results of a ListContainerInstances request exceed maxResults, this
13834	// value can be used to retrieve the next page of results. This value is null
13835	// when there are no more results to return.
13836	NextToken *string `locationName:"nextToken" type:"string"`
13837}
13838
13839// String returns the string representation
13840func (s ListContainerInstancesOutput) String() string {
13841	return awsutil.Prettify(s)
13842}
13843
13844// GoString returns the string representation
13845func (s ListContainerInstancesOutput) GoString() string {
13846	return s.String()
13847}
13848
13849// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
13850func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
13851	s.ContainerInstanceArns = v
13852	return s
13853}
13854
13855// SetNextToken sets the NextToken field's value.
13856func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
13857	s.NextToken = &v
13858	return s
13859}
13860
13861type ListServicesInput struct {
13862	_ struct{} `type:"structure"`
13863
13864	// The short name or full Amazon Resource Name (ARN) of the cluster to use when
13865	// filtering the ListServices results. If you do not specify a cluster, the
13866	// default cluster is assumed.
13867	Cluster *string `locationName:"cluster" type:"string"`
13868
13869	// The launch type to use when filtering the ListServices results.
13870	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13871
13872	// The maximum number of service results returned by ListServices in paginated
13873	// output. When this parameter is used, ListServices only returns maxResults
13874	// results in a single page along with a nextToken response element. The remaining
13875	// results of the initial request can be seen by sending another ListServices
13876	// request with the returned nextToken value. This value can be between 1 and
13877	// 100. If this parameter is not used, then ListServices returns up to 10 results
13878	// and a nextToken value if applicable.
13879	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13880
13881	// The nextToken value returned from a ListServices request indicating that
13882	// more results are available to fulfill the request and further calls will
13883	// be needed. If maxResults was provided, it is possible the number of results
13884	// to be fewer than maxResults.
13885	//
13886	// This token should be treated as an opaque identifier that is only used to
13887	// retrieve the next items in a list and not for other programmatic purposes.
13888	NextToken *string `locationName:"nextToken" type:"string"`
13889
13890	// The scheduling strategy to use when filtering the ListServices results.
13891	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
13892}
13893
13894// String returns the string representation
13895func (s ListServicesInput) String() string {
13896	return awsutil.Prettify(s)
13897}
13898
13899// GoString returns the string representation
13900func (s ListServicesInput) GoString() string {
13901	return s.String()
13902}
13903
13904// SetCluster sets the Cluster field's value.
13905func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
13906	s.Cluster = &v
13907	return s
13908}
13909
13910// SetLaunchType sets the LaunchType field's value.
13911func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
13912	s.LaunchType = &v
13913	return s
13914}
13915
13916// SetMaxResults sets the MaxResults field's value.
13917func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
13918	s.MaxResults = &v
13919	return s
13920}
13921
13922// SetNextToken sets the NextToken field's value.
13923func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
13924	s.NextToken = &v
13925	return s
13926}
13927
13928// SetSchedulingStrategy sets the SchedulingStrategy field's value.
13929func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
13930	s.SchedulingStrategy = &v
13931	return s
13932}
13933
13934type ListServicesOutput struct {
13935	_ struct{} `type:"structure"`
13936
13937	// The nextToken value to include in a future ListServices request. When the
13938	// results of a ListServices request exceed maxResults, this value can be used
13939	// to retrieve the next page of results. This value is null when there are no
13940	// more results to return.
13941	NextToken *string `locationName:"nextToken" type:"string"`
13942
13943	// The list of full ARN entries for each service associated with the specified
13944	// cluster.
13945	ServiceArns []*string `locationName:"serviceArns" type:"list"`
13946}
13947
13948// String returns the string representation
13949func (s ListServicesOutput) String() string {
13950	return awsutil.Prettify(s)
13951}
13952
13953// GoString returns the string representation
13954func (s ListServicesOutput) GoString() string {
13955	return s.String()
13956}
13957
13958// SetNextToken sets the NextToken field's value.
13959func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
13960	s.NextToken = &v
13961	return s
13962}
13963
13964// SetServiceArns sets the ServiceArns field's value.
13965func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
13966	s.ServiceArns = v
13967	return s
13968}
13969
13970type ListTagsForResourceInput struct {
13971	_ struct{} `type:"structure"`
13972
13973	// The Amazon Resource Name (ARN) that identifies the resource for which to
13974	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
13975	// task definitions, clusters, and container instances.
13976	//
13977	// ResourceArn is a required field
13978	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
13979}
13980
13981// String returns the string representation
13982func (s ListTagsForResourceInput) String() string {
13983	return awsutil.Prettify(s)
13984}
13985
13986// GoString returns the string representation
13987func (s ListTagsForResourceInput) GoString() string {
13988	return s.String()
13989}
13990
13991// Validate inspects the fields of the type to determine if they are valid.
13992func (s *ListTagsForResourceInput) Validate() error {
13993	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
13994	if s.ResourceArn == nil {
13995		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
13996	}
13997
13998	if invalidParams.Len() > 0 {
13999		return invalidParams
14000	}
14001	return nil
14002}
14003
14004// SetResourceArn sets the ResourceArn field's value.
14005func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
14006	s.ResourceArn = &v
14007	return s
14008}
14009
14010type ListTagsForResourceOutput struct {
14011	_ struct{} `type:"structure"`
14012
14013	// The tags for the resource.
14014	Tags []*Tag `locationName:"tags" type:"list"`
14015}
14016
14017// String returns the string representation
14018func (s ListTagsForResourceOutput) String() string {
14019	return awsutil.Prettify(s)
14020}
14021
14022// GoString returns the string representation
14023func (s ListTagsForResourceOutput) GoString() string {
14024	return s.String()
14025}
14026
14027// SetTags sets the Tags field's value.
14028func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
14029	s.Tags = v
14030	return s
14031}
14032
14033type ListTaskDefinitionFamiliesInput struct {
14034	_ struct{} `type:"structure"`
14035
14036	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
14037	// If you specify a familyPrefix, only task definition family names that begin
14038	// with the familyPrefix string are returned.
14039	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
14040
14041	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
14042	// in paginated output. When this parameter is used, ListTaskDefinitions only
14043	// returns maxResults results in a single page along with a nextToken response
14044	// element. The remaining results of the initial request can be seen by sending
14045	// another ListTaskDefinitionFamilies request with the returned nextToken value.
14046	// This value can be between 1 and 100. If this parameter is not used, then
14047	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
14048	// if applicable.
14049	MaxResults *int64 `locationName:"maxResults" type:"integer"`
14050
14051	// The nextToken value returned from a ListTaskDefinitionFamilies request indicating
14052	// that more results are available to fulfill the request and further calls
14053	// will be needed. If maxResults was provided, it is possible the number of
14054	// results to be fewer than maxResults.
14055	//
14056	// This token should be treated as an opaque identifier that is only used to
14057	// retrieve the next items in a list and not for other programmatic purposes.
14058	NextToken *string `locationName:"nextToken" type:"string"`
14059
14060	// The task definition family status with which to filter the ListTaskDefinitionFamilies
14061	// results. By default, both ACTIVE and INACTIVE task definition families are
14062	// listed. If this parameter is set to ACTIVE, only task definition families
14063	// that have an ACTIVE task definition revision are returned. If this parameter
14064	// is set to INACTIVE, only task definition families that do not have any ACTIVE
14065	// task definition revisions are returned. If you paginate the resulting output,
14066	// be sure to keep the status value constant in each subsequent request.
14067	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
14068}
14069
14070// String returns the string representation
14071func (s ListTaskDefinitionFamiliesInput) String() string {
14072	return awsutil.Prettify(s)
14073}
14074
14075// GoString returns the string representation
14076func (s ListTaskDefinitionFamiliesInput) GoString() string {
14077	return s.String()
14078}
14079
14080// SetFamilyPrefix sets the FamilyPrefix field's value.
14081func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
14082	s.FamilyPrefix = &v
14083	return s
14084}
14085
14086// SetMaxResults sets the MaxResults field's value.
14087func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
14088	s.MaxResults = &v
14089	return s
14090}
14091
14092// SetNextToken sets the NextToken field's value.
14093func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
14094	s.NextToken = &v
14095	return s
14096}
14097
14098// SetStatus sets the Status field's value.
14099func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
14100	s.Status = &v
14101	return s
14102}
14103
14104type ListTaskDefinitionFamiliesOutput struct {
14105	_ struct{} `type:"structure"`
14106
14107	// The list of task definition family names that match the ListTaskDefinitionFamilies
14108	// request.
14109	Families []*string `locationName:"families" type:"list"`
14110
14111	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
14112	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
14113	// this value can be used to retrieve the next page of results. This value is
14114	// null when there are no more results to return.
14115	NextToken *string `locationName:"nextToken" type:"string"`
14116}
14117
14118// String returns the string representation
14119func (s ListTaskDefinitionFamiliesOutput) String() string {
14120	return awsutil.Prettify(s)
14121}
14122
14123// GoString returns the string representation
14124func (s ListTaskDefinitionFamiliesOutput) GoString() string {
14125	return s.String()
14126}
14127
14128// SetFamilies sets the Families field's value.
14129func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
14130	s.Families = v
14131	return s
14132}
14133
14134// SetNextToken sets the NextToken field's value.
14135func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
14136	s.NextToken = &v
14137	return s
14138}
14139
14140type ListTaskDefinitionsInput struct {
14141	_ struct{} `type:"structure"`
14142
14143	// The full family name with which to filter the ListTaskDefinitions results.
14144	// Specifying a familyPrefix limits the listed task definitions to task definition
14145	// revisions that belong to that family.
14146	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
14147
14148	// The maximum number of task definition results returned by ListTaskDefinitions
14149	// in paginated output. When this parameter is used, ListTaskDefinitions only
14150	// returns maxResults results in a single page along with a nextToken response
14151	// element. The remaining results of the initial request can be seen by sending
14152	// another ListTaskDefinitions request with the returned nextToken value. This
14153	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
14154	// returns up to 100 results and a nextToken value if applicable.
14155	MaxResults *int64 `locationName:"maxResults" type:"integer"`
14156
14157	// The nextToken value returned from a ListTaskDefinitions request indicating
14158	// that more results are available to fulfill the request and further calls
14159	// will be needed. If maxResults was provided, it is possible the number of
14160	// results to be fewer than maxResults.
14161	//
14162	// This token should be treated as an opaque identifier that is only used to
14163	// retrieve the next items in a list and not for other programmatic purposes.
14164	NextToken *string `locationName:"nextToken" type:"string"`
14165
14166	// The order in which to sort the results. Valid values are ASC and DESC. By
14167	// default (ASC), task definitions are listed lexicographically by family name
14168	// and in ascending numerical order by revision so that the newest task definitions
14169	// in a family are listed last. Setting this parameter to DESC reverses the
14170	// sort order on family name and revision so that the newest task definitions
14171	// in a family are listed first.
14172	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
14173
14174	// The task definition status with which to filter the ListTaskDefinitions results.
14175	// By default, only ACTIVE task definitions are listed. By setting this parameter
14176	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
14177	// active task or service still references them. If you paginate the resulting
14178	// output, be sure to keep the status value constant in each subsequent request.
14179	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
14180}
14181
14182// String returns the string representation
14183func (s ListTaskDefinitionsInput) String() string {
14184	return awsutil.Prettify(s)
14185}
14186
14187// GoString returns the string representation
14188func (s ListTaskDefinitionsInput) GoString() string {
14189	return s.String()
14190}
14191
14192// SetFamilyPrefix sets the FamilyPrefix field's value.
14193func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
14194	s.FamilyPrefix = &v
14195	return s
14196}
14197
14198// SetMaxResults sets the MaxResults field's value.
14199func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
14200	s.MaxResults = &v
14201	return s
14202}
14203
14204// SetNextToken sets the NextToken field's value.
14205func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
14206	s.NextToken = &v
14207	return s
14208}
14209
14210// SetSort sets the Sort field's value.
14211func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
14212	s.Sort = &v
14213	return s
14214}
14215
14216// SetStatus sets the Status field's value.
14217func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
14218	s.Status = &v
14219	return s
14220}
14221
14222type ListTaskDefinitionsOutput struct {
14223	_ struct{} `type:"structure"`
14224
14225	// The nextToken value to include in a future ListTaskDefinitions request. When
14226	// the results of a ListTaskDefinitions request exceed maxResults, this value
14227	// can be used to retrieve the next page of results. This value is null when
14228	// there are no more results to return.
14229	NextToken *string `locationName:"nextToken" type:"string"`
14230
14231	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
14232	// request.
14233	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
14234}
14235
14236// String returns the string representation
14237func (s ListTaskDefinitionsOutput) String() string {
14238	return awsutil.Prettify(s)
14239}
14240
14241// GoString returns the string representation
14242func (s ListTaskDefinitionsOutput) GoString() string {
14243	return s.String()
14244}
14245
14246// SetNextToken sets the NextToken field's value.
14247func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
14248	s.NextToken = &v
14249	return s
14250}
14251
14252// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
14253func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
14254	s.TaskDefinitionArns = v
14255	return s
14256}
14257
14258type ListTasksInput struct {
14259	_ struct{} `type:"structure"`
14260
14261	// The short name or full Amazon Resource Name (ARN) of the cluster to use when
14262	// filtering the ListTasks results. If you do not specify a cluster, the default
14263	// cluster is assumed.
14264	Cluster *string `locationName:"cluster" type:"string"`
14265
14266	// The container instance ID or full ARN of the container instance to use when
14267	// filtering the ListTasks results. Specifying a containerInstance limits the
14268	// results to tasks that belong to that container instance.
14269	ContainerInstance *string `locationName:"containerInstance" type:"string"`
14270
14271	// The task desired status to use when filtering the ListTasks results. Specifying
14272	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
14273	// set the desired status to STOPPED. This can be useful for debugging tasks
14274	// that are not starting properly or have died or finished. The default status
14275	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
14276	// status to RUNNING.
14277	//
14278	// Although you can filter results based on a desired status of PENDING, this
14279	// does not return any results. Amazon ECS never sets the desired status of
14280	// a task to that value (only a task's lastStatus may have a value of PENDING).
14281	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
14282
14283	// The name of the task definition family to use when filtering the ListTasks
14284	// results. Specifying a family limits the results to tasks that belong to that
14285	// family.
14286	Family *string `locationName:"family" type:"string"`
14287
14288	// The launch type to use when filtering the ListTasks results.
14289	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
14290
14291	// The maximum number of task results returned by ListTasks in paginated output.
14292	// When this parameter is used, ListTasks only returns maxResults results in
14293	// a single page along with a nextToken response element. The remaining results
14294	// of the initial request can be seen by sending another ListTasks request with
14295	// the returned nextToken value. This value can be between 1 and 100. If this
14296	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
14297	// value if applicable.
14298	MaxResults *int64 `locationName:"maxResults" type:"integer"`
14299
14300	// The nextToken value returned from a ListTasks request indicating that more
14301	// results are available to fulfill the request and further calls will be needed.
14302	// If maxResults was provided, it is possible the number of results to be fewer
14303	// than maxResults.
14304	//
14305	// This token should be treated as an opaque identifier that is only used to
14306	// retrieve the next items in a list and not for other programmatic purposes.
14307	NextToken *string `locationName:"nextToken" type:"string"`
14308
14309	// The name of the service to use when filtering the ListTasks results. Specifying
14310	// a serviceName limits the results to tasks that belong to that service.
14311	ServiceName *string `locationName:"serviceName" type:"string"`
14312
14313	// The startedBy value with which to filter the task results. Specifying a startedBy
14314	// value limits the results to tasks that were started with that value.
14315	StartedBy *string `locationName:"startedBy" type:"string"`
14316}
14317
14318// String returns the string representation
14319func (s ListTasksInput) String() string {
14320	return awsutil.Prettify(s)
14321}
14322
14323// GoString returns the string representation
14324func (s ListTasksInput) GoString() string {
14325	return s.String()
14326}
14327
14328// SetCluster sets the Cluster field's value.
14329func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
14330	s.Cluster = &v
14331	return s
14332}
14333
14334// SetContainerInstance sets the ContainerInstance field's value.
14335func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
14336	s.ContainerInstance = &v
14337	return s
14338}
14339
14340// SetDesiredStatus sets the DesiredStatus field's value.
14341func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
14342	s.DesiredStatus = &v
14343	return s
14344}
14345
14346// SetFamily sets the Family field's value.
14347func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
14348	s.Family = &v
14349	return s
14350}
14351
14352// SetLaunchType sets the LaunchType field's value.
14353func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
14354	s.LaunchType = &v
14355	return s
14356}
14357
14358// SetMaxResults sets the MaxResults field's value.
14359func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
14360	s.MaxResults = &v
14361	return s
14362}
14363
14364// SetNextToken sets the NextToken field's value.
14365func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
14366	s.NextToken = &v
14367	return s
14368}
14369
14370// SetServiceName sets the ServiceName field's value.
14371func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
14372	s.ServiceName = &v
14373	return s
14374}
14375
14376// SetStartedBy sets the StartedBy field's value.
14377func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
14378	s.StartedBy = &v
14379	return s
14380}
14381
14382type ListTasksOutput struct {
14383	_ struct{} `type:"structure"`
14384
14385	// The nextToken value to include in a future ListTasks request. When the results
14386	// of a ListTasks request exceed maxResults, this value can be used to retrieve
14387	// the next page of results. This value is null when there are no more results
14388	// to return.
14389	NextToken *string `locationName:"nextToken" type:"string"`
14390
14391	// The list of task ARN entries for the ListTasks request.
14392	TaskArns []*string `locationName:"taskArns" type:"list"`
14393}
14394
14395// String returns the string representation
14396func (s ListTasksOutput) String() string {
14397	return awsutil.Prettify(s)
14398}
14399
14400// GoString returns the string representation
14401func (s ListTasksOutput) GoString() string {
14402	return s.String()
14403}
14404
14405// SetNextToken sets the NextToken field's value.
14406func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
14407	s.NextToken = &v
14408	return s
14409}
14410
14411// SetTaskArns sets the TaskArns field's value.
14412func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
14413	s.TaskArns = v
14414	return s
14415}
14416
14417// The load balancer configuration to use with a service or task set.
14418//
14419// For specific notes and restrictions regarding the use of load balancers with
14420// services and task sets, see the CreateService and CreateTaskSet actions.
14421type LoadBalancer struct {
14422	_ struct{} `type:"structure"`
14423
14424	// The name of the container (as it appears in a container definition) to associate
14425	// with the load balancer.
14426	ContainerName *string `locationName:"containerName" type:"string"`
14427
14428	// The port on the container to associate with the load balancer. This port
14429	// must correspond to a containerPort in the task definition the tasks in the
14430	// service are using. For tasks that use the EC2 launch type, the container
14431	// instance they are launched on must allow ingress traffic on the hostPort
14432	// of the port mapping.
14433	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14434
14435	// The name of the load balancer to associate with the Amazon ECS service or
14436	// task set.
14437	//
14438	// A load balancer name is only specified when using a Classic Load Balancer.
14439	// If you are using an Application Load Balancer or a Network Load Balancer
14440	// the load balancer name parameter should be omitted.
14441	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
14442
14443	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
14444	// group or groups associated with a service or task set.
14445	//
14446	// A target group ARN is only specified when using an Application Load Balancer
14447	// or Network Load Balancer. If you are using a Classic Load Balancer the target
14448	// group ARN should be omitted.
14449	//
14450	// For services using the ECS deployment controller, you can specify one or
14451	// multiple target groups. For more information, see Registering Multiple Target
14452	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
14453	// in the Amazon Elastic Container Service Developer Guide.
14454	//
14455	// For services using the CODE_DEPLOY deployment controller, you are required
14456	// to define two target groups for the load balancer. For more information,
14457	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
14458	// in the Amazon Elastic Container Service Developer Guide.
14459	//
14460	// If your service's task definition uses the awsvpc network mode (which is
14461	// required for the Fargate launch type), you must choose ip as the target type,
14462	// not instance, when creating your target groups because tasks that use the
14463	// awsvpc network mode are associated with an elastic network interface, not
14464	// an Amazon EC2 instance.
14465	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
14466}
14467
14468// String returns the string representation
14469func (s LoadBalancer) String() string {
14470	return awsutil.Prettify(s)
14471}
14472
14473// GoString returns the string representation
14474func (s LoadBalancer) GoString() string {
14475	return s.String()
14476}
14477
14478// SetContainerName sets the ContainerName field's value.
14479func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
14480	s.ContainerName = &v
14481	return s
14482}
14483
14484// SetContainerPort sets the ContainerPort field's value.
14485func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
14486	s.ContainerPort = &v
14487	return s
14488}
14489
14490// SetLoadBalancerName sets the LoadBalancerName field's value.
14491func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
14492	s.LoadBalancerName = &v
14493	return s
14494}
14495
14496// SetTargetGroupArn sets the TargetGroupArn field's value.
14497func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
14498	s.TargetGroupArn = &v
14499	return s
14500}
14501
14502// The log configuration for the container. This parameter maps to LogConfig
14503// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
14504// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
14505// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).
14506//
14507// By default, containers use the same logging driver that the Docker daemon
14508// uses; however the container may use a different logging driver than the Docker
14509// daemon by specifying a log driver configuration in the container definition.
14510// For more information on the options for different supported log drivers,
14511// see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
14512// in the Docker documentation.
14513//
14514// The following should be noted when specifying a log configuration for your
14515// containers:
14516//
14517//    * Amazon ECS currently supports a subset of the logging drivers available
14518//    to the Docker daemon (shown in the valid values below). Additional log
14519//    drivers may be available in future releases of the Amazon ECS container
14520//    agent.
14521//
14522//    * This parameter requires version 1.18 of the Docker Remote API or greater
14523//    on your container instance.
14524//
14525//    * For tasks hosted on Amazon EC2 instances, the Amazon ECS container agent
14526//    must register the available logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS
14527//    environment variable before containers placed on that instance can use
14528//    these log configuration options. For more information, see Amazon ECS
14529//    container agent configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
14530//    in the Amazon Elastic Container Service Developer Guide.
14531//
14532//    * For tasks on Fargate, because you do not have access to the underlying
14533//    infrastructure your tasks are hosted on, any additional software needed
14534//    will have to be installed outside of the task. For example, the Fluentd
14535//    output aggregators or a remote host running Logstash to send Gelf logs
14536//    to.
14537type LogConfiguration struct {
14538	_ struct{} `type:"structure"`
14539
14540	// The log driver to use for the container.
14541	//
14542	// For tasks on Fargate, the supported log drivers are awslogs, splunk, and
14543	// awsfirelens.
14544	//
14545	// For tasks hosted on Amazon EC2 instances, the supported log drivers are awslogs,
14546	// fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.
14547	//
14548	// For more information about using the awslogs log driver, see Using the awslogs
14549	// log driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
14550	// in the Amazon Elastic Container Service Developer Guide.
14551	//
14552	// For more information about using the awsfirelens log driver, see Custom log
14553	// routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
14554	// in the Amazon Elastic Container Service Developer Guide.
14555	//
14556	// If you have a custom driver that is not listed, you can fork the Amazon ECS
14557	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
14558	// and customize it to work with that driver. We encourage you to submit pull
14559	// requests for changes that you would like to have included. However, we do
14560	// not currently provide support for running modified copies of this software.
14561	//
14562	// LogDriver is a required field
14563	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
14564
14565	// The configuration options to send to the log driver. This parameter requires
14566	// version 1.19 of the Docker Remote API or greater on your container instance.
14567	// To check the Docker Remote API version on your container instance, log in
14568	// to your container instance and run the following command: sudo docker version
14569	// --format '{{.Server.APIVersion}}'
14570	Options map[string]*string `locationName:"options" type:"map"`
14571
14572	// The secrets to pass to the log configuration. For more information, see Specifying
14573	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
14574	// in the Amazon Elastic Container Service Developer Guide.
14575	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
14576}
14577
14578// String returns the string representation
14579func (s LogConfiguration) String() string {
14580	return awsutil.Prettify(s)
14581}
14582
14583// GoString returns the string representation
14584func (s LogConfiguration) GoString() string {
14585	return s.String()
14586}
14587
14588// Validate inspects the fields of the type to determine if they are valid.
14589func (s *LogConfiguration) Validate() error {
14590	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
14591	if s.LogDriver == nil {
14592		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
14593	}
14594	if s.SecretOptions != nil {
14595		for i, v := range s.SecretOptions {
14596			if v == nil {
14597				continue
14598			}
14599			if err := v.Validate(); err != nil {
14600				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
14601			}
14602		}
14603	}
14604
14605	if invalidParams.Len() > 0 {
14606		return invalidParams
14607	}
14608	return nil
14609}
14610
14611// SetLogDriver sets the LogDriver field's value.
14612func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
14613	s.LogDriver = &v
14614	return s
14615}
14616
14617// SetOptions sets the Options field's value.
14618func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
14619	s.Options = v
14620	return s
14621}
14622
14623// SetSecretOptions sets the SecretOptions field's value.
14624func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
14625	s.SecretOptions = v
14626	return s
14627}
14628
14629// Details about the managed agent status for the container.
14630type ManagedAgent struct {
14631	_ struct{} `type:"structure"`
14632
14633	// The Unix timestamp for when the managed agent was last started.
14634	LastStartedAt *time.Time `locationName:"lastStartedAt" type:"timestamp"`
14635
14636	// The last known status of the managed agent.
14637	LastStatus *string `locationName:"lastStatus" type:"string"`
14638
14639	// The name of the managed agent. When the execute command feature is enabled,
14640	// the managed agent name is ExecuteCommandAgent.
14641	Name *string `locationName:"name" type:"string" enum:"ManagedAgentName"`
14642
14643	// The reason for why the managed agent is in the state it is in.
14644	Reason *string `locationName:"reason" type:"string"`
14645}
14646
14647// String returns the string representation
14648func (s ManagedAgent) String() string {
14649	return awsutil.Prettify(s)
14650}
14651
14652// GoString returns the string representation
14653func (s ManagedAgent) GoString() string {
14654	return s.String()
14655}
14656
14657// SetLastStartedAt sets the LastStartedAt field's value.
14658func (s *ManagedAgent) SetLastStartedAt(v time.Time) *ManagedAgent {
14659	s.LastStartedAt = &v
14660	return s
14661}
14662
14663// SetLastStatus sets the LastStatus field's value.
14664func (s *ManagedAgent) SetLastStatus(v string) *ManagedAgent {
14665	s.LastStatus = &v
14666	return s
14667}
14668
14669// SetName sets the Name field's value.
14670func (s *ManagedAgent) SetName(v string) *ManagedAgent {
14671	s.Name = &v
14672	return s
14673}
14674
14675// SetReason sets the Reason field's value.
14676func (s *ManagedAgent) SetReason(v string) *ManagedAgent {
14677	s.Reason = &v
14678	return s
14679}
14680
14681// An object representing a change in state for a managed agent.
14682type ManagedAgentStateChange struct {
14683	_ struct{} `type:"structure"`
14684
14685	// The name of the container associated with the managed agent.
14686	//
14687	// ContainerName is a required field
14688	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
14689
14690	// The name of the managed agent.
14691	//
14692	// ManagedAgentName is a required field
14693	ManagedAgentName *string `locationName:"managedAgentName" type:"string" required:"true" enum:"ManagedAgentName"`
14694
14695	// The reason for the status of the managed agent.
14696	Reason *string `locationName:"reason" type:"string"`
14697
14698	// The status of the managed agent.
14699	//
14700	// Status is a required field
14701	Status *string `locationName:"status" type:"string" required:"true"`
14702}
14703
14704// String returns the string representation
14705func (s ManagedAgentStateChange) String() string {
14706	return awsutil.Prettify(s)
14707}
14708
14709// GoString returns the string representation
14710func (s ManagedAgentStateChange) GoString() string {
14711	return s.String()
14712}
14713
14714// Validate inspects the fields of the type to determine if they are valid.
14715func (s *ManagedAgentStateChange) Validate() error {
14716	invalidParams := request.ErrInvalidParams{Context: "ManagedAgentStateChange"}
14717	if s.ContainerName == nil {
14718		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
14719	}
14720	if s.ManagedAgentName == nil {
14721		invalidParams.Add(request.NewErrParamRequired("ManagedAgentName"))
14722	}
14723	if s.Status == nil {
14724		invalidParams.Add(request.NewErrParamRequired("Status"))
14725	}
14726
14727	if invalidParams.Len() > 0 {
14728		return invalidParams
14729	}
14730	return nil
14731}
14732
14733// SetContainerName sets the ContainerName field's value.
14734func (s *ManagedAgentStateChange) SetContainerName(v string) *ManagedAgentStateChange {
14735	s.ContainerName = &v
14736	return s
14737}
14738
14739// SetManagedAgentName sets the ManagedAgentName field's value.
14740func (s *ManagedAgentStateChange) SetManagedAgentName(v string) *ManagedAgentStateChange {
14741	s.ManagedAgentName = &v
14742	return s
14743}
14744
14745// SetReason sets the Reason field's value.
14746func (s *ManagedAgentStateChange) SetReason(v string) *ManagedAgentStateChange {
14747	s.Reason = &v
14748	return s
14749}
14750
14751// SetStatus sets the Status field's value.
14752func (s *ManagedAgentStateChange) SetStatus(v string) *ManagedAgentStateChange {
14753	s.Status = &v
14754	return s
14755}
14756
14757// The managed scaling settings for the Auto Scaling group capacity provider.
14758//
14759// When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
14760// actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
14761// policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
14762// value as the target value for the metric. For more information, see Using
14763// Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
14764// in the Amazon Elastic Container Service Developer Guide.
14765//
14766// If managed scaling is disabled, the user must manage the scaling of the Auto
14767// Scaling group.
14768type ManagedScaling struct {
14769	_ struct{} `type:"structure"`
14770
14771	// The period of time, in seconds, after a newly launched Amazon EC2 instance
14772	// can contribute to CloudWatch metrics for Auto Scaling group. If this parameter
14773	// is omitted, the default value of 300 seconds is used.
14774	InstanceWarmupPeriod *int64 `locationName:"instanceWarmupPeriod" type:"integer"`
14775
14776	// The maximum number of container instances that Amazon ECS will scale in or
14777	// scale out at one time. If this parameter is omitted, the default value of
14778	// 10000 is used.
14779	MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"`
14780
14781	// The minimum number of container instances that Amazon ECS will scale in or
14782	// scale out at one time. If this parameter is omitted, the default value of
14783	// 1 is used.
14784	MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"`
14785
14786	// Whether or not to enable managed scaling for the capacity provider.
14787	Status *string `locationName:"status" type:"string" enum:"ManagedScalingStatus"`
14788
14789	// The target capacity value for the capacity provider. The specified value
14790	// must be greater than 0 and less than or equal to 100. A value of 100 will
14791	// result in the Amazon EC2 instances in your Auto Scaling group being completely
14792	// utilized.
14793	TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"`
14794}
14795
14796// String returns the string representation
14797func (s ManagedScaling) String() string {
14798	return awsutil.Prettify(s)
14799}
14800
14801// GoString returns the string representation
14802func (s ManagedScaling) GoString() string {
14803	return s.String()
14804}
14805
14806// Validate inspects the fields of the type to determine if they are valid.
14807func (s *ManagedScaling) Validate() error {
14808	invalidParams := request.ErrInvalidParams{Context: "ManagedScaling"}
14809	if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 {
14810		invalidParams.Add(request.NewErrParamMinValue("MaximumScalingStepSize", 1))
14811	}
14812	if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 {
14813		invalidParams.Add(request.NewErrParamMinValue("MinimumScalingStepSize", 1))
14814	}
14815	if s.TargetCapacity != nil && *s.TargetCapacity < 1 {
14816		invalidParams.Add(request.NewErrParamMinValue("TargetCapacity", 1))
14817	}
14818
14819	if invalidParams.Len() > 0 {
14820		return invalidParams
14821	}
14822	return nil
14823}
14824
14825// SetInstanceWarmupPeriod sets the InstanceWarmupPeriod field's value.
14826func (s *ManagedScaling) SetInstanceWarmupPeriod(v int64) *ManagedScaling {
14827	s.InstanceWarmupPeriod = &v
14828	return s
14829}
14830
14831// SetMaximumScalingStepSize sets the MaximumScalingStepSize field's value.
14832func (s *ManagedScaling) SetMaximumScalingStepSize(v int64) *ManagedScaling {
14833	s.MaximumScalingStepSize = &v
14834	return s
14835}
14836
14837// SetMinimumScalingStepSize sets the MinimumScalingStepSize field's value.
14838func (s *ManagedScaling) SetMinimumScalingStepSize(v int64) *ManagedScaling {
14839	s.MinimumScalingStepSize = &v
14840	return s
14841}
14842
14843// SetStatus sets the Status field's value.
14844func (s *ManagedScaling) SetStatus(v string) *ManagedScaling {
14845	s.Status = &v
14846	return s
14847}
14848
14849// SetTargetCapacity sets the TargetCapacity field's value.
14850func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling {
14851	s.TargetCapacity = &v
14852	return s
14853}
14854
14855// Amazon ECS is unable to determine the current version of the Amazon ECS container
14856// agent on the container instance and does not have enough information to proceed
14857// with an update. This could be because the agent running on the container
14858// instance is an older or custom version that does not use our version information.
14859type MissingVersionException struct {
14860	_            struct{}                  `type:"structure"`
14861	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14862
14863	Message_ *string `locationName:"message" type:"string"`
14864}
14865
14866// String returns the string representation
14867func (s MissingVersionException) String() string {
14868	return awsutil.Prettify(s)
14869}
14870
14871// GoString returns the string representation
14872func (s MissingVersionException) GoString() string {
14873	return s.String()
14874}
14875
14876func newErrorMissingVersionException(v protocol.ResponseMetadata) error {
14877	return &MissingVersionException{
14878		RespMetadata: v,
14879	}
14880}
14881
14882// Code returns the exception type name.
14883func (s *MissingVersionException) Code() string {
14884	return "MissingVersionException"
14885}
14886
14887// Message returns the exception's message.
14888func (s *MissingVersionException) Message() string {
14889	if s.Message_ != nil {
14890		return *s.Message_
14891	}
14892	return ""
14893}
14894
14895// OrigErr always returns nil, satisfies awserr.Error interface.
14896func (s *MissingVersionException) OrigErr() error {
14897	return nil
14898}
14899
14900func (s *MissingVersionException) Error() string {
14901	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14902}
14903
14904// Status code returns the HTTP status code for the request's response error.
14905func (s *MissingVersionException) StatusCode() int {
14906	return s.RespMetadata.StatusCode
14907}
14908
14909// RequestID returns the service's response RequestID for request.
14910func (s *MissingVersionException) RequestID() string {
14911	return s.RespMetadata.RequestID
14912}
14913
14914// Details on a volume mount point that is used in a container definition.
14915type MountPoint struct {
14916	_ struct{} `type:"structure"`
14917
14918	// The path on the container to mount the host volume at.
14919	ContainerPath *string `locationName:"containerPath" type:"string"`
14920
14921	// If this value is true, the container has read-only access to the volume.
14922	// If this value is false, then the container can write to the volume. The default
14923	// value is false.
14924	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
14925
14926	// The name of the volume to mount. Must be a volume name referenced in the
14927	// name parameter of task definition volume.
14928	SourceVolume *string `locationName:"sourceVolume" type:"string"`
14929}
14930
14931// String returns the string representation
14932func (s MountPoint) String() string {
14933	return awsutil.Prettify(s)
14934}
14935
14936// GoString returns the string representation
14937func (s MountPoint) GoString() string {
14938	return s.String()
14939}
14940
14941// SetContainerPath sets the ContainerPath field's value.
14942func (s *MountPoint) SetContainerPath(v string) *MountPoint {
14943	s.ContainerPath = &v
14944	return s
14945}
14946
14947// SetReadOnly sets the ReadOnly field's value.
14948func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
14949	s.ReadOnly = &v
14950	return s
14951}
14952
14953// SetSourceVolume sets the SourceVolume field's value.
14954func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
14955	s.SourceVolume = &v
14956	return s
14957}
14958
14959// Details on the network bindings between a container and its host container
14960// instance. After a task reaches the RUNNING status, manual and automatic host
14961// and container port assignments are visible in the networkBindings section
14962// of DescribeTasks API responses.
14963type NetworkBinding struct {
14964	_ struct{} `type:"structure"`
14965
14966	// The IP address that the container is bound to on the container instance.
14967	BindIP *string `locationName:"bindIP" type:"string"`
14968
14969	// The port number on the container that is used with the network binding.
14970	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14971
14972	// The port number on the host that is used with the network binding.
14973	HostPort *int64 `locationName:"hostPort" type:"integer"`
14974
14975	// The protocol used for the network binding.
14976	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
14977}
14978
14979// String returns the string representation
14980func (s NetworkBinding) String() string {
14981	return awsutil.Prettify(s)
14982}
14983
14984// GoString returns the string representation
14985func (s NetworkBinding) GoString() string {
14986	return s.String()
14987}
14988
14989// SetBindIP sets the BindIP field's value.
14990func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
14991	s.BindIP = &v
14992	return s
14993}
14994
14995// SetContainerPort sets the ContainerPort field's value.
14996func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
14997	s.ContainerPort = &v
14998	return s
14999}
15000
15001// SetHostPort sets the HostPort field's value.
15002func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
15003	s.HostPort = &v
15004	return s
15005}
15006
15007// SetProtocol sets the Protocol field's value.
15008func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
15009	s.Protocol = &v
15010	return s
15011}
15012
15013// An object representing the network configuration for a task or service.
15014type NetworkConfiguration struct {
15015	_ struct{} `type:"structure"`
15016
15017	// The VPC subnets and security groups associated with a task.
15018	//
15019	// All specified subnets and security groups must be from the same VPC.
15020	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
15021}
15022
15023// String returns the string representation
15024func (s NetworkConfiguration) String() string {
15025	return awsutil.Prettify(s)
15026}
15027
15028// GoString returns the string representation
15029func (s NetworkConfiguration) GoString() string {
15030	return s.String()
15031}
15032
15033// Validate inspects the fields of the type to determine if they are valid.
15034func (s *NetworkConfiguration) Validate() error {
15035	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
15036	if s.AwsvpcConfiguration != nil {
15037		if err := s.AwsvpcConfiguration.Validate(); err != nil {
15038			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
15039		}
15040	}
15041
15042	if invalidParams.Len() > 0 {
15043		return invalidParams
15044	}
15045	return nil
15046}
15047
15048// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
15049func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
15050	s.AwsvpcConfiguration = v
15051	return s
15052}
15053
15054// An object representing the elastic network interface for tasks that use the
15055// awsvpc network mode.
15056type NetworkInterface struct {
15057	_ struct{} `type:"structure"`
15058
15059	// The attachment ID for the network interface.
15060	AttachmentId *string `locationName:"attachmentId" type:"string"`
15061
15062	// The private IPv6 address for the network interface.
15063	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
15064
15065	// The private IPv4 address for the network interface.
15066	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
15067}
15068
15069// String returns the string representation
15070func (s NetworkInterface) String() string {
15071	return awsutil.Prettify(s)
15072}
15073
15074// GoString returns the string representation
15075func (s NetworkInterface) GoString() string {
15076	return s.String()
15077}
15078
15079// SetAttachmentId sets the AttachmentId field's value.
15080func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
15081	s.AttachmentId = &v
15082	return s
15083}
15084
15085// SetIpv6Address sets the Ipv6Address field's value.
15086func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
15087	s.Ipv6Address = &v
15088	return s
15089}
15090
15091// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
15092func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
15093	s.PrivateIpv4Address = &v
15094	return s
15095}
15096
15097// There is no update available for this Amazon ECS container agent. This could
15098// be because the agent is already running the latest version, or it is so old
15099// that there is no update path to the current version.
15100type NoUpdateAvailableException struct {
15101	_            struct{}                  `type:"structure"`
15102	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15103
15104	Message_ *string `locationName:"message" type:"string"`
15105}
15106
15107// String returns the string representation
15108func (s NoUpdateAvailableException) String() string {
15109	return awsutil.Prettify(s)
15110}
15111
15112// GoString returns the string representation
15113func (s NoUpdateAvailableException) GoString() string {
15114	return s.String()
15115}
15116
15117func newErrorNoUpdateAvailableException(v protocol.ResponseMetadata) error {
15118	return &NoUpdateAvailableException{
15119		RespMetadata: v,
15120	}
15121}
15122
15123// Code returns the exception type name.
15124func (s *NoUpdateAvailableException) Code() string {
15125	return "NoUpdateAvailableException"
15126}
15127
15128// Message returns the exception's message.
15129func (s *NoUpdateAvailableException) Message() string {
15130	if s.Message_ != nil {
15131		return *s.Message_
15132	}
15133	return ""
15134}
15135
15136// OrigErr always returns nil, satisfies awserr.Error interface.
15137func (s *NoUpdateAvailableException) OrigErr() error {
15138	return nil
15139}
15140
15141func (s *NoUpdateAvailableException) Error() string {
15142	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15143}
15144
15145// Status code returns the HTTP status code for the request's response error.
15146func (s *NoUpdateAvailableException) StatusCode() int {
15147	return s.RespMetadata.StatusCode
15148}
15149
15150// RequestID returns the service's response RequestID for request.
15151func (s *NoUpdateAvailableException) RequestID() string {
15152	return s.RespMetadata.RequestID
15153}
15154
15155// An object representing a constraint on task placement. For more information,
15156// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
15157// in the Amazon Elastic Container Service Developer Guide.
15158//
15159// If you are using the Fargate launch type, task placement constraints are
15160// not supported.
15161type PlacementConstraint struct {
15162	_ struct{} `type:"structure"`
15163
15164	// A cluster query language expression to apply to the constraint. The expression
15165	// can have a maximum length of 2000 characters. You can't specify an expression
15166	// if the constraint type is distinctInstance. For more information, see Cluster
15167	// query language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
15168	// in the Amazon Elastic Container Service Developer Guide.
15169	Expression *string `locationName:"expression" type:"string"`
15170
15171	// The type of constraint. Use distinctInstance to ensure that each task in
15172	// a particular group is running on a different container instance. Use memberOf
15173	// to restrict the selection to a group of valid candidates.
15174	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
15175}
15176
15177// String returns the string representation
15178func (s PlacementConstraint) String() string {
15179	return awsutil.Prettify(s)
15180}
15181
15182// GoString returns the string representation
15183func (s PlacementConstraint) GoString() string {
15184	return s.String()
15185}
15186
15187// SetExpression sets the Expression field's value.
15188func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
15189	s.Expression = &v
15190	return s
15191}
15192
15193// SetType sets the Type field's value.
15194func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
15195	s.Type = &v
15196	return s
15197}
15198
15199// The task placement strategy for a task or service. For more information,
15200// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
15201// in the Amazon Elastic Container Service Developer Guide.
15202type PlacementStrategy struct {
15203	_ struct{} `type:"structure"`
15204
15205	// The field to apply the placement strategy against. For the spread placement
15206	// strategy, valid values are instanceId (or host, which has the same effect),
15207	// or any platform or custom attribute that is applied to a container instance,
15208	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
15209	// valid values are cpu and memory. For the random placement strategy, this
15210	// field is not used.
15211	Field *string `locationName:"field" type:"string"`
15212
15213	// The type of placement strategy. The random placement strategy randomly places
15214	// tasks on available candidates. The spread placement strategy spreads placement
15215	// across available candidates evenly based on the field parameter. The binpack
15216	// strategy places tasks on available candidates that have the least available
15217	// amount of the resource that is specified with the field parameter. For example,
15218	// if you binpack on memory, a task is placed on the instance with the least
15219	// amount of remaining memory (but still enough to run the task).
15220	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
15221}
15222
15223// String returns the string representation
15224func (s PlacementStrategy) String() string {
15225	return awsutil.Prettify(s)
15226}
15227
15228// GoString returns the string representation
15229func (s PlacementStrategy) GoString() string {
15230	return s.String()
15231}
15232
15233// SetField sets the Field field's value.
15234func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
15235	s.Field = &v
15236	return s
15237}
15238
15239// SetType sets the Type field's value.
15240func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
15241	s.Type = &v
15242	return s
15243}
15244
15245// The devices that are available on the container instance. The only supported
15246// device type is a GPU.
15247type PlatformDevice struct {
15248	_ struct{} `type:"structure"`
15249
15250	// The ID for the GPU(s) on the container instance. The available GPU IDs can
15251	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
15252	// file.
15253	//
15254	// Id is a required field
15255	Id *string `locationName:"id" type:"string" required:"true"`
15256
15257	// The type of device that is available on the container instance. The only
15258	// supported value is GPU.
15259	//
15260	// Type is a required field
15261	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
15262}
15263
15264// String returns the string representation
15265func (s PlatformDevice) String() string {
15266	return awsutil.Prettify(s)
15267}
15268
15269// GoString returns the string representation
15270func (s PlatformDevice) GoString() string {
15271	return s.String()
15272}
15273
15274// Validate inspects the fields of the type to determine if they are valid.
15275func (s *PlatformDevice) Validate() error {
15276	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
15277	if s.Id == nil {
15278		invalidParams.Add(request.NewErrParamRequired("Id"))
15279	}
15280	if s.Type == nil {
15281		invalidParams.Add(request.NewErrParamRequired("Type"))
15282	}
15283
15284	if invalidParams.Len() > 0 {
15285		return invalidParams
15286	}
15287	return nil
15288}
15289
15290// SetId sets the Id field's value.
15291func (s *PlatformDevice) SetId(v string) *PlatformDevice {
15292	s.Id = &v
15293	return s
15294}
15295
15296// SetType sets the Type field's value.
15297func (s *PlatformDevice) SetType(v string) *PlatformDevice {
15298	s.Type = &v
15299	return s
15300}
15301
15302// The specified platform version does not satisfy the task definition's required
15303// capabilities.
15304type PlatformTaskDefinitionIncompatibilityException struct {
15305	_            struct{}                  `type:"structure"`
15306	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15307
15308	Message_ *string `locationName:"message" type:"string"`
15309}
15310
15311// String returns the string representation
15312func (s PlatformTaskDefinitionIncompatibilityException) String() string {
15313	return awsutil.Prettify(s)
15314}
15315
15316// GoString returns the string representation
15317func (s PlatformTaskDefinitionIncompatibilityException) GoString() string {
15318	return s.String()
15319}
15320
15321func newErrorPlatformTaskDefinitionIncompatibilityException(v protocol.ResponseMetadata) error {
15322	return &PlatformTaskDefinitionIncompatibilityException{
15323		RespMetadata: v,
15324	}
15325}
15326
15327// Code returns the exception type name.
15328func (s *PlatformTaskDefinitionIncompatibilityException) Code() string {
15329	return "PlatformTaskDefinitionIncompatibilityException"
15330}
15331
15332// Message returns the exception's message.
15333func (s *PlatformTaskDefinitionIncompatibilityException) Message() string {
15334	if s.Message_ != nil {
15335		return *s.Message_
15336	}
15337	return ""
15338}
15339
15340// OrigErr always returns nil, satisfies awserr.Error interface.
15341func (s *PlatformTaskDefinitionIncompatibilityException) OrigErr() error {
15342	return nil
15343}
15344
15345func (s *PlatformTaskDefinitionIncompatibilityException) Error() string {
15346	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15347}
15348
15349// Status code returns the HTTP status code for the request's response error.
15350func (s *PlatformTaskDefinitionIncompatibilityException) StatusCode() int {
15351	return s.RespMetadata.StatusCode
15352}
15353
15354// RequestID returns the service's response RequestID for request.
15355func (s *PlatformTaskDefinitionIncompatibilityException) RequestID() string {
15356	return s.RespMetadata.RequestID
15357}
15358
15359// The specified platform version does not exist.
15360type PlatformUnknownException struct {
15361	_            struct{}                  `type:"structure"`
15362	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15363
15364	Message_ *string `locationName:"message" type:"string"`
15365}
15366
15367// String returns the string representation
15368func (s PlatformUnknownException) String() string {
15369	return awsutil.Prettify(s)
15370}
15371
15372// GoString returns the string representation
15373func (s PlatformUnknownException) GoString() string {
15374	return s.String()
15375}
15376
15377func newErrorPlatformUnknownException(v protocol.ResponseMetadata) error {
15378	return &PlatformUnknownException{
15379		RespMetadata: v,
15380	}
15381}
15382
15383// Code returns the exception type name.
15384func (s *PlatformUnknownException) Code() string {
15385	return "PlatformUnknownException"
15386}
15387
15388// Message returns the exception's message.
15389func (s *PlatformUnknownException) Message() string {
15390	if s.Message_ != nil {
15391		return *s.Message_
15392	}
15393	return ""
15394}
15395
15396// OrigErr always returns nil, satisfies awserr.Error interface.
15397func (s *PlatformUnknownException) OrigErr() error {
15398	return nil
15399}
15400
15401func (s *PlatformUnknownException) Error() string {
15402	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15403}
15404
15405// Status code returns the HTTP status code for the request's response error.
15406func (s *PlatformUnknownException) StatusCode() int {
15407	return s.RespMetadata.StatusCode
15408}
15409
15410// RequestID returns the service's response RequestID for request.
15411func (s *PlatformUnknownException) RequestID() string {
15412	return s.RespMetadata.RequestID
15413}
15414
15415// Port mappings allow containers to access ports on the host container instance
15416// to send or receive traffic. Port mappings are specified as part of the container
15417// definition.
15418//
15419// If you are using containers in a task with the awsvpc or host network mode,
15420// exposed ports should be specified using containerPort. The hostPort can be
15421// left blank or it must be the same value as the containerPort.
15422//
15423// You cannot expose the same container port for multiple protocols. An error
15424// will be returned if this is attempted
15425//
15426// After a task reaches the RUNNING status, manual and automatic host and container
15427// port assignments are visible in the networkBindings section of DescribeTasks
15428// API responses.
15429type PortMapping struct {
15430	_ struct{} `type:"structure"`
15431
15432	// The port number on the container that is bound to the user-specified or automatically
15433	// assigned host port.
15434	//
15435	// If you are using containers in a task with the awsvpc or host network mode,
15436	// exposed ports should be specified using containerPort.
15437	//
15438	// If you are using containers in a task with the bridge network mode and you
15439	// specify a container port and not a host port, your container automatically
15440	// receives a host port in the ephemeral port range. For more information, see
15441	// hostPort. Port mappings that are automatically assigned in this way do not
15442	// count toward the 100 reserved ports limit of a container instance.
15443	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
15444
15445	// The port number on the container instance to reserve for your container.
15446	//
15447	// If you are using containers in a task with the awsvpc or host network mode,
15448	// the hostPort can either be left blank or set to the same value as the containerPort.
15449	//
15450	// If you are using containers in a task with the bridge network mode, you can
15451	// specify a non-reserved host port for your container port mapping, or you
15452	// can omit the hostPort (or set it to 0) while specifying a containerPort and
15453	// your container automatically receives a port in the ephemeral port range
15454	// for your container instance operating system and Docker version.
15455	//
15456	// The default ephemeral port range for Docker version 1.6.0 and later is listed
15457	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
15458	// parameter is unavailable, the default ephemeral port range from 49153 through
15459	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
15460	// range as these are reserved for automatic assignment. In general, ports below
15461	// 32768 are outside of the ephemeral port range.
15462	//
15463	// The default ephemeral port range from 49153 through 65535 is always used
15464	// for Docker versions before 1.6.0.
15465	//
15466	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
15467	// and the Amazon ECS container agent ports 51678-51680. Any host port that
15468	// was previously specified in a running task is also reserved while the task
15469	// is running (after a task stops, the host port is released). The current reserved
15470	// ports are displayed in the remainingResources of DescribeContainerInstances
15471	// output. A container instance can have up to 100 reserved ports at a time,
15472	// including the default reserved ports. Automatically assigned ports don't
15473	// count toward the 100 reserved ports limit.
15474	HostPort *int64 `locationName:"hostPort" type:"integer"`
15475
15476	// The protocol used for the port mapping. Valid values are tcp and udp. The
15477	// default is tcp.
15478	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
15479}
15480
15481// String returns the string representation
15482func (s PortMapping) String() string {
15483	return awsutil.Prettify(s)
15484}
15485
15486// GoString returns the string representation
15487func (s PortMapping) GoString() string {
15488	return s.String()
15489}
15490
15491// SetContainerPort sets the ContainerPort field's value.
15492func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
15493	s.ContainerPort = &v
15494	return s
15495}
15496
15497// SetHostPort sets the HostPort field's value.
15498func (s *PortMapping) SetHostPort(v int64) *PortMapping {
15499	s.HostPort = &v
15500	return s
15501}
15502
15503// SetProtocol sets the Protocol field's value.
15504func (s *PortMapping) SetProtocol(v string) *PortMapping {
15505	s.Protocol = &v
15506	return s
15507}
15508
15509// The configuration details for the App Mesh proxy.
15510//
15511// For tasks using the EC2 launch type, the container instances require at least
15512// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
15513// ecs-init package to enable a proxy configuration. If your container instances
15514// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
15515// then they contain the required versions of the container agent and ecs-init.
15516// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
15517type ProxyConfiguration struct {
15518	_ struct{} `type:"structure"`
15519
15520	// The name of the container that will serve as the App Mesh proxy.
15521	//
15522	// ContainerName is a required field
15523	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
15524
15525	// The set of network configuration parameters to provide the Container Network
15526	// Interface (CNI) plugin, specified as key-value pairs.
15527	//
15528	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
15529	//    defined by the user parameter in a container definition. This is used
15530	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
15531	//    this field can be empty.
15532	//
15533	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
15534	//    defined by the user parameter in a container definition. This is used
15535	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
15536	//    this field can be empty.
15537	//
15538	//    * AppPorts - (Required) The list of ports that the application uses. Network
15539	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
15540	//
15541	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
15542	//    to the AppPorts is directed to.
15543	//
15544	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
15545	//    from the AppPorts is directed to.
15546	//
15547	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
15548	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
15549	//    an empty list.
15550	//
15551	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
15552	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
15553	//    can be an empty list.
15554	Properties []*KeyValuePair `locationName:"properties" type:"list"`
15555
15556	// The proxy type. The only supported value is APPMESH.
15557	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
15558}
15559
15560// String returns the string representation
15561func (s ProxyConfiguration) String() string {
15562	return awsutil.Prettify(s)
15563}
15564
15565// GoString returns the string representation
15566func (s ProxyConfiguration) GoString() string {
15567	return s.String()
15568}
15569
15570// Validate inspects the fields of the type to determine if they are valid.
15571func (s *ProxyConfiguration) Validate() error {
15572	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
15573	if s.ContainerName == nil {
15574		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
15575	}
15576
15577	if invalidParams.Len() > 0 {
15578		return invalidParams
15579	}
15580	return nil
15581}
15582
15583// SetContainerName sets the ContainerName field's value.
15584func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
15585	s.ContainerName = &v
15586	return s
15587}
15588
15589// SetProperties sets the Properties field's value.
15590func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
15591	s.Properties = v
15592	return s
15593}
15594
15595// SetType sets the Type field's value.
15596func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
15597	s.Type = &v
15598	return s
15599}
15600
15601type PutAccountSettingDefaultInput struct {
15602	_ struct{} `type:"structure"`
15603
15604	// The resource name for which to modify the account setting. If serviceLongArnFormat
15605	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
15606	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
15607	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
15608	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
15609	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
15610	// is specified, the default setting for CloudWatch Container Insights for your
15611	// clusters is affected.
15612	//
15613	// Name is a required field
15614	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
15615
15616	// The account setting value for the specified principal ARN. Accepted values
15617	// are enabled and disabled.
15618	//
15619	// Value is a required field
15620	Value *string `locationName:"value" type:"string" required:"true"`
15621}
15622
15623// String returns the string representation
15624func (s PutAccountSettingDefaultInput) String() string {
15625	return awsutil.Prettify(s)
15626}
15627
15628// GoString returns the string representation
15629func (s PutAccountSettingDefaultInput) GoString() string {
15630	return s.String()
15631}
15632
15633// Validate inspects the fields of the type to determine if they are valid.
15634func (s *PutAccountSettingDefaultInput) Validate() error {
15635	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
15636	if s.Name == nil {
15637		invalidParams.Add(request.NewErrParamRequired("Name"))
15638	}
15639	if s.Value == nil {
15640		invalidParams.Add(request.NewErrParamRequired("Value"))
15641	}
15642
15643	if invalidParams.Len() > 0 {
15644		return invalidParams
15645	}
15646	return nil
15647}
15648
15649// SetName sets the Name field's value.
15650func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
15651	s.Name = &v
15652	return s
15653}
15654
15655// SetValue sets the Value field's value.
15656func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
15657	s.Value = &v
15658	return s
15659}
15660
15661type PutAccountSettingDefaultOutput struct {
15662	_ struct{} `type:"structure"`
15663
15664	// The current setting for a resource.
15665	Setting *Setting `locationName:"setting" type:"structure"`
15666}
15667
15668// String returns the string representation
15669func (s PutAccountSettingDefaultOutput) String() string {
15670	return awsutil.Prettify(s)
15671}
15672
15673// GoString returns the string representation
15674func (s PutAccountSettingDefaultOutput) GoString() string {
15675	return s.String()
15676}
15677
15678// SetSetting sets the Setting field's value.
15679func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
15680	s.Setting = v
15681	return s
15682}
15683
15684type PutAccountSettingInput struct {
15685	_ struct{} `type:"structure"`
15686
15687	// The Amazon ECS resource name for which to modify the account setting. If
15688	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
15689	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
15690	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
15691	// the ARN and resource ID for your Amazon ECS container instances is affected.
15692	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
15693	// for your Amazon ECS container instances is affected. If containerInsights
15694	// is specified, the default setting for CloudWatch Container Insights for your
15695	// clusters is affected.
15696	//
15697	// Name is a required field
15698	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
15699
15700	// The ARN of the principal, which can be an IAM user, IAM role, or the root
15701	// user. If you specify the root user, it modifies the account setting for all
15702	// IAM users, IAM roles, and the root user of the account unless an IAM user
15703	// or role explicitly overrides these settings. If this field is omitted, the
15704	// setting is changed only for the authenticated user.
15705	//
15706	// Federated users assume the account setting of the root user and can't have
15707	// explicit account settings set for them.
15708	PrincipalArn *string `locationName:"principalArn" type:"string"`
15709
15710	// The account setting value for the specified principal ARN. Accepted values
15711	// are enabled and disabled.
15712	//
15713	// Value is a required field
15714	Value *string `locationName:"value" type:"string" required:"true"`
15715}
15716
15717// String returns the string representation
15718func (s PutAccountSettingInput) String() string {
15719	return awsutil.Prettify(s)
15720}
15721
15722// GoString returns the string representation
15723func (s PutAccountSettingInput) GoString() string {
15724	return s.String()
15725}
15726
15727// Validate inspects the fields of the type to determine if they are valid.
15728func (s *PutAccountSettingInput) Validate() error {
15729	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
15730	if s.Name == nil {
15731		invalidParams.Add(request.NewErrParamRequired("Name"))
15732	}
15733	if s.Value == nil {
15734		invalidParams.Add(request.NewErrParamRequired("Value"))
15735	}
15736
15737	if invalidParams.Len() > 0 {
15738		return invalidParams
15739	}
15740	return nil
15741}
15742
15743// SetName sets the Name field's value.
15744func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
15745	s.Name = &v
15746	return s
15747}
15748
15749// SetPrincipalArn sets the PrincipalArn field's value.
15750func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
15751	s.PrincipalArn = &v
15752	return s
15753}
15754
15755// SetValue sets the Value field's value.
15756func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
15757	s.Value = &v
15758	return s
15759}
15760
15761type PutAccountSettingOutput struct {
15762	_ struct{} `type:"structure"`
15763
15764	// The current account setting for a resource.
15765	Setting *Setting `locationName:"setting" type:"structure"`
15766}
15767
15768// String returns the string representation
15769func (s PutAccountSettingOutput) String() string {
15770	return awsutil.Prettify(s)
15771}
15772
15773// GoString returns the string representation
15774func (s PutAccountSettingOutput) GoString() string {
15775	return s.String()
15776}
15777
15778// SetSetting sets the Setting field's value.
15779func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
15780	s.Setting = v
15781	return s
15782}
15783
15784type PutAttributesInput struct {
15785	_ struct{} `type:"structure"`
15786
15787	// The attributes to apply to your resource. You can specify up to 10 custom
15788	// attributes per resource. You can specify up to 10 attributes in a single
15789	// call.
15790	//
15791	// Attributes is a required field
15792	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
15793
15794	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
15795	// the resource to apply attributes. If you do not specify a cluster, the default
15796	// cluster is assumed.
15797	Cluster *string `locationName:"cluster" type:"string"`
15798}
15799
15800// String returns the string representation
15801func (s PutAttributesInput) String() string {
15802	return awsutil.Prettify(s)
15803}
15804
15805// GoString returns the string representation
15806func (s PutAttributesInput) GoString() string {
15807	return s.String()
15808}
15809
15810// Validate inspects the fields of the type to determine if they are valid.
15811func (s *PutAttributesInput) Validate() error {
15812	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
15813	if s.Attributes == nil {
15814		invalidParams.Add(request.NewErrParamRequired("Attributes"))
15815	}
15816	if s.Attributes != nil {
15817		for i, v := range s.Attributes {
15818			if v == nil {
15819				continue
15820			}
15821			if err := v.Validate(); err != nil {
15822				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
15823			}
15824		}
15825	}
15826
15827	if invalidParams.Len() > 0 {
15828		return invalidParams
15829	}
15830	return nil
15831}
15832
15833// SetAttributes sets the Attributes field's value.
15834func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
15835	s.Attributes = v
15836	return s
15837}
15838
15839// SetCluster sets the Cluster field's value.
15840func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
15841	s.Cluster = &v
15842	return s
15843}
15844
15845type PutAttributesOutput struct {
15846	_ struct{} `type:"structure"`
15847
15848	// The attributes applied to your resource.
15849	Attributes []*Attribute `locationName:"attributes" type:"list"`
15850}
15851
15852// String returns the string representation
15853func (s PutAttributesOutput) String() string {
15854	return awsutil.Prettify(s)
15855}
15856
15857// GoString returns the string representation
15858func (s PutAttributesOutput) GoString() string {
15859	return s.String()
15860}
15861
15862// SetAttributes sets the Attributes field's value.
15863func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
15864	s.Attributes = v
15865	return s
15866}
15867
15868type PutClusterCapacityProvidersInput struct {
15869	_ struct{} `type:"structure"`
15870
15871	// The name of one or more capacity providers to associate with the cluster.
15872	//
15873	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
15874	// provider must already be created. New capacity providers can be created with
15875	// the CreateCapacityProvider API operation.
15876	//
15877	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
15878	// capacity providers. The Fargate capacity providers are available to all accounts
15879	// and only need to be associated with a cluster to be used.
15880	//
15881	// CapacityProviders is a required field
15882	CapacityProviders []*string `locationName:"capacityProviders" type:"list" required:"true"`
15883
15884	// The short name or full Amazon Resource Name (ARN) of the cluster to modify
15885	// the capacity provider settings for. If you do not specify a cluster, the
15886	// default cluster is assumed.
15887	//
15888	// Cluster is a required field
15889	Cluster *string `locationName:"cluster" type:"string" required:"true"`
15890
15891	// The capacity provider strategy to use by default for the cluster.
15892	//
15893	// When creating a service or running a task on a cluster, if no capacity provider
15894	// or launch type is specified then the default capacity provider strategy for
15895	// the cluster is used.
15896	//
15897	// A capacity provider strategy consists of one or more capacity providers along
15898	// with the base and weight to assign to them. A capacity provider must be associated
15899	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
15900	// API is used to associate a capacity provider with a cluster. Only capacity
15901	// providers with an ACTIVE or UPDATING status can be used.
15902	//
15903	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
15904	// provider must already be created. New capacity providers can be created with
15905	// the CreateCapacityProvider API operation.
15906	//
15907	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
15908	// capacity providers. The Fargate capacity providers are available to all accounts
15909	// and only need to be associated with a cluster to be used.
15910	//
15911	// DefaultCapacityProviderStrategy is a required field
15912	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"`
15913}
15914
15915// String returns the string representation
15916func (s PutClusterCapacityProvidersInput) String() string {
15917	return awsutil.Prettify(s)
15918}
15919
15920// GoString returns the string representation
15921func (s PutClusterCapacityProvidersInput) GoString() string {
15922	return s.String()
15923}
15924
15925// Validate inspects the fields of the type to determine if they are valid.
15926func (s *PutClusterCapacityProvidersInput) Validate() error {
15927	invalidParams := request.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"}
15928	if s.CapacityProviders == nil {
15929		invalidParams.Add(request.NewErrParamRequired("CapacityProviders"))
15930	}
15931	if s.Cluster == nil {
15932		invalidParams.Add(request.NewErrParamRequired("Cluster"))
15933	}
15934	if s.DefaultCapacityProviderStrategy == nil {
15935		invalidParams.Add(request.NewErrParamRequired("DefaultCapacityProviderStrategy"))
15936	}
15937	if s.DefaultCapacityProviderStrategy != nil {
15938		for i, v := range s.DefaultCapacityProviderStrategy {
15939			if v == nil {
15940				continue
15941			}
15942			if err := v.Validate(); err != nil {
15943				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
15944			}
15945		}
15946	}
15947
15948	if invalidParams.Len() > 0 {
15949		return invalidParams
15950	}
15951	return nil
15952}
15953
15954// SetCapacityProviders sets the CapacityProviders field's value.
15955func (s *PutClusterCapacityProvidersInput) SetCapacityProviders(v []*string) *PutClusterCapacityProvidersInput {
15956	s.CapacityProviders = v
15957	return s
15958}
15959
15960// SetCluster sets the Cluster field's value.
15961func (s *PutClusterCapacityProvidersInput) SetCluster(v string) *PutClusterCapacityProvidersInput {
15962	s.Cluster = &v
15963	return s
15964}
15965
15966// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
15967func (s *PutClusterCapacityProvidersInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *PutClusterCapacityProvidersInput {
15968	s.DefaultCapacityProviderStrategy = v
15969	return s
15970}
15971
15972type PutClusterCapacityProvidersOutput struct {
15973	_ struct{} `type:"structure"`
15974
15975	// Details about the cluster.
15976	Cluster *Cluster `locationName:"cluster" type:"structure"`
15977}
15978
15979// String returns the string representation
15980func (s PutClusterCapacityProvidersOutput) String() string {
15981	return awsutil.Prettify(s)
15982}
15983
15984// GoString returns the string representation
15985func (s PutClusterCapacityProvidersOutput) GoString() string {
15986	return s.String()
15987}
15988
15989// SetCluster sets the Cluster field's value.
15990func (s *PutClusterCapacityProvidersOutput) SetCluster(v *Cluster) *PutClusterCapacityProvidersOutput {
15991	s.Cluster = v
15992	return s
15993}
15994
15995type RegisterContainerInstanceInput struct {
15996	_ struct{} `type:"structure"`
15997
15998	// The container instance attributes that this container instance supports.
15999	Attributes []*Attribute `locationName:"attributes" type:"list"`
16000
16001	// The short name or full Amazon Resource Name (ARN) of the cluster with which
16002	// to register your container instance. If you do not specify a cluster, the
16003	// default cluster is assumed.
16004	Cluster *string `locationName:"cluster" type:"string"`
16005
16006	// The ARN of the container instance (if it was previously registered).
16007	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
16008
16009	// The instance identity document for the EC2 instance to register. This document
16010	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
16011	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
16012
16013	// The instance identity document signature for the EC2 instance to register.
16014	// This signature can be found by running the following command from the instance:
16015	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
16016	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
16017
16018	// The devices that are available on the container instance. The only supported
16019	// device type is a GPU.
16020	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
16021
16022	// The metadata that you apply to the container instance to help you categorize
16023	// and organize them. Each tag consists of a key and an optional value, both
16024	// of which you define.
16025	//
16026	// The following basic restrictions apply to tags:
16027	//
16028	//    * Maximum number of tags per resource - 50
16029	//
16030	//    * For each resource, each tag key must be unique, and each tag key can
16031	//    have only one value.
16032	//
16033	//    * Maximum key length - 128 Unicode characters in UTF-8
16034	//
16035	//    * Maximum value length - 256 Unicode characters in UTF-8
16036	//
16037	//    * If your tagging schema is used across multiple services and resources,
16038	//    remember that other services may have restrictions on allowed characters.
16039	//    Generally allowed characters are: letters, numbers, and spaces representable
16040	//    in UTF-8, and the following characters: + - = . _ : / @.
16041	//
16042	//    * Tag keys and values are case-sensitive.
16043	//
16044	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16045	//    as a prefix for either keys or values as it is reserved for Amazon Web
16046	//    Services use. You cannot edit or delete tag keys or values with this prefix.
16047	//    Tags with this prefix do not count against your tags per resource limit.
16048	Tags []*Tag `locationName:"tags" type:"list"`
16049
16050	// The resources available on the instance.
16051	TotalResources []*Resource `locationName:"totalResources" type:"list"`
16052
16053	// The version information for the Amazon ECS container agent and Docker daemon
16054	// running on the container instance.
16055	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
16056}
16057
16058// String returns the string representation
16059func (s RegisterContainerInstanceInput) String() string {
16060	return awsutil.Prettify(s)
16061}
16062
16063// GoString returns the string representation
16064func (s RegisterContainerInstanceInput) GoString() string {
16065	return s.String()
16066}
16067
16068// Validate inspects the fields of the type to determine if they are valid.
16069func (s *RegisterContainerInstanceInput) Validate() error {
16070	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
16071	if s.Attributes != nil {
16072		for i, v := range s.Attributes {
16073			if v == nil {
16074				continue
16075			}
16076			if err := v.Validate(); err != nil {
16077				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
16078			}
16079		}
16080	}
16081	if s.PlatformDevices != nil {
16082		for i, v := range s.PlatformDevices {
16083			if v == nil {
16084				continue
16085			}
16086			if err := v.Validate(); err != nil {
16087				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
16088			}
16089		}
16090	}
16091	if s.Tags != nil {
16092		for i, v := range s.Tags {
16093			if v == nil {
16094				continue
16095			}
16096			if err := v.Validate(); err != nil {
16097				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16098			}
16099		}
16100	}
16101
16102	if invalidParams.Len() > 0 {
16103		return invalidParams
16104	}
16105	return nil
16106}
16107
16108// SetAttributes sets the Attributes field's value.
16109func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
16110	s.Attributes = v
16111	return s
16112}
16113
16114// SetCluster sets the Cluster field's value.
16115func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
16116	s.Cluster = &v
16117	return s
16118}
16119
16120// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
16121func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
16122	s.ContainerInstanceArn = &v
16123	return s
16124}
16125
16126// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
16127func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
16128	s.InstanceIdentityDocument = &v
16129	return s
16130}
16131
16132// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
16133func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
16134	s.InstanceIdentityDocumentSignature = &v
16135	return s
16136}
16137
16138// SetPlatformDevices sets the PlatformDevices field's value.
16139func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
16140	s.PlatformDevices = v
16141	return s
16142}
16143
16144// SetTags sets the Tags field's value.
16145func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
16146	s.Tags = v
16147	return s
16148}
16149
16150// SetTotalResources sets the TotalResources field's value.
16151func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
16152	s.TotalResources = v
16153	return s
16154}
16155
16156// SetVersionInfo sets the VersionInfo field's value.
16157func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
16158	s.VersionInfo = v
16159	return s
16160}
16161
16162type RegisterContainerInstanceOutput struct {
16163	_ struct{} `type:"structure"`
16164
16165	// The container instance that was registered.
16166	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
16167}
16168
16169// String returns the string representation
16170func (s RegisterContainerInstanceOutput) String() string {
16171	return awsutil.Prettify(s)
16172}
16173
16174// GoString returns the string representation
16175func (s RegisterContainerInstanceOutput) GoString() string {
16176	return s.String()
16177}
16178
16179// SetContainerInstance sets the ContainerInstance field's value.
16180func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
16181	s.ContainerInstance = v
16182	return s
16183}
16184
16185type RegisterTaskDefinitionInput struct {
16186	_ struct{} `type:"structure"`
16187
16188	// A list of container definitions in JSON format that describe the different
16189	// containers that make up your task.
16190	//
16191	// ContainerDefinitions is a required field
16192	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
16193
16194	// The number of CPU units used by the task. It can be expressed as an integer
16195	// using CPU units, for example 1024, or as a string using vCPUs, for example
16196	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
16197	// integer indicating the CPU units when the task definition is registered.
16198	//
16199	// Task-level CPU and memory parameters are ignored for Windows containers.
16200	// We recommend specifying container-level resources for Windows containers.
16201	//
16202	// If you are using the EC2 launch type, this field is optional. Supported values
16203	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
16204	//
16205	// If you are using the Fargate launch type, this field is required and you
16206	// must use one of the following values, which determines your range of supported
16207	// values for the memory parameter:
16208	//
16209	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
16210	//    2048 (2 GB)
16211	//
16212	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
16213	//    (3 GB), 4096 (4 GB)
16214	//
16215	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
16216	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
16217	//
16218	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
16219	//    (16 GB) in increments of 1024 (1 GB)
16220	//
16221	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
16222	//    (30 GB) in increments of 1024 (1 GB)
16223	Cpu *string `locationName:"cpu" type:"string"`
16224
16225	// The amount of ephemeral storage to allocate for the task. This parameter
16226	// is used to expand the total amount of ephemeral storage available, beyond
16227	// the default amount, for tasks hosted on Fargate. For more information, see
16228	// Fargate task storage (https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html)
16229	// in the Amazon ECS User Guide for Fargate.
16230	//
16231	// This parameter is only supported for tasks hosted on Fargate using platform
16232	// version 1.4.0 or later.
16233	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
16234
16235	// The Amazon Resource Name (ARN) of the task execution role that grants the
16236	// Amazon ECS container agent permission to make Amazon Web Services API calls
16237	// on your behalf. The task execution IAM role is required depending on the
16238	// requirements of your task. For more information, see Amazon ECS task execution
16239	// IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
16240	// in the Amazon Elastic Container Service Developer Guide.
16241	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
16242
16243	// You must specify a family for a task definition, which allows you to track
16244	// multiple versions of the same task definition. The family is used as a name
16245	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
16246	// underscores, and hyphens are allowed.
16247	//
16248	// Family is a required field
16249	Family *string `locationName:"family" type:"string" required:"true"`
16250
16251	// The Elastic Inference accelerators to use for the containers in the task.
16252	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
16253
16254	// The IPC resource namespace to use for the containers in the task. The valid
16255	// values are host, task, or none. If host is specified, then all containers
16256	// within the tasks that specified the host IPC mode on the same container instance
16257	// share the same IPC resources with the host Amazon EC2 instance. If task is
16258	// specified, all containers within the specified task share the same IPC resources.
16259	// If none is specified, then IPC resources within the containers of a task
16260	// are private and not shared with other containers in a task or on the container
16261	// instance. If no value is specified, then the IPC resource namespace sharing
16262	// depends on the Docker daemon setting on the container instance. For more
16263	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
16264	// in the Docker run reference.
16265	//
16266	// If the host IPC mode is used, be aware that there is a heightened risk of
16267	// undesired IPC namespace expose. For more information, see Docker security
16268	// (https://docs.docker.com/engine/security/security/).
16269	//
16270	// If you are setting namespaced kernel parameters using systemControls for
16271	// the containers in the task, the following will apply to your IPC resource
16272	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
16273	// in the Amazon Elastic Container Service Developer Guide.
16274	//
16275	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
16276	//    are not supported.
16277	//
16278	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
16279	//    will apply to all containers within a task.
16280	//
16281	// This parameter is not supported for Windows containers or tasks run on Fargate.
16282	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
16283
16284	// The amount of memory (in MiB) used by the task. It can be expressed as an
16285	// integer using MiB, for example 1024, or as a string using GB, for example
16286	// 1GB or 1 GB, in a task definition. String values are converted to an integer
16287	// indicating the MiB when the task definition is registered.
16288	//
16289	// Task-level CPU and memory parameters are ignored for Windows containers.
16290	// We recommend specifying container-level resources for Windows containers.
16291	//
16292	// If using the EC2 launch type, this field is optional.
16293	//
16294	// If using the Fargate launch type, this field is required and you must use
16295	// one of the following values, which determines your range of supported values
16296	// for the cpu parameter:
16297	//
16298	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
16299	//    vCPU)
16300	//
16301	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
16302	//    512 (.5 vCPU)
16303	//
16304	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
16305	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
16306	//
16307	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
16308	//    Available cpu values: 2048 (2 vCPU)
16309	//
16310	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
16311	//    Available cpu values: 4096 (4 vCPU)
16312	Memory *string `locationName:"memory" type:"string"`
16313
16314	// The Docker networking mode to use for the containers in the task. The valid
16315	// values are none, bridge, awsvpc, and host. If no network mode is specified,
16316	// the default is bridge.
16317	//
16318	// For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For
16319	// Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used.
16320	// For Amazon ECS tasks on Amazon EC2 Windows instances, <default> or awsvpc
16321	// can be used. If the network mode is set to none, you cannot specify port
16322	// mappings in your container definitions, and the tasks containers do not have
16323	// external connectivity. The host and awsvpc network modes offer the highest
16324	// networking performance for containers because they use the EC2 network stack
16325	// instead of the virtualized network stack provided by the bridge mode.
16326	//
16327	// With the host and awsvpc network modes, exposed container ports are mapped
16328	// directly to the corresponding host port (for the host network mode) or the
16329	// attached elastic network interface port (for the awsvpc network mode), so
16330	// you cannot take advantage of dynamic host port mappings.
16331	//
16332	// When using the host network mode, you should not run containers using the
16333	// root user (UID 0). It is considered best practice to use a non-root user.
16334	//
16335	// If the network mode is awsvpc, the task is allocated an elastic network interface,
16336	// and you must specify a NetworkConfiguration value when you create a service
16337	// or run a task with the task definition. For more information, see Task Networking
16338	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
16339	// in the Amazon Elastic Container Service Developer Guide.
16340	//
16341	// If the network mode is host, you cannot run multiple instantiations of the
16342	// same task on a single container instance when port mappings are used.
16343	//
16344	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
16345	// in the Docker run reference.
16346	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
16347
16348	// The process namespace to use for the containers in the task. The valid values
16349	// are host or task. If host is specified, then all containers within the tasks
16350	// that specified the host PID mode on the same container instance share the
16351	// same process namespace with the host Amazon EC2 instance. If task is specified,
16352	// all containers within the specified task share the same process namespace.
16353	// If no value is specified, the default is a private namespace. For more information,
16354	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
16355	// in the Docker run reference.
16356	//
16357	// If the host PID mode is used, be aware that there is a heightened risk of
16358	// undesired process namespace expose. For more information, see Docker security
16359	// (https://docs.docker.com/engine/security/security/).
16360	//
16361	// This parameter is not supported for Windows containers or tasks run on Fargate.
16362	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
16363
16364	// An array of placement constraint objects to use for the task. You can specify
16365	// a maximum of 10 constraints per task (this limit includes constraints in
16366	// the task definition and those specified at runtime).
16367	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
16368
16369	// The configuration details for the App Mesh proxy.
16370	//
16371	// For tasks hosted on Amazon EC2 instances, the container instances require
16372	// at least version 1.26.0 of the container agent and at least version 1.26.0-1
16373	// of the ecs-init package to enable a proxy configuration. If your container
16374	// instances are launched from the Amazon ECS-optimized AMI version 20190301
16375	// or later, then they contain the required versions of the container agent
16376	// and ecs-init. For more information, see Amazon ECS-optimized AMI versions
16377	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html)
16378	// in the Amazon Elastic Container Service Developer Guide.
16379	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
16380
16381	// The task launch type that Amazon ECS should validate the task definition
16382	// against. A client exception is returned if the task definition doesn't validate
16383	// against the compatibilities specified. If no value is specified, the parameter
16384	// is omitted from the response.
16385	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
16386
16387	// The metadata that you apply to the task definition to help you categorize
16388	// and organize them. Each tag consists of a key and an optional value, both
16389	// of which you define.
16390	//
16391	// The following basic restrictions apply to tags:
16392	//
16393	//    * Maximum number of tags per resource - 50
16394	//
16395	//    * For each resource, each tag key must be unique, and each tag key can
16396	//    have only one value.
16397	//
16398	//    * Maximum key length - 128 Unicode characters in UTF-8
16399	//
16400	//    * Maximum value length - 256 Unicode characters in UTF-8
16401	//
16402	//    * If your tagging schema is used across multiple services and resources,
16403	//    remember that other services may have restrictions on allowed characters.
16404	//    Generally allowed characters are: letters, numbers, and spaces representable
16405	//    in UTF-8, and the following characters: + - = . _ : / @.
16406	//
16407	//    * Tag keys and values are case-sensitive.
16408	//
16409	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16410	//    as a prefix for either keys or values as it is reserved for Amazon Web
16411	//    Services use. You cannot edit or delete tag keys or values with this prefix.
16412	//    Tags with this prefix do not count against your tags per resource limit.
16413	Tags []*Tag `locationName:"tags" type:"list"`
16414
16415	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
16416	// in this task can assume. All containers in this task are granted the permissions
16417	// that are specified in this role. For more information, see IAM Roles for
16418	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
16419	// in the Amazon Elastic Container Service Developer Guide.
16420	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
16421
16422	// A list of volume definitions in JSON format that containers in your task
16423	// may use.
16424	Volumes []*Volume `locationName:"volumes" type:"list"`
16425}
16426
16427// String returns the string representation
16428func (s RegisterTaskDefinitionInput) String() string {
16429	return awsutil.Prettify(s)
16430}
16431
16432// GoString returns the string representation
16433func (s RegisterTaskDefinitionInput) GoString() string {
16434	return s.String()
16435}
16436
16437// Validate inspects the fields of the type to determine if they are valid.
16438func (s *RegisterTaskDefinitionInput) Validate() error {
16439	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
16440	if s.ContainerDefinitions == nil {
16441		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
16442	}
16443	if s.Family == nil {
16444		invalidParams.Add(request.NewErrParamRequired("Family"))
16445	}
16446	if s.ContainerDefinitions != nil {
16447		for i, v := range s.ContainerDefinitions {
16448			if v == nil {
16449				continue
16450			}
16451			if err := v.Validate(); err != nil {
16452				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
16453			}
16454		}
16455	}
16456	if s.EphemeralStorage != nil {
16457		if err := s.EphemeralStorage.Validate(); err != nil {
16458			invalidParams.AddNested("EphemeralStorage", err.(request.ErrInvalidParams))
16459		}
16460	}
16461	if s.InferenceAccelerators != nil {
16462		for i, v := range s.InferenceAccelerators {
16463			if v == nil {
16464				continue
16465			}
16466			if err := v.Validate(); err != nil {
16467				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
16468			}
16469		}
16470	}
16471	if s.ProxyConfiguration != nil {
16472		if err := s.ProxyConfiguration.Validate(); err != nil {
16473			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
16474		}
16475	}
16476	if s.Tags != nil {
16477		for i, v := range s.Tags {
16478			if v == nil {
16479				continue
16480			}
16481			if err := v.Validate(); err != nil {
16482				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16483			}
16484		}
16485	}
16486	if s.Volumes != nil {
16487		for i, v := range s.Volumes {
16488			if v == nil {
16489				continue
16490			}
16491			if err := v.Validate(); err != nil {
16492				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
16493			}
16494		}
16495	}
16496
16497	if invalidParams.Len() > 0 {
16498		return invalidParams
16499	}
16500	return nil
16501}
16502
16503// SetContainerDefinitions sets the ContainerDefinitions field's value.
16504func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
16505	s.ContainerDefinitions = v
16506	return s
16507}
16508
16509// SetCpu sets the Cpu field's value.
16510func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
16511	s.Cpu = &v
16512	return s
16513}
16514
16515// SetEphemeralStorage sets the EphemeralStorage field's value.
16516func (s *RegisterTaskDefinitionInput) SetEphemeralStorage(v *EphemeralStorage) *RegisterTaskDefinitionInput {
16517	s.EphemeralStorage = v
16518	return s
16519}
16520
16521// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
16522func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
16523	s.ExecutionRoleArn = &v
16524	return s
16525}
16526
16527// SetFamily sets the Family field's value.
16528func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
16529	s.Family = &v
16530	return s
16531}
16532
16533// SetInferenceAccelerators sets the InferenceAccelerators field's value.
16534func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
16535	s.InferenceAccelerators = v
16536	return s
16537}
16538
16539// SetIpcMode sets the IpcMode field's value.
16540func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
16541	s.IpcMode = &v
16542	return s
16543}
16544
16545// SetMemory sets the Memory field's value.
16546func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
16547	s.Memory = &v
16548	return s
16549}
16550
16551// SetNetworkMode sets the NetworkMode field's value.
16552func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
16553	s.NetworkMode = &v
16554	return s
16555}
16556
16557// SetPidMode sets the PidMode field's value.
16558func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
16559	s.PidMode = &v
16560	return s
16561}
16562
16563// SetPlacementConstraints sets the PlacementConstraints field's value.
16564func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
16565	s.PlacementConstraints = v
16566	return s
16567}
16568
16569// SetProxyConfiguration sets the ProxyConfiguration field's value.
16570func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
16571	s.ProxyConfiguration = v
16572	return s
16573}
16574
16575// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
16576func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
16577	s.RequiresCompatibilities = v
16578	return s
16579}
16580
16581// SetTags sets the Tags field's value.
16582func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
16583	s.Tags = v
16584	return s
16585}
16586
16587// SetTaskRoleArn sets the TaskRoleArn field's value.
16588func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
16589	s.TaskRoleArn = &v
16590	return s
16591}
16592
16593// SetVolumes sets the Volumes field's value.
16594func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
16595	s.Volumes = v
16596	return s
16597}
16598
16599type RegisterTaskDefinitionOutput struct {
16600	_ struct{} `type:"structure"`
16601
16602	// The list of tags associated with the task definition.
16603	Tags []*Tag `locationName:"tags" type:"list"`
16604
16605	// The full description of the registered task definition.
16606	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
16607}
16608
16609// String returns the string representation
16610func (s RegisterTaskDefinitionOutput) String() string {
16611	return awsutil.Prettify(s)
16612}
16613
16614// GoString returns the string representation
16615func (s RegisterTaskDefinitionOutput) GoString() string {
16616	return s.String()
16617}
16618
16619// SetTags sets the Tags field's value.
16620func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
16621	s.Tags = v
16622	return s
16623}
16624
16625// SetTaskDefinition sets the TaskDefinition field's value.
16626func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
16627	s.TaskDefinition = v
16628	return s
16629}
16630
16631// The repository credentials for private registry authentication.
16632type RepositoryCredentials struct {
16633	_ struct{} `type:"structure"`
16634
16635	// The Amazon Resource Name (ARN) of the secret containing the private repository
16636	// credentials.
16637	//
16638	// When you are using the Amazon ECS API, CLI, or Amazon Web Services SDK, if
16639	// the secret exists in the same Region as the task that you are launching then
16640	// you can use either the full ARN or the name of the secret. When you are using
16641	// the Amazon Web Services Management Console, you must specify the full ARN
16642	// of the secret.
16643	//
16644	// CredentialsParameter is a required field
16645	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
16646}
16647
16648// String returns the string representation
16649func (s RepositoryCredentials) String() string {
16650	return awsutil.Prettify(s)
16651}
16652
16653// GoString returns the string representation
16654func (s RepositoryCredentials) GoString() string {
16655	return s.String()
16656}
16657
16658// Validate inspects the fields of the type to determine if they are valid.
16659func (s *RepositoryCredentials) Validate() error {
16660	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
16661	if s.CredentialsParameter == nil {
16662		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
16663	}
16664
16665	if invalidParams.Len() > 0 {
16666		return invalidParams
16667	}
16668	return nil
16669}
16670
16671// SetCredentialsParameter sets the CredentialsParameter field's value.
16672func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
16673	s.CredentialsParameter = &v
16674	return s
16675}
16676
16677// Describes the resources available for a container instance.
16678type Resource struct {
16679	_ struct{} `type:"structure"`
16680
16681	// When the doubleValue type is set, the value of the resource must be a double
16682	// precision floating-point type.
16683	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
16684
16685	// When the integerValue type is set, the value of the resource must be an integer.
16686	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
16687
16688	// When the longValue type is set, the value of the resource must be an extended
16689	// precision floating-point type.
16690	LongValue *int64 `locationName:"longValue" type:"long"`
16691
16692	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
16693	// resource.
16694	Name *string `locationName:"name" type:"string"`
16695
16696	// When the stringSetValue type is set, the value of the resource must be a
16697	// string type.
16698	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
16699
16700	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
16701	Type *string `locationName:"type" type:"string"`
16702}
16703
16704// String returns the string representation
16705func (s Resource) String() string {
16706	return awsutil.Prettify(s)
16707}
16708
16709// GoString returns the string representation
16710func (s Resource) GoString() string {
16711	return s.String()
16712}
16713
16714// SetDoubleValue sets the DoubleValue field's value.
16715func (s *Resource) SetDoubleValue(v float64) *Resource {
16716	s.DoubleValue = &v
16717	return s
16718}
16719
16720// SetIntegerValue sets the IntegerValue field's value.
16721func (s *Resource) SetIntegerValue(v int64) *Resource {
16722	s.IntegerValue = &v
16723	return s
16724}
16725
16726// SetLongValue sets the LongValue field's value.
16727func (s *Resource) SetLongValue(v int64) *Resource {
16728	s.LongValue = &v
16729	return s
16730}
16731
16732// SetName sets the Name field's value.
16733func (s *Resource) SetName(v string) *Resource {
16734	s.Name = &v
16735	return s
16736}
16737
16738// SetStringSetValue sets the StringSetValue field's value.
16739func (s *Resource) SetStringSetValue(v []*string) *Resource {
16740	s.StringSetValue = v
16741	return s
16742}
16743
16744// SetType sets the Type field's value.
16745func (s *Resource) SetType(v string) *Resource {
16746	s.Type = &v
16747	return s
16748}
16749
16750// The specified resource is in-use and cannot be removed.
16751type ResourceInUseException struct {
16752	_            struct{}                  `type:"structure"`
16753	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16754
16755	Message_ *string `locationName:"message" type:"string"`
16756}
16757
16758// String returns the string representation
16759func (s ResourceInUseException) String() string {
16760	return awsutil.Prettify(s)
16761}
16762
16763// GoString returns the string representation
16764func (s ResourceInUseException) GoString() string {
16765	return s.String()
16766}
16767
16768func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
16769	return &ResourceInUseException{
16770		RespMetadata: v,
16771	}
16772}
16773
16774// Code returns the exception type name.
16775func (s *ResourceInUseException) Code() string {
16776	return "ResourceInUseException"
16777}
16778
16779// Message returns the exception's message.
16780func (s *ResourceInUseException) Message() string {
16781	if s.Message_ != nil {
16782		return *s.Message_
16783	}
16784	return ""
16785}
16786
16787// OrigErr always returns nil, satisfies awserr.Error interface.
16788func (s *ResourceInUseException) OrigErr() error {
16789	return nil
16790}
16791
16792func (s *ResourceInUseException) Error() string {
16793	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16794}
16795
16796// Status code returns the HTTP status code for the request's response error.
16797func (s *ResourceInUseException) StatusCode() int {
16798	return s.RespMetadata.StatusCode
16799}
16800
16801// RequestID returns the service's response RequestID for request.
16802func (s *ResourceInUseException) RequestID() string {
16803	return s.RespMetadata.RequestID
16804}
16805
16806// The specified resource could not be found.
16807type ResourceNotFoundException struct {
16808	_            struct{}                  `type:"structure"`
16809	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16810
16811	Message_ *string `locationName:"message" type:"string"`
16812}
16813
16814// String returns the string representation
16815func (s ResourceNotFoundException) String() string {
16816	return awsutil.Prettify(s)
16817}
16818
16819// GoString returns the string representation
16820func (s ResourceNotFoundException) GoString() string {
16821	return s.String()
16822}
16823
16824func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
16825	return &ResourceNotFoundException{
16826		RespMetadata: v,
16827	}
16828}
16829
16830// Code returns the exception type name.
16831func (s *ResourceNotFoundException) Code() string {
16832	return "ResourceNotFoundException"
16833}
16834
16835// Message returns the exception's message.
16836func (s *ResourceNotFoundException) Message() string {
16837	if s.Message_ != nil {
16838		return *s.Message_
16839	}
16840	return ""
16841}
16842
16843// OrigErr always returns nil, satisfies awserr.Error interface.
16844func (s *ResourceNotFoundException) OrigErr() error {
16845	return nil
16846}
16847
16848func (s *ResourceNotFoundException) Error() string {
16849	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16850}
16851
16852// Status code returns the HTTP status code for the request's response error.
16853func (s *ResourceNotFoundException) StatusCode() int {
16854	return s.RespMetadata.StatusCode
16855}
16856
16857// RequestID returns the service's response RequestID for request.
16858func (s *ResourceNotFoundException) RequestID() string {
16859	return s.RespMetadata.RequestID
16860}
16861
16862// The type and amount of a resource to assign to a container. The supported
16863// resource types are GPUs and Elastic Inference accelerators. For more information,
16864// see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
16865// or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
16866// in the Amazon Elastic Container Service Developer Guide
16867type ResourceRequirement struct {
16868	_ struct{} `type:"structure"`
16869
16870	// The type of resource to assign to a container. The supported values are GPU
16871	// or InferenceAccelerator.
16872	//
16873	// Type is a required field
16874	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
16875
16876	// The value for the specified resource type.
16877	//
16878	// If the GPU type is used, the value is the number of physical GPUs the Amazon
16879	// ECS container agent will reserve for the container. The number of GPUs reserved
16880	// for all containers in a task should not exceed the number of available GPUs
16881	// on the container instance the task is launched on.
16882	//
16883	// If the InferenceAccelerator type is used, the value should match the deviceName
16884	// for an InferenceAccelerator specified in a task definition.
16885	//
16886	// Value is a required field
16887	Value *string `locationName:"value" type:"string" required:"true"`
16888}
16889
16890// String returns the string representation
16891func (s ResourceRequirement) String() string {
16892	return awsutil.Prettify(s)
16893}
16894
16895// GoString returns the string representation
16896func (s ResourceRequirement) GoString() string {
16897	return s.String()
16898}
16899
16900// Validate inspects the fields of the type to determine if they are valid.
16901func (s *ResourceRequirement) Validate() error {
16902	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
16903	if s.Type == nil {
16904		invalidParams.Add(request.NewErrParamRequired("Type"))
16905	}
16906	if s.Value == nil {
16907		invalidParams.Add(request.NewErrParamRequired("Value"))
16908	}
16909
16910	if invalidParams.Len() > 0 {
16911		return invalidParams
16912	}
16913	return nil
16914}
16915
16916// SetType sets the Type field's value.
16917func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
16918	s.Type = &v
16919	return s
16920}
16921
16922// SetValue sets the Value field's value.
16923func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
16924	s.Value = &v
16925	return s
16926}
16927
16928type RunTaskInput struct {
16929	_ struct{} `type:"structure"`
16930
16931	// The capacity provider strategy to use for the task.
16932	//
16933	// If a capacityProviderStrategy is specified, the launchType parameter must
16934	// be omitted. If no capacityProviderStrategy or launchType is specified, the
16935	// defaultCapacityProviderStrategy for the cluster is used.
16936	//
16937	// When you use cluster auto scaling, you must specify capacityProviderStrategy
16938	// and not launchType.
16939	//
16940	// A capacity provider strategy may contain a maximum of 6 capacity providers.
16941	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
16942
16943	// The short name or full Amazon Resource Name (ARN) of the cluster on which
16944	// to run your task. If you do not specify a cluster, the default cluster is
16945	// assumed.
16946	Cluster *string `locationName:"cluster" type:"string"`
16947
16948	// The number of instantiations of the specified task to place on your cluster.
16949	// You can specify up to 10 tasks per call.
16950	Count *int64 `locationName:"count" type:"integer"`
16951
16952	// Specifies whether to enable Amazon ECS managed tags for the task. For more
16953	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16954	// in the Amazon Elastic Container Service Developer Guide.
16955	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16956
16957	// Whether or not to enable the execute command functionality for the containers
16958	// in this task. If true, this enables execute command functionality on all
16959	// containers in the task.
16960	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
16961
16962	// The name of the task group to associate with the task. The default value
16963	// is the family name of the task definition (for example, family:my-family-name).
16964	Group *string `locationName:"group" type:"string"`
16965
16966	// The infrastructure on which to run your standalone task. For more information,
16967	// see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16968	// in the Amazon Elastic Container Service Developer Guide.
16969	//
16970	// The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.
16971	//
16972	// Fargate Spot infrastructure is available for use but a capacity provider
16973	// strategy must be used. For more information, see Fargate capacity providers
16974	// (https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html)
16975	// in the Amazon ECS User Guide for Fargate.
16976	//
16977	// The EC2 launch type runs your tasks on Amazon EC2 instances registered to
16978	// your cluster.
16979	//
16980	// The EXTERNAL launch type runs your tasks on your on-premise server or virtual
16981	// machine (VM) capacity registered to your cluster.
16982	//
16983	// A task can use either a launch type or a capacity provider strategy. If a
16984	// launchType is specified, the capacityProviderStrategy parameter must be omitted.
16985	//
16986	// When you use cluster auto scaling, you must specify capacityProviderStrategy
16987	// and not launchType.
16988	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
16989
16990	// The network configuration for the task. This parameter is required for task
16991	// definitions that use the awsvpc network mode to receive their own elastic
16992	// network interface, and it is not supported for other network modes. For more
16993	// information, see Task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
16994	// in the Amazon Elastic Container Service Developer Guide.
16995	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16996
16997	// A list of container overrides in JSON format that specify the name of a container
16998	// in the specified task definition and the overrides it should receive. You
16999	// can override the default command for a container (that is specified in the
17000	// task definition or Docker image) with a command override. You can also override
17001	// existing environment variables (that are specified in the task definition
17002	// or Docker image) on a container or add new environment variables to it with
17003	// an environment override.
17004	//
17005	// A total of 8192 characters are allowed for overrides. This limit includes
17006	// the JSON formatting characters of the override structure.
17007	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
17008
17009	// An array of placement constraint objects to use for the task. You can specify
17010	// up to 10 constraints per task (including constraints in the task definition
17011	// and those specified at runtime).
17012	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
17013
17014	// The placement strategy objects to use for the task. You can specify a maximum
17015	// of 5 strategy rules per task.
17016	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
17017
17018	// The platform version the task should use. A platform version is only specified
17019	// for tasks hosted on Fargate. If one is not specified, the LATEST platform
17020	// version is used by default. For more information, see Fargate platform versions
17021	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
17022	// in the Amazon Elastic Container Service Developer Guide.
17023	PlatformVersion *string `locationName:"platformVersion" type:"string"`
17024
17025	// Specifies whether to propagate the tags from the task definition to the task.
17026	// If no value is specified, the tags are not propagated. Tags can only be propagated
17027	// to the task during task creation. To add tags to a task after task creation,
17028	// use the TagResource API action.
17029	//
17030	// An error will be received if you specify the SERVICE option when running
17031	// a task.
17032	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
17033
17034	// The reference ID to use for the task. The reference ID can have a maximum
17035	// length of 1024 characters.
17036	ReferenceId *string `locationName:"referenceId" type:"string"`
17037
17038	// An optional tag specified when a task is started. For example, if you automatically
17039	// trigger a task to run a batch process job, you could apply a unique identifier
17040	// for that job to your task with the startedBy parameter. You can then identify
17041	// which tasks belong to that job by filtering the results of a ListTasks call
17042	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
17043	// hyphens, and underscores are allowed.
17044	//
17045	// If a task is started by an Amazon ECS service, then the startedBy parameter
17046	// contains the deployment ID of the service that starts it.
17047	StartedBy *string `locationName:"startedBy" type:"string"`
17048
17049	// The metadata that you apply to the task to help you categorize and organize
17050	// them. Each tag consists of a key and an optional value, both of which you
17051	// define.
17052	//
17053	// The following basic restrictions apply to tags:
17054	//
17055	//    * Maximum number of tags per resource - 50
17056	//
17057	//    * For each resource, each tag key must be unique, and each tag key can
17058	//    have only one value.
17059	//
17060	//    * Maximum key length - 128 Unicode characters in UTF-8
17061	//
17062	//    * Maximum value length - 256 Unicode characters in UTF-8
17063	//
17064	//    * If your tagging schema is used across multiple services and resources,
17065	//    remember that other services may have restrictions on allowed characters.
17066	//    Generally allowed characters are: letters, numbers, and spaces representable
17067	//    in UTF-8, and the following characters: + - = . _ : / @.
17068	//
17069	//    * Tag keys and values are case-sensitive.
17070	//
17071	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17072	//    as a prefix for either keys or values as it is reserved for Amazon Web
17073	//    Services use. You cannot edit or delete tag keys or values with this prefix.
17074	//    Tags with this prefix do not count against your tags per resource limit.
17075	Tags []*Tag `locationName:"tags" type:"list"`
17076
17077	// The family and revision (family:revision) or full ARN of the task definition
17078	// to run. If a revision is not specified, the latest ACTIVE revision is used.
17079	//
17080	// TaskDefinition is a required field
17081	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
17082}
17083
17084// String returns the string representation
17085func (s RunTaskInput) String() string {
17086	return awsutil.Prettify(s)
17087}
17088
17089// GoString returns the string representation
17090func (s RunTaskInput) GoString() string {
17091	return s.String()
17092}
17093
17094// Validate inspects the fields of the type to determine if they are valid.
17095func (s *RunTaskInput) Validate() error {
17096	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
17097	if s.TaskDefinition == nil {
17098		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
17099	}
17100	if s.CapacityProviderStrategy != nil {
17101		for i, v := range s.CapacityProviderStrategy {
17102			if v == nil {
17103				continue
17104			}
17105			if err := v.Validate(); err != nil {
17106				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
17107			}
17108		}
17109	}
17110	if s.NetworkConfiguration != nil {
17111		if err := s.NetworkConfiguration.Validate(); err != nil {
17112			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
17113		}
17114	}
17115	if s.Overrides != nil {
17116		if err := s.Overrides.Validate(); err != nil {
17117			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
17118		}
17119	}
17120	if s.Tags != nil {
17121		for i, v := range s.Tags {
17122			if v == nil {
17123				continue
17124			}
17125			if err := v.Validate(); err != nil {
17126				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17127			}
17128		}
17129	}
17130
17131	if invalidParams.Len() > 0 {
17132		return invalidParams
17133	}
17134	return nil
17135}
17136
17137// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
17138func (s *RunTaskInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *RunTaskInput {
17139	s.CapacityProviderStrategy = v
17140	return s
17141}
17142
17143// SetCluster sets the Cluster field's value.
17144func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
17145	s.Cluster = &v
17146	return s
17147}
17148
17149// SetCount sets the Count field's value.
17150func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
17151	s.Count = &v
17152	return s
17153}
17154
17155// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
17156func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
17157	s.EnableECSManagedTags = &v
17158	return s
17159}
17160
17161// SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
17162func (s *RunTaskInput) SetEnableExecuteCommand(v bool) *RunTaskInput {
17163	s.EnableExecuteCommand = &v
17164	return s
17165}
17166
17167// SetGroup sets the Group field's value.
17168func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
17169	s.Group = &v
17170	return s
17171}
17172
17173// SetLaunchType sets the LaunchType field's value.
17174func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
17175	s.LaunchType = &v
17176	return s
17177}
17178
17179// SetNetworkConfiguration sets the NetworkConfiguration field's value.
17180func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
17181	s.NetworkConfiguration = v
17182	return s
17183}
17184
17185// SetOverrides sets the Overrides field's value.
17186func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
17187	s.Overrides = v
17188	return s
17189}
17190
17191// SetPlacementConstraints sets the PlacementConstraints field's value.
17192func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
17193	s.PlacementConstraints = v
17194	return s
17195}
17196
17197// SetPlacementStrategy sets the PlacementStrategy field's value.
17198func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
17199	s.PlacementStrategy = v
17200	return s
17201}
17202
17203// SetPlatformVersion sets the PlatformVersion field's value.
17204func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
17205	s.PlatformVersion = &v
17206	return s
17207}
17208
17209// SetPropagateTags sets the PropagateTags field's value.
17210func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
17211	s.PropagateTags = &v
17212	return s
17213}
17214
17215// SetReferenceId sets the ReferenceId field's value.
17216func (s *RunTaskInput) SetReferenceId(v string) *RunTaskInput {
17217	s.ReferenceId = &v
17218	return s
17219}
17220
17221// SetStartedBy sets the StartedBy field's value.
17222func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
17223	s.StartedBy = &v
17224	return s
17225}
17226
17227// SetTags sets the Tags field's value.
17228func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
17229	s.Tags = v
17230	return s
17231}
17232
17233// SetTaskDefinition sets the TaskDefinition field's value.
17234func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
17235	s.TaskDefinition = &v
17236	return s
17237}
17238
17239type RunTaskOutput struct {
17240	_ struct{} `type:"structure"`
17241
17242	// Any failures associated with the call.
17243	Failures []*Failure `locationName:"failures" type:"list"`
17244
17245	// A full description of the tasks that were run. The tasks that were successfully
17246	// placed on your cluster are described here.
17247	Tasks []*Task `locationName:"tasks" type:"list"`
17248}
17249
17250// String returns the string representation
17251func (s RunTaskOutput) String() string {
17252	return awsutil.Prettify(s)
17253}
17254
17255// GoString returns the string representation
17256func (s RunTaskOutput) GoString() string {
17257	return s.String()
17258}
17259
17260// SetFailures sets the Failures field's value.
17261func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
17262	s.Failures = v
17263	return s
17264}
17265
17266// SetTasks sets the Tasks field's value.
17267func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
17268	s.Tasks = v
17269	return s
17270}
17271
17272// A floating-point percentage of the desired number of tasks to place and keep
17273// running in the task set.
17274type Scale struct {
17275	_ struct{} `type:"structure"`
17276
17277	// The unit of measure for the scale value.
17278	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
17279
17280	// The value, specified as a percent total of a service's desiredCount, to scale
17281	// the task set. Accepted values are numbers between 0 and 100.
17282	Value *float64 `locationName:"value" type:"double"`
17283}
17284
17285// String returns the string representation
17286func (s Scale) String() string {
17287	return awsutil.Prettify(s)
17288}
17289
17290// GoString returns the string representation
17291func (s Scale) GoString() string {
17292	return s.String()
17293}
17294
17295// SetUnit sets the Unit field's value.
17296func (s *Scale) SetUnit(v string) *Scale {
17297	s.Unit = &v
17298	return s
17299}
17300
17301// SetValue sets the Value field's value.
17302func (s *Scale) SetValue(v float64) *Scale {
17303	s.Value = &v
17304	return s
17305}
17306
17307// An object representing the secret to expose to your container. Secrets can
17308// be exposed to a container in the following ways:
17309//
17310//    * To inject sensitive data into your containers as environment variables,
17311//    use the secrets container definition parameter.
17312//
17313//    * To reference sensitive information in the log configuration of a container,
17314//    use the secretOptions container definition parameter.
17315//
17316// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
17317// in the Amazon Elastic Container Service Developer Guide.
17318type Secret struct {
17319	_ struct{} `type:"structure"`
17320
17321	// The name of the secret.
17322	//
17323	// Name is a required field
17324	Name *string `locationName:"name" type:"string" required:"true"`
17325
17326	// The secret to expose to the container. The supported values are either the
17327	// full ARN of the Secrets Manager secret or the full ARN of the parameter in
17328	// the SSM Parameter Store.
17329	//
17330	// If the SSM Parameter Store parameter exists in the same Region as the task
17331	// you are launching, then you can use either the full ARN or name of the parameter.
17332	// If the parameter exists in a different Region, then the full ARN must be
17333	// specified.
17334	//
17335	// ValueFrom is a required field
17336	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
17337}
17338
17339// String returns the string representation
17340func (s Secret) String() string {
17341	return awsutil.Prettify(s)
17342}
17343
17344// GoString returns the string representation
17345func (s Secret) GoString() string {
17346	return s.String()
17347}
17348
17349// Validate inspects the fields of the type to determine if they are valid.
17350func (s *Secret) Validate() error {
17351	invalidParams := request.ErrInvalidParams{Context: "Secret"}
17352	if s.Name == nil {
17353		invalidParams.Add(request.NewErrParamRequired("Name"))
17354	}
17355	if s.ValueFrom == nil {
17356		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
17357	}
17358
17359	if invalidParams.Len() > 0 {
17360		return invalidParams
17361	}
17362	return nil
17363}
17364
17365// SetName sets the Name field's value.
17366func (s *Secret) SetName(v string) *Secret {
17367	s.Name = &v
17368	return s
17369}
17370
17371// SetValueFrom sets the ValueFrom field's value.
17372func (s *Secret) SetValueFrom(v string) *Secret {
17373	s.ValueFrom = &v
17374	return s
17375}
17376
17377// These errors are usually caused by a server issue.
17378type ServerException struct {
17379	_            struct{}                  `type:"structure"`
17380	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17381
17382	Message_ *string `locationName:"message" type:"string"`
17383}
17384
17385// String returns the string representation
17386func (s ServerException) String() string {
17387	return awsutil.Prettify(s)
17388}
17389
17390// GoString returns the string representation
17391func (s ServerException) GoString() string {
17392	return s.String()
17393}
17394
17395func newErrorServerException(v protocol.ResponseMetadata) error {
17396	return &ServerException{
17397		RespMetadata: v,
17398	}
17399}
17400
17401// Code returns the exception type name.
17402func (s *ServerException) Code() string {
17403	return "ServerException"
17404}
17405
17406// Message returns the exception's message.
17407func (s *ServerException) Message() string {
17408	if s.Message_ != nil {
17409		return *s.Message_
17410	}
17411	return ""
17412}
17413
17414// OrigErr always returns nil, satisfies awserr.Error interface.
17415func (s *ServerException) OrigErr() error {
17416	return nil
17417}
17418
17419func (s *ServerException) Error() string {
17420	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17421}
17422
17423// Status code returns the HTTP status code for the request's response error.
17424func (s *ServerException) StatusCode() int {
17425	return s.RespMetadata.StatusCode
17426}
17427
17428// RequestID returns the service's response RequestID for request.
17429func (s *ServerException) RequestID() string {
17430	return s.RespMetadata.RequestID
17431}
17432
17433// Details on a service within a cluster
17434type Service struct {
17435	_ struct{} `type:"structure"`
17436
17437	// The capacity provider strategy the service is using. When using the DescribeServices
17438	// API, this field is omitted if the service was created using a launch type.
17439	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
17440
17441	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
17442	ClusterArn *string `locationName:"clusterArn" type:"string"`
17443
17444	// The Unix timestamp for when the service was created.
17445	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
17446
17447	// The principal that created the service.
17448	CreatedBy *string `locationName:"createdBy" type:"string"`
17449
17450	// Optional deployment parameters that control how many tasks run during the
17451	// deployment and the ordering of stopping and starting tasks.
17452	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
17453
17454	// The deployment controller type the service is using. When using the DescribeServices
17455	// API, this field is omitted if the service is using the ECS deployment controller
17456	// type.
17457	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
17458
17459	// The current state of deployments for the service.
17460	Deployments []*Deployment `locationName:"deployments" type:"list"`
17461
17462	// The desired number of instantiations of the task definition to keep running
17463	// on the service. This value is specified when the service is created with
17464	// CreateService, and it can be modified with UpdateService.
17465	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
17466
17467	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
17468	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
17469	// in the Amazon Elastic Container Service Developer Guide.
17470	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
17471
17472	// Whether or not the execute command functionality is enabled for the service.
17473	// If true, the execute command functionality is enabled for all containers
17474	// in tasks as part of the service.
17475	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
17476
17477	// The event stream for your service. A maximum of 100 of the latest events
17478	// are displayed.
17479	Events []*ServiceEvent `locationName:"events" type:"list"`
17480
17481	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
17482	// unhealthy Elastic Load Balancing target health checks after a task has first
17483	// started.
17484	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
17485
17486	// The launch type the service is using. When using the DescribeServices API,
17487	// this field is omitted if the service was created using a capacity provider
17488	// strategy.
17489	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
17490
17491	// A list of Elastic Load Balancing load balancer objects, containing the load
17492	// balancer name, the container name (as it appears in a container definition),
17493	// and the container port to access from the load balancer.
17494	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
17495
17496	// The VPC subnet and security group configuration for tasks that receive their
17497	// own elastic network interface by using the awsvpc networking mode.
17498	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
17499
17500	// The number of tasks in the cluster that are in the PENDING state.
17501	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
17502
17503	// The placement constraints for the tasks in the service.
17504	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
17505
17506	// The placement strategy that determines how tasks for the service are placed.
17507	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
17508
17509	// The platform version on which to run your service. A platform version is
17510	// only specified for tasks hosted on Fargate. If one is not specified, the
17511	// LATEST platform version is used by default. For more information, see Fargate
17512	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
17513	// in the Amazon Elastic Container Service Developer Guide.
17514	PlatformVersion *string `locationName:"platformVersion" type:"string"`
17515
17516	// Specifies whether to propagate the tags from the task definition or the service
17517	// to the task. If no value is specified, the tags are not propagated.
17518	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
17519
17520	// The ARN of the IAM role associated with the service that allows the Amazon
17521	// ECS container agent to register container instances with an Elastic Load
17522	// Balancing load balancer.
17523	RoleArn *string `locationName:"roleArn" type:"string"`
17524
17525	// The number of tasks in the cluster that are in the RUNNING state.
17526	RunningCount *int64 `locationName:"runningCount" type:"integer"`
17527
17528	// The scheduling strategy to use for the service. For more information, see
17529	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
17530	//
17531	// There are two service scheduler strategies available:
17532	//
17533	//    * REPLICA-The replica scheduling strategy places and maintains the desired
17534	//    number of tasks across your cluster. By default, the service scheduler
17535	//    spreads tasks across Availability Zones. You can use task placement strategies
17536	//    and constraints to customize task placement decisions.
17537	//
17538	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
17539	//    active container instance that meets all of the task placement constraints
17540	//    that you specify in your cluster. The service scheduler also evaluates
17541	//    the task placement constraints for running tasks and will stop tasks that
17542	//    do not meet the placement constraints. Fargate tasks do not support the
17543	//    DAEMON scheduling strategy.
17544	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
17545
17546	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
17547	// followed by the Region of the service, the Amazon Web Services account ID
17548	// of the service owner, the service namespace, and then the service name. For
17549	// example, arn:aws:ecs:region:012345678910:service/my-service.
17550	ServiceArn *string `locationName:"serviceArn" type:"string"`
17551
17552	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
17553	// underscores, and hyphens are allowed. Service names must be unique within
17554	// a cluster, but you can have similarly named services in multiple clusters
17555	// within a Region or across multiple Regions.
17556	ServiceName *string `locationName:"serviceName" type:"string"`
17557
17558	// The details of the service discovery registries to assign to this service.
17559	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
17560	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
17561
17562	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
17563	Status *string `locationName:"status" type:"string"`
17564
17565	// The metadata that you apply to the service to help you categorize and organize
17566	// them. Each tag consists of a key and an optional value, both of which you
17567	// define.
17568	//
17569	// The following basic restrictions apply to tags:
17570	//
17571	//    * Maximum number of tags per resource - 50
17572	//
17573	//    * For each resource, each tag key must be unique, and each tag key can
17574	//    have only one value.
17575	//
17576	//    * Maximum key length - 128 Unicode characters in UTF-8
17577	//
17578	//    * Maximum value length - 256 Unicode characters in UTF-8
17579	//
17580	//    * If your tagging schema is used across multiple services and resources,
17581	//    remember that other services may have restrictions on allowed characters.
17582	//    Generally allowed characters are: letters, numbers, and spaces representable
17583	//    in UTF-8, and the following characters: + - = . _ : / @.
17584	//
17585	//    * Tag keys and values are case-sensitive.
17586	//
17587	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17588	//    as a prefix for either keys or values as it is reserved for Amazon Web
17589	//    Services use. You cannot edit or delete tag keys or values with this prefix.
17590	//    Tags with this prefix do not count against your tags per resource limit.
17591	Tags []*Tag `locationName:"tags" type:"list"`
17592
17593	// The task definition to use for tasks in the service. This value is specified
17594	// when the service is created with CreateService, and it can be modified with
17595	// UpdateService.
17596	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
17597
17598	// Information about a set of Amazon ECS tasks in either an CodeDeploy or an
17599	// EXTERNAL deployment. An Amazon ECS task set includes details such as the
17600	// desired number of tasks, how many tasks are running, and whether the task
17601	// set serves production traffic.
17602	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
17603}
17604
17605// String returns the string representation
17606func (s Service) String() string {
17607	return awsutil.Prettify(s)
17608}
17609
17610// GoString returns the string representation
17611func (s Service) GoString() string {
17612	return s.String()
17613}
17614
17615// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
17616func (s *Service) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Service {
17617	s.CapacityProviderStrategy = v
17618	return s
17619}
17620
17621// SetClusterArn sets the ClusterArn field's value.
17622func (s *Service) SetClusterArn(v string) *Service {
17623	s.ClusterArn = &v
17624	return s
17625}
17626
17627// SetCreatedAt sets the CreatedAt field's value.
17628func (s *Service) SetCreatedAt(v time.Time) *Service {
17629	s.CreatedAt = &v
17630	return s
17631}
17632
17633// SetCreatedBy sets the CreatedBy field's value.
17634func (s *Service) SetCreatedBy(v string) *Service {
17635	s.CreatedBy = &v
17636	return s
17637}
17638
17639// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
17640func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
17641	s.DeploymentConfiguration = v
17642	return s
17643}
17644
17645// SetDeploymentController sets the DeploymentController field's value.
17646func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
17647	s.DeploymentController = v
17648	return s
17649}
17650
17651// SetDeployments sets the Deployments field's value.
17652func (s *Service) SetDeployments(v []*Deployment) *Service {
17653	s.Deployments = v
17654	return s
17655}
17656
17657// SetDesiredCount sets the DesiredCount field's value.
17658func (s *Service) SetDesiredCount(v int64) *Service {
17659	s.DesiredCount = &v
17660	return s
17661}
17662
17663// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
17664func (s *Service) SetEnableECSManagedTags(v bool) *Service {
17665	s.EnableECSManagedTags = &v
17666	return s
17667}
17668
17669// SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
17670func (s *Service) SetEnableExecuteCommand(v bool) *Service {
17671	s.EnableExecuteCommand = &v
17672	return s
17673}
17674
17675// SetEvents sets the Events field's value.
17676func (s *Service) SetEvents(v []*ServiceEvent) *Service {
17677	s.Events = v
17678	return s
17679}
17680
17681// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
17682func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
17683	s.HealthCheckGracePeriodSeconds = &v
17684	return s
17685}
17686
17687// SetLaunchType sets the LaunchType field's value.
17688func (s *Service) SetLaunchType(v string) *Service {
17689	s.LaunchType = &v
17690	return s
17691}
17692
17693// SetLoadBalancers sets the LoadBalancers field's value.
17694func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
17695	s.LoadBalancers = v
17696	return s
17697}
17698
17699// SetNetworkConfiguration sets the NetworkConfiguration field's value.
17700func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
17701	s.NetworkConfiguration = v
17702	return s
17703}
17704
17705// SetPendingCount sets the PendingCount field's value.
17706func (s *Service) SetPendingCount(v int64) *Service {
17707	s.PendingCount = &v
17708	return s
17709}
17710
17711// SetPlacementConstraints sets the PlacementConstraints field's value.
17712func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
17713	s.PlacementConstraints = v
17714	return s
17715}
17716
17717// SetPlacementStrategy sets the PlacementStrategy field's value.
17718func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
17719	s.PlacementStrategy = v
17720	return s
17721}
17722
17723// SetPlatformVersion sets the PlatformVersion field's value.
17724func (s *Service) SetPlatformVersion(v string) *Service {
17725	s.PlatformVersion = &v
17726	return s
17727}
17728
17729// SetPropagateTags sets the PropagateTags field's value.
17730func (s *Service) SetPropagateTags(v string) *Service {
17731	s.PropagateTags = &v
17732	return s
17733}
17734
17735// SetRoleArn sets the RoleArn field's value.
17736func (s *Service) SetRoleArn(v string) *Service {
17737	s.RoleArn = &v
17738	return s
17739}
17740
17741// SetRunningCount sets the RunningCount field's value.
17742func (s *Service) SetRunningCount(v int64) *Service {
17743	s.RunningCount = &v
17744	return s
17745}
17746
17747// SetSchedulingStrategy sets the SchedulingStrategy field's value.
17748func (s *Service) SetSchedulingStrategy(v string) *Service {
17749	s.SchedulingStrategy = &v
17750	return s
17751}
17752
17753// SetServiceArn sets the ServiceArn field's value.
17754func (s *Service) SetServiceArn(v string) *Service {
17755	s.ServiceArn = &v
17756	return s
17757}
17758
17759// SetServiceName sets the ServiceName field's value.
17760func (s *Service) SetServiceName(v string) *Service {
17761	s.ServiceName = &v
17762	return s
17763}
17764
17765// SetServiceRegistries sets the ServiceRegistries field's value.
17766func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
17767	s.ServiceRegistries = v
17768	return s
17769}
17770
17771// SetStatus sets the Status field's value.
17772func (s *Service) SetStatus(v string) *Service {
17773	s.Status = &v
17774	return s
17775}
17776
17777// SetTags sets the Tags field's value.
17778func (s *Service) SetTags(v []*Tag) *Service {
17779	s.Tags = v
17780	return s
17781}
17782
17783// SetTaskDefinition sets the TaskDefinition field's value.
17784func (s *Service) SetTaskDefinition(v string) *Service {
17785	s.TaskDefinition = &v
17786	return s
17787}
17788
17789// SetTaskSets sets the TaskSets field's value.
17790func (s *Service) SetTaskSets(v []*TaskSet) *Service {
17791	s.TaskSets = v
17792	return s
17793}
17794
17795// Details on an event associated with a service.
17796type ServiceEvent struct {
17797	_ struct{} `type:"structure"`
17798
17799	// The Unix timestamp for when the event was triggered.
17800	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
17801
17802	// The ID string of the event.
17803	Id *string `locationName:"id" type:"string"`
17804
17805	// The event message.
17806	Message *string `locationName:"message" type:"string"`
17807}
17808
17809// String returns the string representation
17810func (s ServiceEvent) String() string {
17811	return awsutil.Prettify(s)
17812}
17813
17814// GoString returns the string representation
17815func (s ServiceEvent) GoString() string {
17816	return s.String()
17817}
17818
17819// SetCreatedAt sets the CreatedAt field's value.
17820func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
17821	s.CreatedAt = &v
17822	return s
17823}
17824
17825// SetId sets the Id field's value.
17826func (s *ServiceEvent) SetId(v string) *ServiceEvent {
17827	s.Id = &v
17828	return s
17829}
17830
17831// SetMessage sets the Message field's value.
17832func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
17833	s.Message = &v
17834	return s
17835}
17836
17837// The specified service is not active. You can't update a service that is inactive.
17838// If you have previously deleted a service, you can re-create it with CreateService.
17839type ServiceNotActiveException struct {
17840	_            struct{}                  `type:"structure"`
17841	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17842
17843	Message_ *string `locationName:"message" type:"string"`
17844}
17845
17846// String returns the string representation
17847func (s ServiceNotActiveException) String() string {
17848	return awsutil.Prettify(s)
17849}
17850
17851// GoString returns the string representation
17852func (s ServiceNotActiveException) GoString() string {
17853	return s.String()
17854}
17855
17856func newErrorServiceNotActiveException(v protocol.ResponseMetadata) error {
17857	return &ServiceNotActiveException{
17858		RespMetadata: v,
17859	}
17860}
17861
17862// Code returns the exception type name.
17863func (s *ServiceNotActiveException) Code() string {
17864	return "ServiceNotActiveException"
17865}
17866
17867// Message returns the exception's message.
17868func (s *ServiceNotActiveException) Message() string {
17869	if s.Message_ != nil {
17870		return *s.Message_
17871	}
17872	return ""
17873}
17874
17875// OrigErr always returns nil, satisfies awserr.Error interface.
17876func (s *ServiceNotActiveException) OrigErr() error {
17877	return nil
17878}
17879
17880func (s *ServiceNotActiveException) Error() string {
17881	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17882}
17883
17884// Status code returns the HTTP status code for the request's response error.
17885func (s *ServiceNotActiveException) StatusCode() int {
17886	return s.RespMetadata.StatusCode
17887}
17888
17889// RequestID returns the service's response RequestID for request.
17890func (s *ServiceNotActiveException) RequestID() string {
17891	return s.RespMetadata.RequestID
17892}
17893
17894// The specified service could not be found. You can view your available services
17895// with ListServices. Amazon ECS services are cluster-specific and Region-specific.
17896type ServiceNotFoundException struct {
17897	_            struct{}                  `type:"structure"`
17898	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17899
17900	Message_ *string `locationName:"message" type:"string"`
17901}
17902
17903// String returns the string representation
17904func (s ServiceNotFoundException) String() string {
17905	return awsutil.Prettify(s)
17906}
17907
17908// GoString returns the string representation
17909func (s ServiceNotFoundException) GoString() string {
17910	return s.String()
17911}
17912
17913func newErrorServiceNotFoundException(v protocol.ResponseMetadata) error {
17914	return &ServiceNotFoundException{
17915		RespMetadata: v,
17916	}
17917}
17918
17919// Code returns the exception type name.
17920func (s *ServiceNotFoundException) Code() string {
17921	return "ServiceNotFoundException"
17922}
17923
17924// Message returns the exception's message.
17925func (s *ServiceNotFoundException) Message() string {
17926	if s.Message_ != nil {
17927		return *s.Message_
17928	}
17929	return ""
17930}
17931
17932// OrigErr always returns nil, satisfies awserr.Error interface.
17933func (s *ServiceNotFoundException) OrigErr() error {
17934	return nil
17935}
17936
17937func (s *ServiceNotFoundException) Error() string {
17938	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17939}
17940
17941// Status code returns the HTTP status code for the request's response error.
17942func (s *ServiceNotFoundException) StatusCode() int {
17943	return s.RespMetadata.StatusCode
17944}
17945
17946// RequestID returns the service's response RequestID for request.
17947func (s *ServiceNotFoundException) RequestID() string {
17948	return s.RespMetadata.RequestID
17949}
17950
17951// Details of the service registry.
17952type ServiceRegistry struct {
17953	_ struct{} `type:"structure"`
17954
17955	// The container name value, already specified in the task definition, to be
17956	// used for your service discovery service. If the task definition that your
17957	// service task specifies uses the bridge or host network mode, you must specify
17958	// a containerName and containerPort combination from the task definition. If
17959	// the task definition that your service task specifies uses the awsvpc network
17960	// mode and a type SRV DNS record is used, you must specify either a containerName
17961	// and containerPort combination or a port value, but not both.
17962	ContainerName *string `locationName:"containerName" type:"string"`
17963
17964	// The port value, already specified in the task definition, to be used for
17965	// your service discovery service. If the task definition your service task
17966	// specifies uses the bridge or host network mode, you must specify a containerName
17967	// and containerPort combination from the task definition. If the task definition
17968	// your service task specifies uses the awsvpc network mode and a type SRV DNS
17969	// record is used, you must specify either a containerName and containerPort
17970	// combination or a port value, but not both.
17971	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
17972
17973	// The port value used if your service discovery service specified an SRV record.
17974	// This field may be used if both the awsvpc network mode and SRV records are
17975	// used.
17976	Port *int64 `locationName:"port" type:"integer"`
17977
17978	// The Amazon Resource Name (ARN) of the service registry. The currently supported
17979	// service registry is Cloud Map. For more information, see CreateService (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
17980	RegistryArn *string `locationName:"registryArn" type:"string"`
17981}
17982
17983// String returns the string representation
17984func (s ServiceRegistry) String() string {
17985	return awsutil.Prettify(s)
17986}
17987
17988// GoString returns the string representation
17989func (s ServiceRegistry) GoString() string {
17990	return s.String()
17991}
17992
17993// SetContainerName sets the ContainerName field's value.
17994func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
17995	s.ContainerName = &v
17996	return s
17997}
17998
17999// SetContainerPort sets the ContainerPort field's value.
18000func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
18001	s.ContainerPort = &v
18002	return s
18003}
18004
18005// SetPort sets the Port field's value.
18006func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
18007	s.Port = &v
18008	return s
18009}
18010
18011// SetRegistryArn sets the RegistryArn field's value.
18012func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
18013	s.RegistryArn = &v
18014	return s
18015}
18016
18017// The details of the execute command session.
18018type Session struct {
18019	_ struct{} `type:"structure"`
18020
18021	// The ID of the execute command session.
18022	SessionId *string `locationName:"sessionId" type:"string"`
18023
18024	// A URL back to managed agent on the container that the SSM Session Manager
18025	// client uses to send commands and receive output from the container.
18026	StreamUrl *string `locationName:"streamUrl" type:"string"`
18027
18028	// An encrypted token value containing session and caller information. Used
18029	// to authenticate the connection to the container.
18030	TokenValue *string `locationName:"tokenValue" type:"string" sensitive:"true"`
18031}
18032
18033// String returns the string representation
18034func (s Session) String() string {
18035	return awsutil.Prettify(s)
18036}
18037
18038// GoString returns the string representation
18039func (s Session) GoString() string {
18040	return s.String()
18041}
18042
18043// SetSessionId sets the SessionId field's value.
18044func (s *Session) SetSessionId(v string) *Session {
18045	s.SessionId = &v
18046	return s
18047}
18048
18049// SetStreamUrl sets the StreamUrl field's value.
18050func (s *Session) SetStreamUrl(v string) *Session {
18051	s.StreamUrl = &v
18052	return s
18053}
18054
18055// SetTokenValue sets the TokenValue field's value.
18056func (s *Session) SetTokenValue(v string) *Session {
18057	s.TokenValue = &v
18058	return s
18059}
18060
18061// The current account setting for a resource.
18062type Setting struct {
18063	_ struct{} `type:"structure"`
18064
18065	// The Amazon ECS resource name.
18066	Name *string `locationName:"name" type:"string" enum:"SettingName"`
18067
18068	// The ARN of the principal, which can be an IAM user, IAM role, or the root
18069	// user. If this field is omitted, the authenticated user is assumed.
18070	PrincipalArn *string `locationName:"principalArn" type:"string"`
18071
18072	// Whether the account setting is enabled or disabled for the specified resource.
18073	Value *string `locationName:"value" type:"string"`
18074}
18075
18076// String returns the string representation
18077func (s Setting) String() string {
18078	return awsutil.Prettify(s)
18079}
18080
18081// GoString returns the string representation
18082func (s Setting) GoString() string {
18083	return s.String()
18084}
18085
18086// SetName sets the Name field's value.
18087func (s *Setting) SetName(v string) *Setting {
18088	s.Name = &v
18089	return s
18090}
18091
18092// SetPrincipalArn sets the PrincipalArn field's value.
18093func (s *Setting) SetPrincipalArn(v string) *Setting {
18094	s.PrincipalArn = &v
18095	return s
18096}
18097
18098// SetValue sets the Value field's value.
18099func (s *Setting) SetValue(v string) *Setting {
18100	s.Value = &v
18101	return s
18102}
18103
18104type StartTaskInput struct {
18105	_ struct{} `type:"structure"`
18106
18107	// The short name or full Amazon Resource Name (ARN) of the cluster on which
18108	// to start your task. If you do not specify a cluster, the default cluster
18109	// is assumed.
18110	Cluster *string `locationName:"cluster" type:"string"`
18111
18112	// The container instance IDs or full ARN entries for the container instances
18113	// on which you would like to place your task. You can specify up to 10 container
18114	// instances.
18115	//
18116	// ContainerInstances is a required field
18117	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
18118
18119	// Specifies whether to enable Amazon ECS managed tags for the task. For more
18120	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
18121	// in the Amazon Elastic Container Service Developer Guide.
18122	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
18123
18124	// Whether or not the execute command functionality is enabled for the task.
18125	// If true, this enables execute command functionality on all containers in
18126	// the task.
18127	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
18128
18129	// The name of the task group to associate with the task. The default value
18130	// is the family name of the task definition (for example, family:my-family-name).
18131	Group *string `locationName:"group" type:"string"`
18132
18133	// The VPC subnet and security group configuration for tasks that receive their
18134	// own elastic network interface by using the awsvpc networking mode.
18135	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
18136
18137	// A list of container overrides in JSON format that specify the name of a container
18138	// in the specified task definition and the overrides it should receive. You
18139	// can override the default command for a container (that is specified in the
18140	// task definition or Docker image) with a command override. You can also override
18141	// existing environment variables (that are specified in the task definition
18142	// or Docker image) on a container or add new environment variables to it with
18143	// an environment override.
18144	//
18145	// A total of 8192 characters are allowed for overrides. This limit includes
18146	// the JSON formatting characters of the override structure.
18147	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
18148
18149	// Specifies whether to propagate the tags from the task definition or the service
18150	// to the task. If no value is specified, the tags are not propagated.
18151	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
18152
18153	// The reference ID to use for the task.
18154	ReferenceId *string `locationName:"referenceId" type:"string"`
18155
18156	// An optional tag specified when a task is started. For example, if you automatically
18157	// trigger a task to run a batch process job, you could apply a unique identifier
18158	// for that job to your task with the startedBy parameter. You can then identify
18159	// which tasks belong to that job by filtering the results of a ListTasks call
18160	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
18161	// hyphens, and underscores are allowed.
18162	//
18163	// If a task is started by an Amazon ECS service, then the startedBy parameter
18164	// contains the deployment ID of the service that starts it.
18165	StartedBy *string `locationName:"startedBy" type:"string"`
18166
18167	// The metadata that you apply to the task to help you categorize and organize
18168	// them. Each tag consists of a key and an optional value, both of which you
18169	// define.
18170	//
18171	// The following basic restrictions apply to tags:
18172	//
18173	//    * Maximum number of tags per resource - 50
18174	//
18175	//    * For each resource, each tag key must be unique, and each tag key can
18176	//    have only one value.
18177	//
18178	//    * Maximum key length - 128 Unicode characters in UTF-8
18179	//
18180	//    * Maximum value length - 256 Unicode characters in UTF-8
18181	//
18182	//    * If your tagging schema is used across multiple services and resources,
18183	//    remember that other services may have restrictions on allowed characters.
18184	//    Generally allowed characters are: letters, numbers, and spaces representable
18185	//    in UTF-8, and the following characters: + - = . _ : / @.
18186	//
18187	//    * Tag keys and values are case-sensitive.
18188	//
18189	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18190	//    as a prefix for either keys or values as it is reserved for Amazon Web
18191	//    Services use. You cannot edit or delete tag keys or values with this prefix.
18192	//    Tags with this prefix do not count against your tags per resource limit.
18193	Tags []*Tag `locationName:"tags" type:"list"`
18194
18195	// The family and revision (family:revision) or full ARN of the task definition
18196	// to start. If a revision is not specified, the latest ACTIVE revision is used.
18197	//
18198	// TaskDefinition is a required field
18199	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
18200}
18201
18202// String returns the string representation
18203func (s StartTaskInput) String() string {
18204	return awsutil.Prettify(s)
18205}
18206
18207// GoString returns the string representation
18208func (s StartTaskInput) GoString() string {
18209	return s.String()
18210}
18211
18212// Validate inspects the fields of the type to determine if they are valid.
18213func (s *StartTaskInput) Validate() error {
18214	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
18215	if s.ContainerInstances == nil {
18216		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
18217	}
18218	if s.TaskDefinition == nil {
18219		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
18220	}
18221	if s.NetworkConfiguration != nil {
18222		if err := s.NetworkConfiguration.Validate(); err != nil {
18223			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
18224		}
18225	}
18226	if s.Overrides != nil {
18227		if err := s.Overrides.Validate(); err != nil {
18228			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
18229		}
18230	}
18231	if s.Tags != nil {
18232		for i, v := range s.Tags {
18233			if v == nil {
18234				continue
18235			}
18236			if err := v.Validate(); err != nil {
18237				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
18238			}
18239		}
18240	}
18241
18242	if invalidParams.Len() > 0 {
18243		return invalidParams
18244	}
18245	return nil
18246}
18247
18248// SetCluster sets the Cluster field's value.
18249func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
18250	s.Cluster = &v
18251	return s
18252}
18253
18254// SetContainerInstances sets the ContainerInstances field's value.
18255func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
18256	s.ContainerInstances = v
18257	return s
18258}
18259
18260// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
18261func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
18262	s.EnableECSManagedTags = &v
18263	return s
18264}
18265
18266// SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
18267func (s *StartTaskInput) SetEnableExecuteCommand(v bool) *StartTaskInput {
18268	s.EnableExecuteCommand = &v
18269	return s
18270}
18271
18272// SetGroup sets the Group field's value.
18273func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
18274	s.Group = &v
18275	return s
18276}
18277
18278// SetNetworkConfiguration sets the NetworkConfiguration field's value.
18279func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
18280	s.NetworkConfiguration = v
18281	return s
18282}
18283
18284// SetOverrides sets the Overrides field's value.
18285func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
18286	s.Overrides = v
18287	return s
18288}
18289
18290// SetPropagateTags sets the PropagateTags field's value.
18291func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
18292	s.PropagateTags = &v
18293	return s
18294}
18295
18296// SetReferenceId sets the ReferenceId field's value.
18297func (s *StartTaskInput) SetReferenceId(v string) *StartTaskInput {
18298	s.ReferenceId = &v
18299	return s
18300}
18301
18302// SetStartedBy sets the StartedBy field's value.
18303func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
18304	s.StartedBy = &v
18305	return s
18306}
18307
18308// SetTags sets the Tags field's value.
18309func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
18310	s.Tags = v
18311	return s
18312}
18313
18314// SetTaskDefinition sets the TaskDefinition field's value.
18315func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
18316	s.TaskDefinition = &v
18317	return s
18318}
18319
18320type StartTaskOutput struct {
18321	_ struct{} `type:"structure"`
18322
18323	// Any failures associated with the call.
18324	Failures []*Failure `locationName:"failures" type:"list"`
18325
18326	// A full description of the tasks that were started. Each task that was successfully
18327	// placed on your container instances is described.
18328	Tasks []*Task `locationName:"tasks" type:"list"`
18329}
18330
18331// String returns the string representation
18332func (s StartTaskOutput) String() string {
18333	return awsutil.Prettify(s)
18334}
18335
18336// GoString returns the string representation
18337func (s StartTaskOutput) GoString() string {
18338	return s.String()
18339}
18340
18341// SetFailures sets the Failures field's value.
18342func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
18343	s.Failures = v
18344	return s
18345}
18346
18347// SetTasks sets the Tasks field's value.
18348func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
18349	s.Tasks = v
18350	return s
18351}
18352
18353type StopTaskInput struct {
18354	_ struct{} `type:"structure"`
18355
18356	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
18357	// the task to stop. If you do not specify a cluster, the default cluster is
18358	// assumed.
18359	Cluster *string `locationName:"cluster" type:"string"`
18360
18361	// An optional message specified when a task is stopped. For example, if you
18362	// are using a custom scheduler, you can use this parameter to specify the reason
18363	// for stopping the task here, and the message appears in subsequent DescribeTasks
18364	// API operations on this task. Up to 255 characters are allowed in this message.
18365	Reason *string `locationName:"reason" type:"string"`
18366
18367	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
18368	//
18369	// Task is a required field
18370	Task *string `locationName:"task" type:"string" required:"true"`
18371}
18372
18373// String returns the string representation
18374func (s StopTaskInput) String() string {
18375	return awsutil.Prettify(s)
18376}
18377
18378// GoString returns the string representation
18379func (s StopTaskInput) GoString() string {
18380	return s.String()
18381}
18382
18383// Validate inspects the fields of the type to determine if they are valid.
18384func (s *StopTaskInput) Validate() error {
18385	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
18386	if s.Task == nil {
18387		invalidParams.Add(request.NewErrParamRequired("Task"))
18388	}
18389
18390	if invalidParams.Len() > 0 {
18391		return invalidParams
18392	}
18393	return nil
18394}
18395
18396// SetCluster sets the Cluster field's value.
18397func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
18398	s.Cluster = &v
18399	return s
18400}
18401
18402// SetReason sets the Reason field's value.
18403func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
18404	s.Reason = &v
18405	return s
18406}
18407
18408// SetTask sets the Task field's value.
18409func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
18410	s.Task = &v
18411	return s
18412}
18413
18414type StopTaskOutput struct {
18415	_ struct{} `type:"structure"`
18416
18417	// The task that was stopped.
18418	Task *Task `locationName:"task" type:"structure"`
18419}
18420
18421// String returns the string representation
18422func (s StopTaskOutput) String() string {
18423	return awsutil.Prettify(s)
18424}
18425
18426// GoString returns the string representation
18427func (s StopTaskOutput) GoString() string {
18428	return s.String()
18429}
18430
18431// SetTask sets the Task field's value.
18432func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
18433	s.Task = v
18434	return s
18435}
18436
18437type SubmitAttachmentStateChangesInput struct {
18438	_ struct{} `type:"structure"`
18439
18440	// Any attachments associated with the state change request.
18441	//
18442	// Attachments is a required field
18443	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
18444
18445	// The short name or full ARN of the cluster that hosts the container instance
18446	// the attachment belongs to.
18447	Cluster *string `locationName:"cluster" type:"string"`
18448}
18449
18450// String returns the string representation
18451func (s SubmitAttachmentStateChangesInput) String() string {
18452	return awsutil.Prettify(s)
18453}
18454
18455// GoString returns the string representation
18456func (s SubmitAttachmentStateChangesInput) GoString() string {
18457	return s.String()
18458}
18459
18460// Validate inspects the fields of the type to determine if they are valid.
18461func (s *SubmitAttachmentStateChangesInput) Validate() error {
18462	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
18463	if s.Attachments == nil {
18464		invalidParams.Add(request.NewErrParamRequired("Attachments"))
18465	}
18466	if s.Attachments != nil {
18467		for i, v := range s.Attachments {
18468			if v == nil {
18469				continue
18470			}
18471			if err := v.Validate(); err != nil {
18472				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
18473			}
18474		}
18475	}
18476
18477	if invalidParams.Len() > 0 {
18478		return invalidParams
18479	}
18480	return nil
18481}
18482
18483// SetAttachments sets the Attachments field's value.
18484func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
18485	s.Attachments = v
18486	return s
18487}
18488
18489// SetCluster sets the Cluster field's value.
18490func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
18491	s.Cluster = &v
18492	return s
18493}
18494
18495type SubmitAttachmentStateChangesOutput struct {
18496	_ struct{} `type:"structure"`
18497
18498	// Acknowledgement of the state change.
18499	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
18500}
18501
18502// String returns the string representation
18503func (s SubmitAttachmentStateChangesOutput) String() string {
18504	return awsutil.Prettify(s)
18505}
18506
18507// GoString returns the string representation
18508func (s SubmitAttachmentStateChangesOutput) GoString() string {
18509	return s.String()
18510}
18511
18512// SetAcknowledgment sets the Acknowledgment field's value.
18513func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
18514	s.Acknowledgment = &v
18515	return s
18516}
18517
18518type SubmitContainerStateChangeInput struct {
18519	_ struct{} `type:"structure"`
18520
18521	// The short name or full ARN of the cluster that hosts the container.
18522	Cluster *string `locationName:"cluster" type:"string"`
18523
18524	// The name of the container.
18525	ContainerName *string `locationName:"containerName" type:"string"`
18526
18527	// The exit code returned for the state change request.
18528	ExitCode *int64 `locationName:"exitCode" type:"integer"`
18529
18530	// The network bindings of the container.
18531	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
18532
18533	// The reason for the state change request.
18534	Reason *string `locationName:"reason" type:"string"`
18535
18536	// The ID of the Docker container.
18537	RuntimeId *string `locationName:"runtimeId" type:"string"`
18538
18539	// The status of the state change request.
18540	Status *string `locationName:"status" type:"string"`
18541
18542	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
18543	// container.
18544	Task *string `locationName:"task" type:"string"`
18545}
18546
18547// String returns the string representation
18548func (s SubmitContainerStateChangeInput) String() string {
18549	return awsutil.Prettify(s)
18550}
18551
18552// GoString returns the string representation
18553func (s SubmitContainerStateChangeInput) GoString() string {
18554	return s.String()
18555}
18556
18557// SetCluster sets the Cluster field's value.
18558func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
18559	s.Cluster = &v
18560	return s
18561}
18562
18563// SetContainerName sets the ContainerName field's value.
18564func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
18565	s.ContainerName = &v
18566	return s
18567}
18568
18569// SetExitCode sets the ExitCode field's value.
18570func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
18571	s.ExitCode = &v
18572	return s
18573}
18574
18575// SetNetworkBindings sets the NetworkBindings field's value.
18576func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
18577	s.NetworkBindings = v
18578	return s
18579}
18580
18581// SetReason sets the Reason field's value.
18582func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
18583	s.Reason = &v
18584	return s
18585}
18586
18587// SetRuntimeId sets the RuntimeId field's value.
18588func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
18589	s.RuntimeId = &v
18590	return s
18591}
18592
18593// SetStatus sets the Status field's value.
18594func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
18595	s.Status = &v
18596	return s
18597}
18598
18599// SetTask sets the Task field's value.
18600func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
18601	s.Task = &v
18602	return s
18603}
18604
18605type SubmitContainerStateChangeOutput struct {
18606	_ struct{} `type:"structure"`
18607
18608	// Acknowledgement of the state change.
18609	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
18610}
18611
18612// String returns the string representation
18613func (s SubmitContainerStateChangeOutput) String() string {
18614	return awsutil.Prettify(s)
18615}
18616
18617// GoString returns the string representation
18618func (s SubmitContainerStateChangeOutput) GoString() string {
18619	return s.String()
18620}
18621
18622// SetAcknowledgment sets the Acknowledgment field's value.
18623func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
18624	s.Acknowledgment = &v
18625	return s
18626}
18627
18628type SubmitTaskStateChangeInput struct {
18629	_ struct{} `type:"structure"`
18630
18631	// Any attachments associated with the state change request.
18632	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
18633
18634	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
18635	// the task.
18636	Cluster *string `locationName:"cluster" type:"string"`
18637
18638	// Any containers associated with the state change request.
18639	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
18640
18641	// The Unix timestamp for when the task execution stopped.
18642	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
18643
18644	// The details for the managed agent associated with the task.
18645	ManagedAgents []*ManagedAgentStateChange `locationName:"managedAgents" type:"list"`
18646
18647	// The Unix timestamp for when the container image pull began.
18648	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
18649
18650	// The Unix timestamp for when the container image pull completed.
18651	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
18652
18653	// The reason for the state change request.
18654	Reason *string `locationName:"reason" type:"string"`
18655
18656	// The status of the state change request.
18657	Status *string `locationName:"status" type:"string"`
18658
18659	// The task ID or full ARN of the task in the state change request.
18660	Task *string `locationName:"task" type:"string"`
18661}
18662
18663// String returns the string representation
18664func (s SubmitTaskStateChangeInput) String() string {
18665	return awsutil.Prettify(s)
18666}
18667
18668// GoString returns the string representation
18669func (s SubmitTaskStateChangeInput) GoString() string {
18670	return s.String()
18671}
18672
18673// Validate inspects the fields of the type to determine if they are valid.
18674func (s *SubmitTaskStateChangeInput) Validate() error {
18675	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
18676	if s.Attachments != nil {
18677		for i, v := range s.Attachments {
18678			if v == nil {
18679				continue
18680			}
18681			if err := v.Validate(); err != nil {
18682				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
18683			}
18684		}
18685	}
18686	if s.ManagedAgents != nil {
18687		for i, v := range s.ManagedAgents {
18688			if v == nil {
18689				continue
18690			}
18691			if err := v.Validate(); err != nil {
18692				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ManagedAgents", i), err.(request.ErrInvalidParams))
18693			}
18694		}
18695	}
18696
18697	if invalidParams.Len() > 0 {
18698		return invalidParams
18699	}
18700	return nil
18701}
18702
18703// SetAttachments sets the Attachments field's value.
18704func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
18705	s.Attachments = v
18706	return s
18707}
18708
18709// SetCluster sets the Cluster field's value.
18710func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
18711	s.Cluster = &v
18712	return s
18713}
18714
18715// SetContainers sets the Containers field's value.
18716func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
18717	s.Containers = v
18718	return s
18719}
18720
18721// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
18722func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
18723	s.ExecutionStoppedAt = &v
18724	return s
18725}
18726
18727// SetManagedAgents sets the ManagedAgents field's value.
18728func (s *SubmitTaskStateChangeInput) SetManagedAgents(v []*ManagedAgentStateChange) *SubmitTaskStateChangeInput {
18729	s.ManagedAgents = v
18730	return s
18731}
18732
18733// SetPullStartedAt sets the PullStartedAt field's value.
18734func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
18735	s.PullStartedAt = &v
18736	return s
18737}
18738
18739// SetPullStoppedAt sets the PullStoppedAt field's value.
18740func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
18741	s.PullStoppedAt = &v
18742	return s
18743}
18744
18745// SetReason sets the Reason field's value.
18746func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
18747	s.Reason = &v
18748	return s
18749}
18750
18751// SetStatus sets the Status field's value.
18752func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
18753	s.Status = &v
18754	return s
18755}
18756
18757// SetTask sets the Task field's value.
18758func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
18759	s.Task = &v
18760	return s
18761}
18762
18763type SubmitTaskStateChangeOutput struct {
18764	_ struct{} `type:"structure"`
18765
18766	// Acknowledgement of the state change.
18767	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
18768}
18769
18770// String returns the string representation
18771func (s SubmitTaskStateChangeOutput) String() string {
18772	return awsutil.Prettify(s)
18773}
18774
18775// GoString returns the string representation
18776func (s SubmitTaskStateChangeOutput) GoString() string {
18777	return s.String()
18778}
18779
18780// SetAcknowledgment sets the Acknowledgment field's value.
18781func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
18782	s.Acknowledgment = &v
18783	return s
18784}
18785
18786// A list of namespaced kernel parameters to set in the container. This parameter
18787// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
18788// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
18789// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
18790//
18791// It is not recommended that you specify network-related systemControls parameters
18792// for multiple containers in a single task that also uses either the awsvpc
18793// or host network mode for the following reasons:
18794//
18795//    * For tasks that use the awsvpc network mode, if you set systemControls
18796//    for any container, it applies to all containers in the task. If you set
18797//    different systemControls for multiple containers in a single task, the
18798//    container that is started last determines which systemControls take effect.
18799//
18800//    * For tasks that use the host network mode, the systemControls parameter
18801//    applies to the container instance's kernel parameter as well as that of
18802//    all containers of any tasks running on that container instance.
18803type SystemControl struct {
18804	_ struct{} `type:"structure"`
18805
18806	// The namespaced kernel parameter for which to set a value.
18807	Namespace *string `locationName:"namespace" type:"string"`
18808
18809	// The value for the namespaced kernel parameter specified in namespace.
18810	Value *string `locationName:"value" type:"string"`
18811}
18812
18813// String returns the string representation
18814func (s SystemControl) String() string {
18815	return awsutil.Prettify(s)
18816}
18817
18818// GoString returns the string representation
18819func (s SystemControl) GoString() string {
18820	return s.String()
18821}
18822
18823// SetNamespace sets the Namespace field's value.
18824func (s *SystemControl) SetNamespace(v string) *SystemControl {
18825	s.Namespace = &v
18826	return s
18827}
18828
18829// SetValue sets the Value field's value.
18830func (s *SystemControl) SetValue(v string) *SystemControl {
18831	s.Value = &v
18832	return s
18833}
18834
18835// The metadata that you apply to a resource to help you categorize and organize
18836// them. Each tag consists of a key and an optional value, both of which you
18837// define.
18838//
18839// The following basic restrictions apply to tags:
18840//
18841//    * Maximum number of tags per resource - 50
18842//
18843//    * For each resource, each tag key must be unique, and each tag key can
18844//    have only one value.
18845//
18846//    * Maximum key length - 128 Unicode characters in UTF-8
18847//
18848//    * Maximum value length - 256 Unicode characters in UTF-8
18849//
18850//    * If your tagging schema is used across multiple services and resources,
18851//    remember that other services may have restrictions on allowed characters.
18852//    Generally allowed characters are: letters, numbers, and spaces representable
18853//    in UTF-8, and the following characters: + - = . _ : / @.
18854//
18855//    * Tag keys and values are case-sensitive.
18856//
18857//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18858//    as a prefix for either keys or values as it is reserved for Amazon Web
18859//    Services use. You cannot edit or delete tag keys or values with this prefix.
18860//    Tags with this prefix do not count against your tags per resource limit.
18861type Tag struct {
18862	_ struct{} `type:"structure"`
18863
18864	// One part of a key-value pair that make up a tag. A key is a general label
18865	// that acts like a category for more specific tag values.
18866	Key *string `locationName:"key" min:"1" type:"string"`
18867
18868	// The optional part of a key-value pair that make up a tag. A value acts as
18869	// a descriptor within a tag category (key).
18870	Value *string `locationName:"value" type:"string"`
18871}
18872
18873// String returns the string representation
18874func (s Tag) String() string {
18875	return awsutil.Prettify(s)
18876}
18877
18878// GoString returns the string representation
18879func (s Tag) GoString() string {
18880	return s.String()
18881}
18882
18883// Validate inspects the fields of the type to determine if they are valid.
18884func (s *Tag) Validate() error {
18885	invalidParams := request.ErrInvalidParams{Context: "Tag"}
18886	if s.Key != nil && len(*s.Key) < 1 {
18887		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
18888	}
18889
18890	if invalidParams.Len() > 0 {
18891		return invalidParams
18892	}
18893	return nil
18894}
18895
18896// SetKey sets the Key field's value.
18897func (s *Tag) SetKey(v string) *Tag {
18898	s.Key = &v
18899	return s
18900}
18901
18902// SetValue sets the Value field's value.
18903func (s *Tag) SetValue(v string) *Tag {
18904	s.Value = &v
18905	return s
18906}
18907
18908type TagResourceInput struct {
18909	_ struct{} `type:"structure"`
18910
18911	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
18912	// the supported resources are Amazon ECS capacity providers, tasks, services,
18913	// task definitions, clusters, and container instances.
18914	//
18915	// ResourceArn is a required field
18916	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
18917
18918	// The tags to add to the resource. A tag is an array of key-value pairs.
18919	//
18920	// The following basic restrictions apply to tags:
18921	//
18922	//    * Maximum number of tags per resource - 50
18923	//
18924	//    * For each resource, each tag key must be unique, and each tag key can
18925	//    have only one value.
18926	//
18927	//    * Maximum key length - 128 Unicode characters in UTF-8
18928	//
18929	//    * Maximum value length - 256 Unicode characters in UTF-8
18930	//
18931	//    * If your tagging schema is used across multiple services and resources,
18932	//    remember that other services may have restrictions on allowed characters.
18933	//    Generally allowed characters are: letters, numbers, and spaces representable
18934	//    in UTF-8, and the following characters: + - = . _ : / @.
18935	//
18936	//    * Tag keys and values are case-sensitive.
18937	//
18938	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18939	//    as a prefix for either keys or values as it is reserved for Amazon Web
18940	//    Services use. You cannot edit or delete tag keys or values with this prefix.
18941	//    Tags with this prefix do not count against your tags per resource limit.
18942	//
18943	// Tags is a required field
18944	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
18945}
18946
18947// String returns the string representation
18948func (s TagResourceInput) String() string {
18949	return awsutil.Prettify(s)
18950}
18951
18952// GoString returns the string representation
18953func (s TagResourceInput) GoString() string {
18954	return s.String()
18955}
18956
18957// Validate inspects the fields of the type to determine if they are valid.
18958func (s *TagResourceInput) Validate() error {
18959	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
18960	if s.ResourceArn == nil {
18961		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
18962	}
18963	if s.Tags == nil {
18964		invalidParams.Add(request.NewErrParamRequired("Tags"))
18965	}
18966	if s.Tags != nil {
18967		for i, v := range s.Tags {
18968			if v == nil {
18969				continue
18970			}
18971			if err := v.Validate(); err != nil {
18972				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
18973			}
18974		}
18975	}
18976
18977	if invalidParams.Len() > 0 {
18978		return invalidParams
18979	}
18980	return nil
18981}
18982
18983// SetResourceArn sets the ResourceArn field's value.
18984func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
18985	s.ResourceArn = &v
18986	return s
18987}
18988
18989// SetTags sets the Tags field's value.
18990func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
18991	s.Tags = v
18992	return s
18993}
18994
18995type TagResourceOutput struct {
18996	_ struct{} `type:"structure"`
18997}
18998
18999// String returns the string representation
19000func (s TagResourceOutput) String() string {
19001	return awsutil.Prettify(s)
19002}
19003
19004// GoString returns the string representation
19005func (s TagResourceOutput) GoString() string {
19006	return s.String()
19007}
19008
19009// The target container is not properly configured with the execute command
19010// agent or the container is no longer active or running.
19011type TargetNotConnectedException struct {
19012	_            struct{}                  `type:"structure"`
19013	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19014
19015	Message_ *string `locationName:"message" type:"string"`
19016}
19017
19018// String returns the string representation
19019func (s TargetNotConnectedException) String() string {
19020	return awsutil.Prettify(s)
19021}
19022
19023// GoString returns the string representation
19024func (s TargetNotConnectedException) GoString() string {
19025	return s.String()
19026}
19027
19028func newErrorTargetNotConnectedException(v protocol.ResponseMetadata) error {
19029	return &TargetNotConnectedException{
19030		RespMetadata: v,
19031	}
19032}
19033
19034// Code returns the exception type name.
19035func (s *TargetNotConnectedException) Code() string {
19036	return "TargetNotConnectedException"
19037}
19038
19039// Message returns the exception's message.
19040func (s *TargetNotConnectedException) Message() string {
19041	if s.Message_ != nil {
19042		return *s.Message_
19043	}
19044	return ""
19045}
19046
19047// OrigErr always returns nil, satisfies awserr.Error interface.
19048func (s *TargetNotConnectedException) OrigErr() error {
19049	return nil
19050}
19051
19052func (s *TargetNotConnectedException) Error() string {
19053	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19054}
19055
19056// Status code returns the HTTP status code for the request's response error.
19057func (s *TargetNotConnectedException) StatusCode() int {
19058	return s.RespMetadata.StatusCode
19059}
19060
19061// RequestID returns the service's response RequestID for request.
19062func (s *TargetNotConnectedException) RequestID() string {
19063	return s.RespMetadata.RequestID
19064}
19065
19066// The specified target could not be found. You can view your available container
19067// instances with ListContainerInstances. Amazon ECS container instances are
19068// cluster-specific and Region-specific.
19069type TargetNotFoundException struct {
19070	_            struct{}                  `type:"structure"`
19071	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19072
19073	Message_ *string `locationName:"message" type:"string"`
19074}
19075
19076// String returns the string representation
19077func (s TargetNotFoundException) String() string {
19078	return awsutil.Prettify(s)
19079}
19080
19081// GoString returns the string representation
19082func (s TargetNotFoundException) GoString() string {
19083	return s.String()
19084}
19085
19086func newErrorTargetNotFoundException(v protocol.ResponseMetadata) error {
19087	return &TargetNotFoundException{
19088		RespMetadata: v,
19089	}
19090}
19091
19092// Code returns the exception type name.
19093func (s *TargetNotFoundException) Code() string {
19094	return "TargetNotFoundException"
19095}
19096
19097// Message returns the exception's message.
19098func (s *TargetNotFoundException) Message() string {
19099	if s.Message_ != nil {
19100		return *s.Message_
19101	}
19102	return ""
19103}
19104
19105// OrigErr always returns nil, satisfies awserr.Error interface.
19106func (s *TargetNotFoundException) OrigErr() error {
19107	return nil
19108}
19109
19110func (s *TargetNotFoundException) Error() string {
19111	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19112}
19113
19114// Status code returns the HTTP status code for the request's response error.
19115func (s *TargetNotFoundException) StatusCode() int {
19116	return s.RespMetadata.StatusCode
19117}
19118
19119// RequestID returns the service's response RequestID for request.
19120func (s *TargetNotFoundException) RequestID() string {
19121	return s.RespMetadata.RequestID
19122}
19123
19124// Details on a task in a cluster.
19125type Task struct {
19126	_ struct{} `type:"structure"`
19127
19128	// The Elastic Network Adapter associated with the task if the task uses the
19129	// awsvpc network mode.
19130	Attachments []*Attachment `locationName:"attachments" type:"list"`
19131
19132	// The attributes of the task
19133	Attributes []*Attribute `locationName:"attributes" type:"list"`
19134
19135	// The availability zone of the task.
19136	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
19137
19138	// The capacity provider associated with the task.
19139	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
19140
19141	// The ARN of the cluster that hosts the task.
19142	ClusterArn *string `locationName:"clusterArn" type:"string"`
19143
19144	// The connectivity status of a task.
19145	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
19146
19147	// The Unix timestamp for when the task last went into CONNECTED status.
19148	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
19149
19150	// The ARN of the container instances that host the task.
19151	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
19152
19153	// The containers associated with the task.
19154	Containers []*Container `locationName:"containers" type:"list"`
19155
19156	// The number of CPU units used by the task as expressed in a task definition.
19157	// It can be expressed as an integer using CPU units, for example 1024. It can
19158	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
19159	// String values are converted to an integer indicating the CPU units when the
19160	// task definition is registered.
19161	//
19162	// If you are using the EC2 launch type, this field is optional. Supported values
19163	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
19164	//
19165	// If you are using the Fargate launch type, this field is required and you
19166	// must use one of the following values, which determines your range of supported
19167	// values for the memory parameter:
19168	//
19169	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
19170	//    2048 (2 GB)
19171	//
19172	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
19173	//    (3 GB), 4096 (4 GB)
19174	//
19175	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
19176	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
19177	//
19178	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
19179	//    (16 GB) in increments of 1024 (1 GB)
19180	//
19181	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
19182	//    (30 GB) in increments of 1024 (1 GB)
19183	Cpu *string `locationName:"cpu" type:"string"`
19184
19185	// The Unix timestamp for when the task was created (the task entered the PENDING
19186	// state).
19187	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
19188
19189	// The desired status of the task. For more information, see Task Lifecycle
19190	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
19191	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
19192
19193	// Whether or not execute command functionality is enabled for this task. If
19194	// true, this enables execute command functionality on all containers in the
19195	// task.
19196	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
19197
19198	// The ephemeral storage settings for the task.
19199	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
19200
19201	// The Unix timestamp for when the task execution stopped.
19202	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
19203
19204	// The name of the task group associated with the task.
19205	Group *string `locationName:"group" type:"string"`
19206
19207	// The health status for the task, which is determined by the health of the
19208	// essential containers in the task. If all essential containers in the task
19209	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
19210	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
19211	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
19212	//
19213	// The Amazon ECS container agent does not monitor or report on Docker health
19214	// checks that are embedded in a container image (such as those specified in
19215	// a parent image or from the image's Dockerfile) and not specified in the container
19216	// definition. Health check parameters that are specified in a container definition
19217	// override any Docker health checks that exist in the container image.
19218	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
19219
19220	// The Elastic Inference accelerator associated with the task.
19221	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
19222
19223	// The last known status of the task. For more information, see Task Lifecycle
19224	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
19225	LastStatus *string `locationName:"lastStatus" type:"string"`
19226
19227	// The infrastructure on which your task is running. For more information, see
19228	// Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
19229	// in the Amazon Elastic Container Service Developer Guide.
19230	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
19231
19232	// The amount of memory (in MiB) used by the task as expressed in a task definition.
19233	// It can be expressed as an integer using MiB, for example 1024. It can also
19234	// be expressed as a string using GB, for example 1GB or 1 GB. String values
19235	// are converted to an integer indicating the MiB when the task definition is
19236	// registered.
19237	//
19238	// If you are using the EC2 launch type, this field is optional.
19239	//
19240	// If you are using the Fargate launch type, this field is required and you
19241	// must use one of the following values, which determines your range of supported
19242	// values for the cpu parameter:
19243	//
19244	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
19245	//    vCPU)
19246	//
19247	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
19248	//    512 (.5 vCPU)
19249	//
19250	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
19251	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
19252	//
19253	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
19254	//    Available cpu values: 2048 (2 vCPU)
19255	//
19256	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
19257	//    Available cpu values: 4096 (4 vCPU)
19258	Memory *string `locationName:"memory" type:"string"`
19259
19260	// One or more container overrides.
19261	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
19262
19263	// The platform version on which your task is running. A platform version is
19264	// only specified for tasks using the Fargate launch type. If one is not specified,
19265	// the LATEST platform version is used by default. For more information, see
19266	// Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
19267	// in the Amazon Elastic Container Service Developer Guide.
19268	PlatformVersion *string `locationName:"platformVersion" type:"string"`
19269
19270	// The Unix timestamp for when the container image pull began.
19271	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
19272
19273	// The Unix timestamp for when the container image pull completed.
19274	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
19275
19276	// The Unix timestamp for when the task started (the task transitioned from
19277	// the PENDING state to the RUNNING state).
19278	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
19279
19280	// The tag specified when a task is started. If the task is started by an Amazon
19281	// ECS service, then the startedBy parameter contains the deployment ID of the
19282	// service that starts it.
19283	StartedBy *string `locationName:"startedBy" type:"string"`
19284
19285	// The stop code indicating why a task was stopped. The stoppedReason may contain
19286	// additional details.
19287	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
19288
19289	// The Unix timestamp for when the task was stopped (the task transitioned from
19290	// the RUNNING state to the STOPPED state).
19291	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
19292
19293	// The reason that the task was stopped.
19294	StoppedReason *string `locationName:"stoppedReason" type:"string"`
19295
19296	// The Unix timestamp for when the task stops (transitions from the RUNNING
19297	// state to STOPPED).
19298	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
19299
19300	// The metadata that you apply to the task to help you categorize and organize
19301	// them. Each tag consists of a key and an optional value, both of which you
19302	// define.
19303	//
19304	// The following basic restrictions apply to tags:
19305	//
19306	//    * Maximum number of tags per resource - 50
19307	//
19308	//    * For each resource, each tag key must be unique, and each tag key can
19309	//    have only one value.
19310	//
19311	//    * Maximum key length - 128 Unicode characters in UTF-8
19312	//
19313	//    * Maximum value length - 256 Unicode characters in UTF-8
19314	//
19315	//    * If your tagging schema is used across multiple services and resources,
19316	//    remember that other services may have restrictions on allowed characters.
19317	//    Generally allowed characters are: letters, numbers, and spaces representable
19318	//    in UTF-8, and the following characters: + - = . _ : / @.
19319	//
19320	//    * Tag keys and values are case-sensitive.
19321	//
19322	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
19323	//    as a prefix for either keys or values as it is reserved for Amazon Web
19324	//    Services use. You cannot edit or delete tag keys or values with this prefix.
19325	//    Tags with this prefix do not count against your tags per resource limit.
19326	Tags []*Tag `locationName:"tags" type:"list"`
19327
19328	// The Amazon Resource Name (ARN) of the task.
19329	TaskArn *string `locationName:"taskArn" type:"string"`
19330
19331	// The ARN of the task definition that creates the task.
19332	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
19333
19334	// The version counter for the task. Every time a task experiences a change
19335	// that triggers a CloudWatch event, the version counter is incremented. If
19336	// you are replicating your Amazon ECS task state with CloudWatch Events, you
19337	// can compare the version of a task reported by the Amazon ECS API actions
19338	// with the version reported in CloudWatch Events for the task (inside the detail
19339	// object) to verify that the version in your event stream is current.
19340	Version *int64 `locationName:"version" type:"long"`
19341}
19342
19343// String returns the string representation
19344func (s Task) String() string {
19345	return awsutil.Prettify(s)
19346}
19347
19348// GoString returns the string representation
19349func (s Task) GoString() string {
19350	return s.String()
19351}
19352
19353// SetAttachments sets the Attachments field's value.
19354func (s *Task) SetAttachments(v []*Attachment) *Task {
19355	s.Attachments = v
19356	return s
19357}
19358
19359// SetAttributes sets the Attributes field's value.
19360func (s *Task) SetAttributes(v []*Attribute) *Task {
19361	s.Attributes = v
19362	return s
19363}
19364
19365// SetAvailabilityZone sets the AvailabilityZone field's value.
19366func (s *Task) SetAvailabilityZone(v string) *Task {
19367	s.AvailabilityZone = &v
19368	return s
19369}
19370
19371// SetCapacityProviderName sets the CapacityProviderName field's value.
19372func (s *Task) SetCapacityProviderName(v string) *Task {
19373	s.CapacityProviderName = &v
19374	return s
19375}
19376
19377// SetClusterArn sets the ClusterArn field's value.
19378func (s *Task) SetClusterArn(v string) *Task {
19379	s.ClusterArn = &v
19380	return s
19381}
19382
19383// SetConnectivity sets the Connectivity field's value.
19384func (s *Task) SetConnectivity(v string) *Task {
19385	s.Connectivity = &v
19386	return s
19387}
19388
19389// SetConnectivityAt sets the ConnectivityAt field's value.
19390func (s *Task) SetConnectivityAt(v time.Time) *Task {
19391	s.ConnectivityAt = &v
19392	return s
19393}
19394
19395// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
19396func (s *Task) SetContainerInstanceArn(v string) *Task {
19397	s.ContainerInstanceArn = &v
19398	return s
19399}
19400
19401// SetContainers sets the Containers field's value.
19402func (s *Task) SetContainers(v []*Container) *Task {
19403	s.Containers = v
19404	return s
19405}
19406
19407// SetCpu sets the Cpu field's value.
19408func (s *Task) SetCpu(v string) *Task {
19409	s.Cpu = &v
19410	return s
19411}
19412
19413// SetCreatedAt sets the CreatedAt field's value.
19414func (s *Task) SetCreatedAt(v time.Time) *Task {
19415	s.CreatedAt = &v
19416	return s
19417}
19418
19419// SetDesiredStatus sets the DesiredStatus field's value.
19420func (s *Task) SetDesiredStatus(v string) *Task {
19421	s.DesiredStatus = &v
19422	return s
19423}
19424
19425// SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
19426func (s *Task) SetEnableExecuteCommand(v bool) *Task {
19427	s.EnableExecuteCommand = &v
19428	return s
19429}
19430
19431// SetEphemeralStorage sets the EphemeralStorage field's value.
19432func (s *Task) SetEphemeralStorage(v *EphemeralStorage) *Task {
19433	s.EphemeralStorage = v
19434	return s
19435}
19436
19437// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
19438func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
19439	s.ExecutionStoppedAt = &v
19440	return s
19441}
19442
19443// SetGroup sets the Group field's value.
19444func (s *Task) SetGroup(v string) *Task {
19445	s.Group = &v
19446	return s
19447}
19448
19449// SetHealthStatus sets the HealthStatus field's value.
19450func (s *Task) SetHealthStatus(v string) *Task {
19451	s.HealthStatus = &v
19452	return s
19453}
19454
19455// SetInferenceAccelerators sets the InferenceAccelerators field's value.
19456func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
19457	s.InferenceAccelerators = v
19458	return s
19459}
19460
19461// SetLastStatus sets the LastStatus field's value.
19462func (s *Task) SetLastStatus(v string) *Task {
19463	s.LastStatus = &v
19464	return s
19465}
19466
19467// SetLaunchType sets the LaunchType field's value.
19468func (s *Task) SetLaunchType(v string) *Task {
19469	s.LaunchType = &v
19470	return s
19471}
19472
19473// SetMemory sets the Memory field's value.
19474func (s *Task) SetMemory(v string) *Task {
19475	s.Memory = &v
19476	return s
19477}
19478
19479// SetOverrides sets the Overrides field's value.
19480func (s *Task) SetOverrides(v *TaskOverride) *Task {
19481	s.Overrides = v
19482	return s
19483}
19484
19485// SetPlatformVersion sets the PlatformVersion field's value.
19486func (s *Task) SetPlatformVersion(v string) *Task {
19487	s.PlatformVersion = &v
19488	return s
19489}
19490
19491// SetPullStartedAt sets the PullStartedAt field's value.
19492func (s *Task) SetPullStartedAt(v time.Time) *Task {
19493	s.PullStartedAt = &v
19494	return s
19495}
19496
19497// SetPullStoppedAt sets the PullStoppedAt field's value.
19498func (s *Task) SetPullStoppedAt(v time.Time) *Task {
19499	s.PullStoppedAt = &v
19500	return s
19501}
19502
19503// SetStartedAt sets the StartedAt field's value.
19504func (s *Task) SetStartedAt(v time.Time) *Task {
19505	s.StartedAt = &v
19506	return s
19507}
19508
19509// SetStartedBy sets the StartedBy field's value.
19510func (s *Task) SetStartedBy(v string) *Task {
19511	s.StartedBy = &v
19512	return s
19513}
19514
19515// SetStopCode sets the StopCode field's value.
19516func (s *Task) SetStopCode(v string) *Task {
19517	s.StopCode = &v
19518	return s
19519}
19520
19521// SetStoppedAt sets the StoppedAt field's value.
19522func (s *Task) SetStoppedAt(v time.Time) *Task {
19523	s.StoppedAt = &v
19524	return s
19525}
19526
19527// SetStoppedReason sets the StoppedReason field's value.
19528func (s *Task) SetStoppedReason(v string) *Task {
19529	s.StoppedReason = &v
19530	return s
19531}
19532
19533// SetStoppingAt sets the StoppingAt field's value.
19534func (s *Task) SetStoppingAt(v time.Time) *Task {
19535	s.StoppingAt = &v
19536	return s
19537}
19538
19539// SetTags sets the Tags field's value.
19540func (s *Task) SetTags(v []*Tag) *Task {
19541	s.Tags = v
19542	return s
19543}
19544
19545// SetTaskArn sets the TaskArn field's value.
19546func (s *Task) SetTaskArn(v string) *Task {
19547	s.TaskArn = &v
19548	return s
19549}
19550
19551// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
19552func (s *Task) SetTaskDefinitionArn(v string) *Task {
19553	s.TaskDefinitionArn = &v
19554	return s
19555}
19556
19557// SetVersion sets the Version field's value.
19558func (s *Task) SetVersion(v int64) *Task {
19559	s.Version = &v
19560	return s
19561}
19562
19563// The details of a task definition which describes the container and volume
19564// definitions of an Amazon Elastic Container Service task. You can specify
19565// which Docker images to use, the required resources, and other configurations
19566// related to launching the task definition through an Amazon ECS service or
19567// task.
19568type TaskDefinition struct {
19569	_ struct{} `type:"structure"`
19570
19571	// The task launch types the task definition validated against during task definition
19572	// registration. For more information, see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
19573	// in the Amazon Elastic Container Service Developer Guide.
19574	Compatibilities []*string `locationName:"compatibilities" type:"list"`
19575
19576	// A list of container definitions in JSON format that describe the different
19577	// containers that make up your task. For more information about container definition
19578	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
19579	// in the Amazon Elastic Container Service Developer Guide.
19580	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
19581
19582	// The number of cpu units used by the task. If you are using the EC2 launch
19583	// type, this field is optional and any value can be used. If you are using
19584	// the Fargate launch type, this field is required and you must use one of the
19585	// following values, which determines your range of valid values for the memory
19586	// parameter:
19587	//
19588	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
19589	//    2048 (2 GB)
19590	//
19591	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
19592	//    (3 GB), 4096 (4 GB)
19593	//
19594	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
19595	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
19596	//
19597	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
19598	//    (16 GB) in increments of 1024 (1 GB)
19599	//
19600	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
19601	//    (30 GB) in increments of 1024 (1 GB)
19602	Cpu *string `locationName:"cpu" type:"string"`
19603
19604	// The Unix timestamp for when the task definition was deregistered.
19605	DeregisteredAt *time.Time `locationName:"deregisteredAt" type:"timestamp"`
19606
19607	// The ephemeral storage settings to use for tasks run with the task definition.
19608	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
19609
19610	// The Amazon Resource Name (ARN) of the task execution role that grants the
19611	// Amazon ECS container agent permission to make Amazon Web Services API calls
19612	// on your behalf. The task execution IAM role is required depending on the
19613	// requirements of your task. For more information, see Amazon ECS task execution
19614	// IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
19615	// in the Amazon Elastic Container Service Developer Guide.
19616	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
19617
19618	// The name of a family that this task definition is registered to. Up to 255
19619	// letters (uppercase and lowercase), numbers, hyphens, and underscores are
19620	// allowed.
19621	//
19622	// A family groups multiple versions of a task definition. Amazon ECS gives
19623	// the first task definition that you registered to a family a revision number
19624	// of 1. Amazon ECS gives sequential revision numbers to each task definition
19625	// that you add.
19626	Family *string `locationName:"family" type:"string"`
19627
19628	// The Elastic Inference accelerator associated with the task.
19629	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
19630
19631	// The IPC resource namespace to use for the containers in the task. The valid
19632	// values are host, task, or none. If host is specified, then all containers
19633	// within the tasks that specified the host IPC mode on the same container instance
19634	// share the same IPC resources with the host Amazon EC2 instance. If task is
19635	// specified, all containers within the specified task share the same IPC resources.
19636	// If none is specified, then IPC resources within the containers of a task
19637	// are private and not shared with other containers in a task or on the container
19638	// instance. If no value is specified, then the IPC resource namespace sharing
19639	// depends on the Docker daemon setting on the container instance. For more
19640	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
19641	// in the Docker run reference.
19642	//
19643	// If the host IPC mode is used, be aware that there is a heightened risk of
19644	// undesired IPC namespace expose. For more information, see Docker security
19645	// (https://docs.docker.com/engine/security/security/).
19646	//
19647	// If you are setting namespaced kernel parameters using systemControls for
19648	// the containers in the task, the following will apply to your IPC resource
19649	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
19650	// in the Amazon Elastic Container Service Developer Guide.
19651	//
19652	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
19653	//    are not supported.
19654	//
19655	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
19656	//    will apply to all containers within a task.
19657	//
19658	// This parameter is not supported for Windows containers or tasks run on Fargate.
19659	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
19660
19661	// The amount (in MiB) of memory used by the task.
19662	//
19663	// If your tasks will be run on Amazon EC2 instances, you must specify either
19664	// a task-level memory value or a container-level memory value. This field is
19665	// optional and any value can be used. If a task-level memory value is specified
19666	// then the container-level memory value is optional. For more information regarding
19667	// container-level memory and memory reservation, see ContainerDefinition (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).
19668	//
19669	// If your tasks will be run on Fargate, this field is required and you must
19670	// use one of the following values, which determines your range of valid values
19671	// for the cpu parameter:
19672	//
19673	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
19674	//    vCPU)
19675	//
19676	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
19677	//    512 (.5 vCPU)
19678	//
19679	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
19680	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
19681	//
19682	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
19683	//    Available cpu values: 2048 (2 vCPU)
19684	//
19685	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
19686	//    Available cpu values: 4096 (4 vCPU)
19687	Memory *string `locationName:"memory" type:"string"`
19688
19689	// The Docker networking mode to use for the containers in the task. The valid
19690	// values are none, bridge, awsvpc, and host. If no network mode is specified,
19691	// the default is bridge.
19692	//
19693	// For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For
19694	// Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used.
19695	// For Amazon ECS tasks on Amazon EC2 Windows instances, <default> or awsvpc
19696	// can be used. If the network mode is set to none, you cannot specify port
19697	// mappings in your container definitions, and the tasks containers do not have
19698	// external connectivity. The host and awsvpc network modes offer the highest
19699	// networking performance for containers because they use the EC2 network stack
19700	// instead of the virtualized network stack provided by the bridge mode.
19701	//
19702	// With the host and awsvpc network modes, exposed container ports are mapped
19703	// directly to the corresponding host port (for the host network mode) or the
19704	// attached elastic network interface port (for the awsvpc network mode), so
19705	// you cannot take advantage of dynamic host port mappings.
19706	//
19707	// When using the host network mode, you should not run containers using the
19708	// root user (UID 0). It is considered best practice to use a non-root user.
19709	//
19710	// If the network mode is awsvpc, the task is allocated an elastic network interface,
19711	// and you must specify a NetworkConfiguration value when you create a service
19712	// or run a task with the task definition. For more information, see Task Networking
19713	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
19714	// in the Amazon Elastic Container Service Developer Guide.
19715	//
19716	// If the network mode is host, you cannot run multiple instantiations of the
19717	// same task on a single container instance when port mappings are used.
19718	//
19719	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
19720	// in the Docker run reference.
19721	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
19722
19723	// The process namespace to use for the containers in the task. The valid values
19724	// are host or task. If host is specified, then all containers within the tasks
19725	// that specified the host PID mode on the same container instance share the
19726	// same process namespace with the host Amazon EC2 instance. If task is specified,
19727	// all containers within the specified task share the same process namespace.
19728	// If no value is specified, the default is a private namespace. For more information,
19729	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
19730	// in the Docker run reference.
19731	//
19732	// If the host PID mode is used, be aware that there is a heightened risk of
19733	// undesired process namespace expose. For more information, see Docker security
19734	// (https://docs.docker.com/engine/security/security/).
19735	//
19736	// This parameter is not supported for Windows containers or tasks run on Fargate.
19737	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
19738
19739	// An array of placement constraint objects to use for tasks.
19740	//
19741	// This parameter is not supported for tasks run on Fargate.
19742	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
19743
19744	// The configuration details for the App Mesh proxy.
19745	//
19746	// Your Amazon ECS container instances require at least version 1.26.0 of the
19747	// container agent and at least version 1.26.0-1 of the ecs-init package to
19748	// enable a proxy configuration. If your container instances are launched from
19749	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
19750	// the required versions of the container agent and ecs-init. For more information,
19751	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
19752	// in the Amazon Elastic Container Service Developer Guide.
19753	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
19754
19755	// The Unix timestamp for when the task definition was registered.
19756	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
19757
19758	// The principal that registered the task definition.
19759	RegisteredBy *string `locationName:"registeredBy" type:"string"`
19760
19761	// The container instance attributes required by your task. When an Amazon EC2
19762	// instance is registered to your cluster, the Amazon ECS container agent assigns
19763	// some standard attributes to the instance. You can apply custom attributes,
19764	// specified as key-value pairs using the Amazon ECS console or the PutAttributes
19765	// API. These attributes are used when considering task placement for tasks
19766	// hosted on Amazon EC2 instances. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
19767	// in the Amazon Elastic Container Service Developer Guide.
19768	//
19769	// This parameter is not supported for tasks run on Fargate.
19770	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
19771
19772	// The task launch types the task definition was validated against. To determine
19773	// which task launch types the task definition is validated for, see the TaskDefinition$compatibilities
19774	// parameter.
19775	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
19776
19777	// The revision of the task in a particular family. The revision is a version
19778	// number of a task definition in a family. When you register a task definition
19779	// for the first time, the revision is 1. Each time that you register a new
19780	// revision of a task definition in the same family, the revision value always
19781	// increases by one, even if you have deregistered previous revisions in this
19782	// family.
19783	Revision *int64 `locationName:"revision" type:"integer"`
19784
19785	// The status of the task definition.
19786	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
19787
19788	// The full Amazon Resource Name (ARN) of the task definition.
19789	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
19790
19791	// The short name or full Amazon Resource Name (ARN) of the Identity and Access
19792	// Management role that grants containers in the task permission to call Amazon
19793	// Web Services APIs on your behalf. For more information, see Amazon ECS Task
19794	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
19795	// in the Amazon Elastic Container Service Developer Guide.
19796	//
19797	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
19798	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
19799	// must also run some configuration code in order to take advantage of the feature.
19800	// For more information, see Windows IAM roles for tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
19801	// in the Amazon Elastic Container Service Developer Guide.
19802	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
19803
19804	// The list of data volume definitions for the task. For more information, see
19805	// Using data volumes in tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html)
19806	// in the Amazon Elastic Container Service Developer Guide.
19807	//
19808	// The host and sourcePath parameters are not supported for tasks run on Fargate.
19809	Volumes []*Volume `locationName:"volumes" type:"list"`
19810}
19811
19812// String returns the string representation
19813func (s TaskDefinition) String() string {
19814	return awsutil.Prettify(s)
19815}
19816
19817// GoString returns the string representation
19818func (s TaskDefinition) GoString() string {
19819	return s.String()
19820}
19821
19822// SetCompatibilities sets the Compatibilities field's value.
19823func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
19824	s.Compatibilities = v
19825	return s
19826}
19827
19828// SetContainerDefinitions sets the ContainerDefinitions field's value.
19829func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
19830	s.ContainerDefinitions = v
19831	return s
19832}
19833
19834// SetCpu sets the Cpu field's value.
19835func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
19836	s.Cpu = &v
19837	return s
19838}
19839
19840// SetDeregisteredAt sets the DeregisteredAt field's value.
19841func (s *TaskDefinition) SetDeregisteredAt(v time.Time) *TaskDefinition {
19842	s.DeregisteredAt = &v
19843	return s
19844}
19845
19846// SetEphemeralStorage sets the EphemeralStorage field's value.
19847func (s *TaskDefinition) SetEphemeralStorage(v *EphemeralStorage) *TaskDefinition {
19848	s.EphemeralStorage = v
19849	return s
19850}
19851
19852// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
19853func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
19854	s.ExecutionRoleArn = &v
19855	return s
19856}
19857
19858// SetFamily sets the Family field's value.
19859func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
19860	s.Family = &v
19861	return s
19862}
19863
19864// SetInferenceAccelerators sets the InferenceAccelerators field's value.
19865func (s *TaskDefinition) SetInferenceAccelerators(v []*InferenceAccelerator) *TaskDefinition {
19866	s.InferenceAccelerators = v
19867	return s
19868}
19869
19870// SetIpcMode sets the IpcMode field's value.
19871func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
19872	s.IpcMode = &v
19873	return s
19874}
19875
19876// SetMemory sets the Memory field's value.
19877func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
19878	s.Memory = &v
19879	return s
19880}
19881
19882// SetNetworkMode sets the NetworkMode field's value.
19883func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
19884	s.NetworkMode = &v
19885	return s
19886}
19887
19888// SetPidMode sets the PidMode field's value.
19889func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
19890	s.PidMode = &v
19891	return s
19892}
19893
19894// SetPlacementConstraints sets the PlacementConstraints field's value.
19895func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
19896	s.PlacementConstraints = v
19897	return s
19898}
19899
19900// SetProxyConfiguration sets the ProxyConfiguration field's value.
19901func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
19902	s.ProxyConfiguration = v
19903	return s
19904}
19905
19906// SetRegisteredAt sets the RegisteredAt field's value.
19907func (s *TaskDefinition) SetRegisteredAt(v time.Time) *TaskDefinition {
19908	s.RegisteredAt = &v
19909	return s
19910}
19911
19912// SetRegisteredBy sets the RegisteredBy field's value.
19913func (s *TaskDefinition) SetRegisteredBy(v string) *TaskDefinition {
19914	s.RegisteredBy = &v
19915	return s
19916}
19917
19918// SetRequiresAttributes sets the RequiresAttributes field's value.
19919func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
19920	s.RequiresAttributes = v
19921	return s
19922}
19923
19924// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
19925func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
19926	s.RequiresCompatibilities = v
19927	return s
19928}
19929
19930// SetRevision sets the Revision field's value.
19931func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
19932	s.Revision = &v
19933	return s
19934}
19935
19936// SetStatus sets the Status field's value.
19937func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
19938	s.Status = &v
19939	return s
19940}
19941
19942// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
19943func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
19944	s.TaskDefinitionArn = &v
19945	return s
19946}
19947
19948// SetTaskRoleArn sets the TaskRoleArn field's value.
19949func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
19950	s.TaskRoleArn = &v
19951	return s
19952}
19953
19954// SetVolumes sets the Volumes field's value.
19955func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
19956	s.Volumes = v
19957	return s
19958}
19959
19960// An object representing a constraint on task placement in the task definition.
19961// For more information, see Task placement constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
19962// in the Amazon Elastic Container Service Developer Guide.
19963//
19964// Task placement constraints are not supported for tasks run on Fargate.
19965type TaskDefinitionPlacementConstraint struct {
19966	_ struct{} `type:"structure"`
19967
19968	// A cluster query language expression to apply to the constraint. For more
19969	// information, see Cluster query language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
19970	// in the Amazon Elastic Container Service Developer Guide.
19971	Expression *string `locationName:"expression" type:"string"`
19972
19973	// The type of constraint. The MemberOf constraint restricts selection to be
19974	// from a group of valid candidates.
19975	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
19976}
19977
19978// String returns the string representation
19979func (s TaskDefinitionPlacementConstraint) String() string {
19980	return awsutil.Prettify(s)
19981}
19982
19983// GoString returns the string representation
19984func (s TaskDefinitionPlacementConstraint) GoString() string {
19985	return s.String()
19986}
19987
19988// SetExpression sets the Expression field's value.
19989func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
19990	s.Expression = &v
19991	return s
19992}
19993
19994// SetType sets the Type field's value.
19995func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
19996	s.Type = &v
19997	return s
19998}
19999
20000// The overrides associated with a task.
20001type TaskOverride struct {
20002	_ struct{} `type:"structure"`
20003
20004	// One or more container overrides sent to a task.
20005	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
20006
20007	// The cpu override for the task.
20008	Cpu *string `locationName:"cpu" type:"string"`
20009
20010	// The ephemeral storage setting override for the task.
20011	//
20012	// This parameter is only supported for tasks hosted on Fargate using platform
20013	// version 1.4.0 or later.
20014	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
20015
20016	// The Amazon Resource Name (ARN) of the task execution IAM role override for
20017	// the task.
20018	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
20019
20020	// The Elastic Inference accelerator override for the task.
20021	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
20022
20023	// The memory override for the task.
20024	Memory *string `locationName:"memory" type:"string"`
20025
20026	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
20027	// can assume. All containers in this task are granted the permissions that
20028	// are specified in this role.
20029	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
20030}
20031
20032// String returns the string representation
20033func (s TaskOverride) String() string {
20034	return awsutil.Prettify(s)
20035}
20036
20037// GoString returns the string representation
20038func (s TaskOverride) GoString() string {
20039	return s.String()
20040}
20041
20042// Validate inspects the fields of the type to determine if they are valid.
20043func (s *TaskOverride) Validate() error {
20044	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
20045	if s.ContainerOverrides != nil {
20046		for i, v := range s.ContainerOverrides {
20047			if v == nil {
20048				continue
20049			}
20050			if err := v.Validate(); err != nil {
20051				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
20052			}
20053		}
20054	}
20055	if s.EphemeralStorage != nil {
20056		if err := s.EphemeralStorage.Validate(); err != nil {
20057			invalidParams.AddNested("EphemeralStorage", err.(request.ErrInvalidParams))
20058		}
20059	}
20060
20061	if invalidParams.Len() > 0 {
20062		return invalidParams
20063	}
20064	return nil
20065}
20066
20067// SetContainerOverrides sets the ContainerOverrides field's value.
20068func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
20069	s.ContainerOverrides = v
20070	return s
20071}
20072
20073// SetCpu sets the Cpu field's value.
20074func (s *TaskOverride) SetCpu(v string) *TaskOverride {
20075	s.Cpu = &v
20076	return s
20077}
20078
20079// SetEphemeralStorage sets the EphemeralStorage field's value.
20080func (s *TaskOverride) SetEphemeralStorage(v *EphemeralStorage) *TaskOverride {
20081	s.EphemeralStorage = v
20082	return s
20083}
20084
20085// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
20086func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
20087	s.ExecutionRoleArn = &v
20088	return s
20089}
20090
20091// SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
20092func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
20093	s.InferenceAcceleratorOverrides = v
20094	return s
20095}
20096
20097// SetMemory sets the Memory field's value.
20098func (s *TaskOverride) SetMemory(v string) *TaskOverride {
20099	s.Memory = &v
20100	return s
20101}
20102
20103// SetTaskRoleArn sets the TaskRoleArn field's value.
20104func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
20105	s.TaskRoleArn = &v
20106	return s
20107}
20108
20109// Information about a set of Amazon ECS tasks in either an CodeDeploy or an
20110// EXTERNAL deployment. An Amazon ECS task set includes details such as the
20111// desired number of tasks, how many tasks are running, and whether the task
20112// set serves production traffic.
20113type TaskSet struct {
20114	_ struct{} `type:"structure"`
20115
20116	// The capacity provider strategy associated with the task set.
20117	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
20118
20119	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
20120	// the task set exists in.
20121	ClusterArn *string `locationName:"clusterArn" type:"string"`
20122
20123	// The computed desired count for the task set. This is calculated by multiplying
20124	// the service's desiredCount by the task set's scale percentage. The result
20125	// is always rounded up. For example, if the computed desired count is 1.2,
20126	// it rounds up to 2 tasks.
20127	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
20128
20129	// The Unix timestamp for when the task set was created.
20130	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
20131
20132	// The external ID associated with the task set.
20133	//
20134	// If a task set is created by an CodeDeploy deployment, the externalId parameter
20135	// contains the CodeDeploy deployment ID.
20136	//
20137	// If a task set is created for an external deployment and is associated with
20138	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
20139	// Cloud Map attribute.
20140	ExternalId *string `locationName:"externalId" type:"string"`
20141
20142	// The ID of the task set.
20143	Id *string `locationName:"id" type:"string"`
20144
20145	// The launch type the tasks in the task set are using. For more information,
20146	// see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
20147	// in the Amazon Elastic Container Service Developer Guide.
20148	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
20149
20150	// Details on a load balancer that is used with a task set.
20151	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
20152
20153	// The network configuration for the task set.
20154	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
20155
20156	// The number of tasks in the task set that are in the PENDING status during
20157	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
20158	// state. A task set enters the PENDING status when it launches for the first
20159	// time or when it is restarted after being in the STOPPED state.
20160	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
20161
20162	// The Fargate platform version on which the tasks in the task set are running.
20163	// A platform version is only specified for tasks run on Fargate. For more information,
20164	// see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
20165	// in the Amazon Elastic Container Service Developer Guide.
20166	PlatformVersion *string `locationName:"platformVersion" type:"string"`
20167
20168	// The number of tasks in the task set that are in the RUNNING status during
20169	// a deployment. A task in the RUNNING state is running and ready for use.
20170	RunningCount *int64 `locationName:"runningCount" type:"integer"`
20171
20172	// A floating-point percentage of the desired number of tasks to place and keep
20173	// running in the task set.
20174	Scale *Scale `locationName:"scale" type:"structure"`
20175
20176	// The Amazon Resource Name (ARN) of the service the task set exists in.
20177	ServiceArn *string `locationName:"serviceArn" type:"string"`
20178
20179	// The details of the service discovery registries to assign to this task set.
20180	// For more information, see Service discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
20181	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
20182
20183	// The stability status, which indicates whether the task set has reached a
20184	// steady state. If the following conditions are met, the task set will be in
20185	// STEADY_STATE:
20186	//
20187	//    * The task runningCount is equal to the computedDesiredCount.
20188	//
20189	//    * The pendingCount is 0.
20190	//
20191	//    * There are no tasks running on container instances in the DRAINING status.
20192	//
20193	//    * All tasks are reporting a healthy status from the load balancers, service
20194	//    discovery, and container health checks.
20195	//
20196	// If any of those conditions are not met, the stability status returns STABILIZING.
20197	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
20198
20199	// The Unix timestamp for when the task set stability status was retrieved.
20200	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
20201
20202	// The tag specified when a task set is started. If the task set is created
20203	// by an CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY. For
20204	// a task set created for an external deployment, the startedBy field isn't
20205	// used.
20206	StartedBy *string `locationName:"startedBy" type:"string"`
20207
20208	// The status of the task set. The following describes each state:
20209	//
20210	// PRIMARY
20211	//
20212	// The task set is serving production traffic.
20213	//
20214	// ACTIVE
20215	//
20216	// The task set is not serving production traffic.
20217	//
20218	// DRAINING
20219	//
20220	// The tasks in the task set are being stopped and their corresponding targets
20221	// are being deregistered from their target group.
20222	Status *string `locationName:"status" type:"string"`
20223
20224	// The metadata that you apply to the task set to help you categorize and organize
20225	// them. Each tag consists of a key and an optional value, both of which you
20226	// define.
20227	//
20228	// The following basic restrictions apply to tags:
20229	//
20230	//    * Maximum number of tags per resource - 50
20231	//
20232	//    * For each resource, each tag key must be unique, and each tag key can
20233	//    have only one value.
20234	//
20235	//    * Maximum key length - 128 Unicode characters in UTF-8
20236	//
20237	//    * Maximum value length - 256 Unicode characters in UTF-8
20238	//
20239	//    * If your tagging schema is used across multiple services and resources,
20240	//    remember that other services may have restrictions on allowed characters.
20241	//    Generally allowed characters are: letters, numbers, and spaces representable
20242	//    in UTF-8, and the following characters: + - = . _ : / @.
20243	//
20244	//    * Tag keys and values are case-sensitive.
20245	//
20246	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
20247	//    as a prefix for either keys or values as it is reserved for Amazon Web
20248	//    Services use. You cannot edit or delete tag keys or values with this prefix.
20249	//    Tags with this prefix do not count against your tags per resource limit.
20250	Tags []*Tag `locationName:"tags" type:"list"`
20251
20252	// The task definition the task set is using.
20253	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
20254
20255	// The Amazon Resource Name (ARN) of the task set.
20256	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
20257
20258	// The Unix timestamp for when the task set was last updated.
20259	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
20260}
20261
20262// String returns the string representation
20263func (s TaskSet) String() string {
20264	return awsutil.Prettify(s)
20265}
20266
20267// GoString returns the string representation
20268func (s TaskSet) GoString() string {
20269	return s.String()
20270}
20271
20272// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
20273func (s *TaskSet) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *TaskSet {
20274	s.CapacityProviderStrategy = v
20275	return s
20276}
20277
20278// SetClusterArn sets the ClusterArn field's value.
20279func (s *TaskSet) SetClusterArn(v string) *TaskSet {
20280	s.ClusterArn = &v
20281	return s
20282}
20283
20284// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
20285func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
20286	s.ComputedDesiredCount = &v
20287	return s
20288}
20289
20290// SetCreatedAt sets the CreatedAt field's value.
20291func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
20292	s.CreatedAt = &v
20293	return s
20294}
20295
20296// SetExternalId sets the ExternalId field's value.
20297func (s *TaskSet) SetExternalId(v string) *TaskSet {
20298	s.ExternalId = &v
20299	return s
20300}
20301
20302// SetId sets the Id field's value.
20303func (s *TaskSet) SetId(v string) *TaskSet {
20304	s.Id = &v
20305	return s
20306}
20307
20308// SetLaunchType sets the LaunchType field's value.
20309func (s *TaskSet) SetLaunchType(v string) *TaskSet {
20310	s.LaunchType = &v
20311	return s
20312}
20313
20314// SetLoadBalancers sets the LoadBalancers field's value.
20315func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
20316	s.LoadBalancers = v
20317	return s
20318}
20319
20320// SetNetworkConfiguration sets the NetworkConfiguration field's value.
20321func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
20322	s.NetworkConfiguration = v
20323	return s
20324}
20325
20326// SetPendingCount sets the PendingCount field's value.
20327func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
20328	s.PendingCount = &v
20329	return s
20330}
20331
20332// SetPlatformVersion sets the PlatformVersion field's value.
20333func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
20334	s.PlatformVersion = &v
20335	return s
20336}
20337
20338// SetRunningCount sets the RunningCount field's value.
20339func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
20340	s.RunningCount = &v
20341	return s
20342}
20343
20344// SetScale sets the Scale field's value.
20345func (s *TaskSet) SetScale(v *Scale) *TaskSet {
20346	s.Scale = v
20347	return s
20348}
20349
20350// SetServiceArn sets the ServiceArn field's value.
20351func (s *TaskSet) SetServiceArn(v string) *TaskSet {
20352	s.ServiceArn = &v
20353	return s
20354}
20355
20356// SetServiceRegistries sets the ServiceRegistries field's value.
20357func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
20358	s.ServiceRegistries = v
20359	return s
20360}
20361
20362// SetStabilityStatus sets the StabilityStatus field's value.
20363func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
20364	s.StabilityStatus = &v
20365	return s
20366}
20367
20368// SetStabilityStatusAt sets the StabilityStatusAt field's value.
20369func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
20370	s.StabilityStatusAt = &v
20371	return s
20372}
20373
20374// SetStartedBy sets the StartedBy field's value.
20375func (s *TaskSet) SetStartedBy(v string) *TaskSet {
20376	s.StartedBy = &v
20377	return s
20378}
20379
20380// SetStatus sets the Status field's value.
20381func (s *TaskSet) SetStatus(v string) *TaskSet {
20382	s.Status = &v
20383	return s
20384}
20385
20386// SetTags sets the Tags field's value.
20387func (s *TaskSet) SetTags(v []*Tag) *TaskSet {
20388	s.Tags = v
20389	return s
20390}
20391
20392// SetTaskDefinition sets the TaskDefinition field's value.
20393func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
20394	s.TaskDefinition = &v
20395	return s
20396}
20397
20398// SetTaskSetArn sets the TaskSetArn field's value.
20399func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
20400	s.TaskSetArn = &v
20401	return s
20402}
20403
20404// SetUpdatedAt sets the UpdatedAt field's value.
20405func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
20406	s.UpdatedAt = &v
20407	return s
20408}
20409
20410// The specified task set could not be found. You can view your available task
20411// sets with DescribeTaskSets. Task sets are specific to each cluster, service
20412// and Region.
20413type TaskSetNotFoundException struct {
20414	_            struct{}                  `type:"structure"`
20415	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20416
20417	Message_ *string `locationName:"message" type:"string"`
20418}
20419
20420// String returns the string representation
20421func (s TaskSetNotFoundException) String() string {
20422	return awsutil.Prettify(s)
20423}
20424
20425// GoString returns the string representation
20426func (s TaskSetNotFoundException) GoString() string {
20427	return s.String()
20428}
20429
20430func newErrorTaskSetNotFoundException(v protocol.ResponseMetadata) error {
20431	return &TaskSetNotFoundException{
20432		RespMetadata: v,
20433	}
20434}
20435
20436// Code returns the exception type name.
20437func (s *TaskSetNotFoundException) Code() string {
20438	return "TaskSetNotFoundException"
20439}
20440
20441// Message returns the exception's message.
20442func (s *TaskSetNotFoundException) Message() string {
20443	if s.Message_ != nil {
20444		return *s.Message_
20445	}
20446	return ""
20447}
20448
20449// OrigErr always returns nil, satisfies awserr.Error interface.
20450func (s *TaskSetNotFoundException) OrigErr() error {
20451	return nil
20452}
20453
20454func (s *TaskSetNotFoundException) Error() string {
20455	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20456}
20457
20458// Status code returns the HTTP status code for the request's response error.
20459func (s *TaskSetNotFoundException) StatusCode() int {
20460	return s.RespMetadata.StatusCode
20461}
20462
20463// RequestID returns the service's response RequestID for request.
20464func (s *TaskSetNotFoundException) RequestID() string {
20465	return s.RespMetadata.RequestID
20466}
20467
20468// The container path, mount options, and size of the tmpfs mount.
20469type Tmpfs struct {
20470	_ struct{} `type:"structure"`
20471
20472	// The absolute file path where the tmpfs volume is to be mounted.
20473	//
20474	// ContainerPath is a required field
20475	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
20476
20477	// The list of tmpfs volume mount options.
20478	//
20479	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
20480	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
20481	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
20482	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
20483	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
20484	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
20485	MountOptions []*string `locationName:"mountOptions" type:"list"`
20486
20487	// The maximum size (in MiB) of the tmpfs volume.
20488	//
20489	// Size is a required field
20490	Size *int64 `locationName:"size" type:"integer" required:"true"`
20491}
20492
20493// String returns the string representation
20494func (s Tmpfs) String() string {
20495	return awsutil.Prettify(s)
20496}
20497
20498// GoString returns the string representation
20499func (s Tmpfs) GoString() string {
20500	return s.String()
20501}
20502
20503// Validate inspects the fields of the type to determine if they are valid.
20504func (s *Tmpfs) Validate() error {
20505	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
20506	if s.ContainerPath == nil {
20507		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
20508	}
20509	if s.Size == nil {
20510		invalidParams.Add(request.NewErrParamRequired("Size"))
20511	}
20512
20513	if invalidParams.Len() > 0 {
20514		return invalidParams
20515	}
20516	return nil
20517}
20518
20519// SetContainerPath sets the ContainerPath field's value.
20520func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
20521	s.ContainerPath = &v
20522	return s
20523}
20524
20525// SetMountOptions sets the MountOptions field's value.
20526func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
20527	s.MountOptions = v
20528	return s
20529}
20530
20531// SetSize sets the Size field's value.
20532func (s *Tmpfs) SetSize(v int64) *Tmpfs {
20533	s.Size = &v
20534	return s
20535}
20536
20537// The ulimit settings to pass to the container.
20538//
20539// Amazon ECS tasks hosted on Fargate use the default resource limit values
20540// set by the operating system with the exception of the nofile resource limit
20541// parameter which Fargate overrides. The nofile resource limit sets a restriction
20542// on the number of open files that a container can use. The default nofile
20543// soft limit is 1024 and hard limit is 4096.
20544type Ulimit struct {
20545	_ struct{} `type:"structure"`
20546
20547	// The hard limit for the ulimit type.
20548	//
20549	// HardLimit is a required field
20550	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
20551
20552	// The type of the ulimit.
20553	//
20554	// Name is a required field
20555	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
20556
20557	// The soft limit for the ulimit type.
20558	//
20559	// SoftLimit is a required field
20560	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
20561}
20562
20563// String returns the string representation
20564func (s Ulimit) String() string {
20565	return awsutil.Prettify(s)
20566}
20567
20568// GoString returns the string representation
20569func (s Ulimit) GoString() string {
20570	return s.String()
20571}
20572
20573// Validate inspects the fields of the type to determine if they are valid.
20574func (s *Ulimit) Validate() error {
20575	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
20576	if s.HardLimit == nil {
20577		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
20578	}
20579	if s.Name == nil {
20580		invalidParams.Add(request.NewErrParamRequired("Name"))
20581	}
20582	if s.SoftLimit == nil {
20583		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
20584	}
20585
20586	if invalidParams.Len() > 0 {
20587		return invalidParams
20588	}
20589	return nil
20590}
20591
20592// SetHardLimit sets the HardLimit field's value.
20593func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
20594	s.HardLimit = &v
20595	return s
20596}
20597
20598// SetName sets the Name field's value.
20599func (s *Ulimit) SetName(v string) *Ulimit {
20600	s.Name = &v
20601	return s
20602}
20603
20604// SetSoftLimit sets the SoftLimit field's value.
20605func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
20606	s.SoftLimit = &v
20607	return s
20608}
20609
20610// The specified task is not supported in this Region.
20611type UnsupportedFeatureException struct {
20612	_            struct{}                  `type:"structure"`
20613	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20614
20615	Message_ *string `locationName:"message" type:"string"`
20616}
20617
20618// String returns the string representation
20619func (s UnsupportedFeatureException) String() string {
20620	return awsutil.Prettify(s)
20621}
20622
20623// GoString returns the string representation
20624func (s UnsupportedFeatureException) GoString() string {
20625	return s.String()
20626}
20627
20628func newErrorUnsupportedFeatureException(v protocol.ResponseMetadata) error {
20629	return &UnsupportedFeatureException{
20630		RespMetadata: v,
20631	}
20632}
20633
20634// Code returns the exception type name.
20635func (s *UnsupportedFeatureException) Code() string {
20636	return "UnsupportedFeatureException"
20637}
20638
20639// Message returns the exception's message.
20640func (s *UnsupportedFeatureException) Message() string {
20641	if s.Message_ != nil {
20642		return *s.Message_
20643	}
20644	return ""
20645}
20646
20647// OrigErr always returns nil, satisfies awserr.Error interface.
20648func (s *UnsupportedFeatureException) OrigErr() error {
20649	return nil
20650}
20651
20652func (s *UnsupportedFeatureException) Error() string {
20653	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20654}
20655
20656// Status code returns the HTTP status code for the request's response error.
20657func (s *UnsupportedFeatureException) StatusCode() int {
20658	return s.RespMetadata.StatusCode
20659}
20660
20661// RequestID returns the service's response RequestID for request.
20662func (s *UnsupportedFeatureException) RequestID() string {
20663	return s.RespMetadata.RequestID
20664}
20665
20666type UntagResourceInput struct {
20667	_ struct{} `type:"structure"`
20668
20669	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
20670	// Currently, the supported resources are Amazon ECS capacity providers, tasks,
20671	// services, task definitions, clusters, and container instances.
20672	//
20673	// ResourceArn is a required field
20674	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
20675
20676	// The keys of the tags to be removed.
20677	//
20678	// TagKeys is a required field
20679	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
20680}
20681
20682// String returns the string representation
20683func (s UntagResourceInput) String() string {
20684	return awsutil.Prettify(s)
20685}
20686
20687// GoString returns the string representation
20688func (s UntagResourceInput) GoString() string {
20689	return s.String()
20690}
20691
20692// Validate inspects the fields of the type to determine if they are valid.
20693func (s *UntagResourceInput) Validate() error {
20694	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
20695	if s.ResourceArn == nil {
20696		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
20697	}
20698	if s.TagKeys == nil {
20699		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
20700	}
20701
20702	if invalidParams.Len() > 0 {
20703		return invalidParams
20704	}
20705	return nil
20706}
20707
20708// SetResourceArn sets the ResourceArn field's value.
20709func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
20710	s.ResourceArn = &v
20711	return s
20712}
20713
20714// SetTagKeys sets the TagKeys field's value.
20715func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
20716	s.TagKeys = v
20717	return s
20718}
20719
20720type UntagResourceOutput struct {
20721	_ struct{} `type:"structure"`
20722}
20723
20724// String returns the string representation
20725func (s UntagResourceOutput) String() string {
20726	return awsutil.Prettify(s)
20727}
20728
20729// GoString returns the string representation
20730func (s UntagResourceOutput) GoString() string {
20731	return s.String()
20732}
20733
20734type UpdateCapacityProviderInput struct {
20735	_ struct{} `type:"structure"`
20736
20737	// An object representing the parameters to update for the Auto Scaling group
20738	// capacity provider.
20739	//
20740	// AutoScalingGroupProvider is a required field
20741	AutoScalingGroupProvider *AutoScalingGroupProviderUpdate `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
20742
20743	// The name of the capacity provider to update.
20744	//
20745	// Name is a required field
20746	Name *string `locationName:"name" type:"string" required:"true"`
20747}
20748
20749// String returns the string representation
20750func (s UpdateCapacityProviderInput) String() string {
20751	return awsutil.Prettify(s)
20752}
20753
20754// GoString returns the string representation
20755func (s UpdateCapacityProviderInput) GoString() string {
20756	return s.String()
20757}
20758
20759// Validate inspects the fields of the type to determine if they are valid.
20760func (s *UpdateCapacityProviderInput) Validate() error {
20761	invalidParams := request.ErrInvalidParams{Context: "UpdateCapacityProviderInput"}
20762	if s.AutoScalingGroupProvider == nil {
20763		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
20764	}
20765	if s.Name == nil {
20766		invalidParams.Add(request.NewErrParamRequired("Name"))
20767	}
20768	if s.AutoScalingGroupProvider != nil {
20769		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
20770			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
20771		}
20772	}
20773
20774	if invalidParams.Len() > 0 {
20775		return invalidParams
20776	}
20777	return nil
20778}
20779
20780// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
20781func (s *UpdateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProviderUpdate) *UpdateCapacityProviderInput {
20782	s.AutoScalingGroupProvider = v
20783	return s
20784}
20785
20786// SetName sets the Name field's value.
20787func (s *UpdateCapacityProviderInput) SetName(v string) *UpdateCapacityProviderInput {
20788	s.Name = &v
20789	return s
20790}
20791
20792type UpdateCapacityProviderOutput struct {
20793	_ struct{} `type:"structure"`
20794
20795	// Details about the capacity provider.
20796	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
20797}
20798
20799// String returns the string representation
20800func (s UpdateCapacityProviderOutput) String() string {
20801	return awsutil.Prettify(s)
20802}
20803
20804// GoString returns the string representation
20805func (s UpdateCapacityProviderOutput) GoString() string {
20806	return s.String()
20807}
20808
20809// SetCapacityProvider sets the CapacityProvider field's value.
20810func (s *UpdateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *UpdateCapacityProviderOutput {
20811	s.CapacityProvider = v
20812	return s
20813}
20814
20815type UpdateClusterInput struct {
20816	_ struct{} `type:"structure"`
20817
20818	// The name of the cluster to modify the settings for.
20819	//
20820	// Cluster is a required field
20821	Cluster *string `locationName:"cluster" type:"string" required:"true"`
20822
20823	// The execute command configuration for the cluster.
20824	Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"`
20825
20826	// The cluster settings for your cluster.
20827	Settings []*ClusterSetting `locationName:"settings" type:"list"`
20828}
20829
20830// String returns the string representation
20831func (s UpdateClusterInput) String() string {
20832	return awsutil.Prettify(s)
20833}
20834
20835// GoString returns the string representation
20836func (s UpdateClusterInput) GoString() string {
20837	return s.String()
20838}
20839
20840// Validate inspects the fields of the type to determine if they are valid.
20841func (s *UpdateClusterInput) Validate() error {
20842	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"}
20843	if s.Cluster == nil {
20844		invalidParams.Add(request.NewErrParamRequired("Cluster"))
20845	}
20846
20847	if invalidParams.Len() > 0 {
20848		return invalidParams
20849	}
20850	return nil
20851}
20852
20853// SetCluster sets the Cluster field's value.
20854func (s *UpdateClusterInput) SetCluster(v string) *UpdateClusterInput {
20855	s.Cluster = &v
20856	return s
20857}
20858
20859// SetConfiguration sets the Configuration field's value.
20860func (s *UpdateClusterInput) SetConfiguration(v *ClusterConfiguration) *UpdateClusterInput {
20861	s.Configuration = v
20862	return s
20863}
20864
20865// SetSettings sets the Settings field's value.
20866func (s *UpdateClusterInput) SetSettings(v []*ClusterSetting) *UpdateClusterInput {
20867	s.Settings = v
20868	return s
20869}
20870
20871type UpdateClusterOutput struct {
20872	_ struct{} `type:"structure"`
20873
20874	// Details about the cluster.
20875	Cluster *Cluster `locationName:"cluster" type:"structure"`
20876}
20877
20878// String returns the string representation
20879func (s UpdateClusterOutput) String() string {
20880	return awsutil.Prettify(s)
20881}
20882
20883// GoString returns the string representation
20884func (s UpdateClusterOutput) GoString() string {
20885	return s.String()
20886}
20887
20888// SetCluster sets the Cluster field's value.
20889func (s *UpdateClusterOutput) SetCluster(v *Cluster) *UpdateClusterOutput {
20890	s.Cluster = v
20891	return s
20892}
20893
20894type UpdateClusterSettingsInput struct {
20895	_ struct{} `type:"structure"`
20896
20897	// The name of the cluster to modify the settings for.
20898	//
20899	// Cluster is a required field
20900	Cluster *string `locationName:"cluster" type:"string" required:"true"`
20901
20902	// The setting to use by default for a cluster. This parameter is used to enable
20903	// CloudWatch Container Insights for a cluster. If this value is specified,
20904	// it will override the containerInsights value set with PutAccountSetting or
20905	// PutAccountSettingDefault.
20906	//
20907	// Settings is a required field
20908	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
20909}
20910
20911// String returns the string representation
20912func (s UpdateClusterSettingsInput) String() string {
20913	return awsutil.Prettify(s)
20914}
20915
20916// GoString returns the string representation
20917func (s UpdateClusterSettingsInput) GoString() string {
20918	return s.String()
20919}
20920
20921// Validate inspects the fields of the type to determine if they are valid.
20922func (s *UpdateClusterSettingsInput) Validate() error {
20923	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
20924	if s.Cluster == nil {
20925		invalidParams.Add(request.NewErrParamRequired("Cluster"))
20926	}
20927	if s.Settings == nil {
20928		invalidParams.Add(request.NewErrParamRequired("Settings"))
20929	}
20930
20931	if invalidParams.Len() > 0 {
20932		return invalidParams
20933	}
20934	return nil
20935}
20936
20937// SetCluster sets the Cluster field's value.
20938func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
20939	s.Cluster = &v
20940	return s
20941}
20942
20943// SetSettings sets the Settings field's value.
20944func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
20945	s.Settings = v
20946	return s
20947}
20948
20949type UpdateClusterSettingsOutput struct {
20950	_ struct{} `type:"structure"`
20951
20952	// Details about the cluster
20953	Cluster *Cluster `locationName:"cluster" type:"structure"`
20954}
20955
20956// String returns the string representation
20957func (s UpdateClusterSettingsOutput) String() string {
20958	return awsutil.Prettify(s)
20959}
20960
20961// GoString returns the string representation
20962func (s UpdateClusterSettingsOutput) GoString() string {
20963	return s.String()
20964}
20965
20966// SetCluster sets the Cluster field's value.
20967func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
20968	s.Cluster = v
20969	return s
20970}
20971
20972type UpdateContainerAgentInput struct {
20973	_ struct{} `type:"structure"`
20974
20975	// The short name or full Amazon Resource Name (ARN) of the cluster that your
20976	// container instance is running on. If you do not specify a cluster, the default
20977	// cluster is assumed.
20978	Cluster *string `locationName:"cluster" type:"string"`
20979
20980	// The container instance ID or full ARN entries for the container instance
20981	// on which you would like to update the Amazon ECS container agent.
20982	//
20983	// ContainerInstance is a required field
20984	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
20985}
20986
20987// String returns the string representation
20988func (s UpdateContainerAgentInput) String() string {
20989	return awsutil.Prettify(s)
20990}
20991
20992// GoString returns the string representation
20993func (s UpdateContainerAgentInput) GoString() string {
20994	return s.String()
20995}
20996
20997// Validate inspects the fields of the type to determine if they are valid.
20998func (s *UpdateContainerAgentInput) Validate() error {
20999	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
21000	if s.ContainerInstance == nil {
21001		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
21002	}
21003
21004	if invalidParams.Len() > 0 {
21005		return invalidParams
21006	}
21007	return nil
21008}
21009
21010// SetCluster sets the Cluster field's value.
21011func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
21012	s.Cluster = &v
21013	return s
21014}
21015
21016// SetContainerInstance sets the ContainerInstance field's value.
21017func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
21018	s.ContainerInstance = &v
21019	return s
21020}
21021
21022type UpdateContainerAgentOutput struct {
21023	_ struct{} `type:"structure"`
21024
21025	// The container instance for which the container agent was updated.
21026	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
21027}
21028
21029// String returns the string representation
21030func (s UpdateContainerAgentOutput) String() string {
21031	return awsutil.Prettify(s)
21032}
21033
21034// GoString returns the string representation
21035func (s UpdateContainerAgentOutput) GoString() string {
21036	return s.String()
21037}
21038
21039// SetContainerInstance sets the ContainerInstance field's value.
21040func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
21041	s.ContainerInstance = v
21042	return s
21043}
21044
21045type UpdateContainerInstancesStateInput struct {
21046	_ struct{} `type:"structure"`
21047
21048	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
21049	// the container instance to update. If you do not specify a cluster, the default
21050	// cluster is assumed.
21051	Cluster *string `locationName:"cluster" type:"string"`
21052
21053	// A list of container instance IDs or full ARN entries.
21054	//
21055	// ContainerInstances is a required field
21056	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
21057
21058	// The container instance state with which to update the container instance.
21059	// The only valid values for this action are ACTIVE and DRAINING. A container
21060	// instance can only be updated to DRAINING status once it has reached an ACTIVE
21061	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
21062	// state you can describe the container instance but will be unable to update
21063	// the container instance state.
21064	//
21065	// Status is a required field
21066	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
21067}
21068
21069// String returns the string representation
21070func (s UpdateContainerInstancesStateInput) String() string {
21071	return awsutil.Prettify(s)
21072}
21073
21074// GoString returns the string representation
21075func (s UpdateContainerInstancesStateInput) GoString() string {
21076	return s.String()
21077}
21078
21079// Validate inspects the fields of the type to determine if they are valid.
21080func (s *UpdateContainerInstancesStateInput) Validate() error {
21081	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
21082	if s.ContainerInstances == nil {
21083		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
21084	}
21085	if s.Status == nil {
21086		invalidParams.Add(request.NewErrParamRequired("Status"))
21087	}
21088
21089	if invalidParams.Len() > 0 {
21090		return invalidParams
21091	}
21092	return nil
21093}
21094
21095// SetCluster sets the Cluster field's value.
21096func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
21097	s.Cluster = &v
21098	return s
21099}
21100
21101// SetContainerInstances sets the ContainerInstances field's value.
21102func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
21103	s.ContainerInstances = v
21104	return s
21105}
21106
21107// SetStatus sets the Status field's value.
21108func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
21109	s.Status = &v
21110	return s
21111}
21112
21113type UpdateContainerInstancesStateOutput struct {
21114	_ struct{} `type:"structure"`
21115
21116	// The list of container instances.
21117	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
21118
21119	// Any failures associated with the call.
21120	Failures []*Failure `locationName:"failures" type:"list"`
21121}
21122
21123// String returns the string representation
21124func (s UpdateContainerInstancesStateOutput) String() string {
21125	return awsutil.Prettify(s)
21126}
21127
21128// GoString returns the string representation
21129func (s UpdateContainerInstancesStateOutput) GoString() string {
21130	return s.String()
21131}
21132
21133// SetContainerInstances sets the ContainerInstances field's value.
21134func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
21135	s.ContainerInstances = v
21136	return s
21137}
21138
21139// SetFailures sets the Failures field's value.
21140func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
21141	s.Failures = v
21142	return s
21143}
21144
21145// There is already a current Amazon ECS container agent update in progress
21146// on the specified container instance. If the container agent becomes disconnected
21147// while it is in a transitional stage, such as PENDING or STAGING, the update
21148// process can get stuck in that state. However, when the agent reconnects,
21149// it resumes where it stopped previously.
21150type UpdateInProgressException struct {
21151	_            struct{}                  `type:"structure"`
21152	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21153
21154	Message_ *string `locationName:"message" type:"string"`
21155}
21156
21157// String returns the string representation
21158func (s UpdateInProgressException) String() string {
21159	return awsutil.Prettify(s)
21160}
21161
21162// GoString returns the string representation
21163func (s UpdateInProgressException) GoString() string {
21164	return s.String()
21165}
21166
21167func newErrorUpdateInProgressException(v protocol.ResponseMetadata) error {
21168	return &UpdateInProgressException{
21169		RespMetadata: v,
21170	}
21171}
21172
21173// Code returns the exception type name.
21174func (s *UpdateInProgressException) Code() string {
21175	return "UpdateInProgressException"
21176}
21177
21178// Message returns the exception's message.
21179func (s *UpdateInProgressException) Message() string {
21180	if s.Message_ != nil {
21181		return *s.Message_
21182	}
21183	return ""
21184}
21185
21186// OrigErr always returns nil, satisfies awserr.Error interface.
21187func (s *UpdateInProgressException) OrigErr() error {
21188	return nil
21189}
21190
21191func (s *UpdateInProgressException) Error() string {
21192	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21193}
21194
21195// Status code returns the HTTP status code for the request's response error.
21196func (s *UpdateInProgressException) StatusCode() int {
21197	return s.RespMetadata.StatusCode
21198}
21199
21200// RequestID returns the service's response RequestID for request.
21201func (s *UpdateInProgressException) RequestID() string {
21202	return s.RespMetadata.RequestID
21203}
21204
21205type UpdateServiceInput struct {
21206	_ struct{} `type:"structure"`
21207
21208	// The capacity provider strategy to update the service to use.
21209	//
21210	// If the service is using the default capacity provider strategy for the cluster,
21211	// the service can be updated to use one or more capacity providers as opposed
21212	// to the default capacity provider strategy. However, when a service is using
21213	// a capacity provider strategy that is not the default capacity provider strategy,
21214	// the service cannot be updated to use the cluster's default capacity provider
21215	// strategy.
21216	//
21217	// A capacity provider strategy consists of one or more capacity providers along
21218	// with the base and weight to assign to them. A capacity provider must be associated
21219	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
21220	// API is used to associate a capacity provider with a cluster. Only capacity
21221	// providers with an ACTIVE or UPDATING status can be used.
21222	//
21223	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
21224	// provider must already be created. New capacity providers can be created with
21225	// the CreateCapacityProvider API operation.
21226	//
21227	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
21228	// capacity providers. The Fargate capacity providers are available to all accounts
21229	// and only need to be associated with a cluster to be used.
21230	//
21231	// The PutClusterCapacityProviders API operation is used to update the list
21232	// of available capacity providers for a cluster after the cluster is created.
21233	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
21234
21235	// The short name or full Amazon Resource Name (ARN) of the cluster that your
21236	// service is running on. If you do not specify a cluster, the default cluster
21237	// is assumed.
21238	Cluster *string `locationName:"cluster" type:"string"`
21239
21240	// Optional deployment parameters that control how many tasks run during the
21241	// deployment and the ordering of stopping and starting tasks.
21242	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
21243
21244	// The number of instantiations of the task to place and keep running in your
21245	// service.
21246	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
21247
21248	// If true, this enables execute command functionality on all task containers.
21249	//
21250	// If you do not want to override the value that was set when the service was
21251	// created, you can set this to null when performing this action.
21252	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
21253
21254	// Whether to force a new deployment of the service. Deployments are not forced
21255	// by default. You can use this option to trigger a new deployment with no service
21256	// definition changes. For example, you can update a service's tasks to use
21257	// a newer Docker image with the same image/tag combination (my_image:latest)
21258	// or to roll Fargate tasks onto a newer platform version.
21259	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
21260
21261	// The period of time, in seconds, that the Amazon ECS service scheduler should
21262	// ignore unhealthy Elastic Load Balancing target health checks after a task
21263	// has first started. This is only valid if your service is configured to use
21264	// a load balancer. If your service's tasks take a while to start and respond
21265	// to Elastic Load Balancing health checks, you can specify a health check grace
21266	// period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service
21267	// scheduler ignores the Elastic Load Balancing health check status. This grace
21268	// period can prevent the ECS service scheduler from marking tasks as unhealthy
21269	// and stopping them before they have time to come up.
21270	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
21271
21272	// An object representing the network configuration for the service.
21273	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
21274
21275	// An array of task placement constraint objects to update the service to use.
21276	// If no value is specified, the existing placement constraints for the service
21277	// will remain unchanged. If this value is specified, it will override any existing
21278	// placement constraints defined for the service. To remove all existing placement
21279	// constraints, specify an empty array.
21280	//
21281	// You can specify a maximum of 10 constraints per task (this limit includes
21282	// constraints in the task definition and those specified at runtime).
21283	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
21284
21285	// The task placement strategy objects to update the service to use. If no value
21286	// is specified, the existing placement strategy for the service will remain
21287	// unchanged. If this value is specified, it will override the existing placement
21288	// strategy defined for the service. To remove an existing placement strategy,
21289	// specify an empty object.
21290	//
21291	// You can specify a maximum of five strategy rules per service.
21292	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
21293
21294	// The platform version on which your tasks in the service are running. A platform
21295	// version is only specified for tasks using the Fargate launch type. If a platform
21296	// version is not specified, the LATEST platform version is used by default.
21297	// For more information, see Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
21298	// in the Amazon Elastic Container Service Developer Guide.
21299	PlatformVersion *string `locationName:"platformVersion" type:"string"`
21300
21301	// The name of the service to update.
21302	//
21303	// Service is a required field
21304	Service *string `locationName:"service" type:"string" required:"true"`
21305
21306	// The family and revision (family:revision) or full ARN of the task definition
21307	// to run in your service. If a revision is not specified, the latest ACTIVE
21308	// revision is used. If you modify the task definition with UpdateService, Amazon
21309	// ECS spawns a task with the new version of the task definition and then stops
21310	// an old task after the new version is running.
21311	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
21312}
21313
21314// String returns the string representation
21315func (s UpdateServiceInput) String() string {
21316	return awsutil.Prettify(s)
21317}
21318
21319// GoString returns the string representation
21320func (s UpdateServiceInput) GoString() string {
21321	return s.String()
21322}
21323
21324// Validate inspects the fields of the type to determine if they are valid.
21325func (s *UpdateServiceInput) Validate() error {
21326	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
21327	if s.Service == nil {
21328		invalidParams.Add(request.NewErrParamRequired("Service"))
21329	}
21330	if s.CapacityProviderStrategy != nil {
21331		for i, v := range s.CapacityProviderStrategy {
21332			if v == nil {
21333				continue
21334			}
21335			if err := v.Validate(); err != nil {
21336				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
21337			}
21338		}
21339	}
21340	if s.DeploymentConfiguration != nil {
21341		if err := s.DeploymentConfiguration.Validate(); err != nil {
21342			invalidParams.AddNested("DeploymentConfiguration", err.(request.ErrInvalidParams))
21343		}
21344	}
21345	if s.NetworkConfiguration != nil {
21346		if err := s.NetworkConfiguration.Validate(); err != nil {
21347			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
21348		}
21349	}
21350
21351	if invalidParams.Len() > 0 {
21352		return invalidParams
21353	}
21354	return nil
21355}
21356
21357// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
21358func (s *UpdateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *UpdateServiceInput {
21359	s.CapacityProviderStrategy = v
21360	return s
21361}
21362
21363// SetCluster sets the Cluster field's value.
21364func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
21365	s.Cluster = &v
21366	return s
21367}
21368
21369// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
21370func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
21371	s.DeploymentConfiguration = v
21372	return s
21373}
21374
21375// SetDesiredCount sets the DesiredCount field's value.
21376func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
21377	s.DesiredCount = &v
21378	return s
21379}
21380
21381// SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
21382func (s *UpdateServiceInput) SetEnableExecuteCommand(v bool) *UpdateServiceInput {
21383	s.EnableExecuteCommand = &v
21384	return s
21385}
21386
21387// SetForceNewDeployment sets the ForceNewDeployment field's value.
21388func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
21389	s.ForceNewDeployment = &v
21390	return s
21391}
21392
21393// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
21394func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
21395	s.HealthCheckGracePeriodSeconds = &v
21396	return s
21397}
21398
21399// SetNetworkConfiguration sets the NetworkConfiguration field's value.
21400func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
21401	s.NetworkConfiguration = v
21402	return s
21403}
21404
21405// SetPlacementConstraints sets the PlacementConstraints field's value.
21406func (s *UpdateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *UpdateServiceInput {
21407	s.PlacementConstraints = v
21408	return s
21409}
21410
21411// SetPlacementStrategy sets the PlacementStrategy field's value.
21412func (s *UpdateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *UpdateServiceInput {
21413	s.PlacementStrategy = v
21414	return s
21415}
21416
21417// SetPlatformVersion sets the PlatformVersion field's value.
21418func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
21419	s.PlatformVersion = &v
21420	return s
21421}
21422
21423// SetService sets the Service field's value.
21424func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
21425	s.Service = &v
21426	return s
21427}
21428
21429// SetTaskDefinition sets the TaskDefinition field's value.
21430func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
21431	s.TaskDefinition = &v
21432	return s
21433}
21434
21435type UpdateServiceOutput struct {
21436	_ struct{} `type:"structure"`
21437
21438	// The full description of your service following the update call.
21439	Service *Service `locationName:"service" type:"structure"`
21440}
21441
21442// String returns the string representation
21443func (s UpdateServiceOutput) String() string {
21444	return awsutil.Prettify(s)
21445}
21446
21447// GoString returns the string representation
21448func (s UpdateServiceOutput) GoString() string {
21449	return s.String()
21450}
21451
21452// SetService sets the Service field's value.
21453func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
21454	s.Service = v
21455	return s
21456}
21457
21458type UpdateServicePrimaryTaskSetInput struct {
21459	_ struct{} `type:"structure"`
21460
21461	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
21462	// the service that the task set exists in.
21463	//
21464	// Cluster is a required field
21465	Cluster *string `locationName:"cluster" type:"string" required:"true"`
21466
21467	// The short name or full Amazon Resource Name (ARN) of the task set to set
21468	// as the primary task set in the deployment.
21469	//
21470	// PrimaryTaskSet is a required field
21471	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
21472
21473	// The short name or full Amazon Resource Name (ARN) of the service that the
21474	// task set exists in.
21475	//
21476	// Service is a required field
21477	Service *string `locationName:"service" type:"string" required:"true"`
21478}
21479
21480// String returns the string representation
21481func (s UpdateServicePrimaryTaskSetInput) String() string {
21482	return awsutil.Prettify(s)
21483}
21484
21485// GoString returns the string representation
21486func (s UpdateServicePrimaryTaskSetInput) GoString() string {
21487	return s.String()
21488}
21489
21490// Validate inspects the fields of the type to determine if they are valid.
21491func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
21492	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
21493	if s.Cluster == nil {
21494		invalidParams.Add(request.NewErrParamRequired("Cluster"))
21495	}
21496	if s.PrimaryTaskSet == nil {
21497		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
21498	}
21499	if s.Service == nil {
21500		invalidParams.Add(request.NewErrParamRequired("Service"))
21501	}
21502
21503	if invalidParams.Len() > 0 {
21504		return invalidParams
21505	}
21506	return nil
21507}
21508
21509// SetCluster sets the Cluster field's value.
21510func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
21511	s.Cluster = &v
21512	return s
21513}
21514
21515// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
21516func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
21517	s.PrimaryTaskSet = &v
21518	return s
21519}
21520
21521// SetService sets the Service field's value.
21522func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
21523	s.Service = &v
21524	return s
21525}
21526
21527type UpdateServicePrimaryTaskSetOutput struct {
21528	_ struct{} `type:"structure"`
21529
21530	// Details about the task set.
21531	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
21532}
21533
21534// String returns the string representation
21535func (s UpdateServicePrimaryTaskSetOutput) String() string {
21536	return awsutil.Prettify(s)
21537}
21538
21539// GoString returns the string representation
21540func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
21541	return s.String()
21542}
21543
21544// SetTaskSet sets the TaskSet field's value.
21545func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
21546	s.TaskSet = v
21547	return s
21548}
21549
21550type UpdateTaskSetInput struct {
21551	_ struct{} `type:"structure"`
21552
21553	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
21554	// the service that the task set exists in.
21555	//
21556	// Cluster is a required field
21557	Cluster *string `locationName:"cluster" type:"string" required:"true"`
21558
21559	// A floating-point percentage of the desired number of tasks to place and keep
21560	// running in the task set.
21561	//
21562	// Scale is a required field
21563	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
21564
21565	// The short name or full Amazon Resource Name (ARN) of the service that the
21566	// task set exists in.
21567	//
21568	// Service is a required field
21569	Service *string `locationName:"service" type:"string" required:"true"`
21570
21571	// The short name or full Amazon Resource Name (ARN) of the task set to update.
21572	//
21573	// TaskSet is a required field
21574	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
21575}
21576
21577// String returns the string representation
21578func (s UpdateTaskSetInput) String() string {
21579	return awsutil.Prettify(s)
21580}
21581
21582// GoString returns the string representation
21583func (s UpdateTaskSetInput) GoString() string {
21584	return s.String()
21585}
21586
21587// Validate inspects the fields of the type to determine if they are valid.
21588func (s *UpdateTaskSetInput) Validate() error {
21589	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
21590	if s.Cluster == nil {
21591		invalidParams.Add(request.NewErrParamRequired("Cluster"))
21592	}
21593	if s.Scale == nil {
21594		invalidParams.Add(request.NewErrParamRequired("Scale"))
21595	}
21596	if s.Service == nil {
21597		invalidParams.Add(request.NewErrParamRequired("Service"))
21598	}
21599	if s.TaskSet == nil {
21600		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
21601	}
21602
21603	if invalidParams.Len() > 0 {
21604		return invalidParams
21605	}
21606	return nil
21607}
21608
21609// SetCluster sets the Cluster field's value.
21610func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
21611	s.Cluster = &v
21612	return s
21613}
21614
21615// SetScale sets the Scale field's value.
21616func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
21617	s.Scale = v
21618	return s
21619}
21620
21621// SetService sets the Service field's value.
21622func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
21623	s.Service = &v
21624	return s
21625}
21626
21627// SetTaskSet sets the TaskSet field's value.
21628func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
21629	s.TaskSet = &v
21630	return s
21631}
21632
21633type UpdateTaskSetOutput struct {
21634	_ struct{} `type:"structure"`
21635
21636	// Details about the task set.
21637	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
21638}
21639
21640// String returns the string representation
21641func (s UpdateTaskSetOutput) String() string {
21642	return awsutil.Prettify(s)
21643}
21644
21645// GoString returns the string representation
21646func (s UpdateTaskSetOutput) GoString() string {
21647	return s.String()
21648}
21649
21650// SetTaskSet sets the TaskSet field's value.
21651func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
21652	s.TaskSet = v
21653	return s
21654}
21655
21656// The Docker and Amazon ECS container agent version information about a container
21657// instance.
21658type VersionInfo struct {
21659	_ struct{} `type:"structure"`
21660
21661	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
21662	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
21663	AgentHash *string `locationName:"agentHash" type:"string"`
21664
21665	// The version number of the Amazon ECS container agent.
21666	AgentVersion *string `locationName:"agentVersion" type:"string"`
21667
21668	// The Docker version running on the container instance.
21669	DockerVersion *string `locationName:"dockerVersion" type:"string"`
21670}
21671
21672// String returns the string representation
21673func (s VersionInfo) String() string {
21674	return awsutil.Prettify(s)
21675}
21676
21677// GoString returns the string representation
21678func (s VersionInfo) GoString() string {
21679	return s.String()
21680}
21681
21682// SetAgentHash sets the AgentHash field's value.
21683func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
21684	s.AgentHash = &v
21685	return s
21686}
21687
21688// SetAgentVersion sets the AgentVersion field's value.
21689func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
21690	s.AgentVersion = &v
21691	return s
21692}
21693
21694// SetDockerVersion sets the DockerVersion field's value.
21695func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
21696	s.DockerVersion = &v
21697	return s
21698}
21699
21700// A data volume used in a task definition. For tasks that use the Amazon Elastic
21701// File System (Amazon EFS), specify an efsVolumeConfiguration. For Windows
21702// tasks that use Amazon FSx for Windows File Server file system, specify a
21703// fsxWindowsFileServerVolumeConfiguration. For tasks that use a Docker volume,
21704// specify a DockerVolumeConfiguration. For tasks that use a bind mount host
21705// volume, specify a host and optional sourcePath. For more information, see
21706// Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
21707type Volume struct {
21708	_ struct{} `type:"structure"`
21709
21710	// This parameter is specified when you are using Docker volumes.
21711	//
21712	// Windows containers only support the use of the local driver. To use bind
21713	// mounts, specify the host parameter instead.
21714	//
21715	// Docker volumes are not supported by tasks run on Fargate.
21716	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
21717
21718	// This parameter is specified when you are using an Amazon Elastic File System
21719	// file system for task storage.
21720	EfsVolumeConfiguration *EFSVolumeConfiguration `locationName:"efsVolumeConfiguration" type:"structure"`
21721
21722	// This parameter is specified when you are using Amazon FSx for Windows File
21723	// Server file system for task storage.
21724	FsxWindowsFileServerVolumeConfiguration *FSxWindowsFileServerVolumeConfiguration `locationName:"fsxWindowsFileServerVolumeConfiguration" type:"structure"`
21725
21726	// This parameter is specified when you are using bind mount host volumes. The
21727	// contents of the host parameter determine whether your bind mount host volume
21728	// persists on the host container instance and where it is stored. If the host
21729	// parameter is empty, then the Docker daemon assigns a host path for your data
21730	// volume. However, the data is not guaranteed to persist after the containers
21731	// associated with it stop running.
21732	//
21733	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
21734	// Windows containers cannot mount directories on a different drive, and mount
21735	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
21736	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
21737	Host *HostVolumeProperties `locationName:"host" type:"structure"`
21738
21739	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
21740	// underscores, and hyphens are allowed. This name is referenced in the sourceVolume
21741	// parameter of container definition mountPoints.
21742	Name *string `locationName:"name" type:"string"`
21743}
21744
21745// String returns the string representation
21746func (s Volume) String() string {
21747	return awsutil.Prettify(s)
21748}
21749
21750// GoString returns the string representation
21751func (s Volume) GoString() string {
21752	return s.String()
21753}
21754
21755// Validate inspects the fields of the type to determine if they are valid.
21756func (s *Volume) Validate() error {
21757	invalidParams := request.ErrInvalidParams{Context: "Volume"}
21758	if s.EfsVolumeConfiguration != nil {
21759		if err := s.EfsVolumeConfiguration.Validate(); err != nil {
21760			invalidParams.AddNested("EfsVolumeConfiguration", err.(request.ErrInvalidParams))
21761		}
21762	}
21763	if s.FsxWindowsFileServerVolumeConfiguration != nil {
21764		if err := s.FsxWindowsFileServerVolumeConfiguration.Validate(); err != nil {
21765			invalidParams.AddNested("FsxWindowsFileServerVolumeConfiguration", err.(request.ErrInvalidParams))
21766		}
21767	}
21768
21769	if invalidParams.Len() > 0 {
21770		return invalidParams
21771	}
21772	return nil
21773}
21774
21775// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
21776func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
21777	s.DockerVolumeConfiguration = v
21778	return s
21779}
21780
21781// SetEfsVolumeConfiguration sets the EfsVolumeConfiguration field's value.
21782func (s *Volume) SetEfsVolumeConfiguration(v *EFSVolumeConfiguration) *Volume {
21783	s.EfsVolumeConfiguration = v
21784	return s
21785}
21786
21787// SetFsxWindowsFileServerVolumeConfiguration sets the FsxWindowsFileServerVolumeConfiguration field's value.
21788func (s *Volume) SetFsxWindowsFileServerVolumeConfiguration(v *FSxWindowsFileServerVolumeConfiguration) *Volume {
21789	s.FsxWindowsFileServerVolumeConfiguration = v
21790	return s
21791}
21792
21793// SetHost sets the Host field's value.
21794func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
21795	s.Host = v
21796	return s
21797}
21798
21799// SetName sets the Name field's value.
21800func (s *Volume) SetName(v string) *Volume {
21801	s.Name = &v
21802	return s
21803}
21804
21805// Details on a data volume from another container in the same task definition.
21806type VolumeFrom struct {
21807	_ struct{} `type:"structure"`
21808
21809	// If this value is true, the container has read-only access to the volume.
21810	// If this value is false, then the container can write to the volume. The default
21811	// value is false.
21812	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
21813
21814	// The name of another container within the same task definition from which
21815	// to mount volumes.
21816	SourceContainer *string `locationName:"sourceContainer" type:"string"`
21817}
21818
21819// String returns the string representation
21820func (s VolumeFrom) String() string {
21821	return awsutil.Prettify(s)
21822}
21823
21824// GoString returns the string representation
21825func (s VolumeFrom) GoString() string {
21826	return s.String()
21827}
21828
21829// SetReadOnly sets the ReadOnly field's value.
21830func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
21831	s.ReadOnly = &v
21832	return s
21833}
21834
21835// SetSourceContainer sets the SourceContainer field's value.
21836func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
21837	s.SourceContainer = &v
21838	return s
21839}
21840
21841const (
21842	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
21843	AgentUpdateStatusPending = "PENDING"
21844
21845	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
21846	AgentUpdateStatusStaging = "STAGING"
21847
21848	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
21849	AgentUpdateStatusStaged = "STAGED"
21850
21851	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
21852	AgentUpdateStatusUpdating = "UPDATING"
21853
21854	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
21855	AgentUpdateStatusUpdated = "UPDATED"
21856
21857	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
21858	AgentUpdateStatusFailed = "FAILED"
21859)
21860
21861// AgentUpdateStatus_Values returns all elements of the AgentUpdateStatus enum
21862func AgentUpdateStatus_Values() []string {
21863	return []string{
21864		AgentUpdateStatusPending,
21865		AgentUpdateStatusStaging,
21866		AgentUpdateStatusStaged,
21867		AgentUpdateStatusUpdating,
21868		AgentUpdateStatusUpdated,
21869		AgentUpdateStatusFailed,
21870	}
21871}
21872
21873const (
21874	// AssignPublicIpEnabled is a AssignPublicIp enum value
21875	AssignPublicIpEnabled = "ENABLED"
21876
21877	// AssignPublicIpDisabled is a AssignPublicIp enum value
21878	AssignPublicIpDisabled = "DISABLED"
21879)
21880
21881// AssignPublicIp_Values returns all elements of the AssignPublicIp enum
21882func AssignPublicIp_Values() []string {
21883	return []string{
21884		AssignPublicIpEnabled,
21885		AssignPublicIpDisabled,
21886	}
21887}
21888
21889const (
21890	// CapacityProviderFieldTags is a CapacityProviderField enum value
21891	CapacityProviderFieldTags = "TAGS"
21892)
21893
21894// CapacityProviderField_Values returns all elements of the CapacityProviderField enum
21895func CapacityProviderField_Values() []string {
21896	return []string{
21897		CapacityProviderFieldTags,
21898	}
21899}
21900
21901const (
21902	// CapacityProviderStatusActive is a CapacityProviderStatus enum value
21903	CapacityProviderStatusActive = "ACTIVE"
21904
21905	// CapacityProviderStatusInactive is a CapacityProviderStatus enum value
21906	CapacityProviderStatusInactive = "INACTIVE"
21907)
21908
21909// CapacityProviderStatus_Values returns all elements of the CapacityProviderStatus enum
21910func CapacityProviderStatus_Values() []string {
21911	return []string{
21912		CapacityProviderStatusActive,
21913		CapacityProviderStatusInactive,
21914	}
21915}
21916
21917const (
21918	// CapacityProviderUpdateStatusDeleteInProgress is a CapacityProviderUpdateStatus enum value
21919	CapacityProviderUpdateStatusDeleteInProgress = "DELETE_IN_PROGRESS"
21920
21921	// CapacityProviderUpdateStatusDeleteComplete is a CapacityProviderUpdateStatus enum value
21922	CapacityProviderUpdateStatusDeleteComplete = "DELETE_COMPLETE"
21923
21924	// CapacityProviderUpdateStatusDeleteFailed is a CapacityProviderUpdateStatus enum value
21925	CapacityProviderUpdateStatusDeleteFailed = "DELETE_FAILED"
21926
21927	// CapacityProviderUpdateStatusUpdateInProgress is a CapacityProviderUpdateStatus enum value
21928	CapacityProviderUpdateStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
21929
21930	// CapacityProviderUpdateStatusUpdateComplete is a CapacityProviderUpdateStatus enum value
21931	CapacityProviderUpdateStatusUpdateComplete = "UPDATE_COMPLETE"
21932
21933	// CapacityProviderUpdateStatusUpdateFailed is a CapacityProviderUpdateStatus enum value
21934	CapacityProviderUpdateStatusUpdateFailed = "UPDATE_FAILED"
21935)
21936
21937// CapacityProviderUpdateStatus_Values returns all elements of the CapacityProviderUpdateStatus enum
21938func CapacityProviderUpdateStatus_Values() []string {
21939	return []string{
21940		CapacityProviderUpdateStatusDeleteInProgress,
21941		CapacityProviderUpdateStatusDeleteComplete,
21942		CapacityProviderUpdateStatusDeleteFailed,
21943		CapacityProviderUpdateStatusUpdateInProgress,
21944		CapacityProviderUpdateStatusUpdateComplete,
21945		CapacityProviderUpdateStatusUpdateFailed,
21946	}
21947}
21948
21949const (
21950	// ClusterFieldAttachments is a ClusterField enum value
21951	ClusterFieldAttachments = "ATTACHMENTS"
21952
21953	// ClusterFieldConfigurations is a ClusterField enum value
21954	ClusterFieldConfigurations = "CONFIGURATIONS"
21955
21956	// ClusterFieldSettings is a ClusterField enum value
21957	ClusterFieldSettings = "SETTINGS"
21958
21959	// ClusterFieldStatistics is a ClusterField enum value
21960	ClusterFieldStatistics = "STATISTICS"
21961
21962	// ClusterFieldTags is a ClusterField enum value
21963	ClusterFieldTags = "TAGS"
21964)
21965
21966// ClusterField_Values returns all elements of the ClusterField enum
21967func ClusterField_Values() []string {
21968	return []string{
21969		ClusterFieldAttachments,
21970		ClusterFieldConfigurations,
21971		ClusterFieldSettings,
21972		ClusterFieldStatistics,
21973		ClusterFieldTags,
21974	}
21975}
21976
21977const (
21978	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
21979	ClusterSettingNameContainerInsights = "containerInsights"
21980)
21981
21982// ClusterSettingName_Values returns all elements of the ClusterSettingName enum
21983func ClusterSettingName_Values() []string {
21984	return []string{
21985		ClusterSettingNameContainerInsights,
21986	}
21987}
21988
21989const (
21990	// CompatibilityEc2 is a Compatibility enum value
21991	CompatibilityEc2 = "EC2"
21992
21993	// CompatibilityFargate is a Compatibility enum value
21994	CompatibilityFargate = "FARGATE"
21995
21996	// CompatibilityExternal is a Compatibility enum value
21997	CompatibilityExternal = "EXTERNAL"
21998)
21999
22000// Compatibility_Values returns all elements of the Compatibility enum
22001func Compatibility_Values() []string {
22002	return []string{
22003		CompatibilityEc2,
22004		CompatibilityFargate,
22005		CompatibilityExternal,
22006	}
22007}
22008
22009const (
22010	// ConnectivityConnected is a Connectivity enum value
22011	ConnectivityConnected = "CONNECTED"
22012
22013	// ConnectivityDisconnected is a Connectivity enum value
22014	ConnectivityDisconnected = "DISCONNECTED"
22015)
22016
22017// Connectivity_Values returns all elements of the Connectivity enum
22018func Connectivity_Values() []string {
22019	return []string{
22020		ConnectivityConnected,
22021		ConnectivityDisconnected,
22022	}
22023}
22024
22025const (
22026	// ContainerConditionStart is a ContainerCondition enum value
22027	ContainerConditionStart = "START"
22028
22029	// ContainerConditionComplete is a ContainerCondition enum value
22030	ContainerConditionComplete = "COMPLETE"
22031
22032	// ContainerConditionSuccess is a ContainerCondition enum value
22033	ContainerConditionSuccess = "SUCCESS"
22034
22035	// ContainerConditionHealthy is a ContainerCondition enum value
22036	ContainerConditionHealthy = "HEALTHY"
22037)
22038
22039// ContainerCondition_Values returns all elements of the ContainerCondition enum
22040func ContainerCondition_Values() []string {
22041	return []string{
22042		ContainerConditionStart,
22043		ContainerConditionComplete,
22044		ContainerConditionSuccess,
22045		ContainerConditionHealthy,
22046	}
22047}
22048
22049const (
22050	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
22051	ContainerInstanceFieldTags = "TAGS"
22052)
22053
22054// ContainerInstanceField_Values returns all elements of the ContainerInstanceField enum
22055func ContainerInstanceField_Values() []string {
22056	return []string{
22057		ContainerInstanceFieldTags,
22058	}
22059}
22060
22061const (
22062	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
22063	ContainerInstanceStatusActive = "ACTIVE"
22064
22065	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
22066	ContainerInstanceStatusDraining = "DRAINING"
22067
22068	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
22069	ContainerInstanceStatusRegistering = "REGISTERING"
22070
22071	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
22072	ContainerInstanceStatusDeregistering = "DEREGISTERING"
22073
22074	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
22075	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
22076)
22077
22078// ContainerInstanceStatus_Values returns all elements of the ContainerInstanceStatus enum
22079func ContainerInstanceStatus_Values() []string {
22080	return []string{
22081		ContainerInstanceStatusActive,
22082		ContainerInstanceStatusDraining,
22083		ContainerInstanceStatusRegistering,
22084		ContainerInstanceStatusDeregistering,
22085		ContainerInstanceStatusRegistrationFailed,
22086	}
22087}
22088
22089const (
22090	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
22091	DeploymentControllerTypeEcs = "ECS"
22092
22093	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
22094	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
22095
22096	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
22097	DeploymentControllerTypeExternal = "EXTERNAL"
22098)
22099
22100// DeploymentControllerType_Values returns all elements of the DeploymentControllerType enum
22101func DeploymentControllerType_Values() []string {
22102	return []string{
22103		DeploymentControllerTypeEcs,
22104		DeploymentControllerTypeCodeDeploy,
22105		DeploymentControllerTypeExternal,
22106	}
22107}
22108
22109const (
22110	// DeploymentRolloutStateCompleted is a DeploymentRolloutState enum value
22111	DeploymentRolloutStateCompleted = "COMPLETED"
22112
22113	// DeploymentRolloutStateFailed is a DeploymentRolloutState enum value
22114	DeploymentRolloutStateFailed = "FAILED"
22115
22116	// DeploymentRolloutStateInProgress is a DeploymentRolloutState enum value
22117	DeploymentRolloutStateInProgress = "IN_PROGRESS"
22118)
22119
22120// DeploymentRolloutState_Values returns all elements of the DeploymentRolloutState enum
22121func DeploymentRolloutState_Values() []string {
22122	return []string{
22123		DeploymentRolloutStateCompleted,
22124		DeploymentRolloutStateFailed,
22125		DeploymentRolloutStateInProgress,
22126	}
22127}
22128
22129const (
22130	// DesiredStatusRunning is a DesiredStatus enum value
22131	DesiredStatusRunning = "RUNNING"
22132
22133	// DesiredStatusPending is a DesiredStatus enum value
22134	DesiredStatusPending = "PENDING"
22135
22136	// DesiredStatusStopped is a DesiredStatus enum value
22137	DesiredStatusStopped = "STOPPED"
22138)
22139
22140// DesiredStatus_Values returns all elements of the DesiredStatus enum
22141func DesiredStatus_Values() []string {
22142	return []string{
22143		DesiredStatusRunning,
22144		DesiredStatusPending,
22145		DesiredStatusStopped,
22146	}
22147}
22148
22149const (
22150	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
22151	DeviceCgroupPermissionRead = "read"
22152
22153	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
22154	DeviceCgroupPermissionWrite = "write"
22155
22156	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
22157	DeviceCgroupPermissionMknod = "mknod"
22158)
22159
22160// DeviceCgroupPermission_Values returns all elements of the DeviceCgroupPermission enum
22161func DeviceCgroupPermission_Values() []string {
22162	return []string{
22163		DeviceCgroupPermissionRead,
22164		DeviceCgroupPermissionWrite,
22165		DeviceCgroupPermissionMknod,
22166	}
22167}
22168
22169const (
22170	// EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value
22171	EFSAuthorizationConfigIAMEnabled = "ENABLED"
22172
22173	// EFSAuthorizationConfigIAMDisabled is a EFSAuthorizationConfigIAM enum value
22174	EFSAuthorizationConfigIAMDisabled = "DISABLED"
22175)
22176
22177// EFSAuthorizationConfigIAM_Values returns all elements of the EFSAuthorizationConfigIAM enum
22178func EFSAuthorizationConfigIAM_Values() []string {
22179	return []string{
22180		EFSAuthorizationConfigIAMEnabled,
22181		EFSAuthorizationConfigIAMDisabled,
22182	}
22183}
22184
22185const (
22186	// EFSTransitEncryptionEnabled is a EFSTransitEncryption enum value
22187	EFSTransitEncryptionEnabled = "ENABLED"
22188
22189	// EFSTransitEncryptionDisabled is a EFSTransitEncryption enum value
22190	EFSTransitEncryptionDisabled = "DISABLED"
22191)
22192
22193// EFSTransitEncryption_Values returns all elements of the EFSTransitEncryption enum
22194func EFSTransitEncryption_Values() []string {
22195	return []string{
22196		EFSTransitEncryptionEnabled,
22197		EFSTransitEncryptionDisabled,
22198	}
22199}
22200
22201const (
22202	// EnvironmentFileTypeS3 is a EnvironmentFileType enum value
22203	EnvironmentFileTypeS3 = "s3"
22204)
22205
22206// EnvironmentFileType_Values returns all elements of the EnvironmentFileType enum
22207func EnvironmentFileType_Values() []string {
22208	return []string{
22209		EnvironmentFileTypeS3,
22210	}
22211}
22212
22213const (
22214	// ExecuteCommandLoggingNone is a ExecuteCommandLogging enum value
22215	ExecuteCommandLoggingNone = "NONE"
22216
22217	// ExecuteCommandLoggingDefault is a ExecuteCommandLogging enum value
22218	ExecuteCommandLoggingDefault = "DEFAULT"
22219
22220	// ExecuteCommandLoggingOverride is a ExecuteCommandLogging enum value
22221	ExecuteCommandLoggingOverride = "OVERRIDE"
22222)
22223
22224// ExecuteCommandLogging_Values returns all elements of the ExecuteCommandLogging enum
22225func ExecuteCommandLogging_Values() []string {
22226	return []string{
22227		ExecuteCommandLoggingNone,
22228		ExecuteCommandLoggingDefault,
22229		ExecuteCommandLoggingOverride,
22230	}
22231}
22232
22233const (
22234	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
22235	FirelensConfigurationTypeFluentd = "fluentd"
22236
22237	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
22238	FirelensConfigurationTypeFluentbit = "fluentbit"
22239)
22240
22241// FirelensConfigurationType_Values returns all elements of the FirelensConfigurationType enum
22242func FirelensConfigurationType_Values() []string {
22243	return []string{
22244		FirelensConfigurationTypeFluentd,
22245		FirelensConfigurationTypeFluentbit,
22246	}
22247}
22248
22249const (
22250	// HealthStatusHealthy is a HealthStatus enum value
22251	HealthStatusHealthy = "HEALTHY"
22252
22253	// HealthStatusUnhealthy is a HealthStatus enum value
22254	HealthStatusUnhealthy = "UNHEALTHY"
22255
22256	// HealthStatusUnknown is a HealthStatus enum value
22257	HealthStatusUnknown = "UNKNOWN"
22258)
22259
22260// HealthStatus_Values returns all elements of the HealthStatus enum
22261func HealthStatus_Values() []string {
22262	return []string{
22263		HealthStatusHealthy,
22264		HealthStatusUnhealthy,
22265		HealthStatusUnknown,
22266	}
22267}
22268
22269const (
22270	// IpcModeHost is a IpcMode enum value
22271	IpcModeHost = "host"
22272
22273	// IpcModeTask is a IpcMode enum value
22274	IpcModeTask = "task"
22275
22276	// IpcModeNone is a IpcMode enum value
22277	IpcModeNone = "none"
22278)
22279
22280// IpcMode_Values returns all elements of the IpcMode enum
22281func IpcMode_Values() []string {
22282	return []string{
22283		IpcModeHost,
22284		IpcModeTask,
22285		IpcModeNone,
22286	}
22287}
22288
22289const (
22290	// LaunchTypeEc2 is a LaunchType enum value
22291	LaunchTypeEc2 = "EC2"
22292
22293	// LaunchTypeFargate is a LaunchType enum value
22294	LaunchTypeFargate = "FARGATE"
22295
22296	// LaunchTypeExternal is a LaunchType enum value
22297	LaunchTypeExternal = "EXTERNAL"
22298)
22299
22300// LaunchType_Values returns all elements of the LaunchType enum
22301func LaunchType_Values() []string {
22302	return []string{
22303		LaunchTypeEc2,
22304		LaunchTypeFargate,
22305		LaunchTypeExternal,
22306	}
22307}
22308
22309const (
22310	// LogDriverJsonFile is a LogDriver enum value
22311	LogDriverJsonFile = "json-file"
22312
22313	// LogDriverSyslog is a LogDriver enum value
22314	LogDriverSyslog = "syslog"
22315
22316	// LogDriverJournald is a LogDriver enum value
22317	LogDriverJournald = "journald"
22318
22319	// LogDriverGelf is a LogDriver enum value
22320	LogDriverGelf = "gelf"
22321
22322	// LogDriverFluentd is a LogDriver enum value
22323	LogDriverFluentd = "fluentd"
22324
22325	// LogDriverAwslogs is a LogDriver enum value
22326	LogDriverAwslogs = "awslogs"
22327
22328	// LogDriverSplunk is a LogDriver enum value
22329	LogDriverSplunk = "splunk"
22330
22331	// LogDriverAwsfirelens is a LogDriver enum value
22332	LogDriverAwsfirelens = "awsfirelens"
22333)
22334
22335// LogDriver_Values returns all elements of the LogDriver enum
22336func LogDriver_Values() []string {
22337	return []string{
22338		LogDriverJsonFile,
22339		LogDriverSyslog,
22340		LogDriverJournald,
22341		LogDriverGelf,
22342		LogDriverFluentd,
22343		LogDriverAwslogs,
22344		LogDriverSplunk,
22345		LogDriverAwsfirelens,
22346	}
22347}
22348
22349const (
22350	// ManagedAgentNameExecuteCommandAgent is a ManagedAgentName enum value
22351	ManagedAgentNameExecuteCommandAgent = "ExecuteCommandAgent"
22352)
22353
22354// ManagedAgentName_Values returns all elements of the ManagedAgentName enum
22355func ManagedAgentName_Values() []string {
22356	return []string{
22357		ManagedAgentNameExecuteCommandAgent,
22358	}
22359}
22360
22361const (
22362	// ManagedScalingStatusEnabled is a ManagedScalingStatus enum value
22363	ManagedScalingStatusEnabled = "ENABLED"
22364
22365	// ManagedScalingStatusDisabled is a ManagedScalingStatus enum value
22366	ManagedScalingStatusDisabled = "DISABLED"
22367)
22368
22369// ManagedScalingStatus_Values returns all elements of the ManagedScalingStatus enum
22370func ManagedScalingStatus_Values() []string {
22371	return []string{
22372		ManagedScalingStatusEnabled,
22373		ManagedScalingStatusDisabled,
22374	}
22375}
22376
22377const (
22378	// ManagedTerminationProtectionEnabled is a ManagedTerminationProtection enum value
22379	ManagedTerminationProtectionEnabled = "ENABLED"
22380
22381	// ManagedTerminationProtectionDisabled is a ManagedTerminationProtection enum value
22382	ManagedTerminationProtectionDisabled = "DISABLED"
22383)
22384
22385// ManagedTerminationProtection_Values returns all elements of the ManagedTerminationProtection enum
22386func ManagedTerminationProtection_Values() []string {
22387	return []string{
22388		ManagedTerminationProtectionEnabled,
22389		ManagedTerminationProtectionDisabled,
22390	}
22391}
22392
22393const (
22394	// NetworkModeBridge is a NetworkMode enum value
22395	NetworkModeBridge = "bridge"
22396
22397	// NetworkModeHost is a NetworkMode enum value
22398	NetworkModeHost = "host"
22399
22400	// NetworkModeAwsvpc is a NetworkMode enum value
22401	NetworkModeAwsvpc = "awsvpc"
22402
22403	// NetworkModeNone is a NetworkMode enum value
22404	NetworkModeNone = "none"
22405)
22406
22407// NetworkMode_Values returns all elements of the NetworkMode enum
22408func NetworkMode_Values() []string {
22409	return []string{
22410		NetworkModeBridge,
22411		NetworkModeHost,
22412		NetworkModeAwsvpc,
22413		NetworkModeNone,
22414	}
22415}
22416
22417const (
22418	// PidModeHost is a PidMode enum value
22419	PidModeHost = "host"
22420
22421	// PidModeTask is a PidMode enum value
22422	PidModeTask = "task"
22423)
22424
22425// PidMode_Values returns all elements of the PidMode enum
22426func PidMode_Values() []string {
22427	return []string{
22428		PidModeHost,
22429		PidModeTask,
22430	}
22431}
22432
22433const (
22434	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
22435	PlacementConstraintTypeDistinctInstance = "distinctInstance"
22436
22437	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
22438	PlacementConstraintTypeMemberOf = "memberOf"
22439)
22440
22441// PlacementConstraintType_Values returns all elements of the PlacementConstraintType enum
22442func PlacementConstraintType_Values() []string {
22443	return []string{
22444		PlacementConstraintTypeDistinctInstance,
22445		PlacementConstraintTypeMemberOf,
22446	}
22447}
22448
22449const (
22450	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
22451	PlacementStrategyTypeRandom = "random"
22452
22453	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
22454	PlacementStrategyTypeSpread = "spread"
22455
22456	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
22457	PlacementStrategyTypeBinpack = "binpack"
22458)
22459
22460// PlacementStrategyType_Values returns all elements of the PlacementStrategyType enum
22461func PlacementStrategyType_Values() []string {
22462	return []string{
22463		PlacementStrategyTypeRandom,
22464		PlacementStrategyTypeSpread,
22465		PlacementStrategyTypeBinpack,
22466	}
22467}
22468
22469const (
22470	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
22471	PlatformDeviceTypeGpu = "GPU"
22472)
22473
22474// PlatformDeviceType_Values returns all elements of the PlatformDeviceType enum
22475func PlatformDeviceType_Values() []string {
22476	return []string{
22477		PlatformDeviceTypeGpu,
22478	}
22479}
22480
22481const (
22482	// PropagateTagsTaskDefinition is a PropagateTags enum value
22483	PropagateTagsTaskDefinition = "TASK_DEFINITION"
22484
22485	// PropagateTagsService is a PropagateTags enum value
22486	PropagateTagsService = "SERVICE"
22487)
22488
22489// PropagateTags_Values returns all elements of the PropagateTags enum
22490func PropagateTags_Values() []string {
22491	return []string{
22492		PropagateTagsTaskDefinition,
22493		PropagateTagsService,
22494	}
22495}
22496
22497const (
22498	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
22499	ProxyConfigurationTypeAppmesh = "APPMESH"
22500)
22501
22502// ProxyConfigurationType_Values returns all elements of the ProxyConfigurationType enum
22503func ProxyConfigurationType_Values() []string {
22504	return []string{
22505		ProxyConfigurationTypeAppmesh,
22506	}
22507}
22508
22509const (
22510	// ResourceTypeGpu is a ResourceType enum value
22511	ResourceTypeGpu = "GPU"
22512
22513	// ResourceTypeInferenceAccelerator is a ResourceType enum value
22514	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
22515)
22516
22517// ResourceType_Values returns all elements of the ResourceType enum
22518func ResourceType_Values() []string {
22519	return []string{
22520		ResourceTypeGpu,
22521		ResourceTypeInferenceAccelerator,
22522	}
22523}
22524
22525const (
22526	// ScaleUnitPercent is a ScaleUnit enum value
22527	ScaleUnitPercent = "PERCENT"
22528)
22529
22530// ScaleUnit_Values returns all elements of the ScaleUnit enum
22531func ScaleUnit_Values() []string {
22532	return []string{
22533		ScaleUnitPercent,
22534	}
22535}
22536
22537const (
22538	// SchedulingStrategyReplica is a SchedulingStrategy enum value
22539	SchedulingStrategyReplica = "REPLICA"
22540
22541	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
22542	SchedulingStrategyDaemon = "DAEMON"
22543)
22544
22545// SchedulingStrategy_Values returns all elements of the SchedulingStrategy enum
22546func SchedulingStrategy_Values() []string {
22547	return []string{
22548		SchedulingStrategyReplica,
22549		SchedulingStrategyDaemon,
22550	}
22551}
22552
22553const (
22554	// ScopeTask is a Scope enum value
22555	ScopeTask = "task"
22556
22557	// ScopeShared is a Scope enum value
22558	ScopeShared = "shared"
22559)
22560
22561// Scope_Values returns all elements of the Scope enum
22562func Scope_Values() []string {
22563	return []string{
22564		ScopeTask,
22565		ScopeShared,
22566	}
22567}
22568
22569const (
22570	// ServiceFieldTags is a ServiceField enum value
22571	ServiceFieldTags = "TAGS"
22572)
22573
22574// ServiceField_Values returns all elements of the ServiceField enum
22575func ServiceField_Values() []string {
22576	return []string{
22577		ServiceFieldTags,
22578	}
22579}
22580
22581const (
22582	// SettingNameServiceLongArnFormat is a SettingName enum value
22583	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
22584
22585	// SettingNameTaskLongArnFormat is a SettingName enum value
22586	SettingNameTaskLongArnFormat = "taskLongArnFormat"
22587
22588	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
22589	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
22590
22591	// SettingNameAwsvpcTrunking is a SettingName enum value
22592	SettingNameAwsvpcTrunking = "awsvpcTrunking"
22593
22594	// SettingNameContainerInsights is a SettingName enum value
22595	SettingNameContainerInsights = "containerInsights"
22596)
22597
22598// SettingName_Values returns all elements of the SettingName enum
22599func SettingName_Values() []string {
22600	return []string{
22601		SettingNameServiceLongArnFormat,
22602		SettingNameTaskLongArnFormat,
22603		SettingNameContainerInstanceLongArnFormat,
22604		SettingNameAwsvpcTrunking,
22605		SettingNameContainerInsights,
22606	}
22607}
22608
22609const (
22610	// SortOrderAsc is a SortOrder enum value
22611	SortOrderAsc = "ASC"
22612
22613	// SortOrderDesc is a SortOrder enum value
22614	SortOrderDesc = "DESC"
22615)
22616
22617// SortOrder_Values returns all elements of the SortOrder enum
22618func SortOrder_Values() []string {
22619	return []string{
22620		SortOrderAsc,
22621		SortOrderDesc,
22622	}
22623}
22624
22625const (
22626	// StabilityStatusSteadyState is a StabilityStatus enum value
22627	StabilityStatusSteadyState = "STEADY_STATE"
22628
22629	// StabilityStatusStabilizing is a StabilityStatus enum value
22630	StabilityStatusStabilizing = "STABILIZING"
22631)
22632
22633// StabilityStatus_Values returns all elements of the StabilityStatus enum
22634func StabilityStatus_Values() []string {
22635	return []string{
22636		StabilityStatusSteadyState,
22637		StabilityStatusStabilizing,
22638	}
22639}
22640
22641const (
22642	// TargetTypeContainerInstance is a TargetType enum value
22643	TargetTypeContainerInstance = "container-instance"
22644)
22645
22646// TargetType_Values returns all elements of the TargetType enum
22647func TargetType_Values() []string {
22648	return []string{
22649		TargetTypeContainerInstance,
22650	}
22651}
22652
22653const (
22654	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
22655	TaskDefinitionFamilyStatusActive = "ACTIVE"
22656
22657	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
22658	TaskDefinitionFamilyStatusInactive = "INACTIVE"
22659
22660	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
22661	TaskDefinitionFamilyStatusAll = "ALL"
22662)
22663
22664// TaskDefinitionFamilyStatus_Values returns all elements of the TaskDefinitionFamilyStatus enum
22665func TaskDefinitionFamilyStatus_Values() []string {
22666	return []string{
22667		TaskDefinitionFamilyStatusActive,
22668		TaskDefinitionFamilyStatusInactive,
22669		TaskDefinitionFamilyStatusAll,
22670	}
22671}
22672
22673const (
22674	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
22675	TaskDefinitionFieldTags = "TAGS"
22676)
22677
22678// TaskDefinitionField_Values returns all elements of the TaskDefinitionField enum
22679func TaskDefinitionField_Values() []string {
22680	return []string{
22681		TaskDefinitionFieldTags,
22682	}
22683}
22684
22685const (
22686	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
22687	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
22688)
22689
22690// TaskDefinitionPlacementConstraintType_Values returns all elements of the TaskDefinitionPlacementConstraintType enum
22691func TaskDefinitionPlacementConstraintType_Values() []string {
22692	return []string{
22693		TaskDefinitionPlacementConstraintTypeMemberOf,
22694	}
22695}
22696
22697const (
22698	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
22699	TaskDefinitionStatusActive = "ACTIVE"
22700
22701	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
22702	TaskDefinitionStatusInactive = "INACTIVE"
22703)
22704
22705// TaskDefinitionStatus_Values returns all elements of the TaskDefinitionStatus enum
22706func TaskDefinitionStatus_Values() []string {
22707	return []string{
22708		TaskDefinitionStatusActive,
22709		TaskDefinitionStatusInactive,
22710	}
22711}
22712
22713const (
22714	// TaskFieldTags is a TaskField enum value
22715	TaskFieldTags = "TAGS"
22716)
22717
22718// TaskField_Values returns all elements of the TaskField enum
22719func TaskField_Values() []string {
22720	return []string{
22721		TaskFieldTags,
22722	}
22723}
22724
22725const (
22726	// TaskSetFieldTags is a TaskSetField enum value
22727	TaskSetFieldTags = "TAGS"
22728)
22729
22730// TaskSetField_Values returns all elements of the TaskSetField enum
22731func TaskSetField_Values() []string {
22732	return []string{
22733		TaskSetFieldTags,
22734	}
22735}
22736
22737const (
22738	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
22739	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
22740
22741	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
22742	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
22743
22744	// TaskStopCodeUserInitiated is a TaskStopCode enum value
22745	TaskStopCodeUserInitiated = "UserInitiated"
22746)
22747
22748// TaskStopCode_Values returns all elements of the TaskStopCode enum
22749func TaskStopCode_Values() []string {
22750	return []string{
22751		TaskStopCodeTaskFailedToStart,
22752		TaskStopCodeEssentialContainerExited,
22753		TaskStopCodeUserInitiated,
22754	}
22755}
22756
22757const (
22758	// TransportProtocolTcp is a TransportProtocol enum value
22759	TransportProtocolTcp = "tcp"
22760
22761	// TransportProtocolUdp is a TransportProtocol enum value
22762	TransportProtocolUdp = "udp"
22763)
22764
22765// TransportProtocol_Values returns all elements of the TransportProtocol enum
22766func TransportProtocol_Values() []string {
22767	return []string{
22768		TransportProtocolTcp,
22769		TransportProtocolUdp,
22770	}
22771}
22772
22773const (
22774	// UlimitNameCore is a UlimitName enum value
22775	UlimitNameCore = "core"
22776
22777	// UlimitNameCpu is a UlimitName enum value
22778	UlimitNameCpu = "cpu"
22779
22780	// UlimitNameData is a UlimitName enum value
22781	UlimitNameData = "data"
22782
22783	// UlimitNameFsize is a UlimitName enum value
22784	UlimitNameFsize = "fsize"
22785
22786	// UlimitNameLocks is a UlimitName enum value
22787	UlimitNameLocks = "locks"
22788
22789	// UlimitNameMemlock is a UlimitName enum value
22790	UlimitNameMemlock = "memlock"
22791
22792	// UlimitNameMsgqueue is a UlimitName enum value
22793	UlimitNameMsgqueue = "msgqueue"
22794
22795	// UlimitNameNice is a UlimitName enum value
22796	UlimitNameNice = "nice"
22797
22798	// UlimitNameNofile is a UlimitName enum value
22799	UlimitNameNofile = "nofile"
22800
22801	// UlimitNameNproc is a UlimitName enum value
22802	UlimitNameNproc = "nproc"
22803
22804	// UlimitNameRss is a UlimitName enum value
22805	UlimitNameRss = "rss"
22806
22807	// UlimitNameRtprio is a UlimitName enum value
22808	UlimitNameRtprio = "rtprio"
22809
22810	// UlimitNameRttime is a UlimitName enum value
22811	UlimitNameRttime = "rttime"
22812
22813	// UlimitNameSigpending is a UlimitName enum value
22814	UlimitNameSigpending = "sigpending"
22815
22816	// UlimitNameStack is a UlimitName enum value
22817	UlimitNameStack = "stack"
22818)
22819
22820// UlimitName_Values returns all elements of the UlimitName enum
22821func UlimitName_Values() []string {
22822	return []string{
22823		UlimitNameCore,
22824		UlimitNameCpu,
22825		UlimitNameData,
22826		UlimitNameFsize,
22827		UlimitNameLocks,
22828		UlimitNameMemlock,
22829		UlimitNameMsgqueue,
22830		UlimitNameNice,
22831		UlimitNameNofile,
22832		UlimitNameNproc,
22833		UlimitNameRss,
22834		UlimitNameRtprio,
22835		UlimitNameRttime,
22836		UlimitNameSigpending,
22837		UlimitNameStack,
22838	}
22839}
22840