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 AWS Fargate use the FARGATE and FARGATE_SPOT capacity providers
66// which are already created and available to all accounts in Regions supported
67// by AWS 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 AWS services can be managed on your behalf. However, if the IAM
172// user that makes the call does not have permissions to create the service-linked
173// role, it is not created. For more information, see Using Service-Linked Roles
174// 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 Amazon Elastic Container Service container instances. Returns metadata
1595// about registered and remaining resources on each container 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 opListAccountSettings = "ListAccountSettings"
2118
2119// ListAccountSettingsRequest generates a "aws/request.Request" representing the
2120// client's request for the ListAccountSettings 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 ListAccountSettings for more information on using the ListAccountSettings
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 ListAccountSettingsRequest method.
2135//    req, resp := client.ListAccountSettingsRequest(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/ListAccountSettings
2143func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
2144	op := &request.Operation{
2145		Name:       opListAccountSettings,
2146		HTTPMethod: "POST",
2147		HTTPPath:   "/",
2148		Paginator: &request.Paginator{
2149			InputTokens:     []string{"nextToken"},
2150			OutputTokens:    []string{"nextToken"},
2151			LimitToken:      "maxResults",
2152			TruncationToken: "",
2153		},
2154	}
2155
2156	if input == nil {
2157		input = &ListAccountSettingsInput{}
2158	}
2159
2160	output = &ListAccountSettingsOutput{}
2161	req = c.newRequest(op, input, output)
2162	return
2163}
2164
2165// ListAccountSettings API operation for Amazon EC2 Container Service.
2166//
2167// Lists the account settings for a specified principal.
2168//
2169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2170// with awserr.Error's Code and Message methods to get detailed information about
2171// the error.
2172//
2173// See the AWS API reference guide for Amazon EC2 Container Service's
2174// API operation ListAccountSettings for usage and error information.
2175//
2176// Returned Error Types:
2177//   * ServerException
2178//   These errors are usually caused by a server issue.
2179//
2180//   * ClientException
2181//   These errors are usually caused by a client action, such as using an action
2182//   or resource on behalf of a user that doesn't have permissions to use the
2183//   action or resource, or specifying an identifier that is not valid.
2184//
2185//   * InvalidParameterException
2186//   The specified parameter is invalid. Review the available parameters for the
2187//   API request.
2188//
2189// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2190func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
2191	req, out := c.ListAccountSettingsRequest(input)
2192	return out, req.Send()
2193}
2194
2195// ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
2196// the ability to pass a context and additional request options.
2197//
2198// See ListAccountSettings for details on how to use this API operation.
2199//
2200// The context must be non-nil and will be used for request cancellation. If
2201// the context is nil a panic will occur. In the future the SDK may create
2202// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2203// for more information on using Contexts.
2204func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
2205	req, out := c.ListAccountSettingsRequest(input)
2206	req.SetContext(ctx)
2207	req.ApplyOptions(opts...)
2208	return out, req.Send()
2209}
2210
2211// ListAccountSettingsPages iterates over the pages of a ListAccountSettings operation,
2212// calling the "fn" function with the response data for each page. To stop
2213// iterating, return false from the fn function.
2214//
2215// See ListAccountSettings method for more information on how to use this operation.
2216//
2217// Note: This operation can generate multiple requests to a service.
2218//
2219//    // Example iterating over at most 3 pages of a ListAccountSettings operation.
2220//    pageNum := 0
2221//    err := client.ListAccountSettingsPages(params,
2222//        func(page *ecs.ListAccountSettingsOutput, lastPage bool) bool {
2223//            pageNum++
2224//            fmt.Println(page)
2225//            return pageNum <= 3
2226//        })
2227//
2228func (c *ECS) ListAccountSettingsPages(input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool) error {
2229	return c.ListAccountSettingsPagesWithContext(aws.BackgroundContext(), input, fn)
2230}
2231
2232// ListAccountSettingsPagesWithContext same as ListAccountSettingsPages except
2233// it takes a Context and allows setting request options on the pages.
2234//
2235// The context must be non-nil and will be used for request cancellation. If
2236// the context is nil a panic will occur. In the future the SDK may create
2237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2238// for more information on using Contexts.
2239func (c *ECS) ListAccountSettingsPagesWithContext(ctx aws.Context, input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool, opts ...request.Option) error {
2240	p := request.Pagination{
2241		NewRequest: func() (*request.Request, error) {
2242			var inCpy *ListAccountSettingsInput
2243			if input != nil {
2244				tmp := *input
2245				inCpy = &tmp
2246			}
2247			req, _ := c.ListAccountSettingsRequest(inCpy)
2248			req.SetContext(ctx)
2249			req.ApplyOptions(opts...)
2250			return req, nil
2251		},
2252	}
2253
2254	for p.Next() {
2255		if !fn(p.Page().(*ListAccountSettingsOutput), !p.HasNextPage()) {
2256			break
2257		}
2258	}
2259
2260	return p.Err()
2261}
2262
2263const opListAttributes = "ListAttributes"
2264
2265// ListAttributesRequest generates a "aws/request.Request" representing the
2266// client's request for the ListAttributes operation. The "output" return
2267// value will be populated with the request's response once the request completes
2268// successfully.
2269//
2270// Use "Send" method on the returned Request to send the API call to the service.
2271// the "output" return value is not valid until after Send returns without error.
2272//
2273// See ListAttributes for more information on using the ListAttributes
2274// API call, and error handling.
2275//
2276// This method is useful when you want to inject custom logic or configuration
2277// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2278//
2279//
2280//    // Example sending a request using the ListAttributesRequest method.
2281//    req, resp := client.ListAttributesRequest(params)
2282//
2283//    err := req.Send()
2284//    if err == nil { // resp is now filled
2285//        fmt.Println(resp)
2286//    }
2287//
2288// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2289func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
2290	op := &request.Operation{
2291		Name:       opListAttributes,
2292		HTTPMethod: "POST",
2293		HTTPPath:   "/",
2294		Paginator: &request.Paginator{
2295			InputTokens:     []string{"nextToken"},
2296			OutputTokens:    []string{"nextToken"},
2297			LimitToken:      "maxResults",
2298			TruncationToken: "",
2299		},
2300	}
2301
2302	if input == nil {
2303		input = &ListAttributesInput{}
2304	}
2305
2306	output = &ListAttributesOutput{}
2307	req = c.newRequest(op, input, output)
2308	return
2309}
2310
2311// ListAttributes API operation for Amazon EC2 Container Service.
2312//
2313// Lists the attributes for Amazon ECS resources within a specified target type
2314// and cluster. When you specify a target type and cluster, ListAttributes returns
2315// a list of attribute objects, one for each attribute on each resource. You
2316// can filter the list of results to a single attribute name to only return
2317// results that have that name. You can also filter the results by attribute
2318// name and value, for example, to see which container instances in a cluster
2319// are running a Linux AMI (ecs.os-type=linux).
2320//
2321// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2322// with awserr.Error's Code and Message methods to get detailed information about
2323// the error.
2324//
2325// See the AWS API reference guide for Amazon EC2 Container Service's
2326// API operation ListAttributes for usage and error information.
2327//
2328// Returned Error Types:
2329//   * ClusterNotFoundException
2330//   The specified cluster could not be found. You can view your available clusters
2331//   with ListClusters. Amazon ECS clusters are Region-specific.
2332//
2333//   * InvalidParameterException
2334//   The specified parameter is invalid. Review the available parameters for the
2335//   API request.
2336//
2337// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2338func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
2339	req, out := c.ListAttributesRequest(input)
2340	return out, req.Send()
2341}
2342
2343// ListAttributesWithContext is the same as ListAttributes with the addition of
2344// the ability to pass a context and additional request options.
2345//
2346// See ListAttributes for details on how to use this API operation.
2347//
2348// The context must be non-nil and will be used for request cancellation. If
2349// the context is nil a panic will occur. In the future the SDK may create
2350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2351// for more information on using Contexts.
2352func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
2353	req, out := c.ListAttributesRequest(input)
2354	req.SetContext(ctx)
2355	req.ApplyOptions(opts...)
2356	return out, req.Send()
2357}
2358
2359// ListAttributesPages iterates over the pages of a ListAttributes operation,
2360// calling the "fn" function with the response data for each page. To stop
2361// iterating, return false from the fn function.
2362//
2363// See ListAttributes method for more information on how to use this operation.
2364//
2365// Note: This operation can generate multiple requests to a service.
2366//
2367//    // Example iterating over at most 3 pages of a ListAttributes operation.
2368//    pageNum := 0
2369//    err := client.ListAttributesPages(params,
2370//        func(page *ecs.ListAttributesOutput, lastPage bool) bool {
2371//            pageNum++
2372//            fmt.Println(page)
2373//            return pageNum <= 3
2374//        })
2375//
2376func (c *ECS) ListAttributesPages(input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool) error {
2377	return c.ListAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
2378}
2379
2380// ListAttributesPagesWithContext same as ListAttributesPages except
2381// it takes a Context and allows setting request options on the pages.
2382//
2383// The context must be non-nil and will be used for request cancellation. If
2384// the context is nil a panic will occur. In the future the SDK may create
2385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2386// for more information on using Contexts.
2387func (c *ECS) ListAttributesPagesWithContext(ctx aws.Context, input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool, opts ...request.Option) error {
2388	p := request.Pagination{
2389		NewRequest: func() (*request.Request, error) {
2390			var inCpy *ListAttributesInput
2391			if input != nil {
2392				tmp := *input
2393				inCpy = &tmp
2394			}
2395			req, _ := c.ListAttributesRequest(inCpy)
2396			req.SetContext(ctx)
2397			req.ApplyOptions(opts...)
2398			return req, nil
2399		},
2400	}
2401
2402	for p.Next() {
2403		if !fn(p.Page().(*ListAttributesOutput), !p.HasNextPage()) {
2404			break
2405		}
2406	}
2407
2408	return p.Err()
2409}
2410
2411const opListClusters = "ListClusters"
2412
2413// ListClustersRequest generates a "aws/request.Request" representing the
2414// client's request for the ListClusters operation. The "output" return
2415// value will be populated with the request's response once the request completes
2416// successfully.
2417//
2418// Use "Send" method on the returned Request to send the API call to the service.
2419// the "output" return value is not valid until after Send returns without error.
2420//
2421// See ListClusters for more information on using the ListClusters
2422// API call, and error handling.
2423//
2424// This method is useful when you want to inject custom logic or configuration
2425// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2426//
2427//
2428//    // Example sending a request using the ListClustersRequest method.
2429//    req, resp := client.ListClustersRequest(params)
2430//
2431//    err := req.Send()
2432//    if err == nil { // resp is now filled
2433//        fmt.Println(resp)
2434//    }
2435//
2436// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2437func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2438	op := &request.Operation{
2439		Name:       opListClusters,
2440		HTTPMethod: "POST",
2441		HTTPPath:   "/",
2442		Paginator: &request.Paginator{
2443			InputTokens:     []string{"nextToken"},
2444			OutputTokens:    []string{"nextToken"},
2445			LimitToken:      "maxResults",
2446			TruncationToken: "",
2447		},
2448	}
2449
2450	if input == nil {
2451		input = &ListClustersInput{}
2452	}
2453
2454	output = &ListClustersOutput{}
2455	req = c.newRequest(op, input, output)
2456	return
2457}
2458
2459// ListClusters API operation for Amazon EC2 Container Service.
2460//
2461// Returns a list of existing clusters.
2462//
2463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2464// with awserr.Error's Code and Message methods to get detailed information about
2465// the error.
2466//
2467// See the AWS API reference guide for Amazon EC2 Container Service's
2468// API operation ListClusters for usage and error information.
2469//
2470// Returned Error Types:
2471//   * ServerException
2472//   These errors are usually caused by a server issue.
2473//
2474//   * ClientException
2475//   These errors are usually caused by a client action, such as using an action
2476//   or resource on behalf of a user that doesn't have permissions to use the
2477//   action or resource, or specifying an identifier that is not valid.
2478//
2479//   * InvalidParameterException
2480//   The specified parameter is invalid. Review the available parameters for the
2481//   API request.
2482//
2483// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2484func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2485	req, out := c.ListClustersRequest(input)
2486	return out, req.Send()
2487}
2488
2489// ListClustersWithContext is the same as ListClusters with the addition of
2490// the ability to pass a context and additional request options.
2491//
2492// See ListClusters for details on how to use this API operation.
2493//
2494// The context must be non-nil and will be used for request cancellation. If
2495// the context is nil a panic will occur. In the future the SDK may create
2496// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2497// for more information on using Contexts.
2498func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2499	req, out := c.ListClustersRequest(input)
2500	req.SetContext(ctx)
2501	req.ApplyOptions(opts...)
2502	return out, req.Send()
2503}
2504
2505// ListClustersPages iterates over the pages of a ListClusters operation,
2506// calling the "fn" function with the response data for each page. To stop
2507// iterating, return false from the fn function.
2508//
2509// See ListClusters method for more information on how to use this operation.
2510//
2511// Note: This operation can generate multiple requests to a service.
2512//
2513//    // Example iterating over at most 3 pages of a ListClusters operation.
2514//    pageNum := 0
2515//    err := client.ListClustersPages(params,
2516//        func(page *ecs.ListClustersOutput, lastPage bool) bool {
2517//            pageNum++
2518//            fmt.Println(page)
2519//            return pageNum <= 3
2520//        })
2521//
2522func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2523	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2524}
2525
2526// ListClustersPagesWithContext same as ListClustersPages except
2527// it takes a Context and allows setting request options on the pages.
2528//
2529// The context must be non-nil and will be used for request cancellation. If
2530// the context is nil a panic will occur. In the future the SDK may create
2531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2532// for more information on using Contexts.
2533func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2534	p := request.Pagination{
2535		NewRequest: func() (*request.Request, error) {
2536			var inCpy *ListClustersInput
2537			if input != nil {
2538				tmp := *input
2539				inCpy = &tmp
2540			}
2541			req, _ := c.ListClustersRequest(inCpy)
2542			req.SetContext(ctx)
2543			req.ApplyOptions(opts...)
2544			return req, nil
2545		},
2546	}
2547
2548	for p.Next() {
2549		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2550			break
2551		}
2552	}
2553
2554	return p.Err()
2555}
2556
2557const opListContainerInstances = "ListContainerInstances"
2558
2559// ListContainerInstancesRequest generates a "aws/request.Request" representing the
2560// client's request for the ListContainerInstances operation. The "output" return
2561// value will be populated with the request's response once the request completes
2562// successfully.
2563//
2564// Use "Send" method on the returned Request to send the API call to the service.
2565// the "output" return value is not valid until after Send returns without error.
2566//
2567// See ListContainerInstances for more information on using the ListContainerInstances
2568// API call, and error handling.
2569//
2570// This method is useful when you want to inject custom logic or configuration
2571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2572//
2573//
2574//    // Example sending a request using the ListContainerInstancesRequest method.
2575//    req, resp := client.ListContainerInstancesRequest(params)
2576//
2577//    err := req.Send()
2578//    if err == nil { // resp is now filled
2579//        fmt.Println(resp)
2580//    }
2581//
2582// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2583func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
2584	op := &request.Operation{
2585		Name:       opListContainerInstances,
2586		HTTPMethod: "POST",
2587		HTTPPath:   "/",
2588		Paginator: &request.Paginator{
2589			InputTokens:     []string{"nextToken"},
2590			OutputTokens:    []string{"nextToken"},
2591			LimitToken:      "maxResults",
2592			TruncationToken: "",
2593		},
2594	}
2595
2596	if input == nil {
2597		input = &ListContainerInstancesInput{}
2598	}
2599
2600	output = &ListContainerInstancesOutput{}
2601	req = c.newRequest(op, input, output)
2602	return
2603}
2604
2605// ListContainerInstances API operation for Amazon EC2 Container Service.
2606//
2607// Returns a list of container instances in a specified cluster. You can filter
2608// the results of a ListContainerInstances operation with cluster query language
2609// statements inside the filter parameter. For more information, see Cluster
2610// Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
2611// in the Amazon Elastic Container Service Developer Guide.
2612//
2613// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2614// with awserr.Error's Code and Message methods to get detailed information about
2615// the error.
2616//
2617// See the AWS API reference guide for Amazon EC2 Container Service's
2618// API operation ListContainerInstances for usage and error information.
2619//
2620// Returned Error Types:
2621//   * ServerException
2622//   These errors are usually caused by a server issue.
2623//
2624//   * ClientException
2625//   These errors are usually caused by a client action, such as using an action
2626//   or resource on behalf of a user that doesn't have permissions to use the
2627//   action or resource, or specifying an identifier that is not valid.
2628//
2629//   * InvalidParameterException
2630//   The specified parameter is invalid. Review the available parameters for the
2631//   API request.
2632//
2633//   * ClusterNotFoundException
2634//   The specified cluster could not be found. You can view your available clusters
2635//   with ListClusters. Amazon ECS clusters are Region-specific.
2636//
2637// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2638func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
2639	req, out := c.ListContainerInstancesRequest(input)
2640	return out, req.Send()
2641}
2642
2643// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
2644// the ability to pass a context and additional request options.
2645//
2646// See ListContainerInstances for details on how to use this API operation.
2647//
2648// The context must be non-nil and will be used for request cancellation. If
2649// the context is nil a panic will occur. In the future the SDK may create
2650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2651// for more information on using Contexts.
2652func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
2653	req, out := c.ListContainerInstancesRequest(input)
2654	req.SetContext(ctx)
2655	req.ApplyOptions(opts...)
2656	return out, req.Send()
2657}
2658
2659// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
2660// calling the "fn" function with the response data for each page. To stop
2661// iterating, return false from the fn function.
2662//
2663// See ListContainerInstances method for more information on how to use this operation.
2664//
2665// Note: This operation can generate multiple requests to a service.
2666//
2667//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
2668//    pageNum := 0
2669//    err := client.ListContainerInstancesPages(params,
2670//        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
2671//            pageNum++
2672//            fmt.Println(page)
2673//            return pageNum <= 3
2674//        })
2675//
2676func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
2677	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2678}
2679
2680// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
2681// it takes a Context and allows setting request options on the pages.
2682//
2683// The context must be non-nil and will be used for request cancellation. If
2684// the context is nil a panic will occur. In the future the SDK may create
2685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2686// for more information on using Contexts.
2687func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
2688	p := request.Pagination{
2689		NewRequest: func() (*request.Request, error) {
2690			var inCpy *ListContainerInstancesInput
2691			if input != nil {
2692				tmp := *input
2693				inCpy = &tmp
2694			}
2695			req, _ := c.ListContainerInstancesRequest(inCpy)
2696			req.SetContext(ctx)
2697			req.ApplyOptions(opts...)
2698			return req, nil
2699		},
2700	}
2701
2702	for p.Next() {
2703		if !fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage()) {
2704			break
2705		}
2706	}
2707
2708	return p.Err()
2709}
2710
2711const opListServices = "ListServices"
2712
2713// ListServicesRequest generates a "aws/request.Request" representing the
2714// client's request for the ListServices operation. The "output" return
2715// value will be populated with the request's response once the request completes
2716// successfully.
2717//
2718// Use "Send" method on the returned Request to send the API call to the service.
2719// the "output" return value is not valid until after Send returns without error.
2720//
2721// See ListServices for more information on using the ListServices
2722// API call, and error handling.
2723//
2724// This method is useful when you want to inject custom logic or configuration
2725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2726//
2727//
2728//    // Example sending a request using the ListServicesRequest method.
2729//    req, resp := client.ListServicesRequest(params)
2730//
2731//    err := req.Send()
2732//    if err == nil { // resp is now filled
2733//        fmt.Println(resp)
2734//    }
2735//
2736// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2737func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
2738	op := &request.Operation{
2739		Name:       opListServices,
2740		HTTPMethod: "POST",
2741		HTTPPath:   "/",
2742		Paginator: &request.Paginator{
2743			InputTokens:     []string{"nextToken"},
2744			OutputTokens:    []string{"nextToken"},
2745			LimitToken:      "maxResults",
2746			TruncationToken: "",
2747		},
2748	}
2749
2750	if input == nil {
2751		input = &ListServicesInput{}
2752	}
2753
2754	output = &ListServicesOutput{}
2755	req = c.newRequest(op, input, output)
2756	return
2757}
2758
2759// ListServices API operation for Amazon EC2 Container Service.
2760//
2761// Lists the services that are running in a specified cluster.
2762//
2763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2764// with awserr.Error's Code and Message methods to get detailed information about
2765// the error.
2766//
2767// See the AWS API reference guide for Amazon EC2 Container Service's
2768// API operation ListServices for usage and error information.
2769//
2770// Returned Error Types:
2771//   * ServerException
2772//   These errors are usually caused by a server issue.
2773//
2774//   * ClientException
2775//   These errors are usually caused by a client action, such as using an action
2776//   or resource on behalf of a user that doesn't have permissions to use the
2777//   action or resource, or specifying an identifier that is not valid.
2778//
2779//   * InvalidParameterException
2780//   The specified parameter is invalid. Review the available parameters for the
2781//   API request.
2782//
2783//   * ClusterNotFoundException
2784//   The specified cluster could not be found. You can view your available clusters
2785//   with ListClusters. Amazon ECS clusters are Region-specific.
2786//
2787// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2788func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
2789	req, out := c.ListServicesRequest(input)
2790	return out, req.Send()
2791}
2792
2793// ListServicesWithContext is the same as ListServices with the addition of
2794// the ability to pass a context and additional request options.
2795//
2796// See ListServices for details on how to use this API operation.
2797//
2798// The context must be non-nil and will be used for request cancellation. If
2799// the context is nil a panic will occur. In the future the SDK may create
2800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2801// for more information on using Contexts.
2802func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
2803	req, out := c.ListServicesRequest(input)
2804	req.SetContext(ctx)
2805	req.ApplyOptions(opts...)
2806	return out, req.Send()
2807}
2808
2809// ListServicesPages iterates over the pages of a ListServices operation,
2810// calling the "fn" function with the response data for each page. To stop
2811// iterating, return false from the fn function.
2812//
2813// See ListServices method for more information on how to use this operation.
2814//
2815// Note: This operation can generate multiple requests to a service.
2816//
2817//    // Example iterating over at most 3 pages of a ListServices operation.
2818//    pageNum := 0
2819//    err := client.ListServicesPages(params,
2820//        func(page *ecs.ListServicesOutput, lastPage bool) bool {
2821//            pageNum++
2822//            fmt.Println(page)
2823//            return pageNum <= 3
2824//        })
2825//
2826func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
2827	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2828}
2829
2830// ListServicesPagesWithContext same as ListServicesPages except
2831// it takes a Context and allows setting request options on the pages.
2832//
2833// The context must be non-nil and will be used for request cancellation. If
2834// the context is nil a panic will occur. In the future the SDK may create
2835// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2836// for more information on using Contexts.
2837func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
2838	p := request.Pagination{
2839		NewRequest: func() (*request.Request, error) {
2840			var inCpy *ListServicesInput
2841			if input != nil {
2842				tmp := *input
2843				inCpy = &tmp
2844			}
2845			req, _ := c.ListServicesRequest(inCpy)
2846			req.SetContext(ctx)
2847			req.ApplyOptions(opts...)
2848			return req, nil
2849		},
2850	}
2851
2852	for p.Next() {
2853		if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) {
2854			break
2855		}
2856	}
2857
2858	return p.Err()
2859}
2860
2861const opListTagsForResource = "ListTagsForResource"
2862
2863// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2864// client's request for the ListTagsForResource operation. The "output" return
2865// value will be populated with the request's response once the request completes
2866// successfully.
2867//
2868// Use "Send" method on the returned Request to send the API call to the service.
2869// the "output" return value is not valid until after Send returns without error.
2870//
2871// See ListTagsForResource for more information on using the ListTagsForResource
2872// API call, and error handling.
2873//
2874// This method is useful when you want to inject custom logic or configuration
2875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2876//
2877//
2878//    // Example sending a request using the ListTagsForResourceRequest method.
2879//    req, resp := client.ListTagsForResourceRequest(params)
2880//
2881//    err := req.Send()
2882//    if err == nil { // resp is now filled
2883//        fmt.Println(resp)
2884//    }
2885//
2886// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2887func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2888	op := &request.Operation{
2889		Name:       opListTagsForResource,
2890		HTTPMethod: "POST",
2891		HTTPPath:   "/",
2892	}
2893
2894	if input == nil {
2895		input = &ListTagsForResourceInput{}
2896	}
2897
2898	output = &ListTagsForResourceOutput{}
2899	req = c.newRequest(op, input, output)
2900	return
2901}
2902
2903// ListTagsForResource API operation for Amazon EC2 Container Service.
2904//
2905// List the tags for an Amazon ECS resource.
2906//
2907// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2908// with awserr.Error's Code and Message methods to get detailed information about
2909// the error.
2910//
2911// See the AWS API reference guide for Amazon EC2 Container Service's
2912// API operation ListTagsForResource for usage and error information.
2913//
2914// Returned Error Types:
2915//   * ServerException
2916//   These errors are usually caused by a server issue.
2917//
2918//   * ClientException
2919//   These errors are usually caused by a client action, such as using an action
2920//   or resource on behalf of a user that doesn't have permissions to use the
2921//   action or resource, or specifying an identifier that is not valid.
2922//
2923//   * ClusterNotFoundException
2924//   The specified cluster could not be found. You can view your available clusters
2925//   with ListClusters. Amazon ECS clusters are Region-specific.
2926//
2927//   * InvalidParameterException
2928//   The specified parameter is invalid. Review the available parameters for the
2929//   API request.
2930//
2931// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2932func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2933	req, out := c.ListTagsForResourceRequest(input)
2934	return out, req.Send()
2935}
2936
2937// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2938// the ability to pass a context and additional request options.
2939//
2940// See ListTagsForResource for details on how to use this API operation.
2941//
2942// The context must be non-nil and will be used for request cancellation. If
2943// the context is nil a panic will occur. In the future the SDK may create
2944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2945// for more information on using Contexts.
2946func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2947	req, out := c.ListTagsForResourceRequest(input)
2948	req.SetContext(ctx)
2949	req.ApplyOptions(opts...)
2950	return out, req.Send()
2951}
2952
2953const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
2954
2955// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
2956// client's request for the ListTaskDefinitionFamilies operation. The "output" return
2957// value will be populated with the request's response once the request completes
2958// successfully.
2959//
2960// Use "Send" method on the returned Request to send the API call to the service.
2961// the "output" return value is not valid until after Send returns without error.
2962//
2963// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
2964// API call, and error handling.
2965//
2966// This method is useful when you want to inject custom logic or configuration
2967// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2968//
2969//
2970//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
2971//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
2972//
2973//    err := req.Send()
2974//    if err == nil { // resp is now filled
2975//        fmt.Println(resp)
2976//    }
2977//
2978// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2979func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
2980	op := &request.Operation{
2981		Name:       opListTaskDefinitionFamilies,
2982		HTTPMethod: "POST",
2983		HTTPPath:   "/",
2984		Paginator: &request.Paginator{
2985			InputTokens:     []string{"nextToken"},
2986			OutputTokens:    []string{"nextToken"},
2987			LimitToken:      "maxResults",
2988			TruncationToken: "",
2989		},
2990	}
2991
2992	if input == nil {
2993		input = &ListTaskDefinitionFamiliesInput{}
2994	}
2995
2996	output = &ListTaskDefinitionFamiliesOutput{}
2997	req = c.newRequest(op, input, output)
2998	return
2999}
3000
3001// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
3002//
3003// Returns a list of task definition families that are registered to your account
3004// (which may include task definition families that no longer have any ACTIVE
3005// task definition revisions).
3006//
3007// You can filter out task definition families that do not contain any ACTIVE
3008// task definition revisions by setting the status parameter to ACTIVE. You
3009// can also filter the results with the familyPrefix parameter.
3010//
3011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3012// with awserr.Error's Code and Message methods to get detailed information about
3013// the error.
3014//
3015// See the AWS API reference guide for Amazon EC2 Container Service's
3016// API operation ListTaskDefinitionFamilies for usage and error information.
3017//
3018// Returned Error Types:
3019//   * ServerException
3020//   These errors are usually caused by a server issue.
3021//
3022//   * ClientException
3023//   These errors are usually caused by a client action, such as using an action
3024//   or resource on behalf of a user that doesn't have permissions to use the
3025//   action or resource, or specifying an identifier that is not valid.
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/ListTaskDefinitionFamilies
3032func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
3033	req, out := c.ListTaskDefinitionFamiliesRequest(input)
3034	return out, req.Send()
3035}
3036
3037// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
3038// the ability to pass a context and additional request options.
3039//
3040// See ListTaskDefinitionFamilies 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) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
3047	req, out := c.ListTaskDefinitionFamiliesRequest(input)
3048	req.SetContext(ctx)
3049	req.ApplyOptions(opts...)
3050	return out, req.Send()
3051}
3052
3053// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
3054// calling the "fn" function with the response data for each page. To stop
3055// iterating, return false from the fn function.
3056//
3057// See ListTaskDefinitionFamilies method for more information on how to use this operation.
3058//
3059// Note: This operation can generate multiple requests to a service.
3060//
3061//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
3062//    pageNum := 0
3063//    err := client.ListTaskDefinitionFamiliesPages(params,
3064//        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
3065//            pageNum++
3066//            fmt.Println(page)
3067//            return pageNum <= 3
3068//        })
3069//
3070func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
3071	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
3072}
3073
3074// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
3075// it takes a Context and allows setting request options on the pages.
3076//
3077// The context must be non-nil and will be used for request cancellation. If
3078// the context is nil a panic will occur. In the future the SDK may create
3079// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3080// for more information on using Contexts.
3081func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
3082	p := request.Pagination{
3083		NewRequest: func() (*request.Request, error) {
3084			var inCpy *ListTaskDefinitionFamiliesInput
3085			if input != nil {
3086				tmp := *input
3087				inCpy = &tmp
3088			}
3089			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
3090			req.SetContext(ctx)
3091			req.ApplyOptions(opts...)
3092			return req, nil
3093		},
3094	}
3095
3096	for p.Next() {
3097		if !fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage()) {
3098			break
3099		}
3100	}
3101
3102	return p.Err()
3103}
3104
3105const opListTaskDefinitions = "ListTaskDefinitions"
3106
3107// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
3108// client's request for the ListTaskDefinitions operation. The "output" return
3109// value will be populated with the request's response once the request completes
3110// successfully.
3111//
3112// Use "Send" method on the returned Request to send the API call to the service.
3113// the "output" return value is not valid until after Send returns without error.
3114//
3115// See ListTaskDefinitions for more information on using the ListTaskDefinitions
3116// API call, and error handling.
3117//
3118// This method is useful when you want to inject custom logic or configuration
3119// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3120//
3121//
3122//    // Example sending a request using the ListTaskDefinitionsRequest method.
3123//    req, resp := client.ListTaskDefinitionsRequest(params)
3124//
3125//    err := req.Send()
3126//    if err == nil { // resp is now filled
3127//        fmt.Println(resp)
3128//    }
3129//
3130// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3131func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
3132	op := &request.Operation{
3133		Name:       opListTaskDefinitions,
3134		HTTPMethod: "POST",
3135		HTTPPath:   "/",
3136		Paginator: &request.Paginator{
3137			InputTokens:     []string{"nextToken"},
3138			OutputTokens:    []string{"nextToken"},
3139			LimitToken:      "maxResults",
3140			TruncationToken: "",
3141		},
3142	}
3143
3144	if input == nil {
3145		input = &ListTaskDefinitionsInput{}
3146	}
3147
3148	output = &ListTaskDefinitionsOutput{}
3149	req = c.newRequest(op, input, output)
3150	return
3151}
3152
3153// ListTaskDefinitions API operation for Amazon EC2 Container Service.
3154//
3155// Returns a list of task definitions that are registered to your account. You
3156// can filter the results by family name with the familyPrefix parameter or
3157// by status with the status parameter.
3158//
3159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3160// with awserr.Error's Code and Message methods to get detailed information about
3161// the error.
3162//
3163// See the AWS API reference guide for Amazon EC2 Container Service's
3164// API operation ListTaskDefinitions for usage and error information.
3165//
3166// Returned Error Types:
3167//   * ServerException
3168//   These errors are usually caused by a server issue.
3169//
3170//   * ClientException
3171//   These errors are usually caused by a client action, such as using an action
3172//   or resource on behalf of a user that doesn't have permissions to use the
3173//   action or resource, or specifying an identifier that is not valid.
3174//
3175//   * InvalidParameterException
3176//   The specified parameter is invalid. Review the available parameters for the
3177//   API request.
3178//
3179// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3180func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
3181	req, out := c.ListTaskDefinitionsRequest(input)
3182	return out, req.Send()
3183}
3184
3185// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
3186// the ability to pass a context and additional request options.
3187//
3188// See ListTaskDefinitions for details on how to use this API operation.
3189//
3190// The context must be non-nil and will be used for request cancellation. If
3191// the context is nil a panic will occur. In the future the SDK may create
3192// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3193// for more information on using Contexts.
3194func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
3195	req, out := c.ListTaskDefinitionsRequest(input)
3196	req.SetContext(ctx)
3197	req.ApplyOptions(opts...)
3198	return out, req.Send()
3199}
3200
3201// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
3202// calling the "fn" function with the response data for each page. To stop
3203// iterating, return false from the fn function.
3204//
3205// See ListTaskDefinitions method for more information on how to use this operation.
3206//
3207// Note: This operation can generate multiple requests to a service.
3208//
3209//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
3210//    pageNum := 0
3211//    err := client.ListTaskDefinitionsPages(params,
3212//        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
3213//            pageNum++
3214//            fmt.Println(page)
3215//            return pageNum <= 3
3216//        })
3217//
3218func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
3219	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
3220}
3221
3222// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
3223// it takes a Context and allows setting request options on the pages.
3224//
3225// The context must be non-nil and will be used for request cancellation. If
3226// the context is nil a panic will occur. In the future the SDK may create
3227// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3228// for more information on using Contexts.
3229func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
3230	p := request.Pagination{
3231		NewRequest: func() (*request.Request, error) {
3232			var inCpy *ListTaskDefinitionsInput
3233			if input != nil {
3234				tmp := *input
3235				inCpy = &tmp
3236			}
3237			req, _ := c.ListTaskDefinitionsRequest(inCpy)
3238			req.SetContext(ctx)
3239			req.ApplyOptions(opts...)
3240			return req, nil
3241		},
3242	}
3243
3244	for p.Next() {
3245		if !fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage()) {
3246			break
3247		}
3248	}
3249
3250	return p.Err()
3251}
3252
3253const opListTasks = "ListTasks"
3254
3255// ListTasksRequest generates a "aws/request.Request" representing the
3256// client's request for the ListTasks operation. The "output" return
3257// value will be populated with the request's response once the request completes
3258// successfully.
3259//
3260// Use "Send" method on the returned Request to send the API call to the service.
3261// the "output" return value is not valid until after Send returns without error.
3262//
3263// See ListTasks for more information on using the ListTasks
3264// API call, and error handling.
3265//
3266// This method is useful when you want to inject custom logic or configuration
3267// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3268//
3269//
3270//    // Example sending a request using the ListTasksRequest method.
3271//    req, resp := client.ListTasksRequest(params)
3272//
3273//    err := req.Send()
3274//    if err == nil { // resp is now filled
3275//        fmt.Println(resp)
3276//    }
3277//
3278// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3279func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
3280	op := &request.Operation{
3281		Name:       opListTasks,
3282		HTTPMethod: "POST",
3283		HTTPPath:   "/",
3284		Paginator: &request.Paginator{
3285			InputTokens:     []string{"nextToken"},
3286			OutputTokens:    []string{"nextToken"},
3287			LimitToken:      "maxResults",
3288			TruncationToken: "",
3289		},
3290	}
3291
3292	if input == nil {
3293		input = &ListTasksInput{}
3294	}
3295
3296	output = &ListTasksOutput{}
3297	req = c.newRequest(op, input, output)
3298	return
3299}
3300
3301// ListTasks API operation for Amazon EC2 Container Service.
3302//
3303// Returns a list of tasks for a specified cluster. You can filter the results
3304// by family name, by a particular container instance, or by the desired status
3305// of the task with the family, containerInstance, and desiredStatus parameters.
3306//
3307// Recently stopped tasks might appear in the returned results. Currently, stopped
3308// tasks appear in the returned results for at least one hour.
3309//
3310// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3311// with awserr.Error's Code and Message methods to get detailed information about
3312// the error.
3313//
3314// See the AWS API reference guide for Amazon EC2 Container Service's
3315// API operation ListTasks for usage and error information.
3316//
3317// Returned Error Types:
3318//   * ServerException
3319//   These errors are usually caused by a server issue.
3320//
3321//   * ClientException
3322//   These errors are usually caused by a client action, such as using an action
3323//   or resource on behalf of a user that doesn't have permissions to use the
3324//   action or resource, or specifying an identifier that is not valid.
3325//
3326//   * InvalidParameterException
3327//   The specified parameter is invalid. Review the available parameters for the
3328//   API request.
3329//
3330//   * ClusterNotFoundException
3331//   The specified cluster could not be found. You can view your available clusters
3332//   with ListClusters. Amazon ECS clusters are Region-specific.
3333//
3334//   * ServiceNotFoundException
3335//   The specified service could not be found. You can view your available services
3336//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
3337//
3338// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3339func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
3340	req, out := c.ListTasksRequest(input)
3341	return out, req.Send()
3342}
3343
3344// ListTasksWithContext is the same as ListTasks with the addition of
3345// the ability to pass a context and additional request options.
3346//
3347// See ListTasks for details on how to use this API operation.
3348//
3349// The context must be non-nil and will be used for request cancellation. If
3350// the context is nil a panic will occur. In the future the SDK may create
3351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3352// for more information on using Contexts.
3353func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
3354	req, out := c.ListTasksRequest(input)
3355	req.SetContext(ctx)
3356	req.ApplyOptions(opts...)
3357	return out, req.Send()
3358}
3359
3360// ListTasksPages iterates over the pages of a ListTasks operation,
3361// calling the "fn" function with the response data for each page. To stop
3362// iterating, return false from the fn function.
3363//
3364// See ListTasks method for more information on how to use this operation.
3365//
3366// Note: This operation can generate multiple requests to a service.
3367//
3368//    // Example iterating over at most 3 pages of a ListTasks operation.
3369//    pageNum := 0
3370//    err := client.ListTasksPages(params,
3371//        func(page *ecs.ListTasksOutput, lastPage bool) bool {
3372//            pageNum++
3373//            fmt.Println(page)
3374//            return pageNum <= 3
3375//        })
3376//
3377func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
3378	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
3379}
3380
3381// ListTasksPagesWithContext same as ListTasksPages except
3382// it takes a Context and allows setting request options on the pages.
3383//
3384// The context must be non-nil and will be used for request cancellation. If
3385// the context is nil a panic will occur. In the future the SDK may create
3386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3387// for more information on using Contexts.
3388func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
3389	p := request.Pagination{
3390		NewRequest: func() (*request.Request, error) {
3391			var inCpy *ListTasksInput
3392			if input != nil {
3393				tmp := *input
3394				inCpy = &tmp
3395			}
3396			req, _ := c.ListTasksRequest(inCpy)
3397			req.SetContext(ctx)
3398			req.ApplyOptions(opts...)
3399			return req, nil
3400		},
3401	}
3402
3403	for p.Next() {
3404		if !fn(p.Page().(*ListTasksOutput), !p.HasNextPage()) {
3405			break
3406		}
3407	}
3408
3409	return p.Err()
3410}
3411
3412const opPutAccountSetting = "PutAccountSetting"
3413
3414// PutAccountSettingRequest generates a "aws/request.Request" representing the
3415// client's request for the PutAccountSetting operation. The "output" return
3416// value will be populated with the request's response once the request completes
3417// successfully.
3418//
3419// Use "Send" method on the returned Request to send the API call to the service.
3420// the "output" return value is not valid until after Send returns without error.
3421//
3422// See PutAccountSetting for more information on using the PutAccountSetting
3423// API call, and error handling.
3424//
3425// This method is useful when you want to inject custom logic or configuration
3426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3427//
3428//
3429//    // Example sending a request using the PutAccountSettingRequest method.
3430//    req, resp := client.PutAccountSettingRequest(params)
3431//
3432//    err := req.Send()
3433//    if err == nil { // resp is now filled
3434//        fmt.Println(resp)
3435//    }
3436//
3437// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3438func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
3439	op := &request.Operation{
3440		Name:       opPutAccountSetting,
3441		HTTPMethod: "POST",
3442		HTTPPath:   "/",
3443	}
3444
3445	if input == nil {
3446		input = &PutAccountSettingInput{}
3447	}
3448
3449	output = &PutAccountSettingOutput{}
3450	req = c.newRequest(op, input, output)
3451	return
3452}
3453
3454// PutAccountSetting API operation for Amazon EC2 Container Service.
3455//
3456// Modifies an account setting. Account settings are set on a per-Region basis.
3457//
3458// If you change the account setting for the root user, the default settings
3459// for all of the IAM users and roles for which no individual account setting
3460// has been specified are reset. For more information, see Account Settings
3461// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
3462// in the Amazon Elastic Container Service Developer Guide.
3463//
3464// When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
3465// are specified, the Amazon Resource Name (ARN) and resource ID format of the
3466// resource type for a specified IAM user, IAM role, or the root user for an
3467// account is affected. The opt-in and opt-out account setting must be set for
3468// each Amazon ECS resource separately. The ARN and resource ID format of a
3469// resource will be defined by the opt-in status of the IAM user or role that
3470// created the resource. You must enable this setting to use Amazon ECS features
3471// such as resource tagging.
3472//
3473// When awsvpcTrunking is specified, the elastic network interface (ENI) limit
3474// for any new container instances that support the feature is changed. If awsvpcTrunking
3475// is enabled, any new container instances that support the feature are launched
3476// have the increased ENI limits available to them. For more information, see
3477// Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
3478// in the Amazon Elastic Container Service Developer Guide.
3479//
3480// When containerInsights is specified, the default setting indicating whether
3481// CloudWatch Container Insights is enabled for your clusters is changed. If
3482// containerInsights is enabled, any new clusters that are created will have
3483// Container Insights enabled unless you disable it during cluster creation.
3484// For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
3485// in the Amazon Elastic Container Service Developer Guide.
3486//
3487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3488// with awserr.Error's Code and Message methods to get detailed information about
3489// the error.
3490//
3491// See the AWS API reference guide for Amazon EC2 Container Service's
3492// API operation PutAccountSetting for usage and error information.
3493//
3494// Returned Error Types:
3495//   * ServerException
3496//   These errors are usually caused by a server issue.
3497//
3498//   * ClientException
3499//   These errors are usually caused by a client action, such as using an action
3500//   or resource on behalf of a user that doesn't have permissions to use the
3501//   action or resource, or specifying an identifier that is not valid.
3502//
3503//   * InvalidParameterException
3504//   The specified parameter is invalid. Review the available parameters for the
3505//   API request.
3506//
3507// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3508func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
3509	req, out := c.PutAccountSettingRequest(input)
3510	return out, req.Send()
3511}
3512
3513// PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
3514// the ability to pass a context and additional request options.
3515//
3516// See PutAccountSetting for details on how to use this API operation.
3517//
3518// The context must be non-nil and will be used for request cancellation. If
3519// the context is nil a panic will occur. In the future the SDK may create
3520// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3521// for more information on using Contexts.
3522func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
3523	req, out := c.PutAccountSettingRequest(input)
3524	req.SetContext(ctx)
3525	req.ApplyOptions(opts...)
3526	return out, req.Send()
3527}
3528
3529const opPutAccountSettingDefault = "PutAccountSettingDefault"
3530
3531// PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
3532// client's request for the PutAccountSettingDefault operation. The "output" return
3533// value will be populated with the request's response once the request completes
3534// successfully.
3535//
3536// Use "Send" method on the returned Request to send the API call to the service.
3537// the "output" return value is not valid until after Send returns without error.
3538//
3539// See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
3540// API call, and error handling.
3541//
3542// This method is useful when you want to inject custom logic or configuration
3543// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3544//
3545//
3546//    // Example sending a request using the PutAccountSettingDefaultRequest method.
3547//    req, resp := client.PutAccountSettingDefaultRequest(params)
3548//
3549//    err := req.Send()
3550//    if err == nil { // resp is now filled
3551//        fmt.Println(resp)
3552//    }
3553//
3554// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3555func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
3556	op := &request.Operation{
3557		Name:       opPutAccountSettingDefault,
3558		HTTPMethod: "POST",
3559		HTTPPath:   "/",
3560	}
3561
3562	if input == nil {
3563		input = &PutAccountSettingDefaultInput{}
3564	}
3565
3566	output = &PutAccountSettingDefaultOutput{}
3567	req = c.newRequest(op, input, output)
3568	return
3569}
3570
3571// PutAccountSettingDefault API operation for Amazon EC2 Container Service.
3572//
3573// Modifies an account setting for all IAM users on an account for whom no individual
3574// account setting has been specified. Account settings are set on a per-Region
3575// basis.
3576//
3577// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3578// with awserr.Error's Code and Message methods to get detailed information about
3579// the error.
3580//
3581// See the AWS API reference guide for Amazon EC2 Container Service's
3582// API operation PutAccountSettingDefault for usage and error information.
3583//
3584// Returned Error Types:
3585//   * ServerException
3586//   These errors are usually caused by a server issue.
3587//
3588//   * ClientException
3589//   These errors are usually caused by a client action, such as using an action
3590//   or resource on behalf of a user that doesn't have permissions to use the
3591//   action or resource, or specifying an identifier that is not valid.
3592//
3593//   * InvalidParameterException
3594//   The specified parameter is invalid. Review the available parameters for the
3595//   API request.
3596//
3597// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3598func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
3599	req, out := c.PutAccountSettingDefaultRequest(input)
3600	return out, req.Send()
3601}
3602
3603// PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
3604// the ability to pass a context and additional request options.
3605//
3606// See PutAccountSettingDefault for details on how to use this API operation.
3607//
3608// The context must be non-nil and will be used for request cancellation. If
3609// the context is nil a panic will occur. In the future the SDK may create
3610// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3611// for more information on using Contexts.
3612func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
3613	req, out := c.PutAccountSettingDefaultRequest(input)
3614	req.SetContext(ctx)
3615	req.ApplyOptions(opts...)
3616	return out, req.Send()
3617}
3618
3619const opPutAttributes = "PutAttributes"
3620
3621// PutAttributesRequest generates a "aws/request.Request" representing the
3622// client's request for the PutAttributes operation. The "output" return
3623// value will be populated with the request's response once the request completes
3624// successfully.
3625//
3626// Use "Send" method on the returned Request to send the API call to the service.
3627// the "output" return value is not valid until after Send returns without error.
3628//
3629// See PutAttributes for more information on using the PutAttributes
3630// API call, and error handling.
3631//
3632// This method is useful when you want to inject custom logic or configuration
3633// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3634//
3635//
3636//    // Example sending a request using the PutAttributesRequest method.
3637//    req, resp := client.PutAttributesRequest(params)
3638//
3639//    err := req.Send()
3640//    if err == nil { // resp is now filled
3641//        fmt.Println(resp)
3642//    }
3643//
3644// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3645func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
3646	op := &request.Operation{
3647		Name:       opPutAttributes,
3648		HTTPMethod: "POST",
3649		HTTPPath:   "/",
3650	}
3651
3652	if input == nil {
3653		input = &PutAttributesInput{}
3654	}
3655
3656	output = &PutAttributesOutput{}
3657	req = c.newRequest(op, input, output)
3658	return
3659}
3660
3661// PutAttributes API operation for Amazon EC2 Container Service.
3662//
3663// Create or update an attribute on an Amazon ECS resource. If the attribute
3664// does not exist, it is created. If the attribute exists, its value is replaced
3665// with the specified value. To delete an attribute, use DeleteAttributes. For
3666// more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3667// in the Amazon Elastic Container Service Developer Guide.
3668//
3669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3670// with awserr.Error's Code and Message methods to get detailed information about
3671// the error.
3672//
3673// See the AWS API reference guide for Amazon EC2 Container Service's
3674// API operation PutAttributes for usage and error information.
3675//
3676// Returned Error Types:
3677//   * ClusterNotFoundException
3678//   The specified cluster could not be found. You can view your available clusters
3679//   with ListClusters. Amazon ECS clusters are Region-specific.
3680//
3681//   * TargetNotFoundException
3682//   The specified target could not be found. You can view your available container
3683//   instances with ListContainerInstances. Amazon ECS container instances are
3684//   cluster-specific and Region-specific.
3685//
3686//   * AttributeLimitExceededException
3687//   You can apply up to 10 custom attributes per resource. You can view the attributes
3688//   of a resource with ListAttributes. You can remove existing attributes on
3689//   a resource with DeleteAttributes.
3690//
3691//   * InvalidParameterException
3692//   The specified parameter is invalid. Review the available parameters for the
3693//   API request.
3694//
3695// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3696func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
3697	req, out := c.PutAttributesRequest(input)
3698	return out, req.Send()
3699}
3700
3701// PutAttributesWithContext is the same as PutAttributes with the addition of
3702// the ability to pass a context and additional request options.
3703//
3704// See PutAttributes for details on how to use this API operation.
3705//
3706// The context must be non-nil and will be used for request cancellation. If
3707// the context is nil a panic will occur. In the future the SDK may create
3708// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3709// for more information on using Contexts.
3710func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
3711	req, out := c.PutAttributesRequest(input)
3712	req.SetContext(ctx)
3713	req.ApplyOptions(opts...)
3714	return out, req.Send()
3715}
3716
3717const opPutClusterCapacityProviders = "PutClusterCapacityProviders"
3718
3719// PutClusterCapacityProvidersRequest generates a "aws/request.Request" representing the
3720// client's request for the PutClusterCapacityProviders operation. The "output" return
3721// value will be populated with the request's response once the request completes
3722// successfully.
3723//
3724// Use "Send" method on the returned Request to send the API call to the service.
3725// the "output" return value is not valid until after Send returns without error.
3726//
3727// See PutClusterCapacityProviders for more information on using the PutClusterCapacityProviders
3728// API call, and error handling.
3729//
3730// This method is useful when you want to inject custom logic or configuration
3731// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3732//
3733//
3734//    // Example sending a request using the PutClusterCapacityProvidersRequest method.
3735//    req, resp := client.PutClusterCapacityProvidersRequest(params)
3736//
3737//    err := req.Send()
3738//    if err == nil { // resp is now filled
3739//        fmt.Println(resp)
3740//    }
3741//
3742// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3743func (c *ECS) PutClusterCapacityProvidersRequest(input *PutClusterCapacityProvidersInput) (req *request.Request, output *PutClusterCapacityProvidersOutput) {
3744	op := &request.Operation{
3745		Name:       opPutClusterCapacityProviders,
3746		HTTPMethod: "POST",
3747		HTTPPath:   "/",
3748	}
3749
3750	if input == nil {
3751		input = &PutClusterCapacityProvidersInput{}
3752	}
3753
3754	output = &PutClusterCapacityProvidersOutput{}
3755	req = c.newRequest(op, input, output)
3756	return
3757}
3758
3759// PutClusterCapacityProviders API operation for Amazon EC2 Container Service.
3760//
3761// Modifies the available capacity providers and the default capacity provider
3762// strategy for a cluster.
3763//
3764// You must specify both the available capacity providers and a default capacity
3765// provider strategy for the cluster. If the specified cluster has existing
3766// capacity providers associated with it, you must specify all existing capacity
3767// providers in addition to any new ones you want to add. Any existing capacity
3768// providers associated with a cluster that are omitted from a PutClusterCapacityProviders
3769// API call will be disassociated with the cluster. You can only disassociate
3770// an existing capacity provider from a cluster if it's not being used by any
3771// existing tasks.
3772//
3773// When creating a service or running a task on a cluster, if no capacity provider
3774// or launch type is specified, then the cluster's default capacity provider
3775// strategy is used. It is recommended to define a default capacity provider
3776// strategy for your cluster, however you may specify an empty array ([]) to
3777// bypass defining a default strategy.
3778//
3779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3780// with awserr.Error's Code and Message methods to get detailed information about
3781// the error.
3782//
3783// See the AWS API reference guide for Amazon EC2 Container Service's
3784// API operation PutClusterCapacityProviders for usage and error information.
3785//
3786// Returned Error Types:
3787//   * ServerException
3788//   These errors are usually caused by a server issue.
3789//
3790//   * ClientException
3791//   These errors are usually caused by a client action, such as using an action
3792//   or resource on behalf of a user that doesn't have permissions to use the
3793//   action or resource, or specifying an identifier that is not valid.
3794//
3795//   * InvalidParameterException
3796//   The specified parameter is invalid. Review the available parameters for the
3797//   API request.
3798//
3799//   * ClusterNotFoundException
3800//   The specified cluster could not be found. You can view your available clusters
3801//   with ListClusters. Amazon ECS clusters are Region-specific.
3802//
3803//   * ResourceInUseException
3804//   The specified resource is in-use and cannot be removed.
3805//
3806//   * UpdateInProgressException
3807//   There is already a current Amazon ECS container agent update in progress
3808//   on the specified container instance. If the container agent becomes disconnected
3809//   while it is in a transitional stage, such as PENDING or STAGING, the update
3810//   process can get stuck in that state. However, when the agent reconnects,
3811//   it resumes where it stopped previously.
3812//
3813// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3814func (c *ECS) PutClusterCapacityProviders(input *PutClusterCapacityProvidersInput) (*PutClusterCapacityProvidersOutput, error) {
3815	req, out := c.PutClusterCapacityProvidersRequest(input)
3816	return out, req.Send()
3817}
3818
3819// PutClusterCapacityProvidersWithContext is the same as PutClusterCapacityProviders with the addition of
3820// the ability to pass a context and additional request options.
3821//
3822// See PutClusterCapacityProviders for details on how to use this API operation.
3823//
3824// The context must be non-nil and will be used for request cancellation. If
3825// the context is nil a panic will occur. In the future the SDK may create
3826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3827// for more information on using Contexts.
3828func (c *ECS) PutClusterCapacityProvidersWithContext(ctx aws.Context, input *PutClusterCapacityProvidersInput, opts ...request.Option) (*PutClusterCapacityProvidersOutput, error) {
3829	req, out := c.PutClusterCapacityProvidersRequest(input)
3830	req.SetContext(ctx)
3831	req.ApplyOptions(opts...)
3832	return out, req.Send()
3833}
3834
3835const opRegisterContainerInstance = "RegisterContainerInstance"
3836
3837// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
3838// client's request for the RegisterContainerInstance operation. The "output" return
3839// value will be populated with the request's response once the request completes
3840// successfully.
3841//
3842// Use "Send" method on the returned Request to send the API call to the service.
3843// the "output" return value is not valid until after Send returns without error.
3844//
3845// See RegisterContainerInstance for more information on using the RegisterContainerInstance
3846// API call, and error handling.
3847//
3848// This method is useful when you want to inject custom logic or configuration
3849// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3850//
3851//
3852//    // Example sending a request using the RegisterContainerInstanceRequest method.
3853//    req, resp := client.RegisterContainerInstanceRequest(params)
3854//
3855//    err := req.Send()
3856//    if err == nil { // resp is now filled
3857//        fmt.Println(resp)
3858//    }
3859//
3860// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3861func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
3862	op := &request.Operation{
3863		Name:       opRegisterContainerInstance,
3864		HTTPMethod: "POST",
3865		HTTPPath:   "/",
3866	}
3867
3868	if input == nil {
3869		input = &RegisterContainerInstanceInput{}
3870	}
3871
3872	output = &RegisterContainerInstanceOutput{}
3873	req = c.newRequest(op, input, output)
3874	return
3875}
3876
3877// RegisterContainerInstance API operation for Amazon EC2 Container Service.
3878//
3879//
3880// This action is only used by the Amazon ECS agent, and it is not intended
3881// for use outside of the agent.
3882//
3883// Registers an EC2 instance into the specified cluster. This instance becomes
3884// available to place containers on.
3885//
3886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3887// with awserr.Error's Code and Message methods to get detailed information about
3888// the error.
3889//
3890// See the AWS API reference guide for Amazon EC2 Container Service's
3891// API operation RegisterContainerInstance for usage and error information.
3892//
3893// Returned Error Types:
3894//   * ServerException
3895//   These errors are usually caused by a server issue.
3896//
3897//   * ClientException
3898//   These errors are usually caused by a client action, such as using an action
3899//   or resource on behalf of a user that doesn't have permissions to use the
3900//   action or resource, or specifying an identifier that is not valid.
3901//
3902//   * InvalidParameterException
3903//   The specified parameter is invalid. Review the available parameters for the
3904//   API request.
3905//
3906// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3907func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
3908	req, out := c.RegisterContainerInstanceRequest(input)
3909	return out, req.Send()
3910}
3911
3912// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
3913// the ability to pass a context and additional request options.
3914//
3915// See RegisterContainerInstance for details on how to use this API operation.
3916//
3917// The context must be non-nil and will be used for request cancellation. If
3918// the context is nil a panic will occur. In the future the SDK may create
3919// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3920// for more information on using Contexts.
3921func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
3922	req, out := c.RegisterContainerInstanceRequest(input)
3923	req.SetContext(ctx)
3924	req.ApplyOptions(opts...)
3925	return out, req.Send()
3926}
3927
3928const opRegisterTaskDefinition = "RegisterTaskDefinition"
3929
3930// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
3931// client's request for the RegisterTaskDefinition operation. The "output" return
3932// value will be populated with the request's response once the request completes
3933// successfully.
3934//
3935// Use "Send" method on the returned Request to send the API call to the service.
3936// the "output" return value is not valid until after Send returns without error.
3937//
3938// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
3939// API call, and error handling.
3940//
3941// This method is useful when you want to inject custom logic or configuration
3942// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3943//
3944//
3945//    // Example sending a request using the RegisterTaskDefinitionRequest method.
3946//    req, resp := client.RegisterTaskDefinitionRequest(params)
3947//
3948//    err := req.Send()
3949//    if err == nil { // resp is now filled
3950//        fmt.Println(resp)
3951//    }
3952//
3953// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3954func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
3955	op := &request.Operation{
3956		Name:       opRegisterTaskDefinition,
3957		HTTPMethod: "POST",
3958		HTTPPath:   "/",
3959	}
3960
3961	if input == nil {
3962		input = &RegisterTaskDefinitionInput{}
3963	}
3964
3965	output = &RegisterTaskDefinitionOutput{}
3966	req = c.newRequest(op, input, output)
3967	return
3968}
3969
3970// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
3971//
3972// Registers a new task definition from the supplied family and containerDefinitions.
3973// Optionally, you can add data volumes to your containers with the volumes
3974// parameter. For more information about task definition parameters and defaults,
3975// see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
3976// in the Amazon Elastic Container Service Developer Guide.
3977//
3978// You can specify an IAM role for your task with the taskRoleArn parameter.
3979// When you specify an IAM role for a task, its containers can then use the
3980// latest versions of the AWS CLI or SDKs to make API requests to the AWS services
3981// that are specified in the IAM policy associated with the role. For more information,
3982// see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
3983// in the Amazon Elastic Container Service Developer Guide.
3984//
3985// You can specify a Docker networking mode for the containers in your task
3986// definition with the networkMode parameter. The available network modes correspond
3987// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
3988// in the Docker run reference. If you specify the awsvpc network mode, the
3989// task is allocated an elastic network interface, and you must specify a NetworkConfiguration
3990// when you create a service or run a task with the task definition. For more
3991// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
3992// in the Amazon Elastic Container Service Developer Guide.
3993//
3994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3995// with awserr.Error's Code and Message methods to get detailed information about
3996// the error.
3997//
3998// See the AWS API reference guide for Amazon EC2 Container Service's
3999// API operation RegisterTaskDefinition for usage and error information.
4000//
4001// Returned Error Types:
4002//   * ServerException
4003//   These errors are usually caused by a server issue.
4004//
4005//   * ClientException
4006//   These errors are usually caused by a client action, such as using an action
4007//   or resource on behalf of a user that doesn't have permissions to use the
4008//   action or resource, or specifying an identifier that is not valid.
4009//
4010//   * InvalidParameterException
4011//   The specified parameter is invalid. Review the available parameters for the
4012//   API request.
4013//
4014// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
4015func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
4016	req, out := c.RegisterTaskDefinitionRequest(input)
4017	return out, req.Send()
4018}
4019
4020// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
4021// the ability to pass a context and additional request options.
4022//
4023// See RegisterTaskDefinition for details on how to use this API operation.
4024//
4025// The context must be non-nil and will be used for request cancellation. If
4026// the context is nil a panic will occur. In the future the SDK may create
4027// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4028// for more information on using Contexts.
4029func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
4030	req, out := c.RegisterTaskDefinitionRequest(input)
4031	req.SetContext(ctx)
4032	req.ApplyOptions(opts...)
4033	return out, req.Send()
4034}
4035
4036const opRunTask = "RunTask"
4037
4038// RunTaskRequest generates a "aws/request.Request" representing the
4039// client's request for the RunTask operation. The "output" return
4040// value will be populated with the request's response once the request completes
4041// successfully.
4042//
4043// Use "Send" method on the returned Request to send the API call to the service.
4044// the "output" return value is not valid until after Send returns without error.
4045//
4046// See RunTask for more information on using the RunTask
4047// API call, and error handling.
4048//
4049// This method is useful when you want to inject custom logic or configuration
4050// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4051//
4052//
4053//    // Example sending a request using the RunTaskRequest method.
4054//    req, resp := client.RunTaskRequest(params)
4055//
4056//    err := req.Send()
4057//    if err == nil { // resp is now filled
4058//        fmt.Println(resp)
4059//    }
4060//
4061// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
4062func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
4063	op := &request.Operation{
4064		Name:       opRunTask,
4065		HTTPMethod: "POST",
4066		HTTPPath:   "/",
4067	}
4068
4069	if input == nil {
4070		input = &RunTaskInput{}
4071	}
4072
4073	output = &RunTaskOutput{}
4074	req = c.newRequest(op, input, output)
4075	return
4076}
4077
4078// RunTask API operation for Amazon EC2 Container Service.
4079//
4080// Starts a new task using the specified task definition.
4081//
4082// You can allow Amazon ECS to place tasks for you, or you can customize how
4083// Amazon ECS places tasks using placement constraints and placement strategies.
4084// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4085// in the Amazon Elastic Container Service Developer Guide.
4086//
4087// Alternatively, you can use StartTask to use your own scheduler or place tasks
4088// manually on specific container instances.
4089//
4090// The Amazon ECS API follows an eventual consistency model, due to the distributed
4091// nature of the system supporting the API. This means that the result of an
4092// API command you run that affects your Amazon ECS resources might not be immediately
4093// visible to all subsequent commands you run. Keep this in mind when you carry
4094// out an API command that immediately follows a previous API command.
4095//
4096// To manage eventual consistency, you can do the following:
4097//
4098//    * Confirm the state of the resource before you run a command to modify
4099//    it. Run the DescribeTasks command using an exponential backoff algorithm
4100//    to ensure that you allow enough time for the previous command to propagate
4101//    through the system. To do this, run the DescribeTasks command repeatedly,
4102//    starting with a couple of seconds of wait time and increasing gradually
4103//    up to five minutes of wait time.
4104//
4105//    * Add wait time between subsequent commands, even if the DescribeTasks
4106//    command returns an accurate response. Apply an exponential backoff algorithm
4107//    starting with a couple of seconds of wait time, and increase gradually
4108//    up to about five minutes of wait time.
4109//
4110// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4111// with awserr.Error's Code and Message methods to get detailed information about
4112// the error.
4113//
4114// See the AWS API reference guide for Amazon EC2 Container Service's
4115// API operation RunTask for usage and error information.
4116//
4117// Returned Error Types:
4118//   * ServerException
4119//   These errors are usually caused by a server issue.
4120//
4121//   * ClientException
4122//   These errors are usually caused by a client action, such as using an action
4123//   or resource on behalf of a user that doesn't have permissions to use the
4124//   action or resource, or specifying an identifier that is not valid.
4125//
4126//   * InvalidParameterException
4127//   The specified parameter is invalid. Review the available parameters for the
4128//   API request.
4129//
4130//   * ClusterNotFoundException
4131//   The specified cluster could not be found. You can view your available clusters
4132//   with ListClusters. Amazon ECS clusters are Region-specific.
4133//
4134//   * UnsupportedFeatureException
4135//   The specified task is not supported in this Region.
4136//
4137//   * PlatformUnknownException
4138//   The specified platform version does not exist.
4139//
4140//   * PlatformTaskDefinitionIncompatibilityException
4141//   The specified platform version does not satisfy the task definition's required
4142//   capabilities.
4143//
4144//   * AccessDeniedException
4145//   You do not have authorization to perform the requested action.
4146//
4147//   * BlockedException
4148//   Your AWS account has been blocked. For more information, contact AWS Support
4149//   (http://aws.amazon.com/contact-us/).
4150//
4151// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
4152func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
4153	req, out := c.RunTaskRequest(input)
4154	return out, req.Send()
4155}
4156
4157// RunTaskWithContext is the same as RunTask with the addition of
4158// the ability to pass a context and additional request options.
4159//
4160// See RunTask for details on how to use this API operation.
4161//
4162// The context must be non-nil and will be used for request cancellation. If
4163// the context is nil a panic will occur. In the future the SDK may create
4164// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4165// for more information on using Contexts.
4166func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
4167	req, out := c.RunTaskRequest(input)
4168	req.SetContext(ctx)
4169	req.ApplyOptions(opts...)
4170	return out, req.Send()
4171}
4172
4173const opStartTask = "StartTask"
4174
4175// StartTaskRequest generates a "aws/request.Request" representing the
4176// client's request for the StartTask operation. The "output" return
4177// value will be populated with the request's response once the request completes
4178// successfully.
4179//
4180// Use "Send" method on the returned Request to send the API call to the service.
4181// the "output" return value is not valid until after Send returns without error.
4182//
4183// See StartTask for more information on using the StartTask
4184// API call, and error handling.
4185//
4186// This method is useful when you want to inject custom logic or configuration
4187// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4188//
4189//
4190//    // Example sending a request using the StartTaskRequest method.
4191//    req, resp := client.StartTaskRequest(params)
4192//
4193//    err := req.Send()
4194//    if err == nil { // resp is now filled
4195//        fmt.Println(resp)
4196//    }
4197//
4198// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4199func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
4200	op := &request.Operation{
4201		Name:       opStartTask,
4202		HTTPMethod: "POST",
4203		HTTPPath:   "/",
4204	}
4205
4206	if input == nil {
4207		input = &StartTaskInput{}
4208	}
4209
4210	output = &StartTaskOutput{}
4211	req = c.newRequest(op, input, output)
4212	return
4213}
4214
4215// StartTask API operation for Amazon EC2 Container Service.
4216//
4217// Starts a new task from the specified task definition on the specified container
4218// instance or instances.
4219//
4220// Alternatively, you can use RunTask to place tasks for you. For more information,
4221// see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4222// in the Amazon Elastic Container Service Developer Guide.
4223//
4224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4225// with awserr.Error's Code and Message methods to get detailed information about
4226// the error.
4227//
4228// See the AWS API reference guide for Amazon EC2 Container Service's
4229// API operation StartTask for usage and error information.
4230//
4231// Returned Error Types:
4232//   * ServerException
4233//   These errors are usually caused by a server issue.
4234//
4235//   * ClientException
4236//   These errors are usually caused by a client action, such as using an action
4237//   or resource on behalf of a user that doesn't have permissions to use the
4238//   action or resource, or specifying an identifier that is not valid.
4239//
4240//   * InvalidParameterException
4241//   The specified parameter is invalid. Review the available parameters for the
4242//   API request.
4243//
4244//   * ClusterNotFoundException
4245//   The specified cluster could not be found. You can view your available clusters
4246//   with ListClusters. Amazon ECS clusters are Region-specific.
4247//
4248// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4249func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
4250	req, out := c.StartTaskRequest(input)
4251	return out, req.Send()
4252}
4253
4254// StartTaskWithContext is the same as StartTask with the addition of
4255// the ability to pass a context and additional request options.
4256//
4257// See StartTask for details on how to use this API operation.
4258//
4259// The context must be non-nil and will be used for request cancellation. If
4260// the context is nil a panic will occur. In the future the SDK may create
4261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4262// for more information on using Contexts.
4263func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
4264	req, out := c.StartTaskRequest(input)
4265	req.SetContext(ctx)
4266	req.ApplyOptions(opts...)
4267	return out, req.Send()
4268}
4269
4270const opStopTask = "StopTask"
4271
4272// StopTaskRequest generates a "aws/request.Request" representing the
4273// client's request for the StopTask operation. The "output" return
4274// value will be populated with the request's response once the request completes
4275// successfully.
4276//
4277// Use "Send" method on the returned Request to send the API call to the service.
4278// the "output" return value is not valid until after Send returns without error.
4279//
4280// See StopTask for more information on using the StopTask
4281// API call, and error handling.
4282//
4283// This method is useful when you want to inject custom logic or configuration
4284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4285//
4286//
4287//    // Example sending a request using the StopTaskRequest method.
4288//    req, resp := client.StopTaskRequest(params)
4289//
4290//    err := req.Send()
4291//    if err == nil { // resp is now filled
4292//        fmt.Println(resp)
4293//    }
4294//
4295// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4296func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
4297	op := &request.Operation{
4298		Name:       opStopTask,
4299		HTTPMethod: "POST",
4300		HTTPPath:   "/",
4301	}
4302
4303	if input == nil {
4304		input = &StopTaskInput{}
4305	}
4306
4307	output = &StopTaskOutput{}
4308	req = c.newRequest(op, input, output)
4309	return
4310}
4311
4312// StopTask API operation for Amazon EC2 Container Service.
4313//
4314// Stops a running task. Any tags associated with the task will be deleted.
4315//
4316// When StopTask is called on a task, the equivalent of docker stop is issued
4317// to the containers running in the task. This results in a SIGTERM value and
4318// a default 30-second timeout, after which the SIGKILL value is sent and the
4319// containers are forcibly stopped. If the container handles the SIGTERM value
4320// gracefully and exits within 30 seconds from receiving it, no SIGKILL value
4321// is sent.
4322//
4323// The default 30-second timeout can be configured on the Amazon ECS container
4324// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
4325// see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
4326// in the Amazon Elastic Container Service Developer Guide.
4327//
4328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4329// with awserr.Error's Code and Message methods to get detailed information about
4330// the error.
4331//
4332// See the AWS API reference guide for Amazon EC2 Container Service's
4333// API operation StopTask for usage and error information.
4334//
4335// Returned Error Types:
4336//   * ServerException
4337//   These errors are usually caused by a server issue.
4338//
4339//   * ClientException
4340//   These errors are usually caused by a client action, such as using an action
4341//   or resource on behalf of a user that doesn't have permissions to use the
4342//   action or resource, or specifying an identifier that is not valid.
4343//
4344//   * InvalidParameterException
4345//   The specified parameter is invalid. Review the available parameters for the
4346//   API request.
4347//
4348//   * ClusterNotFoundException
4349//   The specified cluster could not be found. You can view your available clusters
4350//   with ListClusters. Amazon ECS clusters are Region-specific.
4351//
4352// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4353func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
4354	req, out := c.StopTaskRequest(input)
4355	return out, req.Send()
4356}
4357
4358// StopTaskWithContext is the same as StopTask with the addition of
4359// the ability to pass a context and additional request options.
4360//
4361// See StopTask for details on how to use this API operation.
4362//
4363// The context must be non-nil and will be used for request cancellation. If
4364// the context is nil a panic will occur. In the future the SDK may create
4365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4366// for more information on using Contexts.
4367func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
4368	req, out := c.StopTaskRequest(input)
4369	req.SetContext(ctx)
4370	req.ApplyOptions(opts...)
4371	return out, req.Send()
4372}
4373
4374const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
4375
4376// SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
4377// client's request for the SubmitAttachmentStateChanges operation. The "output" return
4378// value will be populated with the request's response once the request completes
4379// successfully.
4380//
4381// Use "Send" method on the returned Request to send the API call to the service.
4382// the "output" return value is not valid until after Send returns without error.
4383//
4384// See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
4385// API call, and error handling.
4386//
4387// This method is useful when you want to inject custom logic or configuration
4388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4389//
4390//
4391//    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
4392//    req, resp := client.SubmitAttachmentStateChangesRequest(params)
4393//
4394//    err := req.Send()
4395//    if err == nil { // resp is now filled
4396//        fmt.Println(resp)
4397//    }
4398//
4399// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4400func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
4401	op := &request.Operation{
4402		Name:       opSubmitAttachmentStateChanges,
4403		HTTPMethod: "POST",
4404		HTTPPath:   "/",
4405	}
4406
4407	if input == nil {
4408		input = &SubmitAttachmentStateChangesInput{}
4409	}
4410
4411	output = &SubmitAttachmentStateChangesOutput{}
4412	req = c.newRequest(op, input, output)
4413	return
4414}
4415
4416// SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
4417//
4418//
4419// This action is only used by the Amazon ECS agent, and it is not intended
4420// for use outside of the agent.
4421//
4422// Sent to acknowledge that an attachment changed states.
4423//
4424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4425// with awserr.Error's Code and Message methods to get detailed information about
4426// the error.
4427//
4428// See the AWS API reference guide for Amazon EC2 Container Service's
4429// API operation SubmitAttachmentStateChanges for usage and error information.
4430//
4431// Returned Error Types:
4432//   * ServerException
4433//   These errors are usually caused by a server issue.
4434//
4435//   * ClientException
4436//   These errors are usually caused by a client action, such as using an action
4437//   or resource on behalf of a user that doesn't have permissions to use the
4438//   action or resource, or specifying an identifier that is not valid.
4439//
4440//   * AccessDeniedException
4441//   You do not have authorization to perform the requested action.
4442//
4443//   * InvalidParameterException
4444//   The specified parameter is invalid. Review the available parameters for the
4445//   API request.
4446//
4447// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4448func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
4449	req, out := c.SubmitAttachmentStateChangesRequest(input)
4450	return out, req.Send()
4451}
4452
4453// SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
4454// the ability to pass a context and additional request options.
4455//
4456// See SubmitAttachmentStateChanges for details on how to use this API operation.
4457//
4458// The context must be non-nil and will be used for request cancellation. If
4459// the context is nil a panic will occur. In the future the SDK may create
4460// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4461// for more information on using Contexts.
4462func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
4463	req, out := c.SubmitAttachmentStateChangesRequest(input)
4464	req.SetContext(ctx)
4465	req.ApplyOptions(opts...)
4466	return out, req.Send()
4467}
4468
4469const opSubmitContainerStateChange = "SubmitContainerStateChange"
4470
4471// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
4472// client's request for the SubmitContainerStateChange operation. The "output" return
4473// value will be populated with the request's response once the request completes
4474// successfully.
4475//
4476// Use "Send" method on the returned Request to send the API call to the service.
4477// the "output" return value is not valid until after Send returns without error.
4478//
4479// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
4480// API call, and error handling.
4481//
4482// This method is useful when you want to inject custom logic or configuration
4483// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4484//
4485//
4486//    // Example sending a request using the SubmitContainerStateChangeRequest method.
4487//    req, resp := client.SubmitContainerStateChangeRequest(params)
4488//
4489//    err := req.Send()
4490//    if err == nil { // resp is now filled
4491//        fmt.Println(resp)
4492//    }
4493//
4494// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4495func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
4496	op := &request.Operation{
4497		Name:       opSubmitContainerStateChange,
4498		HTTPMethod: "POST",
4499		HTTPPath:   "/",
4500	}
4501
4502	if input == nil {
4503		input = &SubmitContainerStateChangeInput{}
4504	}
4505
4506	output = &SubmitContainerStateChangeOutput{}
4507	req = c.newRequest(op, input, output)
4508	return
4509}
4510
4511// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
4512//
4513//
4514// This action is only used by the Amazon ECS agent, and it is not intended
4515// for use outside of the agent.
4516//
4517// Sent to acknowledge that a container changed states.
4518//
4519// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4520// with awserr.Error's Code and Message methods to get detailed information about
4521// the error.
4522//
4523// See the AWS API reference guide for Amazon EC2 Container Service's
4524// API operation SubmitContainerStateChange for usage and error information.
4525//
4526// Returned Error Types:
4527//   * ServerException
4528//   These errors are usually caused by a server issue.
4529//
4530//   * ClientException
4531//   These errors are usually caused by a client action, such as using an action
4532//   or resource on behalf of a user that doesn't have permissions to use the
4533//   action or resource, or specifying an identifier that is not valid.
4534//
4535//   * AccessDeniedException
4536//   You do not have authorization to perform the requested action.
4537//
4538// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4539func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
4540	req, out := c.SubmitContainerStateChangeRequest(input)
4541	return out, req.Send()
4542}
4543
4544// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
4545// the ability to pass a context and additional request options.
4546//
4547// See SubmitContainerStateChange for details on how to use this API operation.
4548//
4549// The context must be non-nil and will be used for request cancellation. If
4550// the context is nil a panic will occur. In the future the SDK may create
4551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4552// for more information on using Contexts.
4553func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
4554	req, out := c.SubmitContainerStateChangeRequest(input)
4555	req.SetContext(ctx)
4556	req.ApplyOptions(opts...)
4557	return out, req.Send()
4558}
4559
4560const opSubmitTaskStateChange = "SubmitTaskStateChange"
4561
4562// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
4563// client's request for the SubmitTaskStateChange operation. The "output" return
4564// value will be populated with the request's response once the request completes
4565// successfully.
4566//
4567// Use "Send" method on the returned Request to send the API call to the service.
4568// the "output" return value is not valid until after Send returns without error.
4569//
4570// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
4571// API call, and error handling.
4572//
4573// This method is useful when you want to inject custom logic or configuration
4574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4575//
4576//
4577//    // Example sending a request using the SubmitTaskStateChangeRequest method.
4578//    req, resp := client.SubmitTaskStateChangeRequest(params)
4579//
4580//    err := req.Send()
4581//    if err == nil { // resp is now filled
4582//        fmt.Println(resp)
4583//    }
4584//
4585// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4586func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
4587	op := &request.Operation{
4588		Name:       opSubmitTaskStateChange,
4589		HTTPMethod: "POST",
4590		HTTPPath:   "/",
4591	}
4592
4593	if input == nil {
4594		input = &SubmitTaskStateChangeInput{}
4595	}
4596
4597	output = &SubmitTaskStateChangeOutput{}
4598	req = c.newRequest(op, input, output)
4599	return
4600}
4601
4602// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
4603//
4604//
4605// This action is only used by the Amazon ECS agent, and it is not intended
4606// for use outside of the agent.
4607//
4608// Sent to acknowledge that a task changed states.
4609//
4610// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4611// with awserr.Error's Code and Message methods to get detailed information about
4612// the error.
4613//
4614// See the AWS API reference guide for Amazon EC2 Container Service's
4615// API operation SubmitTaskStateChange for usage and error information.
4616//
4617// Returned Error Types:
4618//   * ServerException
4619//   These errors are usually caused by a server issue.
4620//
4621//   * ClientException
4622//   These errors are usually caused by a client action, such as using an action
4623//   or resource on behalf of a user that doesn't have permissions to use the
4624//   action or resource, or specifying an identifier that is not valid.
4625//
4626//   * AccessDeniedException
4627//   You do not have authorization to perform the requested action.
4628//
4629//   * InvalidParameterException
4630//   The specified parameter is invalid. Review the available parameters for the
4631//   API request.
4632//
4633// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4634func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
4635	req, out := c.SubmitTaskStateChangeRequest(input)
4636	return out, req.Send()
4637}
4638
4639// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
4640// the ability to pass a context and additional request options.
4641//
4642// See SubmitTaskStateChange for details on how to use this API operation.
4643//
4644// The context must be non-nil and will be used for request cancellation. If
4645// the context is nil a panic will occur. In the future the SDK may create
4646// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4647// for more information on using Contexts.
4648func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
4649	req, out := c.SubmitTaskStateChangeRequest(input)
4650	req.SetContext(ctx)
4651	req.ApplyOptions(opts...)
4652	return out, req.Send()
4653}
4654
4655const opTagResource = "TagResource"
4656
4657// TagResourceRequest generates a "aws/request.Request" representing the
4658// client's request for the TagResource operation. The "output" return
4659// value will be populated with the request's response once the request completes
4660// successfully.
4661//
4662// Use "Send" method on the returned Request to send the API call to the service.
4663// the "output" return value is not valid until after Send returns without error.
4664//
4665// See TagResource for more information on using the TagResource
4666// API call, and error handling.
4667//
4668// This method is useful when you want to inject custom logic or configuration
4669// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4670//
4671//
4672//    // Example sending a request using the TagResourceRequest method.
4673//    req, resp := client.TagResourceRequest(params)
4674//
4675//    err := req.Send()
4676//    if err == nil { // resp is now filled
4677//        fmt.Println(resp)
4678//    }
4679//
4680// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4681func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4682	op := &request.Operation{
4683		Name:       opTagResource,
4684		HTTPMethod: "POST",
4685		HTTPPath:   "/",
4686	}
4687
4688	if input == nil {
4689		input = &TagResourceInput{}
4690	}
4691
4692	output = &TagResourceOutput{}
4693	req = c.newRequest(op, input, output)
4694	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4695	return
4696}
4697
4698// TagResource API operation for Amazon EC2 Container Service.
4699//
4700// Associates the specified tags to a resource with the specified resourceArn.
4701// If existing tags on a resource are not specified in the request parameters,
4702// they are not changed. When a resource is deleted, the tags associated with
4703// that resource are deleted as well.
4704//
4705// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4706// with awserr.Error's Code and Message methods to get detailed information about
4707// the error.
4708//
4709// See the AWS API reference guide for Amazon EC2 Container Service's
4710// API operation TagResource for usage and error information.
4711//
4712// Returned Error Types:
4713//   * ServerException
4714//   These errors are usually caused by a server issue.
4715//
4716//   * ClientException
4717//   These errors are usually caused by a client action, such as using an action
4718//   or resource on behalf of a user that doesn't have permissions to use the
4719//   action or resource, or specifying an identifier that is not valid.
4720//
4721//   * ClusterNotFoundException
4722//   The specified cluster could not be found. You can view your available clusters
4723//   with ListClusters. Amazon ECS clusters are Region-specific.
4724//
4725//   * ResourceNotFoundException
4726//   The specified resource could not be found.
4727//
4728//   * InvalidParameterException
4729//   The specified parameter is invalid. Review the available parameters for the
4730//   API request.
4731//
4732// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4733func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4734	req, out := c.TagResourceRequest(input)
4735	return out, req.Send()
4736}
4737
4738// TagResourceWithContext is the same as TagResource with the addition of
4739// the ability to pass a context and additional request options.
4740//
4741// See TagResource for details on how to use this API operation.
4742//
4743// The context must be non-nil and will be used for request cancellation. If
4744// the context is nil a panic will occur. In the future the SDK may create
4745// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4746// for more information on using Contexts.
4747func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4748	req, out := c.TagResourceRequest(input)
4749	req.SetContext(ctx)
4750	req.ApplyOptions(opts...)
4751	return out, req.Send()
4752}
4753
4754const opUntagResource = "UntagResource"
4755
4756// UntagResourceRequest generates a "aws/request.Request" representing the
4757// client's request for the UntagResource operation. The "output" return
4758// value will be populated with the request's response once the request completes
4759// successfully.
4760//
4761// Use "Send" method on the returned Request to send the API call to the service.
4762// the "output" return value is not valid until after Send returns without error.
4763//
4764// See UntagResource for more information on using the UntagResource
4765// API call, and error handling.
4766//
4767// This method is useful when you want to inject custom logic or configuration
4768// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4769//
4770//
4771//    // Example sending a request using the UntagResourceRequest method.
4772//    req, resp := client.UntagResourceRequest(params)
4773//
4774//    err := req.Send()
4775//    if err == nil { // resp is now filled
4776//        fmt.Println(resp)
4777//    }
4778//
4779// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4780func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4781	op := &request.Operation{
4782		Name:       opUntagResource,
4783		HTTPMethod: "POST",
4784		HTTPPath:   "/",
4785	}
4786
4787	if input == nil {
4788		input = &UntagResourceInput{}
4789	}
4790
4791	output = &UntagResourceOutput{}
4792	req = c.newRequest(op, input, output)
4793	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4794	return
4795}
4796
4797// UntagResource API operation for Amazon EC2 Container Service.
4798//
4799// Deletes specified tags from a resource.
4800//
4801// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4802// with awserr.Error's Code and Message methods to get detailed information about
4803// the error.
4804//
4805// See the AWS API reference guide for Amazon EC2 Container Service's
4806// API operation UntagResource for usage and error information.
4807//
4808// Returned Error Types:
4809//   * ServerException
4810//   These errors are usually caused by a server issue.
4811//
4812//   * ClientException
4813//   These errors are usually caused by a client action, such as using an action
4814//   or resource on behalf of a user that doesn't have permissions to use the
4815//   action or resource, or specifying an identifier that is not valid.
4816//
4817//   * ClusterNotFoundException
4818//   The specified cluster could not be found. You can view your available clusters
4819//   with ListClusters. Amazon ECS clusters are Region-specific.
4820//
4821//   * ResourceNotFoundException
4822//   The specified resource could not be found.
4823//
4824//   * InvalidParameterException
4825//   The specified parameter is invalid. Review the available parameters for the
4826//   API request.
4827//
4828// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4829func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4830	req, out := c.UntagResourceRequest(input)
4831	return out, req.Send()
4832}
4833
4834// UntagResourceWithContext is the same as UntagResource with the addition of
4835// the ability to pass a context and additional request options.
4836//
4837// See UntagResource for details on how to use this API operation.
4838//
4839// The context must be non-nil and will be used for request cancellation. If
4840// the context is nil a panic will occur. In the future the SDK may create
4841// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4842// for more information on using Contexts.
4843func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4844	req, out := c.UntagResourceRequest(input)
4845	req.SetContext(ctx)
4846	req.ApplyOptions(opts...)
4847	return out, req.Send()
4848}
4849
4850const opUpdateClusterSettings = "UpdateClusterSettings"
4851
4852// UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
4853// client's request for the UpdateClusterSettings operation. The "output" return
4854// value will be populated with the request's response once the request completes
4855// successfully.
4856//
4857// Use "Send" method on the returned Request to send the API call to the service.
4858// the "output" return value is not valid until after Send returns without error.
4859//
4860// See UpdateClusterSettings for more information on using the UpdateClusterSettings
4861// API call, and error handling.
4862//
4863// This method is useful when you want to inject custom logic or configuration
4864// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4865//
4866//
4867//    // Example sending a request using the UpdateClusterSettingsRequest method.
4868//    req, resp := client.UpdateClusterSettingsRequest(params)
4869//
4870//    err := req.Send()
4871//    if err == nil { // resp is now filled
4872//        fmt.Println(resp)
4873//    }
4874//
4875// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4876func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
4877	op := &request.Operation{
4878		Name:       opUpdateClusterSettings,
4879		HTTPMethod: "POST",
4880		HTTPPath:   "/",
4881	}
4882
4883	if input == nil {
4884		input = &UpdateClusterSettingsInput{}
4885	}
4886
4887	output = &UpdateClusterSettingsOutput{}
4888	req = c.newRequest(op, input, output)
4889	return
4890}
4891
4892// UpdateClusterSettings API operation for Amazon EC2 Container Service.
4893//
4894// Modifies the settings to use for a cluster.
4895//
4896// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4897// with awserr.Error's Code and Message methods to get detailed information about
4898// the error.
4899//
4900// See the AWS API reference guide for Amazon EC2 Container Service's
4901// API operation UpdateClusterSettings for usage and error information.
4902//
4903// Returned Error Types:
4904//   * ServerException
4905//   These errors are usually caused by a server issue.
4906//
4907//   * ClientException
4908//   These errors are usually caused by a client action, such as using an action
4909//   or resource on behalf of a user that doesn't have permissions to use the
4910//   action or resource, or specifying an identifier that is not valid.
4911//
4912//   * ClusterNotFoundException
4913//   The specified cluster could not be found. You can view your available clusters
4914//   with ListClusters. Amazon ECS clusters are Region-specific.
4915//
4916//   * InvalidParameterException
4917//   The specified parameter is invalid. Review the available parameters for the
4918//   API request.
4919//
4920// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4921func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
4922	req, out := c.UpdateClusterSettingsRequest(input)
4923	return out, req.Send()
4924}
4925
4926// UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
4927// the ability to pass a context and additional request options.
4928//
4929// See UpdateClusterSettings for details on how to use this API operation.
4930//
4931// The context must be non-nil and will be used for request cancellation. If
4932// the context is nil a panic will occur. In the future the SDK may create
4933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4934// for more information on using Contexts.
4935func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
4936	req, out := c.UpdateClusterSettingsRequest(input)
4937	req.SetContext(ctx)
4938	req.ApplyOptions(opts...)
4939	return out, req.Send()
4940}
4941
4942const opUpdateContainerAgent = "UpdateContainerAgent"
4943
4944// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
4945// client's request for the UpdateContainerAgent operation. The "output" return
4946// value will be populated with the request's response once the request completes
4947// successfully.
4948//
4949// Use "Send" method on the returned Request to send the API call to the service.
4950// the "output" return value is not valid until after Send returns without error.
4951//
4952// See UpdateContainerAgent for more information on using the UpdateContainerAgent
4953// API call, and error handling.
4954//
4955// This method is useful when you want to inject custom logic or configuration
4956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4957//
4958//
4959//    // Example sending a request using the UpdateContainerAgentRequest method.
4960//    req, resp := client.UpdateContainerAgentRequest(params)
4961//
4962//    err := req.Send()
4963//    if err == nil { // resp is now filled
4964//        fmt.Println(resp)
4965//    }
4966//
4967// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4968func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
4969	op := &request.Operation{
4970		Name:       opUpdateContainerAgent,
4971		HTTPMethod: "POST",
4972		HTTPPath:   "/",
4973	}
4974
4975	if input == nil {
4976		input = &UpdateContainerAgentInput{}
4977	}
4978
4979	output = &UpdateContainerAgentOutput{}
4980	req = c.newRequest(op, input, output)
4981	return
4982}
4983
4984// UpdateContainerAgent API operation for Amazon EC2 Container Service.
4985//
4986// Updates the Amazon ECS container agent on a specified container instance.
4987// Updating the Amazon ECS container agent does not interrupt running tasks
4988// or services on the container instance. The process for updating the agent
4989// differs depending on whether your container instance was launched with the
4990// Amazon ECS-optimized AMI or another operating system.
4991//
4992// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
4993// with the ecs-init service installed and running. For help updating the Amazon
4994// ECS container agent on other operating systems, see Manually Updating the
4995// Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
4996// in the Amazon Elastic Container Service Developer Guide.
4997//
4998// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4999// with awserr.Error's Code and Message methods to get detailed information about
5000// the error.
5001//
5002// See the AWS API reference guide for Amazon EC2 Container Service's
5003// API operation UpdateContainerAgent for usage and error information.
5004//
5005// Returned Error Types:
5006//   * ServerException
5007//   These errors are usually caused by a server issue.
5008//
5009//   * ClientException
5010//   These errors are usually caused by a client action, such as using an action
5011//   or resource on behalf of a user that doesn't have permissions to use the
5012//   action or resource, or specifying an identifier that is not valid.
5013//
5014//   * InvalidParameterException
5015//   The specified parameter is invalid. Review the available parameters for the
5016//   API request.
5017//
5018//   * ClusterNotFoundException
5019//   The specified cluster could not be found. You can view your available clusters
5020//   with ListClusters. Amazon ECS clusters are Region-specific.
5021//
5022//   * UpdateInProgressException
5023//   There is already a current Amazon ECS container agent update in progress
5024//   on the specified container instance. If the container agent becomes disconnected
5025//   while it is in a transitional stage, such as PENDING or STAGING, the update
5026//   process can get stuck in that state. However, when the agent reconnects,
5027//   it resumes where it stopped previously.
5028//
5029//   * NoUpdateAvailableException
5030//   There is no update available for this Amazon ECS container agent. This could
5031//   be because the agent is already running the latest version, or it is so old
5032//   that there is no update path to the current version.
5033//
5034//   * MissingVersionException
5035//   Amazon ECS is unable to determine the current version of the Amazon ECS container
5036//   agent on the container instance and does not have enough information to proceed
5037//   with an update. This could be because the agent running on the container
5038//   instance is an older or custom version that does not use our version information.
5039//
5040// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
5041func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
5042	req, out := c.UpdateContainerAgentRequest(input)
5043	return out, req.Send()
5044}
5045
5046// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
5047// the ability to pass a context and additional request options.
5048//
5049// See UpdateContainerAgent for details on how to use this API operation.
5050//
5051// The context must be non-nil and will be used for request cancellation. If
5052// the context is nil a panic will occur. In the future the SDK may create
5053// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5054// for more information on using Contexts.
5055func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
5056	req, out := c.UpdateContainerAgentRequest(input)
5057	req.SetContext(ctx)
5058	req.ApplyOptions(opts...)
5059	return out, req.Send()
5060}
5061
5062const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
5063
5064// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
5065// client's request for the UpdateContainerInstancesState operation. The "output" return
5066// value will be populated with the request's response once the request completes
5067// successfully.
5068//
5069// Use "Send" method on the returned Request to send the API call to the service.
5070// the "output" return value is not valid until after Send returns without error.
5071//
5072// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
5073// API call, and error handling.
5074//
5075// This method is useful when you want to inject custom logic or configuration
5076// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5077//
5078//
5079//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
5080//    req, resp := client.UpdateContainerInstancesStateRequest(params)
5081//
5082//    err := req.Send()
5083//    if err == nil { // resp is now filled
5084//        fmt.Println(resp)
5085//    }
5086//
5087// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5088func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
5089	op := &request.Operation{
5090		Name:       opUpdateContainerInstancesState,
5091		HTTPMethod: "POST",
5092		HTTPPath:   "/",
5093	}
5094
5095	if input == nil {
5096		input = &UpdateContainerInstancesStateInput{}
5097	}
5098
5099	output = &UpdateContainerInstancesStateOutput{}
5100	req = c.newRequest(op, input, output)
5101	return
5102}
5103
5104// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
5105//
5106// Modifies the status of an Amazon ECS container instance.
5107//
5108// Once a container instance has reached an ACTIVE state, you can change the
5109// status of a container instance to DRAINING to manually remove an instance
5110// from a cluster, for example to perform system updates, update the Docker
5111// daemon, or scale down the cluster size.
5112//
5113// A container instance cannot be changed to DRAINING until it has reached an
5114// ACTIVE status. If the instance is in any other status, an error will be received.
5115//
5116// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
5117// from being scheduled for placement on the container instance and replacement
5118// service tasks are started on other container instances in the cluster if
5119// the resources are available. Service tasks on the container instance that
5120// are in the PENDING state are stopped immediately.
5121//
5122// Service tasks on the container instance that are in the RUNNING state are
5123// stopped and replaced according to the service's deployment configuration
5124// parameters, minimumHealthyPercent and maximumPercent. You can change the
5125// deployment configuration of your service using UpdateService.
5126//
5127//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5128//    temporarily during task replacement. For example, desiredCount is four
5129//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5130//    before starting two new tasks. If the minimum is 100%, the service scheduler
5131//    can't remove existing tasks until the replacement tasks are considered
5132//    healthy. Tasks for services that do not use a load balancer are considered
5133//    healthy if they are in the RUNNING state. Tasks for services that use
5134//    a load balancer are considered healthy if they are in the RUNNING state
5135//    and the container instance they are hosted on is reported as healthy by
5136//    the load balancer.
5137//
5138//    * The maximumPercent parameter represents an upper limit on the number
5139//    of running tasks during task replacement, which enables you to define
5140//    the replacement batch size. For example, if desiredCount is four tasks,
5141//    a maximum of 200% starts four new tasks before stopping the four tasks
5142//    to be drained, provided that the cluster resources required to do this
5143//    are available. If the maximum is 100%, then replacement tasks can't start
5144//    until the draining tasks have stopped.
5145//
5146// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
5147// You must wait for them to finish or stop them manually.
5148//
5149// A container instance has completed draining when it has no more RUNNING tasks.
5150// You can verify this using ListTasks.
5151//
5152// When a container instance has been drained, you can set a container instance
5153// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
5154// can begin scheduling tasks on the instance again.
5155//
5156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5157// with awserr.Error's Code and Message methods to get detailed information about
5158// the error.
5159//
5160// See the AWS API reference guide for Amazon EC2 Container Service's
5161// API operation UpdateContainerInstancesState for usage and error information.
5162//
5163// Returned Error Types:
5164//   * ServerException
5165//   These errors are usually caused by a server issue.
5166//
5167//   * ClientException
5168//   These errors are usually caused by a client action, such as using an action
5169//   or resource on behalf of a user that doesn't have permissions to use the
5170//   action or resource, or specifying an identifier that is not valid.
5171//
5172//   * InvalidParameterException
5173//   The specified parameter is invalid. Review the available parameters for the
5174//   API request.
5175//
5176//   * ClusterNotFoundException
5177//   The specified cluster could not be found. You can view your available clusters
5178//   with ListClusters. Amazon ECS clusters are Region-specific.
5179//
5180// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5181func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
5182	req, out := c.UpdateContainerInstancesStateRequest(input)
5183	return out, req.Send()
5184}
5185
5186// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
5187// the ability to pass a context and additional request options.
5188//
5189// See UpdateContainerInstancesState for details on how to use this API operation.
5190//
5191// The context must be non-nil and will be used for request cancellation. If
5192// the context is nil a panic will occur. In the future the SDK may create
5193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5194// for more information on using Contexts.
5195func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
5196	req, out := c.UpdateContainerInstancesStateRequest(input)
5197	req.SetContext(ctx)
5198	req.ApplyOptions(opts...)
5199	return out, req.Send()
5200}
5201
5202const opUpdateService = "UpdateService"
5203
5204// UpdateServiceRequest generates a "aws/request.Request" representing the
5205// client's request for the UpdateService operation. The "output" return
5206// value will be populated with the request's response once the request completes
5207// successfully.
5208//
5209// Use "Send" method on the returned Request to send the API call to the service.
5210// the "output" return value is not valid until after Send returns without error.
5211//
5212// See UpdateService for more information on using the UpdateService
5213// API call, and error handling.
5214//
5215// This method is useful when you want to inject custom logic or configuration
5216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5217//
5218//
5219//    // Example sending a request using the UpdateServiceRequest method.
5220//    req, resp := client.UpdateServiceRequest(params)
5221//
5222//    err := req.Send()
5223//    if err == nil { // resp is now filled
5224//        fmt.Println(resp)
5225//    }
5226//
5227// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5228func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
5229	op := &request.Operation{
5230		Name:       opUpdateService,
5231		HTTPMethod: "POST",
5232		HTTPPath:   "/",
5233	}
5234
5235	if input == nil {
5236		input = &UpdateServiceInput{}
5237	}
5238
5239	output = &UpdateServiceOutput{}
5240	req = c.newRequest(op, input, output)
5241	return
5242}
5243
5244// UpdateService API operation for Amazon EC2 Container Service.
5245//
5246//
5247// Updating the task placement strategies and constraints on an Amazon ECS service
5248// remains in preview and is a Beta Service as defined by and subject to the
5249// Beta Service Participation Service Terms located at https://aws.amazon.com/service-terms
5250// (https://aws.amazon.com/service-terms) ("Beta Terms"). These Beta Terms apply
5251// to your participation in this preview.
5252//
5253// Modifies the parameters of a service.
5254//
5255// For services using the rolling update (ECS) deployment controller, the desired
5256// count, deployment configuration, network configuration, task placement constraints
5257// and strategies, or task definition used can be updated.
5258//
5259// For services using the blue/green (CODE_DEPLOY) deployment controller, only
5260// the desired count, deployment configuration, task placement constraints and
5261// strategies, and health check grace period can be updated using this API.
5262// If the network configuration, platform version, or task definition need to
5263// be updated, a new AWS CodeDeploy deployment should be created. For more information,
5264// see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
5265// in the AWS CodeDeploy API Reference.
5266//
5267// For services using an external deployment controller, you can update only
5268// the desired count, task placement constraints and strategies, and health
5269// check grace period using this API. If the launch type, load balancer, network
5270// configuration, platform version, or task definition need to be updated, you
5271// should create a new task set. For more information, see CreateTaskSet.
5272//
5273// You can add to or subtract from the number of instantiations of a task definition
5274// in a service by specifying the cluster that the service is running in and
5275// a new desiredCount parameter.
5276//
5277// If you have updated the Docker image of your application, you can create
5278// a new task definition with that image and deploy it to your service. The
5279// service scheduler uses the minimum healthy percent and maximum percent parameters
5280// (in the service's deployment configuration) to determine the deployment strategy.
5281//
5282// If your updated Docker image uses the same tag as what is in the existing
5283// task definition for your service (for example, my_image:latest), you do not
5284// need to create a new revision of your task definition. You can update the
5285// service using the forceNewDeployment option. The new tasks launched by the
5286// deployment pull the current image/tag combination from your repository when
5287// they start.
5288//
5289// You can also update the deployment configuration of a service. When a deployment
5290// is triggered by updating the task definition of a service, the service scheduler
5291// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
5292// to determine the deployment strategy.
5293//
5294//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5295//    temporarily during a deployment. For example, if desiredCount is four
5296//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5297//    before starting two new tasks. Tasks for services that do not use a load
5298//    balancer are considered healthy if they are in the RUNNING state. Tasks
5299//    for services that use a load balancer are considered healthy if they are
5300//    in the RUNNING state and the container instance they are hosted on is
5301//    reported as healthy by the load balancer.
5302//
5303//    * The maximumPercent parameter represents an upper limit on the number
5304//    of running tasks during a deployment, which enables you to define the
5305//    deployment batch size. For example, if desiredCount is four tasks, a maximum
5306//    of 200% starts four new tasks before stopping the four older tasks (provided
5307//    that the cluster resources required to do this are available).
5308//
5309// When UpdateService stops a task during a deployment, the equivalent of docker
5310// stop is issued to the containers running in the task. This results in a SIGTERM
5311// and a 30-second timeout, after which SIGKILL is sent and the containers are
5312// forcibly stopped. If the container handles the SIGTERM gracefully and exits
5313// within 30 seconds from receiving it, no SIGKILL is sent.
5314//
5315// When the service scheduler launches new tasks, it determines task placement
5316// in your cluster with the following logic:
5317//
5318//    * Determine which of the container instances in your cluster can support
5319//    your service's task definition (for example, they have the required CPU,
5320//    memory, ports, and container instance attributes).
5321//
5322//    * By default, the service scheduler attempts to balance tasks across Availability
5323//    Zones in this manner (although you can choose a different placement strategy):
5324//    Sort the valid container instances by the fewest number of running tasks
5325//    for this service in the same Availability Zone as the instance. For example,
5326//    if zone A has one running service task and zones B and C each have zero,
5327//    valid container instances in either zone B or C are considered optimal
5328//    for placement. Place the new service task on a valid container instance
5329//    in an optimal Availability Zone (based on the previous steps), favoring
5330//    container instances with the fewest number of running tasks for this service.
5331//
5332// When the service scheduler stops running tasks, it attempts to maintain balance
5333// across the Availability Zones in your cluster using the following logic:
5334//
5335//    * Sort the container instances by the largest number of running tasks
5336//    for this service in the same Availability Zone as the instance. For example,
5337//    if zone A has one running service task and zones B and C each have two,
5338//    container instances in either zone B or C are considered optimal for termination.
5339//
5340//    * Stop the task on a container instance in an optimal Availability Zone
5341//    (based on the previous steps), favoring container instances with the largest
5342//    number of running tasks for this service.
5343//
5344// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5345// with awserr.Error's Code and Message methods to get detailed information about
5346// the error.
5347//
5348// See the AWS API reference guide for Amazon EC2 Container Service's
5349// API operation UpdateService for usage and error information.
5350//
5351// Returned Error Types:
5352//   * ServerException
5353//   These errors are usually caused by a server issue.
5354//
5355//   * ClientException
5356//   These errors are usually caused by a client action, such as using an action
5357//   or resource on behalf of a user that doesn't have permissions to use the
5358//   action or resource, or specifying an identifier that is not valid.
5359//
5360//   * InvalidParameterException
5361//   The specified parameter is invalid. Review the available parameters for the
5362//   API request.
5363//
5364//   * ClusterNotFoundException
5365//   The specified cluster could not be found. You can view your available clusters
5366//   with ListClusters. Amazon ECS clusters are Region-specific.
5367//
5368//   * ServiceNotFoundException
5369//   The specified service could not be found. You can view your available services
5370//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5371//
5372//   * ServiceNotActiveException
5373//   The specified service is not active. You can't update a service that is inactive.
5374//   If you have previously deleted a service, you can re-create it with CreateService.
5375//
5376//   * PlatformUnknownException
5377//   The specified platform version does not exist.
5378//
5379//   * PlatformTaskDefinitionIncompatibilityException
5380//   The specified platform version does not satisfy the task definition's required
5381//   capabilities.
5382//
5383//   * AccessDeniedException
5384//   You do not have authorization to perform the requested action.
5385//
5386// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5387func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
5388	req, out := c.UpdateServiceRequest(input)
5389	return out, req.Send()
5390}
5391
5392// UpdateServiceWithContext is the same as UpdateService with the addition of
5393// the ability to pass a context and additional request options.
5394//
5395// See UpdateService for details on how to use this API operation.
5396//
5397// The context must be non-nil and will be used for request cancellation. If
5398// the context is nil a panic will occur. In the future the SDK may create
5399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5400// for more information on using Contexts.
5401func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
5402	req, out := c.UpdateServiceRequest(input)
5403	req.SetContext(ctx)
5404	req.ApplyOptions(opts...)
5405	return out, req.Send()
5406}
5407
5408const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
5409
5410// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
5411// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
5412// value will be populated with the request's response once the request completes
5413// successfully.
5414//
5415// Use "Send" method on the returned Request to send the API call to the service.
5416// the "output" return value is not valid until after Send returns without error.
5417//
5418// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
5419// API call, and error handling.
5420//
5421// This method is useful when you want to inject custom logic or configuration
5422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5423//
5424//
5425//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
5426//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
5427//
5428//    err := req.Send()
5429//    if err == nil { // resp is now filled
5430//        fmt.Println(resp)
5431//    }
5432//
5433// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5434func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
5435	op := &request.Operation{
5436		Name:       opUpdateServicePrimaryTaskSet,
5437		HTTPMethod: "POST",
5438		HTTPPath:   "/",
5439	}
5440
5441	if input == nil {
5442		input = &UpdateServicePrimaryTaskSetInput{}
5443	}
5444
5445	output = &UpdateServicePrimaryTaskSetOutput{}
5446	req = c.newRequest(op, input, output)
5447	return
5448}
5449
5450// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
5451//
5452// Modifies which task set in a service is the primary task set. Any parameters
5453// that are updated on the primary task set in a service will transition to
5454// the service. This is used when a service uses the EXTERNAL deployment controller
5455// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5456// in the Amazon Elastic Container Service Developer Guide.
5457//
5458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5459// with awserr.Error's Code and Message methods to get detailed information about
5460// the error.
5461//
5462// See the AWS API reference guide for Amazon EC2 Container Service's
5463// API operation UpdateServicePrimaryTaskSet for usage and error information.
5464//
5465// Returned Error Types:
5466//   * ServerException
5467//   These errors are usually caused by a server issue.
5468//
5469//   * ClientException
5470//   These errors are usually caused by a client action, such as using an action
5471//   or resource on behalf of a user that doesn't have permissions to use the
5472//   action or resource, or specifying an identifier that is not valid.
5473//
5474//   * InvalidParameterException
5475//   The specified parameter is invalid. Review the available parameters for the
5476//   API request.
5477//
5478//   * ClusterNotFoundException
5479//   The specified cluster could not be found. You can view your available clusters
5480//   with ListClusters. Amazon ECS clusters are Region-specific.
5481//
5482//   * UnsupportedFeatureException
5483//   The specified task is not supported in this Region.
5484//
5485//   * ServiceNotFoundException
5486//   The specified service could not be found. You can view your available services
5487//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5488//
5489//   * ServiceNotActiveException
5490//   The specified service is not active. You can't update a service that is inactive.
5491//   If you have previously deleted a service, you can re-create it with CreateService.
5492//
5493//   * TaskSetNotFoundException
5494//   The specified task set could not be found. You can view your available task
5495//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5496//   and Region.
5497//
5498//   * AccessDeniedException
5499//   You do not have authorization to perform the requested action.
5500//
5501// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5502func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
5503	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5504	return out, req.Send()
5505}
5506
5507// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
5508// the ability to pass a context and additional request options.
5509//
5510// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
5511//
5512// The context must be non-nil and will be used for request cancellation. If
5513// the context is nil a panic will occur. In the future the SDK may create
5514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5515// for more information on using Contexts.
5516func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
5517	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5518	req.SetContext(ctx)
5519	req.ApplyOptions(opts...)
5520	return out, req.Send()
5521}
5522
5523const opUpdateTaskSet = "UpdateTaskSet"
5524
5525// UpdateTaskSetRequest generates a "aws/request.Request" representing the
5526// client's request for the UpdateTaskSet operation. The "output" return
5527// value will be populated with the request's response once the request completes
5528// successfully.
5529//
5530// Use "Send" method on the returned Request to send the API call to the service.
5531// the "output" return value is not valid until after Send returns without error.
5532//
5533// See UpdateTaskSet for more information on using the UpdateTaskSet
5534// API call, and error handling.
5535//
5536// This method is useful when you want to inject custom logic or configuration
5537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5538//
5539//
5540//    // Example sending a request using the UpdateTaskSetRequest method.
5541//    req, resp := client.UpdateTaskSetRequest(params)
5542//
5543//    err := req.Send()
5544//    if err == nil { // resp is now filled
5545//        fmt.Println(resp)
5546//    }
5547//
5548// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5549func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
5550	op := &request.Operation{
5551		Name:       opUpdateTaskSet,
5552		HTTPMethod: "POST",
5553		HTTPPath:   "/",
5554	}
5555
5556	if input == nil {
5557		input = &UpdateTaskSetInput{}
5558	}
5559
5560	output = &UpdateTaskSetOutput{}
5561	req = c.newRequest(op, input, output)
5562	return
5563}
5564
5565// UpdateTaskSet API operation for Amazon EC2 Container Service.
5566//
5567// Modifies a task set. This is used when a service uses the EXTERNAL deployment
5568// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5569// in the Amazon Elastic Container Service Developer Guide.
5570//
5571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5572// with awserr.Error's Code and Message methods to get detailed information about
5573// the error.
5574//
5575// See the AWS API reference guide for Amazon EC2 Container Service's
5576// API operation UpdateTaskSet for usage and error information.
5577//
5578// Returned Error Types:
5579//   * ServerException
5580//   These errors are usually caused by a server issue.
5581//
5582//   * ClientException
5583//   These errors are usually caused by a client action, such as using an action
5584//   or resource on behalf of a user that doesn't have permissions to use the
5585//   action or resource, or specifying an identifier that is not valid.
5586//
5587//   * InvalidParameterException
5588//   The specified parameter is invalid. Review the available parameters for the
5589//   API request.
5590//
5591//   * ClusterNotFoundException
5592//   The specified cluster could not be found. You can view your available clusters
5593//   with ListClusters. Amazon ECS clusters are Region-specific.
5594//
5595//   * UnsupportedFeatureException
5596//   The specified task is not supported in this Region.
5597//
5598//   * AccessDeniedException
5599//   You do not have authorization to perform the requested action.
5600//
5601//   * ServiceNotFoundException
5602//   The specified service could not be found. You can view your available services
5603//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5604//
5605//   * ServiceNotActiveException
5606//   The specified service is not active. You can't update a service that is inactive.
5607//   If you have previously deleted a service, you can re-create it with CreateService.
5608//
5609//   * TaskSetNotFoundException
5610//   The specified task set could not be found. You can view your available task
5611//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5612//   and Region.
5613//
5614// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5615func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
5616	req, out := c.UpdateTaskSetRequest(input)
5617	return out, req.Send()
5618}
5619
5620// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
5621// the ability to pass a context and additional request options.
5622//
5623// See UpdateTaskSet for details on how to use this API operation.
5624//
5625// The context must be non-nil and will be used for request cancellation. If
5626// the context is nil a panic will occur. In the future the SDK may create
5627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5628// for more information on using Contexts.
5629func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
5630	req, out := c.UpdateTaskSetRequest(input)
5631	req.SetContext(ctx)
5632	req.ApplyOptions(opts...)
5633	return out, req.Send()
5634}
5635
5636// You do not have authorization to perform the requested action.
5637type AccessDeniedException struct {
5638	_            struct{}                  `type:"structure"`
5639	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5640
5641	Message_ *string `locationName:"message" type:"string"`
5642}
5643
5644// String returns the string representation
5645func (s AccessDeniedException) String() string {
5646	return awsutil.Prettify(s)
5647}
5648
5649// GoString returns the string representation
5650func (s AccessDeniedException) GoString() string {
5651	return s.String()
5652}
5653
5654func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5655	return &AccessDeniedException{
5656		RespMetadata: v,
5657	}
5658}
5659
5660// Code returns the exception type name.
5661func (s *AccessDeniedException) Code() string {
5662	return "AccessDeniedException"
5663}
5664
5665// Message returns the exception's message.
5666func (s *AccessDeniedException) Message() string {
5667	if s.Message_ != nil {
5668		return *s.Message_
5669	}
5670	return ""
5671}
5672
5673// OrigErr always returns nil, satisfies awserr.Error interface.
5674func (s *AccessDeniedException) OrigErr() error {
5675	return nil
5676}
5677
5678func (s *AccessDeniedException) Error() string {
5679	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5680}
5681
5682// Status code returns the HTTP status code for the request's response error.
5683func (s *AccessDeniedException) StatusCode() int {
5684	return s.RespMetadata.StatusCode
5685}
5686
5687// RequestID returns the service's response RequestID for request.
5688func (s *AccessDeniedException) RequestID() string {
5689	return s.RespMetadata.RequestID
5690}
5691
5692// An object representing a container instance or task attachment.
5693type Attachment struct {
5694	_ struct{} `type:"structure"`
5695
5696	// Details of the attachment. For elastic network interfaces, this includes
5697	// the network interface ID, the MAC address, the subnet ID, and the private
5698	// IPv4 address.
5699	Details []*KeyValuePair `locationName:"details" type:"list"`
5700
5701	// The unique identifier for the attachment.
5702	Id *string `locationName:"id" type:"string"`
5703
5704	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
5705	// ATTACHED, DETACHING, DETACHED, and DELETED.
5706	Status *string `locationName:"status" type:"string"`
5707
5708	// The type of the attachment, such as ElasticNetworkInterface.
5709	Type *string `locationName:"type" type:"string"`
5710}
5711
5712// String returns the string representation
5713func (s Attachment) String() string {
5714	return awsutil.Prettify(s)
5715}
5716
5717// GoString returns the string representation
5718func (s Attachment) GoString() string {
5719	return s.String()
5720}
5721
5722// SetDetails sets the Details field's value.
5723func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
5724	s.Details = v
5725	return s
5726}
5727
5728// SetId sets the Id field's value.
5729func (s *Attachment) SetId(v string) *Attachment {
5730	s.Id = &v
5731	return s
5732}
5733
5734// SetStatus sets the Status field's value.
5735func (s *Attachment) SetStatus(v string) *Attachment {
5736	s.Status = &v
5737	return s
5738}
5739
5740// SetType sets the Type field's value.
5741func (s *Attachment) SetType(v string) *Attachment {
5742	s.Type = &v
5743	return s
5744}
5745
5746// An object representing a change in state for a task attachment.
5747type AttachmentStateChange struct {
5748	_ struct{} `type:"structure"`
5749
5750	// The Amazon Resource Name (ARN) of the attachment.
5751	//
5752	// AttachmentArn is a required field
5753	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
5754
5755	// The status of the attachment.
5756	//
5757	// Status is a required field
5758	Status *string `locationName:"status" type:"string" required:"true"`
5759}
5760
5761// String returns the string representation
5762func (s AttachmentStateChange) String() string {
5763	return awsutil.Prettify(s)
5764}
5765
5766// GoString returns the string representation
5767func (s AttachmentStateChange) GoString() string {
5768	return s.String()
5769}
5770
5771// Validate inspects the fields of the type to determine if they are valid.
5772func (s *AttachmentStateChange) Validate() error {
5773	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
5774	if s.AttachmentArn == nil {
5775		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
5776	}
5777	if s.Status == nil {
5778		invalidParams.Add(request.NewErrParamRequired("Status"))
5779	}
5780
5781	if invalidParams.Len() > 0 {
5782		return invalidParams
5783	}
5784	return nil
5785}
5786
5787// SetAttachmentArn sets the AttachmentArn field's value.
5788func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
5789	s.AttachmentArn = &v
5790	return s
5791}
5792
5793// SetStatus sets the Status field's value.
5794func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
5795	s.Status = &v
5796	return s
5797}
5798
5799// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
5800// enable you to extend the Amazon ECS data model by adding custom metadata
5801// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
5802// in the Amazon Elastic Container Service Developer Guide.
5803type Attribute struct {
5804	_ struct{} `type:"structure"`
5805
5806	// The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers,
5807	// hyphens, underscores, and periods are allowed.
5808	//
5809	// Name is a required field
5810	Name *string `locationName:"name" type:"string" required:"true"`
5811
5812	// The ID of the target. You can specify the short form ID for a resource or
5813	// the full Amazon Resource Name (ARN).
5814	TargetId *string `locationName:"targetId" type:"string"`
5815
5816	// The type of the target with which to attach the attribute. This parameter
5817	// is required if you use the short form ID for a resource instead of the full
5818	// ARN.
5819	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
5820
5821	// The value of the attribute. Up to 128 letters (uppercase and lowercase),
5822	// numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons,
5823	// and spaces are allowed.
5824	Value *string `locationName:"value" type:"string"`
5825}
5826
5827// String returns the string representation
5828func (s Attribute) String() string {
5829	return awsutil.Prettify(s)
5830}
5831
5832// GoString returns the string representation
5833func (s Attribute) GoString() string {
5834	return s.String()
5835}
5836
5837// Validate inspects the fields of the type to determine if they are valid.
5838func (s *Attribute) Validate() error {
5839	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5840	if s.Name == nil {
5841		invalidParams.Add(request.NewErrParamRequired("Name"))
5842	}
5843
5844	if invalidParams.Len() > 0 {
5845		return invalidParams
5846	}
5847	return nil
5848}
5849
5850// SetName sets the Name field's value.
5851func (s *Attribute) SetName(v string) *Attribute {
5852	s.Name = &v
5853	return s
5854}
5855
5856// SetTargetId sets the TargetId field's value.
5857func (s *Attribute) SetTargetId(v string) *Attribute {
5858	s.TargetId = &v
5859	return s
5860}
5861
5862// SetTargetType sets the TargetType field's value.
5863func (s *Attribute) SetTargetType(v string) *Attribute {
5864	s.TargetType = &v
5865	return s
5866}
5867
5868// SetValue sets the Value field's value.
5869func (s *Attribute) SetValue(v string) *Attribute {
5870	s.Value = &v
5871	return s
5872}
5873
5874// You can apply up to 10 custom attributes per resource. You can view the attributes
5875// of a resource with ListAttributes. You can remove existing attributes on
5876// a resource with DeleteAttributes.
5877type AttributeLimitExceededException struct {
5878	_            struct{}                  `type:"structure"`
5879	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5880
5881	Message_ *string `locationName:"message" type:"string"`
5882}
5883
5884// String returns the string representation
5885func (s AttributeLimitExceededException) String() string {
5886	return awsutil.Prettify(s)
5887}
5888
5889// GoString returns the string representation
5890func (s AttributeLimitExceededException) GoString() string {
5891	return s.String()
5892}
5893
5894func newErrorAttributeLimitExceededException(v protocol.ResponseMetadata) error {
5895	return &AttributeLimitExceededException{
5896		RespMetadata: v,
5897	}
5898}
5899
5900// Code returns the exception type name.
5901func (s *AttributeLimitExceededException) Code() string {
5902	return "AttributeLimitExceededException"
5903}
5904
5905// Message returns the exception's message.
5906func (s *AttributeLimitExceededException) Message() string {
5907	if s.Message_ != nil {
5908		return *s.Message_
5909	}
5910	return ""
5911}
5912
5913// OrigErr always returns nil, satisfies awserr.Error interface.
5914func (s *AttributeLimitExceededException) OrigErr() error {
5915	return nil
5916}
5917
5918func (s *AttributeLimitExceededException) Error() string {
5919	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5920}
5921
5922// Status code returns the HTTP status code for the request's response error.
5923func (s *AttributeLimitExceededException) StatusCode() int {
5924	return s.RespMetadata.StatusCode
5925}
5926
5927// RequestID returns the service's response RequestID for request.
5928func (s *AttributeLimitExceededException) RequestID() string {
5929	return s.RespMetadata.RequestID
5930}
5931
5932// The details of the Auto Scaling group for the capacity provider.
5933type AutoScalingGroupProvider struct {
5934	_ struct{} `type:"structure"`
5935
5936	// The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
5937	//
5938	// AutoScalingGroupArn is a required field
5939	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"`
5940
5941	// The managed scaling settings for the Auto Scaling group capacity provider.
5942	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
5943
5944	// The managed termination protection setting to use for the Auto Scaling group
5945	// capacity provider. This determines whether the Auto Scaling group has managed
5946	// termination protection.
5947	//
5948	// When using managed termination protection, managed scaling must also be used
5949	// otherwise managed termination protection will not work.
5950	//
5951	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
5952	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
5953	// during a scale-in action. The Auto Scaling group and each instance in the
5954	// Auto Scaling group must have instance protection from scale-in actions enabled
5955	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
5956	// in the AWS Auto Scaling User Guide.
5957	//
5958	// When managed termination protection is disabled, your Amazon EC2 instances
5959	// are not protected from termination when the Auto Scaling group scales in.
5960	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
5961}
5962
5963// String returns the string representation
5964func (s AutoScalingGroupProvider) String() string {
5965	return awsutil.Prettify(s)
5966}
5967
5968// GoString returns the string representation
5969func (s AutoScalingGroupProvider) GoString() string {
5970	return s.String()
5971}
5972
5973// Validate inspects the fields of the type to determine if they are valid.
5974func (s *AutoScalingGroupProvider) Validate() error {
5975	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProvider"}
5976	if s.AutoScalingGroupArn == nil {
5977		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupArn"))
5978	}
5979	if s.ManagedScaling != nil {
5980		if err := s.ManagedScaling.Validate(); err != nil {
5981			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
5982		}
5983	}
5984
5985	if invalidParams.Len() > 0 {
5986		return invalidParams
5987	}
5988	return nil
5989}
5990
5991// SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
5992func (s *AutoScalingGroupProvider) SetAutoScalingGroupArn(v string) *AutoScalingGroupProvider {
5993	s.AutoScalingGroupArn = &v
5994	return s
5995}
5996
5997// SetManagedScaling sets the ManagedScaling field's value.
5998func (s *AutoScalingGroupProvider) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProvider {
5999	s.ManagedScaling = v
6000	return s
6001}
6002
6003// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
6004func (s *AutoScalingGroupProvider) SetManagedTerminationProtection(v string) *AutoScalingGroupProvider {
6005	s.ManagedTerminationProtection = &v
6006	return s
6007}
6008
6009// An object representing the networking details for a task or service.
6010type AwsVpcConfiguration struct {
6011	_ struct{} `type:"structure"`
6012
6013	// Whether the task's elastic network interface receives a public IP address.
6014	// The default value is DISABLED.
6015	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
6016
6017	// The security groups associated with the task or service. If you do not specify
6018	// a security group, the default security group for the VPC is used. There is
6019	// a limit of 5 security groups that can be specified per AwsVpcConfiguration.
6020	//
6021	// All specified security groups must be from the same VPC.
6022	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
6023
6024	// The subnets associated with the task or service. There is a limit of 16 subnets
6025	// that can be specified per AwsVpcConfiguration.
6026	//
6027	// All specified subnets must be from the same VPC.
6028	//
6029	// Subnets is a required field
6030	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
6031}
6032
6033// String returns the string representation
6034func (s AwsVpcConfiguration) String() string {
6035	return awsutil.Prettify(s)
6036}
6037
6038// GoString returns the string representation
6039func (s AwsVpcConfiguration) GoString() string {
6040	return s.String()
6041}
6042
6043// Validate inspects the fields of the type to determine if they are valid.
6044func (s *AwsVpcConfiguration) Validate() error {
6045	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
6046	if s.Subnets == nil {
6047		invalidParams.Add(request.NewErrParamRequired("Subnets"))
6048	}
6049
6050	if invalidParams.Len() > 0 {
6051		return invalidParams
6052	}
6053	return nil
6054}
6055
6056// SetAssignPublicIp sets the AssignPublicIp field's value.
6057func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
6058	s.AssignPublicIp = &v
6059	return s
6060}
6061
6062// SetSecurityGroups sets the SecurityGroups field's value.
6063func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
6064	s.SecurityGroups = v
6065	return s
6066}
6067
6068// SetSubnets sets the Subnets field's value.
6069func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
6070	s.Subnets = v
6071	return s
6072}
6073
6074// Your AWS account has been blocked. For more information, contact AWS Support
6075// (http://aws.amazon.com/contact-us/).
6076type BlockedException struct {
6077	_            struct{}                  `type:"structure"`
6078	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6079
6080	Message_ *string `locationName:"message" type:"string"`
6081}
6082
6083// String returns the string representation
6084func (s BlockedException) String() string {
6085	return awsutil.Prettify(s)
6086}
6087
6088// GoString returns the string representation
6089func (s BlockedException) GoString() string {
6090	return s.String()
6091}
6092
6093func newErrorBlockedException(v protocol.ResponseMetadata) error {
6094	return &BlockedException{
6095		RespMetadata: v,
6096	}
6097}
6098
6099// Code returns the exception type name.
6100func (s *BlockedException) Code() string {
6101	return "BlockedException"
6102}
6103
6104// Message returns the exception's message.
6105func (s *BlockedException) Message() string {
6106	if s.Message_ != nil {
6107		return *s.Message_
6108	}
6109	return ""
6110}
6111
6112// OrigErr always returns nil, satisfies awserr.Error interface.
6113func (s *BlockedException) OrigErr() error {
6114	return nil
6115}
6116
6117func (s *BlockedException) Error() string {
6118	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6119}
6120
6121// Status code returns the HTTP status code for the request's response error.
6122func (s *BlockedException) StatusCode() int {
6123	return s.RespMetadata.StatusCode
6124}
6125
6126// RequestID returns the service's response RequestID for request.
6127func (s *BlockedException) RequestID() string {
6128	return s.RespMetadata.RequestID
6129}
6130
6131// The details of a capacity provider.
6132type CapacityProvider struct {
6133	_ struct{} `type:"structure"`
6134
6135	// The Auto Scaling group settings for the capacity provider.
6136	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"`
6137
6138	// The Amazon Resource Name (ARN) that identifies the capacity provider.
6139	CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"`
6140
6141	// The name of the capacity provider.
6142	Name *string `locationName:"name" type:"string"`
6143
6144	// The current status of the capacity provider. Only capacity providers in an
6145	// ACTIVE state can be used in a cluster. When a capacity provider is successfully
6146	// deleted, it will have an INACTIVE status.
6147	Status *string `locationName:"status" type:"string" enum:"CapacityProviderStatus"`
6148
6149	// The metadata that you apply to the capacity provider to help you categorize
6150	// and organize it. Each tag consists of a key and an optional value, both of
6151	// which you define.
6152	//
6153	// The following basic restrictions apply to tags:
6154	//
6155	//    * Maximum number of tags per resource - 50
6156	//
6157	//    * For each resource, each tag key must be unique, and each tag key can
6158	//    have only one value.
6159	//
6160	//    * Maximum key length - 128 Unicode characters in UTF-8
6161	//
6162	//    * Maximum value length - 256 Unicode characters in UTF-8
6163	//
6164	//    * If your tagging schema is used across multiple services and resources,
6165	//    remember that other services may have restrictions on allowed characters.
6166	//    Generally allowed characters are: letters, numbers, and spaces representable
6167	//    in UTF-8, and the following characters: + - = . _ : / @.
6168	//
6169	//    * Tag keys and values are case-sensitive.
6170	//
6171	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6172	//    as a prefix for either keys or values as it is reserved for AWS use. You
6173	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6174	//    prefix do not count against your tags per resource limit.
6175	Tags []*Tag `locationName:"tags" type:"list"`
6176
6177	// The update status of the capacity provider. The following are the possible
6178	// states that will be returned.
6179	//
6180	// DELETE_IN_PROGRESS
6181	//
6182	// The capacity provider is in the process of being deleted.
6183	//
6184	// DELETE_COMPLETE
6185	//
6186	// The capacity provider has been successfully deleted and will have an INACTIVE
6187	// status.
6188	//
6189	// DELETE_FAILED
6190	//
6191	// The capacity provider was unable to be deleted. The update status reason
6192	// will provide further details about why the delete failed.
6193	UpdateStatus *string `locationName:"updateStatus" type:"string" enum:"CapacityProviderUpdateStatus"`
6194
6195	// The update status reason. This provides further details about the update
6196	// status for the capacity provider.
6197	UpdateStatusReason *string `locationName:"updateStatusReason" type:"string"`
6198}
6199
6200// String returns the string representation
6201func (s CapacityProvider) String() string {
6202	return awsutil.Prettify(s)
6203}
6204
6205// GoString returns the string representation
6206func (s CapacityProvider) GoString() string {
6207	return s.String()
6208}
6209
6210// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
6211func (s *CapacityProvider) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CapacityProvider {
6212	s.AutoScalingGroupProvider = v
6213	return s
6214}
6215
6216// SetCapacityProviderArn sets the CapacityProviderArn field's value.
6217func (s *CapacityProvider) SetCapacityProviderArn(v string) *CapacityProvider {
6218	s.CapacityProviderArn = &v
6219	return s
6220}
6221
6222// SetName sets the Name field's value.
6223func (s *CapacityProvider) SetName(v string) *CapacityProvider {
6224	s.Name = &v
6225	return s
6226}
6227
6228// SetStatus sets the Status field's value.
6229func (s *CapacityProvider) SetStatus(v string) *CapacityProvider {
6230	s.Status = &v
6231	return s
6232}
6233
6234// SetTags sets the Tags field's value.
6235func (s *CapacityProvider) SetTags(v []*Tag) *CapacityProvider {
6236	s.Tags = v
6237	return s
6238}
6239
6240// SetUpdateStatus sets the UpdateStatus field's value.
6241func (s *CapacityProvider) SetUpdateStatus(v string) *CapacityProvider {
6242	s.UpdateStatus = &v
6243	return s
6244}
6245
6246// SetUpdateStatusReason sets the UpdateStatusReason field's value.
6247func (s *CapacityProvider) SetUpdateStatusReason(v string) *CapacityProvider {
6248	s.UpdateStatusReason = &v
6249	return s
6250}
6251
6252// The details of a capacity provider strategy.
6253type CapacityProviderStrategyItem struct {
6254	_ struct{} `type:"structure"`
6255
6256	// The base value designates how many tasks, at a minimum, to run on the specified
6257	// capacity provider. Only one capacity provider in a capacity provider strategy
6258	// can have a base defined.
6259	Base *int64 `locationName:"base" type:"integer"`
6260
6261	// The short name of the capacity provider.
6262	//
6263	// CapacityProvider is a required field
6264	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
6265
6266	// The weight value designates the relative percentage of the total number of
6267	// tasks launched that should use the specified capacity provider.
6268	//
6269	// For example, if you have a strategy that contains two capacity providers
6270	// and both have a weight of 1, then when the base is satisfied, the tasks will
6271	// be split evenly across the two capacity providers. Using that same logic,
6272	// if you specify a weight of 1 for capacityProviderA and a weight of 4 for
6273	// capacityProviderB, then for every one task that is run using capacityProviderA,
6274	// four tasks would use capacityProviderB.
6275	Weight *int64 `locationName:"weight" type:"integer"`
6276}
6277
6278// String returns the string representation
6279func (s CapacityProviderStrategyItem) String() string {
6280	return awsutil.Prettify(s)
6281}
6282
6283// GoString returns the string representation
6284func (s CapacityProviderStrategyItem) GoString() string {
6285	return s.String()
6286}
6287
6288// Validate inspects the fields of the type to determine if they are valid.
6289func (s *CapacityProviderStrategyItem) Validate() error {
6290	invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
6291	if s.CapacityProvider == nil {
6292		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
6293	}
6294
6295	if invalidParams.Len() > 0 {
6296		return invalidParams
6297	}
6298	return nil
6299}
6300
6301// SetBase sets the Base field's value.
6302func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
6303	s.Base = &v
6304	return s
6305}
6306
6307// SetCapacityProvider sets the CapacityProvider field's value.
6308func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
6309	s.CapacityProvider = &v
6310	return s
6311}
6312
6313// SetWeight sets the Weight field's value.
6314func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
6315	s.Weight = &v
6316	return s
6317}
6318
6319// These errors are usually caused by a client action, such as using an action
6320// or resource on behalf of a user that doesn't have permissions to use the
6321// action or resource, or specifying an identifier that is not valid.
6322type ClientException struct {
6323	_            struct{}                  `type:"structure"`
6324	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6325
6326	Message_ *string `locationName:"message" type:"string"`
6327}
6328
6329// String returns the string representation
6330func (s ClientException) String() string {
6331	return awsutil.Prettify(s)
6332}
6333
6334// GoString returns the string representation
6335func (s ClientException) GoString() string {
6336	return s.String()
6337}
6338
6339func newErrorClientException(v protocol.ResponseMetadata) error {
6340	return &ClientException{
6341		RespMetadata: v,
6342	}
6343}
6344
6345// Code returns the exception type name.
6346func (s *ClientException) Code() string {
6347	return "ClientException"
6348}
6349
6350// Message returns the exception's message.
6351func (s *ClientException) Message() string {
6352	if s.Message_ != nil {
6353		return *s.Message_
6354	}
6355	return ""
6356}
6357
6358// OrigErr always returns nil, satisfies awserr.Error interface.
6359func (s *ClientException) OrigErr() error {
6360	return nil
6361}
6362
6363func (s *ClientException) Error() string {
6364	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6365}
6366
6367// Status code returns the HTTP status code for the request's response error.
6368func (s *ClientException) StatusCode() int {
6369	return s.RespMetadata.StatusCode
6370}
6371
6372// RequestID returns the service's response RequestID for request.
6373func (s *ClientException) RequestID() string {
6374	return s.RespMetadata.RequestID
6375}
6376
6377// A regional grouping of one or more container instances on which you can run
6378// task requests. Each account receives a default cluster the first time you
6379// use the Amazon ECS service, but you may also create other clusters. Clusters
6380// may contain more than one instance type simultaneously.
6381type Cluster struct {
6382	_ struct{} `type:"structure"`
6383
6384	// The number of services that are running on the cluster in an ACTIVE state.
6385	// You can view these services with ListServices.
6386	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
6387
6388	// The resources attached to a cluster. When using a capacity provider with
6389	// a cluster, the Auto Scaling plan that is created will be returned as a cluster
6390	// attachment.
6391	Attachments []*Attachment `locationName:"attachments" type:"list"`
6392
6393	// The status of the capacity providers associated with the cluster. The following
6394	// are the states that will be returned:
6395	//
6396	// UPDATE_IN_PROGRESS
6397	//
6398	// The available capacity providers for the cluster are updating. This occurs
6399	// when the Auto Scaling plan is provisioning or deprovisioning.
6400	//
6401	// UPDATE_COMPLETE
6402	//
6403	// The capacity providers have successfully updated.
6404	//
6405	// UPDATE_FAILED
6406	//
6407	// The capacity provider updates failed.
6408	AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"`
6409
6410	// The capacity providers associated with the cluster.
6411	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
6412
6413	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
6414	// the arn:aws:ecs namespace, followed by the Region of the cluster, the AWS
6415	// account ID of the cluster owner, the cluster namespace, and then the cluster
6416	// name. For example, arn:aws:ecs:region:012345678910:cluster/test.
6417	ClusterArn *string `locationName:"clusterArn" type:"string"`
6418
6419	// A user-generated string that you use to identify your cluster.
6420	ClusterName *string `locationName:"clusterName" type:"string"`
6421
6422	// The default capacity provider strategy for the cluster. When services or
6423	// tasks are run in the cluster with no launch type or capacity provider strategy
6424	// specified, the default capacity provider strategy is used.
6425	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
6426
6427	// The number of tasks in the cluster that are in the PENDING state.
6428	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
6429
6430	// The number of container instances registered into the cluster. This includes
6431	// container instances in both ACTIVE and DRAINING status.
6432	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
6433
6434	// The number of tasks in the cluster that are in the RUNNING state.
6435	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
6436
6437	// The settings for the cluster. This parameter indicates whether CloudWatch
6438	// Container Insights is enabled or disabled for a cluster.
6439	Settings []*ClusterSetting `locationName:"settings" type:"list"`
6440
6441	// Additional information about your clusters that are separated by launch type,
6442	// including:
6443	//
6444	//    * runningEC2TasksCount
6445	//
6446	//    * RunningFargateTasksCount
6447	//
6448	//    * pendingEC2TasksCount
6449	//
6450	//    * pendingFargateTasksCount
6451	//
6452	//    * activeEC2ServiceCount
6453	//
6454	//    * activeFargateServiceCount
6455	//
6456	//    * drainingEC2ServiceCount
6457	//
6458	//    * drainingFargateServiceCount
6459	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
6460
6461	// The status of the cluster. The following are the possible states that will
6462	// be returned.
6463	//
6464	// ACTIVE
6465	//
6466	// The cluster is ready to accept tasks and if applicable you can register container
6467	// instances with the cluster.
6468	//
6469	// PROVISIONING
6470	//
6471	// The cluster has capacity providers associated with it and the resources needed
6472	// for the capacity provider are being created.
6473	//
6474	// DEPROVISIONING
6475	//
6476	// The cluster has capacity providers associated with it and the resources needed
6477	// for the capacity provider are being deleted.
6478	//
6479	// FAILED
6480	//
6481	// The cluster has capacity providers associated with it and the resources needed
6482	// for the capacity provider have failed to create.
6483	//
6484	// INACTIVE
6485	//
6486	// The cluster has been deleted. Clusters with an INACTIVE status may remain
6487	// discoverable in your account for a period of time. However, this behavior
6488	// is subject to change in the future, so you should not rely on INACTIVE clusters
6489	// persisting.
6490	Status *string `locationName:"status" type:"string"`
6491
6492	// The metadata that you apply to the cluster to help you categorize and organize
6493	// them. Each tag consists of a key and an optional value, both of which you
6494	// define.
6495	//
6496	// The following basic restrictions apply to tags:
6497	//
6498	//    * Maximum number of tags per resource - 50
6499	//
6500	//    * For each resource, each tag key must be unique, and each tag key can
6501	//    have only one value.
6502	//
6503	//    * Maximum key length - 128 Unicode characters in UTF-8
6504	//
6505	//    * Maximum value length - 256 Unicode characters in UTF-8
6506	//
6507	//    * If your tagging schema is used across multiple services and resources,
6508	//    remember that other services may have restrictions on allowed characters.
6509	//    Generally allowed characters are: letters, numbers, and spaces representable
6510	//    in UTF-8, and the following characters: + - = . _ : / @.
6511	//
6512	//    * Tag keys and values are case-sensitive.
6513	//
6514	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6515	//    as a prefix for either keys or values as it is reserved for AWS use. You
6516	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6517	//    prefix do not count against your tags per resource limit.
6518	Tags []*Tag `locationName:"tags" type:"list"`
6519}
6520
6521// String returns the string representation
6522func (s Cluster) String() string {
6523	return awsutil.Prettify(s)
6524}
6525
6526// GoString returns the string representation
6527func (s Cluster) GoString() string {
6528	return s.String()
6529}
6530
6531// SetActiveServicesCount sets the ActiveServicesCount field's value.
6532func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
6533	s.ActiveServicesCount = &v
6534	return s
6535}
6536
6537// SetAttachments sets the Attachments field's value.
6538func (s *Cluster) SetAttachments(v []*Attachment) *Cluster {
6539	s.Attachments = v
6540	return s
6541}
6542
6543// SetAttachmentsStatus sets the AttachmentsStatus field's value.
6544func (s *Cluster) SetAttachmentsStatus(v string) *Cluster {
6545	s.AttachmentsStatus = &v
6546	return s
6547}
6548
6549// SetCapacityProviders sets the CapacityProviders field's value.
6550func (s *Cluster) SetCapacityProviders(v []*string) *Cluster {
6551	s.CapacityProviders = v
6552	return s
6553}
6554
6555// SetClusterArn sets the ClusterArn field's value.
6556func (s *Cluster) SetClusterArn(v string) *Cluster {
6557	s.ClusterArn = &v
6558	return s
6559}
6560
6561// SetClusterName sets the ClusterName field's value.
6562func (s *Cluster) SetClusterName(v string) *Cluster {
6563	s.ClusterName = &v
6564	return s
6565}
6566
6567// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
6568func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster {
6569	s.DefaultCapacityProviderStrategy = v
6570	return s
6571}
6572
6573// SetPendingTasksCount sets the PendingTasksCount field's value.
6574func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
6575	s.PendingTasksCount = &v
6576	return s
6577}
6578
6579// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
6580func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
6581	s.RegisteredContainerInstancesCount = &v
6582	return s
6583}
6584
6585// SetRunningTasksCount sets the RunningTasksCount field's value.
6586func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
6587	s.RunningTasksCount = &v
6588	return s
6589}
6590
6591// SetSettings sets the Settings field's value.
6592func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
6593	s.Settings = v
6594	return s
6595}
6596
6597// SetStatistics sets the Statistics field's value.
6598func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
6599	s.Statistics = v
6600	return s
6601}
6602
6603// SetStatus sets the Status field's value.
6604func (s *Cluster) SetStatus(v string) *Cluster {
6605	s.Status = &v
6606	return s
6607}
6608
6609// SetTags sets the Tags field's value.
6610func (s *Cluster) SetTags(v []*Tag) *Cluster {
6611	s.Tags = v
6612	return s
6613}
6614
6615// You cannot delete a cluster that has registered container instances. First,
6616// deregister the container instances before you can delete the cluster. For
6617// more information, see DeregisterContainerInstance.
6618type ClusterContainsContainerInstancesException struct {
6619	_            struct{}                  `type:"structure"`
6620	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6621
6622	Message_ *string `locationName:"message" type:"string"`
6623}
6624
6625// String returns the string representation
6626func (s ClusterContainsContainerInstancesException) String() string {
6627	return awsutil.Prettify(s)
6628}
6629
6630// GoString returns the string representation
6631func (s ClusterContainsContainerInstancesException) GoString() string {
6632	return s.String()
6633}
6634
6635func newErrorClusterContainsContainerInstancesException(v protocol.ResponseMetadata) error {
6636	return &ClusterContainsContainerInstancesException{
6637		RespMetadata: v,
6638	}
6639}
6640
6641// Code returns the exception type name.
6642func (s *ClusterContainsContainerInstancesException) Code() string {
6643	return "ClusterContainsContainerInstancesException"
6644}
6645
6646// Message returns the exception's message.
6647func (s *ClusterContainsContainerInstancesException) Message() string {
6648	if s.Message_ != nil {
6649		return *s.Message_
6650	}
6651	return ""
6652}
6653
6654// OrigErr always returns nil, satisfies awserr.Error interface.
6655func (s *ClusterContainsContainerInstancesException) OrigErr() error {
6656	return nil
6657}
6658
6659func (s *ClusterContainsContainerInstancesException) Error() string {
6660	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6661}
6662
6663// Status code returns the HTTP status code for the request's response error.
6664func (s *ClusterContainsContainerInstancesException) StatusCode() int {
6665	return s.RespMetadata.StatusCode
6666}
6667
6668// RequestID returns the service's response RequestID for request.
6669func (s *ClusterContainsContainerInstancesException) RequestID() string {
6670	return s.RespMetadata.RequestID
6671}
6672
6673// You cannot delete a cluster that contains services. First, update the service
6674// to reduce its desired task count to 0 and then delete the service. For more
6675// information, see UpdateService and DeleteService.
6676type ClusterContainsServicesException struct {
6677	_            struct{}                  `type:"structure"`
6678	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6679
6680	Message_ *string `locationName:"message" type:"string"`
6681}
6682
6683// String returns the string representation
6684func (s ClusterContainsServicesException) String() string {
6685	return awsutil.Prettify(s)
6686}
6687
6688// GoString returns the string representation
6689func (s ClusterContainsServicesException) GoString() string {
6690	return s.String()
6691}
6692
6693func newErrorClusterContainsServicesException(v protocol.ResponseMetadata) error {
6694	return &ClusterContainsServicesException{
6695		RespMetadata: v,
6696	}
6697}
6698
6699// Code returns the exception type name.
6700func (s *ClusterContainsServicesException) Code() string {
6701	return "ClusterContainsServicesException"
6702}
6703
6704// Message returns the exception's message.
6705func (s *ClusterContainsServicesException) Message() string {
6706	if s.Message_ != nil {
6707		return *s.Message_
6708	}
6709	return ""
6710}
6711
6712// OrigErr always returns nil, satisfies awserr.Error interface.
6713func (s *ClusterContainsServicesException) OrigErr() error {
6714	return nil
6715}
6716
6717func (s *ClusterContainsServicesException) Error() string {
6718	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6719}
6720
6721// Status code returns the HTTP status code for the request's response error.
6722func (s *ClusterContainsServicesException) StatusCode() int {
6723	return s.RespMetadata.StatusCode
6724}
6725
6726// RequestID returns the service's response RequestID for request.
6727func (s *ClusterContainsServicesException) RequestID() string {
6728	return s.RespMetadata.RequestID
6729}
6730
6731// You cannot delete a cluster that has active tasks.
6732type ClusterContainsTasksException struct {
6733	_            struct{}                  `type:"structure"`
6734	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6735
6736	Message_ *string `locationName:"message" type:"string"`
6737}
6738
6739// String returns the string representation
6740func (s ClusterContainsTasksException) String() string {
6741	return awsutil.Prettify(s)
6742}
6743
6744// GoString returns the string representation
6745func (s ClusterContainsTasksException) GoString() string {
6746	return s.String()
6747}
6748
6749func newErrorClusterContainsTasksException(v protocol.ResponseMetadata) error {
6750	return &ClusterContainsTasksException{
6751		RespMetadata: v,
6752	}
6753}
6754
6755// Code returns the exception type name.
6756func (s *ClusterContainsTasksException) Code() string {
6757	return "ClusterContainsTasksException"
6758}
6759
6760// Message returns the exception's message.
6761func (s *ClusterContainsTasksException) Message() string {
6762	if s.Message_ != nil {
6763		return *s.Message_
6764	}
6765	return ""
6766}
6767
6768// OrigErr always returns nil, satisfies awserr.Error interface.
6769func (s *ClusterContainsTasksException) OrigErr() error {
6770	return nil
6771}
6772
6773func (s *ClusterContainsTasksException) Error() string {
6774	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6775}
6776
6777// Status code returns the HTTP status code for the request's response error.
6778func (s *ClusterContainsTasksException) StatusCode() int {
6779	return s.RespMetadata.StatusCode
6780}
6781
6782// RequestID returns the service's response RequestID for request.
6783func (s *ClusterContainsTasksException) RequestID() string {
6784	return s.RespMetadata.RequestID
6785}
6786
6787// The specified cluster could not be found. You can view your available clusters
6788// with ListClusters. Amazon ECS clusters are Region-specific.
6789type ClusterNotFoundException struct {
6790	_            struct{}                  `type:"structure"`
6791	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6792
6793	Message_ *string `locationName:"message" type:"string"`
6794}
6795
6796// String returns the string representation
6797func (s ClusterNotFoundException) String() string {
6798	return awsutil.Prettify(s)
6799}
6800
6801// GoString returns the string representation
6802func (s ClusterNotFoundException) GoString() string {
6803	return s.String()
6804}
6805
6806func newErrorClusterNotFoundException(v protocol.ResponseMetadata) error {
6807	return &ClusterNotFoundException{
6808		RespMetadata: v,
6809	}
6810}
6811
6812// Code returns the exception type name.
6813func (s *ClusterNotFoundException) Code() string {
6814	return "ClusterNotFoundException"
6815}
6816
6817// Message returns the exception's message.
6818func (s *ClusterNotFoundException) Message() string {
6819	if s.Message_ != nil {
6820		return *s.Message_
6821	}
6822	return ""
6823}
6824
6825// OrigErr always returns nil, satisfies awserr.Error interface.
6826func (s *ClusterNotFoundException) OrigErr() error {
6827	return nil
6828}
6829
6830func (s *ClusterNotFoundException) Error() string {
6831	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6832}
6833
6834// Status code returns the HTTP status code for the request's response error.
6835func (s *ClusterNotFoundException) StatusCode() int {
6836	return s.RespMetadata.StatusCode
6837}
6838
6839// RequestID returns the service's response RequestID for request.
6840func (s *ClusterNotFoundException) RequestID() string {
6841	return s.RespMetadata.RequestID
6842}
6843
6844// The settings to use when creating a cluster. This parameter is used to enable
6845// CloudWatch Container Insights for a cluster.
6846type ClusterSetting struct {
6847	_ struct{} `type:"structure"`
6848
6849	// The name of the cluster setting. The only supported value is containerInsights.
6850	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
6851
6852	// The value to set for the cluster setting. The supported values are enabled
6853	// and disabled. If enabled is specified, CloudWatch Container Insights will
6854	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
6855	// account setting is enabled. If a cluster value is specified, it will override
6856	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
6857	Value *string `locationName:"value" type:"string"`
6858}
6859
6860// String returns the string representation
6861func (s ClusterSetting) String() string {
6862	return awsutil.Prettify(s)
6863}
6864
6865// GoString returns the string representation
6866func (s ClusterSetting) GoString() string {
6867	return s.String()
6868}
6869
6870// SetName sets the Name field's value.
6871func (s *ClusterSetting) SetName(v string) *ClusterSetting {
6872	s.Name = &v
6873	return s
6874}
6875
6876// SetValue sets the Value field's value.
6877func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
6878	s.Value = &v
6879	return s
6880}
6881
6882// A Docker container that is part of a task.
6883type Container struct {
6884	_ struct{} `type:"structure"`
6885
6886	// The Amazon Resource Name (ARN) of the container.
6887	ContainerArn *string `locationName:"containerArn" type:"string"`
6888
6889	// The number of CPU units set for the container. The value will be 0 if no
6890	// value was specified in the container definition when the task definition
6891	// was registered.
6892	Cpu *string `locationName:"cpu" type:"string"`
6893
6894	// The exit code returned from the container.
6895	ExitCode *int64 `locationName:"exitCode" type:"integer"`
6896
6897	// The IDs of each GPU assigned to the container.
6898	GpuIds []*string `locationName:"gpuIds" type:"list"`
6899
6900	// The health status of the container. If health checks are not configured for
6901	// this container in its task definition, then it reports the health status
6902	// as UNKNOWN.
6903	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
6904
6905	// The image used for the container.
6906	Image *string `locationName:"image" type:"string"`
6907
6908	// The container image manifest digest.
6909	//
6910	// The imageDigest is only returned if the container is using an image hosted
6911	// in Amazon ECR, otherwise it is omitted.
6912	ImageDigest *string `locationName:"imageDigest" type:"string"`
6913
6914	// The last known status of the container.
6915	LastStatus *string `locationName:"lastStatus" type:"string"`
6916
6917	// The hard limit (in MiB) of memory set for the container.
6918	Memory *string `locationName:"memory" type:"string"`
6919
6920	// The soft limit (in MiB) of memory set for the container.
6921	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
6922
6923	// The name of the container.
6924	Name *string `locationName:"name" type:"string"`
6925
6926	// The network bindings associated with the container.
6927	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
6928
6929	// The network interfaces associated with the container.
6930	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
6931
6932	// A short (255 max characters) human-readable string to provide additional
6933	// details about a running or stopped container.
6934	Reason *string `locationName:"reason" type:"string"`
6935
6936	// The ID of the Docker container.
6937	RuntimeId *string `locationName:"runtimeId" type:"string"`
6938
6939	// The ARN of the task.
6940	TaskArn *string `locationName:"taskArn" type:"string"`
6941}
6942
6943// String returns the string representation
6944func (s Container) String() string {
6945	return awsutil.Prettify(s)
6946}
6947
6948// GoString returns the string representation
6949func (s Container) GoString() string {
6950	return s.String()
6951}
6952
6953// SetContainerArn sets the ContainerArn field's value.
6954func (s *Container) SetContainerArn(v string) *Container {
6955	s.ContainerArn = &v
6956	return s
6957}
6958
6959// SetCpu sets the Cpu field's value.
6960func (s *Container) SetCpu(v string) *Container {
6961	s.Cpu = &v
6962	return s
6963}
6964
6965// SetExitCode sets the ExitCode field's value.
6966func (s *Container) SetExitCode(v int64) *Container {
6967	s.ExitCode = &v
6968	return s
6969}
6970
6971// SetGpuIds sets the GpuIds field's value.
6972func (s *Container) SetGpuIds(v []*string) *Container {
6973	s.GpuIds = v
6974	return s
6975}
6976
6977// SetHealthStatus sets the HealthStatus field's value.
6978func (s *Container) SetHealthStatus(v string) *Container {
6979	s.HealthStatus = &v
6980	return s
6981}
6982
6983// SetImage sets the Image field's value.
6984func (s *Container) SetImage(v string) *Container {
6985	s.Image = &v
6986	return s
6987}
6988
6989// SetImageDigest sets the ImageDigest field's value.
6990func (s *Container) SetImageDigest(v string) *Container {
6991	s.ImageDigest = &v
6992	return s
6993}
6994
6995// SetLastStatus sets the LastStatus field's value.
6996func (s *Container) SetLastStatus(v string) *Container {
6997	s.LastStatus = &v
6998	return s
6999}
7000
7001// SetMemory sets the Memory field's value.
7002func (s *Container) SetMemory(v string) *Container {
7003	s.Memory = &v
7004	return s
7005}
7006
7007// SetMemoryReservation sets the MemoryReservation field's value.
7008func (s *Container) SetMemoryReservation(v string) *Container {
7009	s.MemoryReservation = &v
7010	return s
7011}
7012
7013// SetName sets the Name field's value.
7014func (s *Container) SetName(v string) *Container {
7015	s.Name = &v
7016	return s
7017}
7018
7019// SetNetworkBindings sets the NetworkBindings field's value.
7020func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
7021	s.NetworkBindings = v
7022	return s
7023}
7024
7025// SetNetworkInterfaces sets the NetworkInterfaces field's value.
7026func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
7027	s.NetworkInterfaces = v
7028	return s
7029}
7030
7031// SetReason sets the Reason field's value.
7032func (s *Container) SetReason(v string) *Container {
7033	s.Reason = &v
7034	return s
7035}
7036
7037// SetRuntimeId sets the RuntimeId field's value.
7038func (s *Container) SetRuntimeId(v string) *Container {
7039	s.RuntimeId = &v
7040	return s
7041}
7042
7043// SetTaskArn sets the TaskArn field's value.
7044func (s *Container) SetTaskArn(v string) *Container {
7045	s.TaskArn = &v
7046	return s
7047}
7048
7049// Container definitions are used in task definitions to describe the different
7050// containers that are launched as part of a task.
7051type ContainerDefinition struct {
7052	_ struct{} `type:"structure"`
7053
7054	// The command that is passed to the container. This parameter maps to Cmd in
7055	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7056	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7057	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
7058	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
7059	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
7060	// arguments, each argument should be a separated string in the array.
7061	Command []*string `locationName:"command" type:"list"`
7062
7063	// The number of cpu units reserved for the container. This parameter maps to
7064	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7065	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7066	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
7067	//
7068	// This field is optional for tasks using the Fargate launch type, and the only
7069	// requirement is that the total amount of CPU reserved for all containers within
7070	// a task be lower than the task-level cpu value.
7071	//
7072	// You can determine the number of CPU units that are available per EC2 instance
7073	// type by multiplying the vCPUs listed for that instance type on the Amazon
7074	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
7075	// 1,024.
7076	//
7077	// Linux containers share unallocated CPU units with other containers on the
7078	// container instance with the same ratio as their allocated amount. For example,
7079	// if you run a single-container task on a single-core instance type with 512
7080	// CPU units specified for that container, and that is the only task running
7081	// on the container instance, that container could use the full 1,024 CPU unit
7082	// share at any given time. However, if you launched another copy of the same
7083	// task on that container instance, each task would be guaranteed a minimum
7084	// of 512 CPU units when needed, and each container could float to higher CPU
7085	// usage if the other container was not using it, but if both tasks were 100%
7086	// active all of the time, they would be limited to 512 CPU units.
7087	//
7088	// On Linux container instances, the Docker daemon on the container instance
7089	// uses the CPU value to calculate the relative CPU share ratios for running
7090	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
7091	// in the Docker documentation. The minimum valid CPU share value that the Linux
7092	// kernel allows is 2. However, the CPU parameter is not required, and you can
7093	// use CPU values below 2 in your container definitions. For CPU values below
7094	// 2 (including null), the behavior varies based on your Amazon ECS container
7095	// agent version:
7096	//
7097	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
7098	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
7099	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
7100	//    to two CPU shares.
7101	//
7102	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
7103	//    of 1 are passed to Docker as 2.
7104	//
7105	// On Windows container instances, the CPU limit is enforced as an absolute
7106	// limit, or a quota. Windows containers only have access to the specified amount
7107	// of CPU that is described in the task definition.
7108	Cpu *int64 `locationName:"cpu" type:"integer"`
7109
7110	// The dependencies defined for container startup and shutdown. A container
7111	// can contain multiple dependencies. When a dependency is defined for container
7112	// startup, for container shutdown it is reversed.
7113	//
7114	// For tasks using the EC2 launch type, the container instances require at least
7115	// version 1.26.0 of the container agent to enable container dependencies. However,
7116	// we recommend using the latest container agent version. For information about
7117	// checking your agent version and updating to the latest version, see Updating
7118	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7119	// in the Amazon Elastic Container Service Developer Guide. If you are using
7120	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7121	// of the ecs-init package. If your container instances are launched from version
7122	// 20190301 or later, then they contain the required versions of the container
7123	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7124	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7125	// in the Amazon Elastic Container Service Developer Guide.
7126	//
7127	// For tasks using the Fargate launch type, the task or service requires platform
7128	// version 1.3.0 or later.
7129	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
7130
7131	// When this parameter is true, networking is disabled within the container.
7132	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7133	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
7134	//
7135	// This parameter is not supported for Windows containers.
7136	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
7137
7138	// A list of DNS search domains that are presented to the container. This parameter
7139	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7140	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7141	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/).
7142	//
7143	// This parameter is not supported for Windows containers.
7144	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
7145
7146	// A list of DNS servers that are presented to the container. This parameter
7147	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7148	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7149	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/).
7150	//
7151	// This parameter is not supported for Windows containers.
7152	DnsServers []*string `locationName:"dnsServers" type:"list"`
7153
7154	// A key/value map of labels to add to the container. This parameter maps to
7155	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7156	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7157	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/).
7158	// This parameter requires version 1.18 of the Docker Remote API or greater
7159	// on your container instance. To check the Docker Remote API version on your
7160	// container instance, log in to your container instance and run the following
7161	// command: sudo docker version --format '{{.Server.APIVersion}}'
7162	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
7163
7164	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
7165	// security systems. This field is not valid for containers in tasks using the
7166	// Fargate launch type.
7167	//
7168	// With Windows containers, this parameter can be used to reference a credential
7169	// spec file when configuring a container for Active Directory authentication.
7170	// For more information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html)
7171	// in the Amazon Elastic Container Service Developer Guide.
7172	//
7173	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7174	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7175	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/).
7176	//
7177	// The Amazon ECS container agent running on a container instance must register
7178	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
7179	// variables before containers placed on that instance can use these security
7180	// options. For more information, see Amazon ECS Container Agent Configuration
7181	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7182	// in the Amazon Elastic Container Service Developer Guide.
7183	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
7184
7185	//
7186	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
7187	// parameters. If you have problems using entryPoint, update your container
7188	// agent or enter your commands and arguments as command array items instead.
7189	//
7190	// The entry point that is passed to the container. This parameter maps to Entrypoint
7191	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7192	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7193	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/).
7194	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
7195	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
7196	EntryPoint []*string `locationName:"entryPoint" type:"list"`
7197
7198	// The environment variables to pass to a container. This parameter maps to
7199	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7200	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7201	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
7202	//
7203	// We do not recommend using plaintext environment variables for sensitive information,
7204	// such as credential data.
7205	Environment []*KeyValuePair `locationName:"environment" type:"list"`
7206
7207	// A list of files containing the environment variables to pass to a container.
7208	// This parameter maps to the --env-file option to docker run (https://docs.docker.com/engine/reference/run/).
7209	//
7210	// You can specify up to ten environment files. The file must have a .env file
7211	// extension. Each line in an environment file should contain an environment
7212	// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
7213	// comments and are ignored. For more information on the environment variable
7214	// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
7215	//
7216	// If there are environment variables specified using the environment parameter
7217	// in a container definition, they take precedence over the variables contained
7218	// within an environment file. If multiple environment files are specified that
7219	// contain the same variable, they are processed from the top down. It is recommended
7220	// to use unique variable names. For more information, see Specifying Environment
7221	// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
7222	// in the Amazon Elastic Container Service Developer Guide.
7223	//
7224	// This field is not valid for containers in tasks using the Fargate launch
7225	// type.
7226	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
7227
7228	// If the essential parameter of a container is marked as true, and that container
7229	// fails or stops for any reason, all other containers that are part of the
7230	// task are stopped. If the essential parameter of a container is marked as
7231	// false, then its failure does not affect the rest of the containers in a task.
7232	// If this parameter is omitted, a container is assumed to be essential.
7233	//
7234	// All tasks must have at least one essential container. If you have an application
7235	// that is composed of multiple containers, you should group containers that
7236	// are used for a common purpose into components, and separate the different
7237	// components into multiple task definitions. For more information, see Application
7238	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
7239	// in the Amazon Elastic Container Service Developer Guide.
7240	Essential *bool `locationName:"essential" type:"boolean"`
7241
7242	// A list of hostnames and IP address mappings to append to the /etc/hosts file
7243	// on the container. This parameter maps to ExtraHosts in the Create a container
7244	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7245	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7246	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/).
7247	//
7248	// This parameter is not supported for Windows containers or tasks that use
7249	// the awsvpc network mode.
7250	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
7251
7252	// The FireLens configuration for the container. This is used to specify and
7253	// configure a log router for container logs. For more information, see Custom
7254	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
7255	// in the Amazon Elastic Container Service Developer Guide.
7256	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
7257
7258	// The container health check command and associated configuration parameters
7259	// for the container. This parameter maps to HealthCheck in the Create a container
7260	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7261	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7262	// the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/).
7263	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
7264
7265	// The hostname to use for your container. This parameter maps to Hostname in
7266	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7267	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7268	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/).
7269	//
7270	// The hostname parameter is not supported if you are using the awsvpc network
7271	// mode.
7272	Hostname *string `locationName:"hostname" type:"string"`
7273
7274	// The image used to start a container. This string is passed directly to the
7275	// Docker daemon. Images in the Docker Hub registry are available by default.
7276	// Other repositories are specified with either repository-url/image:tag or
7277	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
7278	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
7279	// signs are allowed. This parameter maps to Image in the Create a container
7280	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7281	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7282	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
7283	//
7284	//    * When a new task starts, the Amazon ECS container agent pulls the latest
7285	//    version of the specified image and tag for the container to use. However,
7286	//    subsequent updates to a repository image are not propagated to already
7287	//    running tasks.
7288	//
7289	//    * Images in Amazon ECR repositories can be specified by either using the
7290	//    full registry/repository:tag or registry/repository@digest. For example,
7291	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
7292	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
7293	//
7294	//    * Images in official repositories on Docker Hub use a single name (for
7295	//    example, ubuntu or mongo).
7296	//
7297	//    * Images in other repositories on Docker Hub are qualified with an organization
7298	//    name (for example, amazon/amazon-ecs-agent).
7299	//
7300	//    * Images in other online repositories are qualified further by a domain
7301	//    name (for example, quay.io/assemblyline/ubuntu).
7302	Image *string `locationName:"image" type:"string"`
7303
7304	// When this parameter is true, this allows you to deploy containerized applications
7305	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
7306	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7307	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7308	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/).
7309	Interactive *bool `locationName:"interactive" type:"boolean"`
7310
7311	// The links parameter allows containers to communicate with each other without
7312	// the need for port mappings. This parameter is only supported if the network
7313	// mode of a task definition is bridge. The name:internalName construct is analogous
7314	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
7315	// numbers, and hyphens are allowed. For more information about linking Docker
7316	// containers, go to Legacy container links (https://docs.docker.com/network/links/)
7317	// in the Docker documentation. This parameter maps to Links in the Create a
7318	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7319	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7320	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/).
7321	//
7322	// This parameter is not supported for Windows containers.
7323	//
7324	// Containers that are collocated on a single container instance may be able
7325	// to communicate with each other without requiring links or host port mappings.
7326	// Network isolation is achieved on the container instance using security groups
7327	// and VPC settings.
7328	Links []*string `locationName:"links" type:"list"`
7329
7330	// Linux-specific modifications that are applied to the container, such as Linux
7331	// kernel capabilities. For more information see KernelCapabilities.
7332	//
7333	// This parameter is not supported for Windows containers.
7334	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
7335
7336	// The log configuration specification for the container.
7337	//
7338	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7339	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7340	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
7341	// By default, containers use the same logging driver that the Docker daemon
7342	// uses. However the container may use a different logging driver than the Docker
7343	// daemon by specifying a log driver with this parameter in the container definition.
7344	// To use a different logging driver for a container, the log system must be
7345	// configured properly on the container instance (or on a different log server
7346	// for remote logging options). For more information on the options for different
7347	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
7348	// in the Docker documentation.
7349	//
7350	// Amazon ECS currently supports a subset of the logging drivers available to
7351	// the Docker daemon (shown in the LogConfiguration data type). Additional log
7352	// drivers may be available in future releases of the Amazon ECS container agent.
7353	//
7354	// This parameter requires version 1.18 of the Docker Remote API or greater
7355	// on your container instance. To check the Docker Remote API version on your
7356	// container instance, log in to your container instance and run the following
7357	// command: sudo docker version --format '{{.Server.APIVersion}}'
7358	//
7359	// The Amazon ECS container agent running on a container instance must register
7360	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
7361	// environment variable before containers placed on that instance can use these
7362	// log configuration options. For more information, see Amazon ECS Container
7363	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7364	// in the Amazon Elastic Container Service Developer Guide.
7365	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
7366
7367	// The amount (in MiB) of memory to present to the container. If your container
7368	// attempts to exceed the memory specified here, the container is killed. The
7369	// total amount of memory reserved for all containers within a task must be
7370	// lower than the task memory value, if one is specified. This parameter maps
7371	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7372	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7373	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
7374	//
7375	// If using the Fargate launch type, this parameter is optional.
7376	//
7377	// If using the EC2 launch type, you must specify either a task-level memory
7378	// value or a container-level memory value. If you specify both a container-level
7379	// memory and memoryReservation value, memory must be greater than memoryReservation.
7380	// If you specify memoryReservation, then that value is subtracted from the
7381	// available memory resources for the container instance on which the container
7382	// is placed. Otherwise, the value of memory is used.
7383	//
7384	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7385	// so you should not specify fewer than 4 MiB of memory for your containers.
7386	Memory *int64 `locationName:"memory" type:"integer"`
7387
7388	// The soft limit (in MiB) of memory to reserve for the container. When system
7389	// memory is under heavy contention, Docker attempts to keep the container memory
7390	// to this soft limit. However, your container can consume more memory when
7391	// it needs to, up to either the hard limit specified with the memory parameter
7392	// (if applicable), or all of the available memory on the container instance,
7393	// whichever comes first. This parameter maps to MemoryReservation in the Create
7394	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7395	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7396	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/).
7397	//
7398	// If a task-level memory value is not specified, you must specify a non-zero
7399	// integer for one or both of memory or memoryReservation in a container definition.
7400	// If you specify both, memory must be greater than memoryReservation. If you
7401	// specify memoryReservation, then that value is subtracted from the available
7402	// memory resources for the container instance on which the container is placed.
7403	// Otherwise, the value of memory is used.
7404	//
7405	// For example, if your container normally uses 128 MiB of memory, but occasionally
7406	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
7407	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
7408	// allow the container to only reserve 128 MiB of memory from the remaining
7409	// resources on the container instance, but also allow the container to consume
7410	// more memory resources when needed.
7411	//
7412	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7413	// so you should not specify fewer than 4 MiB of memory for your containers.
7414	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
7415
7416	// The mount points for data volumes in your container.
7417	//
7418	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7419	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7420	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
7421	//
7422	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
7423	// Windows containers cannot mount directories on a different drive, and mount
7424	// point cannot be across drives.
7425	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
7426
7427	// The name of a container. If you are linking multiple containers together
7428	// in a task definition, the name of one container can be entered in the links
7429	// of another container to connect the containers. Up to 255 letters (uppercase
7430	// and lowercase), numbers, and hyphens are allowed. This parameter maps to
7431	// name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7432	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7433	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/).
7434	Name *string `locationName:"name" type:"string"`
7435
7436	// The list of port mappings for the container. Port mappings allow containers
7437	// to access ports on the host container instance to send or receive traffic.
7438	//
7439	// For task definitions that use the awsvpc network mode, you should only specify
7440	// the containerPort. The hostPort can be left blank or it must be the same
7441	// value as the containerPort.
7442	//
7443	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
7444	// There is no loopback for port mappings on Windows, so you cannot access a
7445	// container's mapped port from the host itself.
7446	//
7447	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7448	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7449	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/).
7450	// If the network mode of a task definition is set to none, then you can't specify
7451	// port mappings. If the network mode of a task definition is set to host, then
7452	// host ports must either be undefined or they must match the container port
7453	// in the port mapping.
7454	//
7455	// After a task reaches the RUNNING status, manual and automatic host and container
7456	// port assignments are visible in the Network Bindings section of a container
7457	// description for a selected task in the Amazon ECS console. The assignments
7458	// are also visible in the networkBindings section DescribeTasks responses.
7459	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
7460
7461	// When this parameter is true, the container is given elevated privileges on
7462	// the host container instance (similar to the root user). This parameter maps
7463	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7464	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7465	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
7466	//
7467	// This parameter is not supported for Windows containers or tasks using the
7468	// Fargate launch type.
7469	Privileged *bool `locationName:"privileged" type:"boolean"`
7470
7471	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
7472	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7473	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7474	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/).
7475	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
7476
7477	// When this parameter is true, the container is given read-only access to its
7478	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
7479	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7480	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7481	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/).
7482	//
7483	// This parameter is not supported for Windows containers.
7484	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
7485
7486	// The private repository authentication credentials to use.
7487	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
7488
7489	// The type and amount of a resource to assign to a container. The only supported
7490	// resource is a GPU.
7491	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
7492
7493	// The secrets to pass to the container. For more information, see Specifying
7494	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
7495	// in the Amazon Elastic Container Service Developer Guide.
7496	Secrets []*Secret `locationName:"secrets" type:"list"`
7497
7498	// Time duration (in seconds) to wait before giving up on resolving dependencies
7499	// for a container. For example, you specify two containers in a task definition
7500	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
7501	// or HEALTHY status. If a startTimeout value is specified for containerB and
7502	// it does not reach the desired status within that time then containerA will
7503	// give up and not start. This results in the task transitioning to a STOPPED
7504	// state.
7505	//
7506	// For tasks using the Fargate launch type, this parameter requires that the
7507	// task or service uses platform version 1.3.0 or later. If this parameter is
7508	// not specified, the default value of 3 minutes is used.
7509	//
7510	// For tasks using the EC2 launch type, if the startTimeout parameter is not
7511	// specified, the value set for the Amazon ECS container agent configuration
7512	// variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither the startTimeout
7513	// parameter or the ECS_CONTAINER_START_TIMEOUT agent configuration variable
7514	// are set, then the default values of 3 minutes for Linux containers and 8
7515	// minutes on Windows containers are used. Your container instances require
7516	// at least version 1.26.0 of the container agent to enable a container start
7517	// timeout value. However, we recommend using the latest container agent version.
7518	// For information about checking your agent version and updating to the latest
7519	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7520	// in the Amazon Elastic Container Service Developer Guide. If you are using
7521	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7522	// of the ecs-init package. If your container instances are launched from version
7523	// 20190301 or later, then they contain the required versions of the container
7524	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7525	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7526	// in the Amazon Elastic Container Service Developer Guide.
7527	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
7528
7529	// Time duration (in seconds) to wait before the container is forcefully killed
7530	// if it doesn't exit normally on its own.
7531	//
7532	// For tasks using the Fargate launch type, the task or service requires platform
7533	// version 1.3.0 or later. The max stop timeout value is 120 seconds and if
7534	// the parameter is not specified, the default value of 30 seconds is used.
7535	//
7536	// For tasks using the EC2 launch type, if the stopTimeout parameter is not
7537	// specified, the value set for the Amazon ECS container agent configuration
7538	// variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout
7539	// parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable
7540	// are set, then the default values of 30 seconds for Linux containers and 30
7541	// seconds on Windows containers are used. Your container instances require
7542	// at least version 1.26.0 of the container agent to enable a container stop
7543	// timeout value. However, we recommend using the latest container agent version.
7544	// For information about checking your agent version and updating to the latest
7545	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7546	// in the Amazon Elastic Container Service Developer Guide. If you are using
7547	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7548	// of the ecs-init package. If your container instances are launched from version
7549	// 20190301 or later, then they contain the required versions of the container
7550	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7551	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7552	// in the Amazon Elastic Container Service Developer Guide.
7553	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
7554
7555	// A list of namespaced kernel parameters to set in the container. This parameter
7556	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7557	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7558	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
7559	//
7560	// It is not recommended that you specify network-related systemControls parameters
7561	// for multiple containers in a single task that also uses either the awsvpc
7562	// or host network modes. For tasks that use the awsvpc network mode, the container
7563	// that is started last determines which systemControls parameters take effect.
7564	// For tasks that use the host network mode, it changes the container instance's
7565	// namespaced kernel parameters as well as the containers.
7566	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
7567
7568	// A list of ulimits to set in the container. If a ulimit value is specified
7569	// in a task definition, it will override the default values set by Docker.
7570	// This parameter maps to Ulimits in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7571	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7572	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
7573	// Valid naming values are displayed in the Ulimit data type. This parameter
7574	// requires version 1.18 of the Docker Remote API or greater on your container
7575	// instance. To check the Docker Remote API version on your container instance,
7576	// log in to your container instance and run the following command: sudo docker
7577	// version --format '{{.Server.APIVersion}}'
7578	//
7579	// This parameter is not supported for Windows containers.
7580	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
7581
7582	// The user name to use inside the container. This parameter maps to User in
7583	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7584	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7585	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
7586	//
7587	// You can use the following formats. If specifying a UID or GID, you must specify
7588	// it as a positive integer.
7589	//
7590	//    * user
7591	//
7592	//    * user:group
7593	//
7594	//    * uid
7595	//
7596	//    * uid:gid
7597	//
7598	//    * user:gid
7599	//
7600	//    * uid:group
7601	//
7602	// This parameter is not supported for Windows containers.
7603	User *string `locationName:"user" type:"string"`
7604
7605	// Data volumes to mount from another container. This parameter maps to VolumesFrom
7606	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7607	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7608	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/).
7609	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
7610
7611	// The working directory in which to run commands inside the container. This
7612	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7613	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7614	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/).
7615	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
7616}
7617
7618// String returns the string representation
7619func (s ContainerDefinition) String() string {
7620	return awsutil.Prettify(s)
7621}
7622
7623// GoString returns the string representation
7624func (s ContainerDefinition) GoString() string {
7625	return s.String()
7626}
7627
7628// Validate inspects the fields of the type to determine if they are valid.
7629func (s *ContainerDefinition) Validate() error {
7630	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
7631	if s.DependsOn != nil {
7632		for i, v := range s.DependsOn {
7633			if v == nil {
7634				continue
7635			}
7636			if err := v.Validate(); err != nil {
7637				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
7638			}
7639		}
7640	}
7641	if s.EnvironmentFiles != nil {
7642		for i, v := range s.EnvironmentFiles {
7643			if v == nil {
7644				continue
7645			}
7646			if err := v.Validate(); err != nil {
7647				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
7648			}
7649		}
7650	}
7651	if s.ExtraHosts != nil {
7652		for i, v := range s.ExtraHosts {
7653			if v == nil {
7654				continue
7655			}
7656			if err := v.Validate(); err != nil {
7657				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
7658			}
7659		}
7660	}
7661	if s.FirelensConfiguration != nil {
7662		if err := s.FirelensConfiguration.Validate(); err != nil {
7663			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
7664		}
7665	}
7666	if s.HealthCheck != nil {
7667		if err := s.HealthCheck.Validate(); err != nil {
7668			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
7669		}
7670	}
7671	if s.LinuxParameters != nil {
7672		if err := s.LinuxParameters.Validate(); err != nil {
7673			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
7674		}
7675	}
7676	if s.LogConfiguration != nil {
7677		if err := s.LogConfiguration.Validate(); err != nil {
7678			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
7679		}
7680	}
7681	if s.RepositoryCredentials != nil {
7682		if err := s.RepositoryCredentials.Validate(); err != nil {
7683			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
7684		}
7685	}
7686	if s.ResourceRequirements != nil {
7687		for i, v := range s.ResourceRequirements {
7688			if v == nil {
7689				continue
7690			}
7691			if err := v.Validate(); err != nil {
7692				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
7693			}
7694		}
7695	}
7696	if s.Secrets != nil {
7697		for i, v := range s.Secrets {
7698			if v == nil {
7699				continue
7700			}
7701			if err := v.Validate(); err != nil {
7702				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
7703			}
7704		}
7705	}
7706	if s.Ulimits != nil {
7707		for i, v := range s.Ulimits {
7708			if v == nil {
7709				continue
7710			}
7711			if err := v.Validate(); err != nil {
7712				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
7713			}
7714		}
7715	}
7716
7717	if invalidParams.Len() > 0 {
7718		return invalidParams
7719	}
7720	return nil
7721}
7722
7723// SetCommand sets the Command field's value.
7724func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
7725	s.Command = v
7726	return s
7727}
7728
7729// SetCpu sets the Cpu field's value.
7730func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
7731	s.Cpu = &v
7732	return s
7733}
7734
7735// SetDependsOn sets the DependsOn field's value.
7736func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
7737	s.DependsOn = v
7738	return s
7739}
7740
7741// SetDisableNetworking sets the DisableNetworking field's value.
7742func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
7743	s.DisableNetworking = &v
7744	return s
7745}
7746
7747// SetDnsSearchDomains sets the DnsSearchDomains field's value.
7748func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
7749	s.DnsSearchDomains = v
7750	return s
7751}
7752
7753// SetDnsServers sets the DnsServers field's value.
7754func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
7755	s.DnsServers = v
7756	return s
7757}
7758
7759// SetDockerLabels sets the DockerLabels field's value.
7760func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
7761	s.DockerLabels = v
7762	return s
7763}
7764
7765// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
7766func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
7767	s.DockerSecurityOptions = v
7768	return s
7769}
7770
7771// SetEntryPoint sets the EntryPoint field's value.
7772func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
7773	s.EntryPoint = v
7774	return s
7775}
7776
7777// SetEnvironment sets the Environment field's value.
7778func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
7779	s.Environment = v
7780	return s
7781}
7782
7783// SetEnvironmentFiles sets the EnvironmentFiles field's value.
7784func (s *ContainerDefinition) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerDefinition {
7785	s.EnvironmentFiles = v
7786	return s
7787}
7788
7789// SetEssential sets the Essential field's value.
7790func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
7791	s.Essential = &v
7792	return s
7793}
7794
7795// SetExtraHosts sets the ExtraHosts field's value.
7796func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
7797	s.ExtraHosts = v
7798	return s
7799}
7800
7801// SetFirelensConfiguration sets the FirelensConfiguration field's value.
7802func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
7803	s.FirelensConfiguration = v
7804	return s
7805}
7806
7807// SetHealthCheck sets the HealthCheck field's value.
7808func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
7809	s.HealthCheck = v
7810	return s
7811}
7812
7813// SetHostname sets the Hostname field's value.
7814func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
7815	s.Hostname = &v
7816	return s
7817}
7818
7819// SetImage sets the Image field's value.
7820func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
7821	s.Image = &v
7822	return s
7823}
7824
7825// SetInteractive sets the Interactive field's value.
7826func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
7827	s.Interactive = &v
7828	return s
7829}
7830
7831// SetLinks sets the Links field's value.
7832func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
7833	s.Links = v
7834	return s
7835}
7836
7837// SetLinuxParameters sets the LinuxParameters field's value.
7838func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
7839	s.LinuxParameters = v
7840	return s
7841}
7842
7843// SetLogConfiguration sets the LogConfiguration field's value.
7844func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
7845	s.LogConfiguration = v
7846	return s
7847}
7848
7849// SetMemory sets the Memory field's value.
7850func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
7851	s.Memory = &v
7852	return s
7853}
7854
7855// SetMemoryReservation sets the MemoryReservation field's value.
7856func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
7857	s.MemoryReservation = &v
7858	return s
7859}
7860
7861// SetMountPoints sets the MountPoints field's value.
7862func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
7863	s.MountPoints = v
7864	return s
7865}
7866
7867// SetName sets the Name field's value.
7868func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
7869	s.Name = &v
7870	return s
7871}
7872
7873// SetPortMappings sets the PortMappings field's value.
7874func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
7875	s.PortMappings = v
7876	return s
7877}
7878
7879// SetPrivileged sets the Privileged field's value.
7880func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
7881	s.Privileged = &v
7882	return s
7883}
7884
7885// SetPseudoTerminal sets the PseudoTerminal field's value.
7886func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
7887	s.PseudoTerminal = &v
7888	return s
7889}
7890
7891// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
7892func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
7893	s.ReadonlyRootFilesystem = &v
7894	return s
7895}
7896
7897// SetRepositoryCredentials sets the RepositoryCredentials field's value.
7898func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
7899	s.RepositoryCredentials = v
7900	return s
7901}
7902
7903// SetResourceRequirements sets the ResourceRequirements field's value.
7904func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
7905	s.ResourceRequirements = v
7906	return s
7907}
7908
7909// SetSecrets sets the Secrets field's value.
7910func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
7911	s.Secrets = v
7912	return s
7913}
7914
7915// SetStartTimeout sets the StartTimeout field's value.
7916func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
7917	s.StartTimeout = &v
7918	return s
7919}
7920
7921// SetStopTimeout sets the StopTimeout field's value.
7922func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
7923	s.StopTimeout = &v
7924	return s
7925}
7926
7927// SetSystemControls sets the SystemControls field's value.
7928func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
7929	s.SystemControls = v
7930	return s
7931}
7932
7933// SetUlimits sets the Ulimits field's value.
7934func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
7935	s.Ulimits = v
7936	return s
7937}
7938
7939// SetUser sets the User field's value.
7940func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
7941	s.User = &v
7942	return s
7943}
7944
7945// SetVolumesFrom sets the VolumesFrom field's value.
7946func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
7947	s.VolumesFrom = v
7948	return s
7949}
7950
7951// SetWorkingDirectory sets the WorkingDirectory field's value.
7952func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
7953	s.WorkingDirectory = &v
7954	return s
7955}
7956
7957// The dependencies defined for container startup and shutdown. A container
7958// can contain multiple dependencies. When a dependency is defined for container
7959// startup, for container shutdown it is reversed.
7960//
7961// Your Amazon ECS container instances require at least version 1.26.0 of the
7962// container agent to enable container dependencies. However, we recommend using
7963// the latest container agent version. For information about checking your agent
7964// version and updating to the latest version, see Updating the Amazon ECS Container
7965// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7966// in the Amazon Elastic Container Service Developer Guide. If you are using
7967// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7968// of the ecs-init package. If your container instances are launched from version
7969// 20190301 or later, then they contain the required versions of the container
7970// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7971// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7972// in the Amazon Elastic Container Service Developer Guide.
7973//
7974// For tasks using the Fargate launch type, this parameter requires that the
7975// task or service uses platform version 1.3.0 or later.
7976type ContainerDependency struct {
7977	_ struct{} `type:"structure"`
7978
7979	// The dependency condition of the container. The following are the available
7980	// conditions and their behavior:
7981	//
7982	//    * START - This condition emulates the behavior of links and volumes today.
7983	//    It validates that a dependent container is started before permitting other
7984	//    containers to start.
7985	//
7986	//    * COMPLETE - This condition validates that a dependent container runs
7987	//    to completion (exits) before permitting other containers to start. This
7988	//    can be useful for nonessential containers that run a script and then exit.
7989	//
7990	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
7991	//    that the container exits with a zero status.
7992	//
7993	//    * HEALTHY - This condition validates that the dependent container passes
7994	//    its Docker health check before permitting other containers to start. This
7995	//    requires that the dependent container has health checks configured. This
7996	//    condition is confirmed only at task startup.
7997	//
7998	// Condition is a required field
7999	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
8000
8001	// The name of a container.
8002	//
8003	// ContainerName is a required field
8004	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
8005}
8006
8007// String returns the string representation
8008func (s ContainerDependency) String() string {
8009	return awsutil.Prettify(s)
8010}
8011
8012// GoString returns the string representation
8013func (s ContainerDependency) GoString() string {
8014	return s.String()
8015}
8016
8017// Validate inspects the fields of the type to determine if they are valid.
8018func (s *ContainerDependency) Validate() error {
8019	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
8020	if s.Condition == nil {
8021		invalidParams.Add(request.NewErrParamRequired("Condition"))
8022	}
8023	if s.ContainerName == nil {
8024		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
8025	}
8026
8027	if invalidParams.Len() > 0 {
8028		return invalidParams
8029	}
8030	return nil
8031}
8032
8033// SetCondition sets the Condition field's value.
8034func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
8035	s.Condition = &v
8036	return s
8037}
8038
8039// SetContainerName sets the ContainerName field's value.
8040func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
8041	s.ContainerName = &v
8042	return s
8043}
8044
8045// An EC2 instance that is running the Amazon ECS agent and has been registered
8046// with a cluster.
8047type ContainerInstance struct {
8048	_ struct{} `type:"structure"`
8049
8050	// This parameter returns true if the agent is connected to Amazon ECS. Registered
8051	// instances with an agent that may be unhealthy or stopped return false. Only
8052	// instances connected to an agent can accept placement requests.
8053	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
8054
8055	// The status of the most recent agent update. If an update has never been requested,
8056	// this value is NULL.
8057	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
8058
8059	// The resources attached to a container instance, such as elastic network interfaces.
8060	Attachments []*Attachment `locationName:"attachments" type:"list"`
8061
8062	// The attributes set for the container instance, either by the Amazon ECS container
8063	// agent at instance registration or manually with the PutAttributes operation.
8064	Attributes []*Attribute `locationName:"attributes" type:"list"`
8065
8066	// The capacity provider associated with the container instance.
8067	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
8068
8069	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
8070	// the arn:aws:ecs namespace, followed by the Region of the container instance,
8071	// the AWS account ID of the container instance owner, the container-instance
8072	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
8073	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
8074
8075	// The EC2 instance ID of the container instance.
8076	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
8077
8078	// The number of tasks on the container instance that are in the PENDING status.
8079	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
8080
8081	// The Unix timestamp for when the container instance was registered.
8082	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
8083
8084	// For CPU and memory resource types, this parameter describes the amount of
8085	// each resource that was available on the container instance when the container
8086	// agent registered it with Amazon ECS. This value represents the total amount
8087	// of CPU and memory that can be allocated on this container instance to tasks.
8088	// For port resource types, this parameter describes the ports that were reserved
8089	// by the Amazon ECS container agent when it registered the container instance
8090	// with Amazon ECS.
8091	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
8092
8093	// For CPU and memory resource types, this parameter describes the remaining
8094	// CPU and memory that has not already been allocated to tasks and is therefore
8095	// available for new tasks. For port resource types, this parameter describes
8096	// the ports that were reserved by the Amazon ECS container agent (at instance
8097	// registration time) and any task containers that have reserved port mappings
8098	// on the host (with the host or bridge network mode). Any port that is not
8099	// specified here is available for new tasks.
8100	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
8101
8102	// The number of tasks on the container instance that are in the RUNNING status.
8103	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
8104
8105	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
8106	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
8107	//
8108	// If your account has opted in to the awsvpcTrunking account setting, then
8109	// any newly registered container instance will transition to a REGISTERING
8110	// status while the trunk elastic network interface is provisioned for the instance.
8111	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
8112	// status. You can describe the container instance and see the reason for failure
8113	// in the statusReason parameter. Once the container instance is terminated,
8114	// the instance transitions to a DEREGISTERING status while the trunk elastic
8115	// network interface is deprovisioned. The instance then transitions to an INACTIVE
8116	// status.
8117	//
8118	// The ACTIVE status indicates that the container instance can accept tasks.
8119	// The DRAINING indicates that new tasks are not placed on the container instance
8120	// and any service tasks running on the container instance are removed if possible.
8121	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
8122	// in the Amazon Elastic Container Service Developer Guide.
8123	Status *string `locationName:"status" type:"string"`
8124
8125	// The reason that the container instance reached its current status.
8126	StatusReason *string `locationName:"statusReason" type:"string"`
8127
8128	// The metadata that you apply to the container instance to help you categorize
8129	// and organize them. Each tag consists of a key and an optional value, both
8130	// of which you define.
8131	//
8132	// The following basic restrictions apply to tags:
8133	//
8134	//    * Maximum number of tags per resource - 50
8135	//
8136	//    * For each resource, each tag key must be unique, and each tag key can
8137	//    have only one value.
8138	//
8139	//    * Maximum key length - 128 Unicode characters in UTF-8
8140	//
8141	//    * Maximum value length - 256 Unicode characters in UTF-8
8142	//
8143	//    * If your tagging schema is used across multiple services and resources,
8144	//    remember that other services may have restrictions on allowed characters.
8145	//    Generally allowed characters are: letters, numbers, and spaces representable
8146	//    in UTF-8, and the following characters: + - = . _ : / @.
8147	//
8148	//    * Tag keys and values are case-sensitive.
8149	//
8150	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8151	//    as a prefix for either keys or values as it is reserved for AWS use. You
8152	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8153	//    prefix do not count against your tags per resource limit.
8154	Tags []*Tag `locationName:"tags" type:"list"`
8155
8156	// The version counter for the container instance. Every time a container instance
8157	// experiences a change that triggers a CloudWatch event, the version counter
8158	// is incremented. If you are replicating your Amazon ECS container instance
8159	// state with CloudWatch Events, you can compare the version of a container
8160	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
8161	// Events for the container instance (inside the detail object) to verify that
8162	// the version in your event stream is current.
8163	Version *int64 `locationName:"version" type:"long"`
8164
8165	// The version information for the Amazon ECS container agent and Docker daemon
8166	// running on the container instance.
8167	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
8168}
8169
8170// String returns the string representation
8171func (s ContainerInstance) String() string {
8172	return awsutil.Prettify(s)
8173}
8174
8175// GoString returns the string representation
8176func (s ContainerInstance) GoString() string {
8177	return s.String()
8178}
8179
8180// SetAgentConnected sets the AgentConnected field's value.
8181func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
8182	s.AgentConnected = &v
8183	return s
8184}
8185
8186// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
8187func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
8188	s.AgentUpdateStatus = &v
8189	return s
8190}
8191
8192// SetAttachments sets the Attachments field's value.
8193func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
8194	s.Attachments = v
8195	return s
8196}
8197
8198// SetAttributes sets the Attributes field's value.
8199func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
8200	s.Attributes = v
8201	return s
8202}
8203
8204// SetCapacityProviderName sets the CapacityProviderName field's value.
8205func (s *ContainerInstance) SetCapacityProviderName(v string) *ContainerInstance {
8206	s.CapacityProviderName = &v
8207	return s
8208}
8209
8210// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
8211func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
8212	s.ContainerInstanceArn = &v
8213	return s
8214}
8215
8216// SetEc2InstanceId sets the Ec2InstanceId field's value.
8217func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
8218	s.Ec2InstanceId = &v
8219	return s
8220}
8221
8222// SetPendingTasksCount sets the PendingTasksCount field's value.
8223func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
8224	s.PendingTasksCount = &v
8225	return s
8226}
8227
8228// SetRegisteredAt sets the RegisteredAt field's value.
8229func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
8230	s.RegisteredAt = &v
8231	return s
8232}
8233
8234// SetRegisteredResources sets the RegisteredResources field's value.
8235func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
8236	s.RegisteredResources = v
8237	return s
8238}
8239
8240// SetRemainingResources sets the RemainingResources field's value.
8241func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
8242	s.RemainingResources = v
8243	return s
8244}
8245
8246// SetRunningTasksCount sets the RunningTasksCount field's value.
8247func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
8248	s.RunningTasksCount = &v
8249	return s
8250}
8251
8252// SetStatus sets the Status field's value.
8253func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
8254	s.Status = &v
8255	return s
8256}
8257
8258// SetStatusReason sets the StatusReason field's value.
8259func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
8260	s.StatusReason = &v
8261	return s
8262}
8263
8264// SetTags sets the Tags field's value.
8265func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
8266	s.Tags = v
8267	return s
8268}
8269
8270// SetVersion sets the Version field's value.
8271func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
8272	s.Version = &v
8273	return s
8274}
8275
8276// SetVersionInfo sets the VersionInfo field's value.
8277func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
8278	s.VersionInfo = v
8279	return s
8280}
8281
8282// The overrides that should be sent to a container. An empty container override
8283// can be passed in. An example of an empty container override would be {"containerOverrides":
8284// [ ] }. If a non-empty container override is specified, the name parameter
8285// must be included.
8286type ContainerOverride struct {
8287	_ struct{} `type:"structure"`
8288
8289	// The command to send to the container that overrides the default command from
8290	// the Docker image or the task definition. You must also specify a container
8291	// name.
8292	Command []*string `locationName:"command" type:"list"`
8293
8294	// The number of cpu units reserved for the container, instead of the default
8295	// value from the task definition. You must also specify a container name.
8296	Cpu *int64 `locationName:"cpu" type:"integer"`
8297
8298	// The environment variables to send to the container. You can add new environment
8299	// variables, which are added to the container at launch, or you can override
8300	// the existing environment variables from the Docker image or the task definition.
8301	// You must also specify a container name.
8302	Environment []*KeyValuePair `locationName:"environment" type:"list"`
8303
8304	// A list of files containing the environment variables to pass to a container,
8305	// instead of the value from the container definition.
8306	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
8307
8308	// The hard limit (in MiB) of memory to present to the container, instead of
8309	// the default value from the task definition. If your container attempts to
8310	// exceed the memory specified here, the container is killed. You must also
8311	// specify a container name.
8312	Memory *int64 `locationName:"memory" type:"integer"`
8313
8314	// The soft limit (in MiB) of memory to reserve for the container, instead of
8315	// the default value from the task definition. You must also specify a container
8316	// name.
8317	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
8318
8319	// The name of the container that receives the override. This parameter is required
8320	// if any override is specified.
8321	Name *string `locationName:"name" type:"string"`
8322
8323	// The type and amount of a resource to assign to a container, instead of the
8324	// default value from the task definition. The only supported resource is a
8325	// GPU.
8326	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
8327}
8328
8329// String returns the string representation
8330func (s ContainerOverride) String() string {
8331	return awsutil.Prettify(s)
8332}
8333
8334// GoString returns the string representation
8335func (s ContainerOverride) GoString() string {
8336	return s.String()
8337}
8338
8339// Validate inspects the fields of the type to determine if they are valid.
8340func (s *ContainerOverride) Validate() error {
8341	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
8342	if s.EnvironmentFiles != nil {
8343		for i, v := range s.EnvironmentFiles {
8344			if v == nil {
8345				continue
8346			}
8347			if err := v.Validate(); err != nil {
8348				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
8349			}
8350		}
8351	}
8352	if s.ResourceRequirements != nil {
8353		for i, v := range s.ResourceRequirements {
8354			if v == nil {
8355				continue
8356			}
8357			if err := v.Validate(); err != nil {
8358				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
8359			}
8360		}
8361	}
8362
8363	if invalidParams.Len() > 0 {
8364		return invalidParams
8365	}
8366	return nil
8367}
8368
8369// SetCommand sets the Command field's value.
8370func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
8371	s.Command = v
8372	return s
8373}
8374
8375// SetCpu sets the Cpu field's value.
8376func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
8377	s.Cpu = &v
8378	return s
8379}
8380
8381// SetEnvironment sets the Environment field's value.
8382func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
8383	s.Environment = v
8384	return s
8385}
8386
8387// SetEnvironmentFiles sets the EnvironmentFiles field's value.
8388func (s *ContainerOverride) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerOverride {
8389	s.EnvironmentFiles = v
8390	return s
8391}
8392
8393// SetMemory sets the Memory field's value.
8394func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
8395	s.Memory = &v
8396	return s
8397}
8398
8399// SetMemoryReservation sets the MemoryReservation field's value.
8400func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
8401	s.MemoryReservation = &v
8402	return s
8403}
8404
8405// SetName sets the Name field's value.
8406func (s *ContainerOverride) SetName(v string) *ContainerOverride {
8407	s.Name = &v
8408	return s
8409}
8410
8411// SetResourceRequirements sets the ResourceRequirements field's value.
8412func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
8413	s.ResourceRequirements = v
8414	return s
8415}
8416
8417// An object representing a change in state for a container.
8418type ContainerStateChange struct {
8419	_ struct{} `type:"structure"`
8420
8421	// The name of the container.
8422	ContainerName *string `locationName:"containerName" type:"string"`
8423
8424	// The exit code for the container, if the state change is a result of the container
8425	// exiting.
8426	ExitCode *int64 `locationName:"exitCode" type:"integer"`
8427
8428	// The container image SHA 256 digest.
8429	ImageDigest *string `locationName:"imageDigest" type:"string"`
8430
8431	// Any network bindings associated with the container.
8432	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
8433
8434	// The reason for the state change.
8435	Reason *string `locationName:"reason" type:"string"`
8436
8437	// The ID of the Docker container.
8438	RuntimeId *string `locationName:"runtimeId" type:"string"`
8439
8440	// The status of the container.
8441	Status *string `locationName:"status" type:"string"`
8442}
8443
8444// String returns the string representation
8445func (s ContainerStateChange) String() string {
8446	return awsutil.Prettify(s)
8447}
8448
8449// GoString returns the string representation
8450func (s ContainerStateChange) GoString() string {
8451	return s.String()
8452}
8453
8454// SetContainerName sets the ContainerName field's value.
8455func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
8456	s.ContainerName = &v
8457	return s
8458}
8459
8460// SetExitCode sets the ExitCode field's value.
8461func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
8462	s.ExitCode = &v
8463	return s
8464}
8465
8466// SetImageDigest sets the ImageDigest field's value.
8467func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
8468	s.ImageDigest = &v
8469	return s
8470}
8471
8472// SetNetworkBindings sets the NetworkBindings field's value.
8473func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
8474	s.NetworkBindings = v
8475	return s
8476}
8477
8478// SetReason sets the Reason field's value.
8479func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
8480	s.Reason = &v
8481	return s
8482}
8483
8484// SetRuntimeId sets the RuntimeId field's value.
8485func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
8486	s.RuntimeId = &v
8487	return s
8488}
8489
8490// SetStatus sets the Status field's value.
8491func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
8492	s.Status = &v
8493	return s
8494}
8495
8496type CreateCapacityProviderInput struct {
8497	_ struct{} `type:"structure"`
8498
8499	// The details of the Auto Scaling group for the capacity provider.
8500	//
8501	// AutoScalingGroupProvider is a required field
8502	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
8503
8504	// The name of the capacity provider. Up to 255 characters are allowed, including
8505	// letters (upper and lowercase), numbers, underscores, and hyphens. The name
8506	// cannot be prefixed with "aws", "ecs", or "fargate".
8507	//
8508	// Name is a required field
8509	Name *string `locationName:"name" type:"string" required:"true"`
8510
8511	// The metadata that you apply to the capacity provider to help you categorize
8512	// and organize them. Each tag consists of a key and an optional value, both
8513	// of which you define.
8514	//
8515	// The following basic restrictions apply to tags:
8516	//
8517	//    * Maximum number of tags per resource - 50
8518	//
8519	//    * For each resource, each tag key must be unique, and each tag key can
8520	//    have only one value.
8521	//
8522	//    * Maximum key length - 128 Unicode characters in UTF-8
8523	//
8524	//    * Maximum value length - 256 Unicode characters in UTF-8
8525	//
8526	//    * If your tagging schema is used across multiple services and resources,
8527	//    remember that other services may have restrictions on allowed characters.
8528	//    Generally allowed characters are: letters, numbers, and spaces representable
8529	//    in UTF-8, and the following characters: + - = . _ : / @.
8530	//
8531	//    * Tag keys and values are case-sensitive.
8532	//
8533	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8534	//    as a prefix for either keys or values as it is reserved for AWS use. You
8535	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8536	//    prefix do not count against your tags per resource limit.
8537	Tags []*Tag `locationName:"tags" type:"list"`
8538}
8539
8540// String returns the string representation
8541func (s CreateCapacityProviderInput) String() string {
8542	return awsutil.Prettify(s)
8543}
8544
8545// GoString returns the string representation
8546func (s CreateCapacityProviderInput) GoString() string {
8547	return s.String()
8548}
8549
8550// Validate inspects the fields of the type to determine if they are valid.
8551func (s *CreateCapacityProviderInput) Validate() error {
8552	invalidParams := request.ErrInvalidParams{Context: "CreateCapacityProviderInput"}
8553	if s.AutoScalingGroupProvider == nil {
8554		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
8555	}
8556	if s.Name == nil {
8557		invalidParams.Add(request.NewErrParamRequired("Name"))
8558	}
8559	if s.AutoScalingGroupProvider != nil {
8560		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
8561			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
8562		}
8563	}
8564	if s.Tags != nil {
8565		for i, v := range s.Tags {
8566			if v == nil {
8567				continue
8568			}
8569			if err := v.Validate(); err != nil {
8570				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8571			}
8572		}
8573	}
8574
8575	if invalidParams.Len() > 0 {
8576		return invalidParams
8577	}
8578	return nil
8579}
8580
8581// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
8582func (s *CreateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CreateCapacityProviderInput {
8583	s.AutoScalingGroupProvider = v
8584	return s
8585}
8586
8587// SetName sets the Name field's value.
8588func (s *CreateCapacityProviderInput) SetName(v string) *CreateCapacityProviderInput {
8589	s.Name = &v
8590	return s
8591}
8592
8593// SetTags sets the Tags field's value.
8594func (s *CreateCapacityProviderInput) SetTags(v []*Tag) *CreateCapacityProviderInput {
8595	s.Tags = v
8596	return s
8597}
8598
8599type CreateCapacityProviderOutput struct {
8600	_ struct{} `type:"structure"`
8601
8602	// The full description of the new capacity provider.
8603	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
8604}
8605
8606// String returns the string representation
8607func (s CreateCapacityProviderOutput) String() string {
8608	return awsutil.Prettify(s)
8609}
8610
8611// GoString returns the string representation
8612func (s CreateCapacityProviderOutput) GoString() string {
8613	return s.String()
8614}
8615
8616// SetCapacityProvider sets the CapacityProvider field's value.
8617func (s *CreateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *CreateCapacityProviderOutput {
8618	s.CapacityProvider = v
8619	return s
8620}
8621
8622type CreateClusterInput struct {
8623	_ struct{} `type:"structure"`
8624
8625	// The short name of one or more capacity providers to associate with the cluster.
8626	//
8627	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8628	// provider must already be created and not already associated with another
8629	// cluster. New capacity providers can be created with the CreateCapacityProvider
8630	// API operation.
8631	//
8632	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8633	// capacity providers. The AWS Fargate capacity providers are available to all
8634	// accounts and only need to be associated with a cluster to be used.
8635	//
8636	// The PutClusterCapacityProviders API operation is used to update the list
8637	// of available capacity providers for a cluster after the cluster is created.
8638	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
8639
8640	// The name of your cluster. If you do not specify a name for your cluster,
8641	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
8642	// numbers, and hyphens are allowed.
8643	ClusterName *string `locationName:"clusterName" type:"string"`
8644
8645	// The capacity provider strategy to use by default for the cluster.
8646	//
8647	// When creating a service or running a task on a cluster, if no capacity provider
8648	// or launch type is specified then the default capacity provider strategy for
8649	// the cluster is used.
8650	//
8651	// A capacity provider strategy consists of one or more capacity providers along
8652	// with the base and weight to assign to them. A capacity provider must be associated
8653	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8654	// API is used to associate a capacity provider with a cluster. Only capacity
8655	// providers with an ACTIVE or UPDATING status can be used.
8656	//
8657	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8658	// provider must already be created. New capacity providers can be created with
8659	// the CreateCapacityProvider API operation.
8660	//
8661	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8662	// capacity providers. The AWS Fargate capacity providers are available to all
8663	// accounts and only need to be associated with a cluster to be used.
8664	//
8665	// If a default capacity provider strategy is not defined for a cluster during
8666	// creation, it can be defined later with the PutClusterCapacityProviders API
8667	// operation.
8668	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
8669
8670	// The setting to use when creating a cluster. This parameter is used to enable
8671	// CloudWatch Container Insights for a cluster. If this value is specified,
8672	// it will override the containerInsights value set with PutAccountSetting or
8673	// PutAccountSettingDefault.
8674	Settings []*ClusterSetting `locationName:"settings" type:"list"`
8675
8676	// The metadata that you apply to the cluster to help you categorize and organize
8677	// them. Each tag consists of a key and an optional value, both of which you
8678	// define.
8679	//
8680	// The following basic restrictions apply to tags:
8681	//
8682	//    * Maximum number of tags per resource - 50
8683	//
8684	//    * For each resource, each tag key must be unique, and each tag key can
8685	//    have only one value.
8686	//
8687	//    * Maximum key length - 128 Unicode characters in UTF-8
8688	//
8689	//    * Maximum value length - 256 Unicode characters in UTF-8
8690	//
8691	//    * If your tagging schema is used across multiple services and resources,
8692	//    remember that other services may have restrictions on allowed characters.
8693	//    Generally allowed characters are: letters, numbers, and spaces representable
8694	//    in UTF-8, and the following characters: + - = . _ : / @.
8695	//
8696	//    * Tag keys and values are case-sensitive.
8697	//
8698	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8699	//    as a prefix for either keys or values as it is reserved for AWS use. You
8700	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8701	//    prefix do not count against your tags per resource limit.
8702	Tags []*Tag `locationName:"tags" type:"list"`
8703}
8704
8705// String returns the string representation
8706func (s CreateClusterInput) String() string {
8707	return awsutil.Prettify(s)
8708}
8709
8710// GoString returns the string representation
8711func (s CreateClusterInput) GoString() string {
8712	return s.String()
8713}
8714
8715// Validate inspects the fields of the type to determine if they are valid.
8716func (s *CreateClusterInput) Validate() error {
8717	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
8718	if s.DefaultCapacityProviderStrategy != nil {
8719		for i, v := range s.DefaultCapacityProviderStrategy {
8720			if v == nil {
8721				continue
8722			}
8723			if err := v.Validate(); err != nil {
8724				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
8725			}
8726		}
8727	}
8728	if s.Tags != nil {
8729		for i, v := range s.Tags {
8730			if v == nil {
8731				continue
8732			}
8733			if err := v.Validate(); err != nil {
8734				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8735			}
8736		}
8737	}
8738
8739	if invalidParams.Len() > 0 {
8740		return invalidParams
8741	}
8742	return nil
8743}
8744
8745// SetCapacityProviders sets the CapacityProviders field's value.
8746func (s *CreateClusterInput) SetCapacityProviders(v []*string) *CreateClusterInput {
8747	s.CapacityProviders = v
8748	return s
8749}
8750
8751// SetClusterName sets the ClusterName field's value.
8752func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
8753	s.ClusterName = &v
8754	return s
8755}
8756
8757// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
8758func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput {
8759	s.DefaultCapacityProviderStrategy = v
8760	return s
8761}
8762
8763// SetSettings sets the Settings field's value.
8764func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
8765	s.Settings = v
8766	return s
8767}
8768
8769// SetTags sets the Tags field's value.
8770func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
8771	s.Tags = v
8772	return s
8773}
8774
8775type CreateClusterOutput struct {
8776	_ struct{} `type:"structure"`
8777
8778	// The full description of your new cluster.
8779	Cluster *Cluster `locationName:"cluster" type:"structure"`
8780}
8781
8782// String returns the string representation
8783func (s CreateClusterOutput) String() string {
8784	return awsutil.Prettify(s)
8785}
8786
8787// GoString returns the string representation
8788func (s CreateClusterOutput) GoString() string {
8789	return s.String()
8790}
8791
8792// SetCluster sets the Cluster field's value.
8793func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
8794	s.Cluster = v
8795	return s
8796}
8797
8798type CreateServiceInput struct {
8799	_ struct{} `type:"structure"`
8800
8801	// The capacity provider strategy to use for the service.
8802	//
8803	// A capacity provider strategy consists of one or more capacity providers along
8804	// with the base and weight to assign to them. A capacity provider must be associated
8805	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8806	// API is used to associate a capacity provider with a cluster. Only capacity
8807	// providers with an ACTIVE or UPDATING status can be used.
8808	//
8809	// If a capacityProviderStrategy is specified, the launchType parameter must
8810	// be omitted. If no capacityProviderStrategy or launchType is specified, the
8811	// defaultCapacityProviderStrategy for the cluster is used.
8812	//
8813	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8814	// provider must already be created. New capacity providers can be created with
8815	// the CreateCapacityProvider API operation.
8816	//
8817	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8818	// capacity providers. The AWS Fargate capacity providers are available to all
8819	// accounts and only need to be associated with a cluster to be used.
8820	//
8821	// The PutClusterCapacityProviders API operation is used to update the list
8822	// of available capacity providers for a cluster after the cluster is created.
8823	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
8824
8825	// Unique, case-sensitive identifier that you provide to ensure the idempotency
8826	// of the request. Up to 32 ASCII characters are allowed.
8827	ClientToken *string `locationName:"clientToken" type:"string"`
8828
8829	// The short name or full Amazon Resource Name (ARN) of the cluster on which
8830	// to run your service. If you do not specify a cluster, the default cluster
8831	// is assumed.
8832	Cluster *string `locationName:"cluster" type:"string"`
8833
8834	// Optional deployment parameters that control how many tasks run during the
8835	// deployment and the ordering of stopping and starting tasks.
8836	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
8837
8838	// The deployment controller to use for the service.
8839	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
8840
8841	// The number of instantiations of the specified task definition to place and
8842	// keep running on your cluster.
8843	//
8844	// This is required if schedulingStrategy is REPLICA or is not specified. If
8845	// schedulingStrategy is DAEMON then this is not required.
8846	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
8847
8848	// Specifies whether to enable Amazon ECS managed tags for the tasks within
8849	// the service. For more information, see Tagging Your Amazon ECS Resources
8850	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
8851	// in the Amazon Elastic Container Service Developer Guide.
8852	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
8853
8854	// The period of time, in seconds, that the Amazon ECS service scheduler should
8855	// ignore unhealthy Elastic Load Balancing target health checks after a task
8856	// has first started. This is only used when your service is configured to use
8857	// a load balancer. If your service has a load balancer defined and you don't
8858	// specify a health check grace period value, the default value of 0 is used.
8859	//
8860	// If your service's tasks take a while to start and respond to Elastic Load
8861	// Balancing health checks, you can specify a health check grace period of up
8862	// to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler
8863	// ignores health check status. This grace period can prevent the service scheduler
8864	// from marking tasks as unhealthy and stopping them before they have time to
8865	// come up.
8866	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
8867
8868	// The launch type on which to run your service. For more information, see Amazon
8869	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
8870	// in the Amazon Elastic Container Service Developer Guide.
8871	//
8872	// If a launchType is specified, the capacityProviderStrategy parameter must
8873	// be omitted.
8874	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
8875
8876	// A load balancer object representing the load balancers to use with your service.
8877	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
8878	// in the Amazon Elastic Container Service Developer Guide.
8879	//
8880	// If the service is using the rolling update (ECS) deployment controller and
8881	// using either an Application Load Balancer or Network Load Balancer, you can
8882	// specify multiple target groups to attach to the service. The service-linked
8883	// role is required for services that make use of multiple target groups. For
8884	// more information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8885	// in the Amazon Elastic Container Service Developer Guide.
8886	//
8887	// If the service is using the CODE_DEPLOY deployment controller, the service
8888	// is required to use either an Application Load Balancer or Network Load Balancer.
8889	// When creating an AWS CodeDeploy deployment group, you specify two target
8890	// groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy
8891	// determines which task set in your service has the status PRIMARY and associates
8892	// one target group with it, and then associates the other target group with
8893	// the replacement task set. The load balancer can also have up to two listeners:
8894	// a required listener for production traffic and an optional listener that
8895	// allows you perform validation tests with Lambda functions before routing
8896	// production traffic to it.
8897	//
8898	// After you create a service using the ECS deployment controller, the load
8899	// balancer name or target group ARN, container name, and container port specified
8900	// in the service definition are immutable. If you are using the CODE_DEPLOY
8901	// deployment controller, these values can be changed when updating the service.
8902	//
8903	// For Application Load Balancers and Network Load Balancers, this object must
8904	// contain the load balancer target group ARN, the container name (as it appears
8905	// in a container definition), and the container port to access from the load
8906	// balancer. When a task from this service is placed on a container instance,
8907	// the container instance and port combination is registered as a target in
8908	// the target group specified here.
8909	//
8910	// For Classic Load Balancers, this object must contain the load balancer name,
8911	// the container name (as it appears in a container definition), and the container
8912	// port to access from the load balancer. When a task from this service is placed
8913	// on a container instance, the container instance is registered with the load
8914	// balancer specified here.
8915	//
8916	// Services with tasks that use the awsvpc network mode (for example, those
8917	// with the Fargate launch type) only support Application Load Balancers and
8918	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
8919	// you create any target groups for these services, you must choose ip as the
8920	// target type, not instance, because tasks that use the awsvpc network mode
8921	// are associated with an elastic network interface, not an Amazon EC2 instance.
8922	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
8923
8924	// The network configuration for the service. This parameter is required for
8925	// task definitions that use the awsvpc network mode to receive their own elastic
8926	// network interface, and it is not supported for other network modes. For more
8927	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
8928	// in the Amazon Elastic Container Service Developer Guide.
8929	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
8930
8931	// An array of placement constraint objects to use for tasks in your service.
8932	// You can specify a maximum of 10 constraints per task (this limit includes
8933	// constraints in the task definition and those specified at runtime).
8934	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
8935
8936	// The placement strategy objects to use for tasks in your service. You can
8937	// specify a maximum of five strategy rules per service.
8938	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
8939
8940	// The platform version that your tasks in the service are running on. A platform
8941	// version is specified only for tasks using the Fargate launch type. If one
8942	// isn't specified, the LATEST platform version is used by default. For more
8943	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
8944	// in the Amazon Elastic Container Service Developer Guide.
8945	PlatformVersion *string `locationName:"platformVersion" type:"string"`
8946
8947	// Specifies whether to propagate the tags from the task definition or the service
8948	// to the tasks in the service. If no value is specified, the tags are not propagated.
8949	// Tags can only be propagated to the tasks within the service during service
8950	// creation. To add tags to a task after service creation, use the TagResource
8951	// API action.
8952	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
8953
8954	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
8955	// ECS to make calls to your load balancer on your behalf. This parameter is
8956	// only permitted if you are using a load balancer with your service and your
8957	// task definition does not use the awsvpc network mode. If you specify the
8958	// role parameter, you must also specify a load balancer object with the loadBalancers
8959	// parameter.
8960	//
8961	// If your account has already created the Amazon ECS service-linked role, that
8962	// role is used by default for your service unless you specify a role here.
8963	// The service-linked role is required if your task definition uses the awsvpc
8964	// network mode or if the service is configured to use service discovery, an
8965	// external deployment controller, multiple target groups, or Elastic Inference
8966	// accelerators in which case you should not specify a role here. For more information,
8967	// see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8968	// in the Amazon Elastic Container Service Developer Guide.
8969	//
8970	// If your specified role has a path other than /, then you must either specify
8971	// the full role ARN (this is recommended) or prefix the role name with the
8972	// path. For example, if a role with the name bar has a path of /foo/ then you
8973	// would specify /foo/bar as the role name. For more information, see Friendly
8974	// Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
8975	// in the IAM User Guide.
8976	Role *string `locationName:"role" type:"string"`
8977
8978	// The scheduling strategy to use for the service. For more information, see
8979	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
8980	//
8981	// There are two service scheduler strategies available:
8982	//
8983	//    * REPLICA-The replica scheduling strategy places and maintains the desired
8984	//    number of tasks across your cluster. By default, the service scheduler
8985	//    spreads tasks across Availability Zones. You can use task placement strategies
8986	//    and constraints to customize task placement decisions. This scheduler
8987	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
8988	//    deployment controller types.
8989	//
8990	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
8991	//    active container instance that meets all of the task placement constraints
8992	//    that you specify in your cluster. The service scheduler also evaluates
8993	//    the task placement constraints for running tasks and will stop tasks that
8994	//    do not meet the placement constraints. When you're using this strategy,
8995	//    you don't need to specify a desired number of tasks, a task placement
8996	//    strategy, or use Service Auto Scaling policies. Tasks using the Fargate
8997	//    launch type or the CODE_DEPLOY or EXTERNAL deployment controller types
8998	//    don't support the DAEMON scheduling strategy.
8999	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
9000
9001	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
9002	// and hyphens are allowed. Service names must be unique within a cluster, but
9003	// you can have similarly named services in multiple clusters within a Region
9004	// or across multiple Regions.
9005	//
9006	// ServiceName is a required field
9007	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
9008
9009	// The details of the service discovery registries to assign to this service.
9010	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9011	//
9012	// Service discovery is supported for Fargate tasks if you are using platform
9013	// version v1.1.0 or later. For more information, see AWS Fargate Platform Versions
9014	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
9015	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9016
9017	// The metadata that you apply to the service to help you categorize and organize
9018	// them. Each tag consists of a key and an optional value, both of which you
9019	// define. When a service is deleted, the tags are deleted as well.
9020	//
9021	// The following basic restrictions apply to tags:
9022	//
9023	//    * Maximum number of tags per resource - 50
9024	//
9025	//    * For each resource, each tag key must be unique, and each tag key can
9026	//    have only one value.
9027	//
9028	//    * Maximum key length - 128 Unicode characters in UTF-8
9029	//
9030	//    * Maximum value length - 256 Unicode characters in UTF-8
9031	//
9032	//    * If your tagging schema is used across multiple services and resources,
9033	//    remember that other services may have restrictions on allowed characters.
9034	//    Generally allowed characters are: letters, numbers, and spaces representable
9035	//    in UTF-8, and the following characters: + - = . _ : / @.
9036	//
9037	//    * Tag keys and values are case-sensitive.
9038	//
9039	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9040	//    as a prefix for either keys or values as it is reserved for AWS use. You
9041	//    cannot edit or delete tag keys or values with this prefix. Tags with this
9042	//    prefix do not count against your tags per resource limit.
9043	Tags []*Tag `locationName:"tags" type:"list"`
9044
9045	// The family and revision (family:revision) or full ARN of the task definition
9046	// to run in your service. If a revision is not specified, the latest ACTIVE
9047	// revision is used.
9048	//
9049	// A task definition must be specified if the service is using the ECS deployment
9050	// controller.
9051	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
9052}
9053
9054// String returns the string representation
9055func (s CreateServiceInput) String() string {
9056	return awsutil.Prettify(s)
9057}
9058
9059// GoString returns the string representation
9060func (s CreateServiceInput) GoString() string {
9061	return s.String()
9062}
9063
9064// Validate inspects the fields of the type to determine if they are valid.
9065func (s *CreateServiceInput) Validate() error {
9066	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
9067	if s.ServiceName == nil {
9068		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
9069	}
9070	if s.CapacityProviderStrategy != nil {
9071		for i, v := range s.CapacityProviderStrategy {
9072			if v == nil {
9073				continue
9074			}
9075			if err := v.Validate(); err != nil {
9076				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9077			}
9078		}
9079	}
9080	if s.DeploymentController != nil {
9081		if err := s.DeploymentController.Validate(); err != nil {
9082			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
9083		}
9084	}
9085	if s.NetworkConfiguration != nil {
9086		if err := s.NetworkConfiguration.Validate(); err != nil {
9087			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9088		}
9089	}
9090	if s.Tags != nil {
9091		for i, v := range s.Tags {
9092			if v == nil {
9093				continue
9094			}
9095			if err := v.Validate(); err != nil {
9096				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9097			}
9098		}
9099	}
9100
9101	if invalidParams.Len() > 0 {
9102		return invalidParams
9103	}
9104	return nil
9105}
9106
9107// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9108func (s *CreateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateServiceInput {
9109	s.CapacityProviderStrategy = v
9110	return s
9111}
9112
9113// SetClientToken sets the ClientToken field's value.
9114func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
9115	s.ClientToken = &v
9116	return s
9117}
9118
9119// SetCluster sets the Cluster field's value.
9120func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
9121	s.Cluster = &v
9122	return s
9123}
9124
9125// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
9126func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
9127	s.DeploymentConfiguration = v
9128	return s
9129}
9130
9131// SetDeploymentController sets the DeploymentController field's value.
9132func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
9133	s.DeploymentController = v
9134	return s
9135}
9136
9137// SetDesiredCount sets the DesiredCount field's value.
9138func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
9139	s.DesiredCount = &v
9140	return s
9141}
9142
9143// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
9144func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
9145	s.EnableECSManagedTags = &v
9146	return s
9147}
9148
9149// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
9150func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
9151	s.HealthCheckGracePeriodSeconds = &v
9152	return s
9153}
9154
9155// SetLaunchType sets the LaunchType field's value.
9156func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
9157	s.LaunchType = &v
9158	return s
9159}
9160
9161// SetLoadBalancers sets the LoadBalancers field's value.
9162func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
9163	s.LoadBalancers = v
9164	return s
9165}
9166
9167// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9168func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
9169	s.NetworkConfiguration = v
9170	return s
9171}
9172
9173// SetPlacementConstraints sets the PlacementConstraints field's value.
9174func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
9175	s.PlacementConstraints = v
9176	return s
9177}
9178
9179// SetPlacementStrategy sets the PlacementStrategy field's value.
9180func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
9181	s.PlacementStrategy = v
9182	return s
9183}
9184
9185// SetPlatformVersion sets the PlatformVersion field's value.
9186func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
9187	s.PlatformVersion = &v
9188	return s
9189}
9190
9191// SetPropagateTags sets the PropagateTags field's value.
9192func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
9193	s.PropagateTags = &v
9194	return s
9195}
9196
9197// SetRole sets the Role field's value.
9198func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
9199	s.Role = &v
9200	return s
9201}
9202
9203// SetSchedulingStrategy sets the SchedulingStrategy field's value.
9204func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
9205	s.SchedulingStrategy = &v
9206	return s
9207}
9208
9209// SetServiceName sets the ServiceName field's value.
9210func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
9211	s.ServiceName = &v
9212	return s
9213}
9214
9215// SetServiceRegistries sets the ServiceRegistries field's value.
9216func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
9217	s.ServiceRegistries = v
9218	return s
9219}
9220
9221// SetTags sets the Tags field's value.
9222func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
9223	s.Tags = v
9224	return s
9225}
9226
9227// SetTaskDefinition sets the TaskDefinition field's value.
9228func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
9229	s.TaskDefinition = &v
9230	return s
9231}
9232
9233type CreateServiceOutput struct {
9234	_ struct{} `type:"structure"`
9235
9236	// The full description of your service following the create call.
9237	//
9238	// If a service is using the ECS deployment controller, the deploymentController
9239	// and taskSets parameters will not be returned.
9240	//
9241	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
9242	// taskSets and deployments parameters will be returned, however the deployments
9243	// parameter will be an empty list.
9244	Service *Service `locationName:"service" type:"structure"`
9245}
9246
9247// String returns the string representation
9248func (s CreateServiceOutput) String() string {
9249	return awsutil.Prettify(s)
9250}
9251
9252// GoString returns the string representation
9253func (s CreateServiceOutput) GoString() string {
9254	return s.String()
9255}
9256
9257// SetService sets the Service field's value.
9258func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
9259	s.Service = v
9260	return s
9261}
9262
9263type CreateTaskSetInput struct {
9264	_ struct{} `type:"structure"`
9265
9266	// The capacity provider strategy to use for the task set.
9267	//
9268	// A capacity provider strategy consists of one or more capacity providers along
9269	// with the base and weight to assign to them. A capacity provider must be associated
9270	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
9271	// API is used to associate a capacity provider with a cluster. Only capacity
9272	// providers with an ACTIVE or UPDATING status can be used.
9273	//
9274	// If a capacityProviderStrategy is specified, the launchType parameter must
9275	// be omitted. If no capacityProviderStrategy or launchType is specified, the
9276	// defaultCapacityProviderStrategy for the cluster is used.
9277	//
9278	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
9279	// provider must already be created. New capacity providers can be created with
9280	// the CreateCapacityProvider API operation.
9281	//
9282	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
9283	// capacity providers. The AWS Fargate capacity providers are available to all
9284	// accounts and only need to be associated with a cluster to be used.
9285	//
9286	// The PutClusterCapacityProviders API operation is used to update the list
9287	// of available capacity providers for a cluster after the cluster is created.
9288	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9289
9290	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9291	// of the request. Up to 32 ASCII characters are allowed.
9292	ClientToken *string `locationName:"clientToken" type:"string"`
9293
9294	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9295	// the service to create the task set in.
9296	//
9297	// Cluster is a required field
9298	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9299
9300	// An optional non-unique tag that identifies this task set in external systems.
9301	// If the task set is associated with a service discovery registry, the tasks
9302	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute
9303	// set to the provided value.
9304	ExternalId *string `locationName:"externalId" type:"string"`
9305
9306	// The launch type that new tasks in the task set will use. For more information,
9307	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9308	// in the Amazon Elastic Container Service Developer Guide.
9309	//
9310	// If a launchType is specified, the capacityProviderStrategy parameter must
9311	// be omitted.
9312	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9313
9314	// A load balancer object representing the load balancer to use with the task
9315	// set. The supported load balancer types are either an Application Load Balancer
9316	// or a Network Load Balancer.
9317	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
9318
9319	// An object representing the network configuration for a task or service.
9320	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9321
9322	// The platform version that the tasks in the task set should use. A platform
9323	// version is specified only for tasks using the Fargate launch type. If one
9324	// isn't specified, the LATEST platform version is used by default.
9325	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9326
9327	// A floating-point percentage of the desired number of tasks to place and keep
9328	// running in the task set.
9329	Scale *Scale `locationName:"scale" type:"structure"`
9330
9331	// The short name or full Amazon Resource Name (ARN) of the service to create
9332	// the task set in.
9333	//
9334	// Service is a required field
9335	Service *string `locationName:"service" type:"string" required:"true"`
9336
9337	// The details of the service discovery registries to assign to this task set.
9338	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9339	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9340
9341	// The metadata that you apply to the task set to help you categorize and organize
9342	// them. Each tag consists of a key and an optional value, both of which you
9343	// define. When a service is deleted, the tags are deleted as well.
9344	//
9345	// The following basic restrictions apply to tags:
9346	//
9347	//    * Maximum number of tags per resource - 50
9348	//
9349	//    * For each resource, each tag key must be unique, and each tag key can
9350	//    have only one value.
9351	//
9352	//    * Maximum key length - 128 Unicode characters in UTF-8
9353	//
9354	//    * Maximum value length - 256 Unicode characters in UTF-8
9355	//
9356	//    * If your tagging schema is used across multiple services and resources,
9357	//    remember that other services may have restrictions on allowed characters.
9358	//    Generally allowed characters are: letters, numbers, and spaces representable
9359	//    in UTF-8, and the following characters: + - = . _ : / @.
9360	//
9361	//    * Tag keys and values are case-sensitive.
9362	//
9363	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9364	//    as a prefix for either keys or values as it is reserved for AWS use. You
9365	//    cannot edit or delete tag keys or values with this prefix. Tags with this
9366	//    prefix do not count against your tags per resource limit.
9367	Tags []*Tag `locationName:"tags" type:"list"`
9368
9369	// The task definition for the tasks in the task set to use.
9370	//
9371	// TaskDefinition is a required field
9372	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
9373}
9374
9375// String returns the string representation
9376func (s CreateTaskSetInput) String() string {
9377	return awsutil.Prettify(s)
9378}
9379
9380// GoString returns the string representation
9381func (s CreateTaskSetInput) GoString() string {
9382	return s.String()
9383}
9384
9385// Validate inspects the fields of the type to determine if they are valid.
9386func (s *CreateTaskSetInput) Validate() error {
9387	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
9388	if s.Cluster == nil {
9389		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9390	}
9391	if s.Service == nil {
9392		invalidParams.Add(request.NewErrParamRequired("Service"))
9393	}
9394	if s.TaskDefinition == nil {
9395		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
9396	}
9397	if s.CapacityProviderStrategy != nil {
9398		for i, v := range s.CapacityProviderStrategy {
9399			if v == nil {
9400				continue
9401			}
9402			if err := v.Validate(); err != nil {
9403				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9404			}
9405		}
9406	}
9407	if s.NetworkConfiguration != nil {
9408		if err := s.NetworkConfiguration.Validate(); err != nil {
9409			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9410		}
9411	}
9412	if s.Tags != nil {
9413		for i, v := range s.Tags {
9414			if v == nil {
9415				continue
9416			}
9417			if err := v.Validate(); err != nil {
9418				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9419			}
9420		}
9421	}
9422
9423	if invalidParams.Len() > 0 {
9424		return invalidParams
9425	}
9426	return nil
9427}
9428
9429// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9430func (s *CreateTaskSetInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateTaskSetInput {
9431	s.CapacityProviderStrategy = v
9432	return s
9433}
9434
9435// SetClientToken sets the ClientToken field's value.
9436func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
9437	s.ClientToken = &v
9438	return s
9439}
9440
9441// SetCluster sets the Cluster field's value.
9442func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
9443	s.Cluster = &v
9444	return s
9445}
9446
9447// SetExternalId sets the ExternalId field's value.
9448func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
9449	s.ExternalId = &v
9450	return s
9451}
9452
9453// SetLaunchType sets the LaunchType field's value.
9454func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
9455	s.LaunchType = &v
9456	return s
9457}
9458
9459// SetLoadBalancers sets the LoadBalancers field's value.
9460func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
9461	s.LoadBalancers = v
9462	return s
9463}
9464
9465// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9466func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
9467	s.NetworkConfiguration = v
9468	return s
9469}
9470
9471// SetPlatformVersion sets the PlatformVersion field's value.
9472func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
9473	s.PlatformVersion = &v
9474	return s
9475}
9476
9477// SetScale sets the Scale field's value.
9478func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
9479	s.Scale = v
9480	return s
9481}
9482
9483// SetService sets the Service field's value.
9484func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
9485	s.Service = &v
9486	return s
9487}
9488
9489// SetServiceRegistries sets the ServiceRegistries field's value.
9490func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
9491	s.ServiceRegistries = v
9492	return s
9493}
9494
9495// SetTags sets the Tags field's value.
9496func (s *CreateTaskSetInput) SetTags(v []*Tag) *CreateTaskSetInput {
9497	s.Tags = v
9498	return s
9499}
9500
9501// SetTaskDefinition sets the TaskDefinition field's value.
9502func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
9503	s.TaskDefinition = &v
9504	return s
9505}
9506
9507type CreateTaskSetOutput struct {
9508	_ struct{} `type:"structure"`
9509
9510	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9511	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9512	// desired number of tasks, how many tasks are running, and whether the task
9513	// set serves production traffic.
9514	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9515}
9516
9517// String returns the string representation
9518func (s CreateTaskSetOutput) String() string {
9519	return awsutil.Prettify(s)
9520}
9521
9522// GoString returns the string representation
9523func (s CreateTaskSetOutput) GoString() string {
9524	return s.String()
9525}
9526
9527// SetTaskSet sets the TaskSet field's value.
9528func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
9529	s.TaskSet = v
9530	return s
9531}
9532
9533type DeleteAccountSettingInput struct {
9534	_ struct{} `type:"structure"`
9535
9536	// The resource name for which to disable the account setting. If serviceLongArnFormat
9537	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
9538	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
9539	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
9540	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
9541	// the ENI limit for your Amazon ECS container instances is affected.
9542	//
9543	// Name is a required field
9544	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
9545
9546	// The ARN of the principal, which can be an IAM user, IAM role, or the root
9547	// user. If you specify the root user, it disables the account setting for all
9548	// IAM users, IAM roles, and the root user of the account unless an IAM user
9549	// or role explicitly overrides these settings. If this field is omitted, the
9550	// setting is changed only for the authenticated user.
9551	PrincipalArn *string `locationName:"principalArn" type:"string"`
9552}
9553
9554// String returns the string representation
9555func (s DeleteAccountSettingInput) String() string {
9556	return awsutil.Prettify(s)
9557}
9558
9559// GoString returns the string representation
9560func (s DeleteAccountSettingInput) GoString() string {
9561	return s.String()
9562}
9563
9564// Validate inspects the fields of the type to determine if they are valid.
9565func (s *DeleteAccountSettingInput) Validate() error {
9566	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
9567	if s.Name == nil {
9568		invalidParams.Add(request.NewErrParamRequired("Name"))
9569	}
9570
9571	if invalidParams.Len() > 0 {
9572		return invalidParams
9573	}
9574	return nil
9575}
9576
9577// SetName sets the Name field's value.
9578func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
9579	s.Name = &v
9580	return s
9581}
9582
9583// SetPrincipalArn sets the PrincipalArn field's value.
9584func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
9585	s.PrincipalArn = &v
9586	return s
9587}
9588
9589type DeleteAccountSettingOutput struct {
9590	_ struct{} `type:"structure"`
9591
9592	// The account setting for the specified principal ARN.
9593	Setting *Setting `locationName:"setting" type:"structure"`
9594}
9595
9596// String returns the string representation
9597func (s DeleteAccountSettingOutput) String() string {
9598	return awsutil.Prettify(s)
9599}
9600
9601// GoString returns the string representation
9602func (s DeleteAccountSettingOutput) GoString() string {
9603	return s.String()
9604}
9605
9606// SetSetting sets the Setting field's value.
9607func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
9608	s.Setting = v
9609	return s
9610}
9611
9612type DeleteAttributesInput struct {
9613	_ struct{} `type:"structure"`
9614
9615	// The attributes to delete from your resource. You can specify up to 10 attributes
9616	// per request. For custom attributes, specify the attribute name and target
9617	// ID, but do not specify the value. If you specify the target ID using the
9618	// short form, you must also specify the target type.
9619	//
9620	// Attributes is a required field
9621	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
9622
9623	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
9624	// the resource to delete attributes. If you do not specify a cluster, the default
9625	// cluster is assumed.
9626	Cluster *string `locationName:"cluster" type:"string"`
9627}
9628
9629// String returns the string representation
9630func (s DeleteAttributesInput) String() string {
9631	return awsutil.Prettify(s)
9632}
9633
9634// GoString returns the string representation
9635func (s DeleteAttributesInput) GoString() string {
9636	return s.String()
9637}
9638
9639// Validate inspects the fields of the type to determine if they are valid.
9640func (s *DeleteAttributesInput) Validate() error {
9641	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
9642	if s.Attributes == nil {
9643		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9644	}
9645	if s.Attributes != nil {
9646		for i, v := range s.Attributes {
9647			if v == nil {
9648				continue
9649			}
9650			if err := v.Validate(); err != nil {
9651				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9652			}
9653		}
9654	}
9655
9656	if invalidParams.Len() > 0 {
9657		return invalidParams
9658	}
9659	return nil
9660}
9661
9662// SetAttributes sets the Attributes field's value.
9663func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
9664	s.Attributes = v
9665	return s
9666}
9667
9668// SetCluster sets the Cluster field's value.
9669func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
9670	s.Cluster = &v
9671	return s
9672}
9673
9674type DeleteAttributesOutput struct {
9675	_ struct{} `type:"structure"`
9676
9677	// A list of attribute objects that were successfully deleted from your resource.
9678	Attributes []*Attribute `locationName:"attributes" type:"list"`
9679}
9680
9681// String returns the string representation
9682func (s DeleteAttributesOutput) String() string {
9683	return awsutil.Prettify(s)
9684}
9685
9686// GoString returns the string representation
9687func (s DeleteAttributesOutput) GoString() string {
9688	return s.String()
9689}
9690
9691// SetAttributes sets the Attributes field's value.
9692func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
9693	s.Attributes = v
9694	return s
9695}
9696
9697type DeleteCapacityProviderInput struct {
9698	_ struct{} `type:"structure"`
9699
9700	// The short name or full Amazon Resource Name (ARN) of the capacity provider
9701	// to delete.
9702	//
9703	// CapacityProvider is a required field
9704	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
9705}
9706
9707// String returns the string representation
9708func (s DeleteCapacityProviderInput) String() string {
9709	return awsutil.Prettify(s)
9710}
9711
9712// GoString returns the string representation
9713func (s DeleteCapacityProviderInput) GoString() string {
9714	return s.String()
9715}
9716
9717// Validate inspects the fields of the type to determine if they are valid.
9718func (s *DeleteCapacityProviderInput) Validate() error {
9719	invalidParams := request.ErrInvalidParams{Context: "DeleteCapacityProviderInput"}
9720	if s.CapacityProvider == nil {
9721		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
9722	}
9723
9724	if invalidParams.Len() > 0 {
9725		return invalidParams
9726	}
9727	return nil
9728}
9729
9730// SetCapacityProvider sets the CapacityProvider field's value.
9731func (s *DeleteCapacityProviderInput) SetCapacityProvider(v string) *DeleteCapacityProviderInput {
9732	s.CapacityProvider = &v
9733	return s
9734}
9735
9736type DeleteCapacityProviderOutput struct {
9737	_ struct{} `type:"structure"`
9738
9739	// The details of a capacity provider.
9740	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
9741}
9742
9743// String returns the string representation
9744func (s DeleteCapacityProviderOutput) String() string {
9745	return awsutil.Prettify(s)
9746}
9747
9748// GoString returns the string representation
9749func (s DeleteCapacityProviderOutput) GoString() string {
9750	return s.String()
9751}
9752
9753// SetCapacityProvider sets the CapacityProvider field's value.
9754func (s *DeleteCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *DeleteCapacityProviderOutput {
9755	s.CapacityProvider = v
9756	return s
9757}
9758
9759type DeleteClusterInput struct {
9760	_ struct{} `type:"structure"`
9761
9762	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
9763	//
9764	// Cluster is a required field
9765	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9766}
9767
9768// String returns the string representation
9769func (s DeleteClusterInput) String() string {
9770	return awsutil.Prettify(s)
9771}
9772
9773// GoString returns the string representation
9774func (s DeleteClusterInput) GoString() string {
9775	return s.String()
9776}
9777
9778// Validate inspects the fields of the type to determine if they are valid.
9779func (s *DeleteClusterInput) Validate() error {
9780	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
9781	if s.Cluster == nil {
9782		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9783	}
9784
9785	if invalidParams.Len() > 0 {
9786		return invalidParams
9787	}
9788	return nil
9789}
9790
9791// SetCluster sets the Cluster field's value.
9792func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
9793	s.Cluster = &v
9794	return s
9795}
9796
9797type DeleteClusterOutput struct {
9798	_ struct{} `type:"structure"`
9799
9800	// The full description of the deleted cluster.
9801	Cluster *Cluster `locationName:"cluster" type:"structure"`
9802}
9803
9804// String returns the string representation
9805func (s DeleteClusterOutput) String() string {
9806	return awsutil.Prettify(s)
9807}
9808
9809// GoString returns the string representation
9810func (s DeleteClusterOutput) GoString() string {
9811	return s.String()
9812}
9813
9814// SetCluster sets the Cluster field's value.
9815func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
9816	s.Cluster = v
9817	return s
9818}
9819
9820type DeleteServiceInput struct {
9821	_ struct{} `type:"structure"`
9822
9823	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9824	// the service to delete. If you do not specify a cluster, the default cluster
9825	// is assumed.
9826	Cluster *string `locationName:"cluster" type:"string"`
9827
9828	// If true, allows you to delete a service even if it has not been scaled down
9829	// to zero tasks. It is only necessary to use this if the service is using the
9830	// REPLICA scheduling strategy.
9831	Force *bool `locationName:"force" type:"boolean"`
9832
9833	// The name of the service to delete.
9834	//
9835	// Service is a required field
9836	Service *string `locationName:"service" type:"string" required:"true"`
9837}
9838
9839// String returns the string representation
9840func (s DeleteServiceInput) String() string {
9841	return awsutil.Prettify(s)
9842}
9843
9844// GoString returns the string representation
9845func (s DeleteServiceInput) GoString() string {
9846	return s.String()
9847}
9848
9849// Validate inspects the fields of the type to determine if they are valid.
9850func (s *DeleteServiceInput) Validate() error {
9851	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
9852	if s.Service == nil {
9853		invalidParams.Add(request.NewErrParamRequired("Service"))
9854	}
9855
9856	if invalidParams.Len() > 0 {
9857		return invalidParams
9858	}
9859	return nil
9860}
9861
9862// SetCluster sets the Cluster field's value.
9863func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
9864	s.Cluster = &v
9865	return s
9866}
9867
9868// SetForce sets the Force field's value.
9869func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
9870	s.Force = &v
9871	return s
9872}
9873
9874// SetService sets the Service field's value.
9875func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
9876	s.Service = &v
9877	return s
9878}
9879
9880type DeleteServiceOutput struct {
9881	_ struct{} `type:"structure"`
9882
9883	// The full description of the deleted service.
9884	Service *Service `locationName:"service" type:"structure"`
9885}
9886
9887// String returns the string representation
9888func (s DeleteServiceOutput) String() string {
9889	return awsutil.Prettify(s)
9890}
9891
9892// GoString returns the string representation
9893func (s DeleteServiceOutput) GoString() string {
9894	return s.String()
9895}
9896
9897// SetService sets the Service field's value.
9898func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
9899	s.Service = v
9900	return s
9901}
9902
9903type DeleteTaskSetInput struct {
9904	_ struct{} `type:"structure"`
9905
9906	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9907	// the service that the task set exists in to delete.
9908	//
9909	// Cluster is a required field
9910	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9911
9912	// If true, this allows you to delete a task set even if it hasn't been scaled
9913	// down to zero.
9914	Force *bool `locationName:"force" type:"boolean"`
9915
9916	// The short name or full Amazon Resource Name (ARN) of the service that hosts
9917	// the task set to delete.
9918	//
9919	// Service is a required field
9920	Service *string `locationName:"service" type:"string" required:"true"`
9921
9922	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
9923	//
9924	// TaskSet is a required field
9925	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
9926}
9927
9928// String returns the string representation
9929func (s DeleteTaskSetInput) String() string {
9930	return awsutil.Prettify(s)
9931}
9932
9933// GoString returns the string representation
9934func (s DeleteTaskSetInput) GoString() string {
9935	return s.String()
9936}
9937
9938// Validate inspects the fields of the type to determine if they are valid.
9939func (s *DeleteTaskSetInput) Validate() error {
9940	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
9941	if s.Cluster == nil {
9942		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9943	}
9944	if s.Service == nil {
9945		invalidParams.Add(request.NewErrParamRequired("Service"))
9946	}
9947	if s.TaskSet == nil {
9948		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
9949	}
9950
9951	if invalidParams.Len() > 0 {
9952		return invalidParams
9953	}
9954	return nil
9955}
9956
9957// SetCluster sets the Cluster field's value.
9958func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
9959	s.Cluster = &v
9960	return s
9961}
9962
9963// SetForce sets the Force field's value.
9964func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
9965	s.Force = &v
9966	return s
9967}
9968
9969// SetService sets the Service field's value.
9970func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
9971	s.Service = &v
9972	return s
9973}
9974
9975// SetTaskSet sets the TaskSet field's value.
9976func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
9977	s.TaskSet = &v
9978	return s
9979}
9980
9981type DeleteTaskSetOutput struct {
9982	_ struct{} `type:"structure"`
9983
9984	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9985	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9986	// desired number of tasks, how many tasks are running, and whether the task
9987	// set serves production traffic.
9988	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9989}
9990
9991// String returns the string representation
9992func (s DeleteTaskSetOutput) String() string {
9993	return awsutil.Prettify(s)
9994}
9995
9996// GoString returns the string representation
9997func (s DeleteTaskSetOutput) GoString() string {
9998	return s.String()
9999}
10000
10001// SetTaskSet sets the TaskSet field's value.
10002func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
10003	s.TaskSet = v
10004	return s
10005}
10006
10007// The details of an Amazon ECS service deployment. This is used only when a
10008// service uses the ECS deployment controller type.
10009type Deployment struct {
10010	_ struct{} `type:"structure"`
10011
10012	// The capacity provider strategy that the deployment is using.
10013	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
10014
10015	// The Unix timestamp for when the service deployment was created.
10016	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
10017
10018	// The most recent desired count of tasks that was specified for the service
10019	// to deploy or maintain.
10020	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
10021
10022	// The ID of the deployment.
10023	Id *string `locationName:"id" type:"string"`
10024
10025	// The launch type the tasks in the service are using. For more information,
10026	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
10027	// in the Amazon Elastic Container Service Developer Guide.
10028	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10029
10030	// The VPC subnet and security group configuration for tasks that receive their
10031	// own elastic network interface by using the awsvpc networking mode.
10032	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
10033
10034	// The number of tasks in the deployment that are in the PENDING status.
10035	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
10036
10037	// The platform version on which your tasks in the service are running. A platform
10038	// version is only specified for tasks using the Fargate launch type. If one
10039	// is not specified, the LATEST platform version is used by default. For more
10040	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
10041	// in the Amazon Elastic Container Service Developer Guide.
10042	PlatformVersion *string `locationName:"platformVersion" type:"string"`
10043
10044	// The number of tasks in the deployment that are in the RUNNING status.
10045	RunningCount *int64 `locationName:"runningCount" type:"integer"`
10046
10047	// The status of the deployment. The following describes each state:
10048	//
10049	// PRIMARY
10050	//
10051	// The most recent deployment of a service.
10052	//
10053	// ACTIVE
10054	//
10055	// A service deployment that still has running tasks, but are in the process
10056	// of being replaced with a new PRIMARY deployment.
10057	//
10058	// INACTIVE
10059	//
10060	// A deployment that has been completely replaced.
10061	Status *string `locationName:"status" type:"string"`
10062
10063	// The most recent task definition that was specified for the tasks in the service
10064	// to use.
10065	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
10066
10067	// The Unix timestamp for when the service deployment was last updated.
10068	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
10069}
10070
10071// String returns the string representation
10072func (s Deployment) String() string {
10073	return awsutil.Prettify(s)
10074}
10075
10076// GoString returns the string representation
10077func (s Deployment) GoString() string {
10078	return s.String()
10079}
10080
10081// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
10082func (s *Deployment) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Deployment {
10083	s.CapacityProviderStrategy = v
10084	return s
10085}
10086
10087// SetCreatedAt sets the CreatedAt field's value.
10088func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
10089	s.CreatedAt = &v
10090	return s
10091}
10092
10093// SetDesiredCount sets the DesiredCount field's value.
10094func (s *Deployment) SetDesiredCount(v int64) *Deployment {
10095	s.DesiredCount = &v
10096	return s
10097}
10098
10099// SetId sets the Id field's value.
10100func (s *Deployment) SetId(v string) *Deployment {
10101	s.Id = &v
10102	return s
10103}
10104
10105// SetLaunchType sets the LaunchType field's value.
10106func (s *Deployment) SetLaunchType(v string) *Deployment {
10107	s.LaunchType = &v
10108	return s
10109}
10110
10111// SetNetworkConfiguration sets the NetworkConfiguration field's value.
10112func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
10113	s.NetworkConfiguration = v
10114	return s
10115}
10116
10117// SetPendingCount sets the PendingCount field's value.
10118func (s *Deployment) SetPendingCount(v int64) *Deployment {
10119	s.PendingCount = &v
10120	return s
10121}
10122
10123// SetPlatformVersion sets the PlatformVersion field's value.
10124func (s *Deployment) SetPlatformVersion(v string) *Deployment {
10125	s.PlatformVersion = &v
10126	return s
10127}
10128
10129// SetRunningCount sets the RunningCount field's value.
10130func (s *Deployment) SetRunningCount(v int64) *Deployment {
10131	s.RunningCount = &v
10132	return s
10133}
10134
10135// SetStatus sets the Status field's value.
10136func (s *Deployment) SetStatus(v string) *Deployment {
10137	s.Status = &v
10138	return s
10139}
10140
10141// SetTaskDefinition sets the TaskDefinition field's value.
10142func (s *Deployment) SetTaskDefinition(v string) *Deployment {
10143	s.TaskDefinition = &v
10144	return s
10145}
10146
10147// SetUpdatedAt sets the UpdatedAt field's value.
10148func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
10149	s.UpdatedAt = &v
10150	return s
10151}
10152
10153// Optional deployment parameters that control how many tasks run during a deployment
10154// and the ordering of stopping and starting tasks.
10155type DeploymentConfiguration struct {
10156	_ struct{} `type:"structure"`
10157
10158	// If a service is using the rolling update (ECS) deployment type, the maximum
10159	// percent parameter represents an upper limit on the number of tasks in a service
10160	// that are allowed in the RUNNING or PENDING state during a deployment, as
10161	// a percentage of the desired number of tasks (rounded down to the nearest
10162	// integer), and while any container instances are in the DRAINING state if
10163	// the service contains tasks using the EC2 launch type. This parameter enables
10164	// you to define the deployment batch size. For example, if your service has
10165	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
10166	// may start four new tasks before stopping the four older tasks (provided that
10167	// the cluster resources required to do this are available). The default value
10168	// for maximum percent is 200%.
10169	//
10170	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10171	// types and tasks that use the EC2 launch type, the maximum percent value is
10172	// set to the default value and is used to define the upper limit on the number
10173	// of the tasks in the service that remain in the RUNNING state while the container
10174	// instances are in the DRAINING state. If the tasks in the service use the
10175	// Fargate launch type, the maximum percent value is not used, although it is
10176	// returned when describing your service.
10177	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
10178
10179	// If a service is using the rolling update (ECS) deployment type, the minimum
10180	// healthy percent represents a lower limit on the number of tasks in a service
10181	// that must remain in the RUNNING state during a deployment, as a percentage
10182	// of the desired number of tasks (rounded up to the nearest integer), and while
10183	// any container instances are in the DRAINING state if the service contains
10184	// tasks using the EC2 launch type. This parameter enables you to deploy without
10185	// using additional cluster capacity. For example, if your service has a desired
10186	// number of four tasks and a minimum healthy percent of 50%, the scheduler
10187	// may stop two existing tasks to free up cluster capacity before starting two
10188	// new tasks. Tasks for services that do not use a load balancer are considered
10189	// healthy if they are in the RUNNING state; tasks for services that do use
10190	// a load balancer are considered healthy if they are in the RUNNING state and
10191	// they are reported as healthy by the load balancer. The default value for
10192	// minimum healthy percent is 100%.
10193	//
10194	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10195	// types and tasks that use the EC2 launch type, the minimum healthy percent
10196	// value is set to the default value and is used to define the lower limit on
10197	// the number of the tasks in the service that remain in the RUNNING state while
10198	// the container instances are in the DRAINING state. If the tasks in the service
10199	// use the Fargate launch type, the minimum healthy percent value is not used,
10200	// although it is returned when describing your service.
10201	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
10202}
10203
10204// String returns the string representation
10205func (s DeploymentConfiguration) String() string {
10206	return awsutil.Prettify(s)
10207}
10208
10209// GoString returns the string representation
10210func (s DeploymentConfiguration) GoString() string {
10211	return s.String()
10212}
10213
10214// SetMaximumPercent sets the MaximumPercent field's value.
10215func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
10216	s.MaximumPercent = &v
10217	return s
10218}
10219
10220// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
10221func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
10222	s.MinimumHealthyPercent = &v
10223	return s
10224}
10225
10226// The deployment controller to use for the service. For more information, see
10227// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
10228// in the Amazon Elastic Container Service Developer Guide.
10229type DeploymentController struct {
10230	_ struct{} `type:"structure"`
10231
10232	// The deployment controller type to use.
10233	//
10234	// There are three deployment controller types available:
10235	//
10236	// ECS
10237	//
10238	// The rolling update (ECS) deployment type involves replacing the current running
10239	// version of the container with the latest version. The number of containers
10240	// Amazon ECS adds or removes from the service during a rolling update is controlled
10241	// by adjusting the minimum and maximum number of healthy tasks allowed during
10242	// a service deployment, as specified in the DeploymentConfiguration.
10243	//
10244	// CODE_DEPLOY
10245	//
10246	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
10247	// model powered by AWS CodeDeploy, which allows you to verify a new deployment
10248	// of a service before sending production traffic to it.
10249	//
10250	// EXTERNAL
10251	//
10252	// The external (EXTERNAL) deployment type enables you to use any third-party
10253	// deployment controller for full control over the deployment process for an
10254	// Amazon ECS service.
10255	//
10256	// Type is a required field
10257	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
10258}
10259
10260// String returns the string representation
10261func (s DeploymentController) String() string {
10262	return awsutil.Prettify(s)
10263}
10264
10265// GoString returns the string representation
10266func (s DeploymentController) GoString() string {
10267	return s.String()
10268}
10269
10270// Validate inspects the fields of the type to determine if they are valid.
10271func (s *DeploymentController) Validate() error {
10272	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
10273	if s.Type == nil {
10274		invalidParams.Add(request.NewErrParamRequired("Type"))
10275	}
10276
10277	if invalidParams.Len() > 0 {
10278		return invalidParams
10279	}
10280	return nil
10281}
10282
10283// SetType sets the Type field's value.
10284func (s *DeploymentController) SetType(v string) *DeploymentController {
10285	s.Type = &v
10286	return s
10287}
10288
10289type DeregisterContainerInstanceInput struct {
10290	_ struct{} `type:"structure"`
10291
10292	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10293	// the container instance to deregister. If you do not specify a cluster, the
10294	// default cluster is assumed.
10295	Cluster *string `locationName:"cluster" type:"string"`
10296
10297	// The container instance ID or full ARN of the container instance to deregister.
10298	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
10299	// container instance, the AWS account ID of the container instance owner, the
10300	// container-instance namespace, and then the container instance ID. For example,
10301	// arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
10302	//
10303	// ContainerInstance is a required field
10304	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
10305
10306	// Forces the deregistration of the container instance. If you have tasks running
10307	// on the container instance when you deregister it with the force option, these
10308	// tasks remain running until you terminate the instance or the tasks stop through
10309	// some other means, but they are orphaned (no longer monitored or accounted
10310	// for by Amazon ECS). If an orphaned task on your container instance is part
10311	// of an Amazon ECS service, then the service scheduler starts another copy
10312	// of that task, on a different container instance if possible.
10313	//
10314	// Any containers in orphaned service tasks that are registered with a Classic
10315	// Load Balancer or an Application Load Balancer target group are deregistered.
10316	// They begin connection draining according to the settings on the load balancer
10317	// or target group.
10318	Force *bool `locationName:"force" type:"boolean"`
10319}
10320
10321// String returns the string representation
10322func (s DeregisterContainerInstanceInput) String() string {
10323	return awsutil.Prettify(s)
10324}
10325
10326// GoString returns the string representation
10327func (s DeregisterContainerInstanceInput) GoString() string {
10328	return s.String()
10329}
10330
10331// Validate inspects the fields of the type to determine if they are valid.
10332func (s *DeregisterContainerInstanceInput) Validate() error {
10333	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
10334	if s.ContainerInstance == nil {
10335		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
10336	}
10337
10338	if invalidParams.Len() > 0 {
10339		return invalidParams
10340	}
10341	return nil
10342}
10343
10344// SetCluster sets the Cluster field's value.
10345func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
10346	s.Cluster = &v
10347	return s
10348}
10349
10350// SetContainerInstance sets the ContainerInstance field's value.
10351func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
10352	s.ContainerInstance = &v
10353	return s
10354}
10355
10356// SetForce sets the Force field's value.
10357func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
10358	s.Force = &v
10359	return s
10360}
10361
10362type DeregisterContainerInstanceOutput struct {
10363	_ struct{} `type:"structure"`
10364
10365	// The container instance that was deregistered.
10366	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
10367}
10368
10369// String returns the string representation
10370func (s DeregisterContainerInstanceOutput) String() string {
10371	return awsutil.Prettify(s)
10372}
10373
10374// GoString returns the string representation
10375func (s DeregisterContainerInstanceOutput) GoString() string {
10376	return s.String()
10377}
10378
10379// SetContainerInstance sets the ContainerInstance field's value.
10380func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
10381	s.ContainerInstance = v
10382	return s
10383}
10384
10385type DeregisterTaskDefinitionInput struct {
10386	_ struct{} `type:"structure"`
10387
10388	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
10389	// of the task definition to deregister. You must specify a revision.
10390	//
10391	// TaskDefinition is a required field
10392	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10393}
10394
10395// String returns the string representation
10396func (s DeregisterTaskDefinitionInput) String() string {
10397	return awsutil.Prettify(s)
10398}
10399
10400// GoString returns the string representation
10401func (s DeregisterTaskDefinitionInput) GoString() string {
10402	return s.String()
10403}
10404
10405// Validate inspects the fields of the type to determine if they are valid.
10406func (s *DeregisterTaskDefinitionInput) Validate() error {
10407	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
10408	if s.TaskDefinition == nil {
10409		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10410	}
10411
10412	if invalidParams.Len() > 0 {
10413		return invalidParams
10414	}
10415	return nil
10416}
10417
10418// SetTaskDefinition sets the TaskDefinition field's value.
10419func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
10420	s.TaskDefinition = &v
10421	return s
10422}
10423
10424type DeregisterTaskDefinitionOutput struct {
10425	_ struct{} `type:"structure"`
10426
10427	// The full description of the deregistered task.
10428	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10429}
10430
10431// String returns the string representation
10432func (s DeregisterTaskDefinitionOutput) String() string {
10433	return awsutil.Prettify(s)
10434}
10435
10436// GoString returns the string representation
10437func (s DeregisterTaskDefinitionOutput) GoString() string {
10438	return s.String()
10439}
10440
10441// SetTaskDefinition sets the TaskDefinition field's value.
10442func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
10443	s.TaskDefinition = v
10444	return s
10445}
10446
10447type DescribeCapacityProvidersInput struct {
10448	_ struct{} `type:"structure"`
10449
10450	// The short name or full Amazon Resource Name (ARN) of one or more capacity
10451	// providers. Up to 100 capacity providers can be described in an action.
10452	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
10453
10454	// Specifies whether or not you want to see the resource tags for the capacity
10455	// provider. If TAGS is specified, the tags are included in the response. If
10456	// this field is omitted, tags are not included in the response.
10457	Include []*string `locationName:"include" type:"list"`
10458
10459	// The maximum number of account setting results returned by DescribeCapacityProviders
10460	// in paginated output. When this parameter is used, DescribeCapacityProviders
10461	// only returns maxResults results in a single page along with a nextToken response
10462	// element. The remaining results of the initial request can be seen by sending
10463	// another DescribeCapacityProviders request with the returned nextToken value.
10464	// This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders
10465	// returns up to 10 results and a nextToken value if applicable.
10466	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10467
10468	// The nextToken value returned from a previous paginated DescribeCapacityProviders
10469	// request where maxResults was used and the results exceeded the value of that
10470	// parameter. Pagination continues from the end of the previous results that
10471	// returned the nextToken value.
10472	//
10473	// This token should be treated as an opaque identifier that is only used to
10474	// retrieve the next items in a list and not for other programmatic purposes.
10475	NextToken *string `locationName:"nextToken" type:"string"`
10476}
10477
10478// String returns the string representation
10479func (s DescribeCapacityProvidersInput) String() string {
10480	return awsutil.Prettify(s)
10481}
10482
10483// GoString returns the string representation
10484func (s DescribeCapacityProvidersInput) GoString() string {
10485	return s.String()
10486}
10487
10488// SetCapacityProviders sets the CapacityProviders field's value.
10489func (s *DescribeCapacityProvidersInput) SetCapacityProviders(v []*string) *DescribeCapacityProvidersInput {
10490	s.CapacityProviders = v
10491	return s
10492}
10493
10494// SetInclude sets the Include field's value.
10495func (s *DescribeCapacityProvidersInput) SetInclude(v []*string) *DescribeCapacityProvidersInput {
10496	s.Include = v
10497	return s
10498}
10499
10500// SetMaxResults sets the MaxResults field's value.
10501func (s *DescribeCapacityProvidersInput) SetMaxResults(v int64) *DescribeCapacityProvidersInput {
10502	s.MaxResults = &v
10503	return s
10504}
10505
10506// SetNextToken sets the NextToken field's value.
10507func (s *DescribeCapacityProvidersInput) SetNextToken(v string) *DescribeCapacityProvidersInput {
10508	s.NextToken = &v
10509	return s
10510}
10511
10512type DescribeCapacityProvidersOutput struct {
10513	_ struct{} `type:"structure"`
10514
10515	// The list of capacity providers.
10516	CapacityProviders []*CapacityProvider `locationName:"capacityProviders" type:"list"`
10517
10518	// Any failures associated with the call.
10519	Failures []*Failure `locationName:"failures" type:"list"`
10520
10521	// The nextToken value to include in a future DescribeCapacityProviders request.
10522	// When the results of a DescribeCapacityProviders request exceed maxResults,
10523	// this value can be used to retrieve the next page of results. This value is
10524	// null when there are no more results to return.
10525	NextToken *string `locationName:"nextToken" type:"string"`
10526}
10527
10528// String returns the string representation
10529func (s DescribeCapacityProvidersOutput) String() string {
10530	return awsutil.Prettify(s)
10531}
10532
10533// GoString returns the string representation
10534func (s DescribeCapacityProvidersOutput) GoString() string {
10535	return s.String()
10536}
10537
10538// SetCapacityProviders sets the CapacityProviders field's value.
10539func (s *DescribeCapacityProvidersOutput) SetCapacityProviders(v []*CapacityProvider) *DescribeCapacityProvidersOutput {
10540	s.CapacityProviders = v
10541	return s
10542}
10543
10544// SetFailures sets the Failures field's value.
10545func (s *DescribeCapacityProvidersOutput) SetFailures(v []*Failure) *DescribeCapacityProvidersOutput {
10546	s.Failures = v
10547	return s
10548}
10549
10550// SetNextToken sets the NextToken field's value.
10551func (s *DescribeCapacityProvidersOutput) SetNextToken(v string) *DescribeCapacityProvidersOutput {
10552	s.NextToken = &v
10553	return s
10554}
10555
10556type DescribeClustersInput struct {
10557	_ struct{} `type:"structure"`
10558
10559	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
10560	// entries. If you do not specify a cluster, the default cluster is assumed.
10561	Clusters []*string `locationName:"clusters" type:"list"`
10562
10563	// Whether to include additional information about your clusters in the response.
10564	// If this field is omitted, the attachments, statistics, and tags are not included.
10565	//
10566	// If ATTACHMENTS is specified, the attachments for the container instances
10567	// or tasks within the cluster are included.
10568	//
10569	// If SETTINGS is specified, the settings for the cluster are included.
10570	//
10571	// If STATISTICS is specified, the following additional information, separated
10572	// by launch type, is included:
10573	//
10574	//    * runningEC2TasksCount
10575	//
10576	//    * runningFargateTasksCount
10577	//
10578	//    * pendingEC2TasksCount
10579	//
10580	//    * pendingFargateTasksCount
10581	//
10582	//    * activeEC2ServiceCount
10583	//
10584	//    * activeFargateServiceCount
10585	//
10586	//    * drainingEC2ServiceCount
10587	//
10588	//    * drainingFargateServiceCount
10589	//
10590	// If TAGS is specified, the metadata tags associated with the cluster are included.
10591	Include []*string `locationName:"include" type:"list"`
10592}
10593
10594// String returns the string representation
10595func (s DescribeClustersInput) String() string {
10596	return awsutil.Prettify(s)
10597}
10598
10599// GoString returns the string representation
10600func (s DescribeClustersInput) GoString() string {
10601	return s.String()
10602}
10603
10604// SetClusters sets the Clusters field's value.
10605func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
10606	s.Clusters = v
10607	return s
10608}
10609
10610// SetInclude sets the Include field's value.
10611func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
10612	s.Include = v
10613	return s
10614}
10615
10616type DescribeClustersOutput struct {
10617	_ struct{} `type:"structure"`
10618
10619	// The list of clusters.
10620	Clusters []*Cluster `locationName:"clusters" type:"list"`
10621
10622	// Any failures associated with the call.
10623	Failures []*Failure `locationName:"failures" type:"list"`
10624}
10625
10626// String returns the string representation
10627func (s DescribeClustersOutput) String() string {
10628	return awsutil.Prettify(s)
10629}
10630
10631// GoString returns the string representation
10632func (s DescribeClustersOutput) GoString() string {
10633	return s.String()
10634}
10635
10636// SetClusters sets the Clusters field's value.
10637func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
10638	s.Clusters = v
10639	return s
10640}
10641
10642// SetFailures sets the Failures field's value.
10643func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
10644	s.Failures = v
10645	return s
10646}
10647
10648type DescribeContainerInstancesInput struct {
10649	_ struct{} `type:"structure"`
10650
10651	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10652	// the container instances to describe. If you do not specify a cluster, the
10653	// default cluster is assumed. This parameter is required if the container instance
10654	// or container instances you are describing were launched in any cluster other
10655	// than the default cluster.
10656	Cluster *string `locationName:"cluster" type:"string"`
10657
10658	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
10659	// entries.
10660	//
10661	// ContainerInstances is a required field
10662	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
10663
10664	// Specifies whether you want to see the resource tags for the container instance.
10665	// If TAGS is specified, the tags are included in the response. If this field
10666	// is omitted, tags are not included in the response.
10667	Include []*string `locationName:"include" type:"list"`
10668}
10669
10670// String returns the string representation
10671func (s DescribeContainerInstancesInput) String() string {
10672	return awsutil.Prettify(s)
10673}
10674
10675// GoString returns the string representation
10676func (s DescribeContainerInstancesInput) GoString() string {
10677	return s.String()
10678}
10679
10680// Validate inspects the fields of the type to determine if they are valid.
10681func (s *DescribeContainerInstancesInput) Validate() error {
10682	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
10683	if s.ContainerInstances == nil {
10684		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
10685	}
10686
10687	if invalidParams.Len() > 0 {
10688		return invalidParams
10689	}
10690	return nil
10691}
10692
10693// SetCluster sets the Cluster field's value.
10694func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
10695	s.Cluster = &v
10696	return s
10697}
10698
10699// SetContainerInstances sets the ContainerInstances field's value.
10700func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
10701	s.ContainerInstances = v
10702	return s
10703}
10704
10705// SetInclude sets the Include field's value.
10706func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
10707	s.Include = v
10708	return s
10709}
10710
10711type DescribeContainerInstancesOutput struct {
10712	_ struct{} `type:"structure"`
10713
10714	// The list of container instances.
10715	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
10716
10717	// Any failures associated with the call.
10718	Failures []*Failure `locationName:"failures" type:"list"`
10719}
10720
10721// String returns the string representation
10722func (s DescribeContainerInstancesOutput) String() string {
10723	return awsutil.Prettify(s)
10724}
10725
10726// GoString returns the string representation
10727func (s DescribeContainerInstancesOutput) GoString() string {
10728	return s.String()
10729}
10730
10731// SetContainerInstances sets the ContainerInstances field's value.
10732func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
10733	s.ContainerInstances = v
10734	return s
10735}
10736
10737// SetFailures sets the Failures field's value.
10738func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
10739	s.Failures = v
10740	return s
10741}
10742
10743type DescribeServicesInput struct {
10744	_ struct{} `type:"structure"`
10745
10746	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
10747	// service to describe. If you do not specify a cluster, the default cluster
10748	// is assumed. This parameter is required if the service or services you are
10749	// describing were launched in any cluster other than the default cluster.
10750	Cluster *string `locationName:"cluster" type:"string"`
10751
10752	// Specifies whether you want to see the resource tags for the service. If TAGS
10753	// is specified, the tags are included in the response. If this field is omitted,
10754	// tags are not included in the response.
10755	Include []*string `locationName:"include" type:"list"`
10756
10757	// A list of services to describe. You may specify up to 10 services to describe
10758	// in a single operation.
10759	//
10760	// Services is a required field
10761	Services []*string `locationName:"services" type:"list" required:"true"`
10762}
10763
10764// String returns the string representation
10765func (s DescribeServicesInput) String() string {
10766	return awsutil.Prettify(s)
10767}
10768
10769// GoString returns the string representation
10770func (s DescribeServicesInput) GoString() string {
10771	return s.String()
10772}
10773
10774// Validate inspects the fields of the type to determine if they are valid.
10775func (s *DescribeServicesInput) Validate() error {
10776	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
10777	if s.Services == nil {
10778		invalidParams.Add(request.NewErrParamRequired("Services"))
10779	}
10780
10781	if invalidParams.Len() > 0 {
10782		return invalidParams
10783	}
10784	return nil
10785}
10786
10787// SetCluster sets the Cluster field's value.
10788func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
10789	s.Cluster = &v
10790	return s
10791}
10792
10793// SetInclude sets the Include field's value.
10794func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
10795	s.Include = v
10796	return s
10797}
10798
10799// SetServices sets the Services field's value.
10800func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
10801	s.Services = v
10802	return s
10803}
10804
10805type DescribeServicesOutput struct {
10806	_ struct{} `type:"structure"`
10807
10808	// Any failures associated with the call.
10809	Failures []*Failure `locationName:"failures" type:"list"`
10810
10811	// The list of services described.
10812	Services []*Service `locationName:"services" type:"list"`
10813}
10814
10815// String returns the string representation
10816func (s DescribeServicesOutput) String() string {
10817	return awsutil.Prettify(s)
10818}
10819
10820// GoString returns the string representation
10821func (s DescribeServicesOutput) GoString() string {
10822	return s.String()
10823}
10824
10825// SetFailures sets the Failures field's value.
10826func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
10827	s.Failures = v
10828	return s
10829}
10830
10831// SetServices sets the Services field's value.
10832func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
10833	s.Services = v
10834	return s
10835}
10836
10837type DescribeTaskDefinitionInput struct {
10838	_ struct{} `type:"structure"`
10839
10840	// Specifies whether to see the resource tags for the task definition. If TAGS
10841	// is specified, the tags are included in the response. If this field is omitted,
10842	// tags are not included in the response.
10843	Include []*string `locationName:"include" type:"list"`
10844
10845	// The family for the latest ACTIVE revision, family and revision (family:revision)
10846	// for a specific revision in the family, or full Amazon Resource Name (ARN)
10847	// of the task definition to describe.
10848	//
10849	// TaskDefinition is a required field
10850	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10851}
10852
10853// String returns the string representation
10854func (s DescribeTaskDefinitionInput) String() string {
10855	return awsutil.Prettify(s)
10856}
10857
10858// GoString returns the string representation
10859func (s DescribeTaskDefinitionInput) GoString() string {
10860	return s.String()
10861}
10862
10863// Validate inspects the fields of the type to determine if they are valid.
10864func (s *DescribeTaskDefinitionInput) Validate() error {
10865	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
10866	if s.TaskDefinition == nil {
10867		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10868	}
10869
10870	if invalidParams.Len() > 0 {
10871		return invalidParams
10872	}
10873	return nil
10874}
10875
10876// SetInclude sets the Include field's value.
10877func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
10878	s.Include = v
10879	return s
10880}
10881
10882// SetTaskDefinition sets the TaskDefinition field's value.
10883func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
10884	s.TaskDefinition = &v
10885	return s
10886}
10887
10888type DescribeTaskDefinitionOutput struct {
10889	_ struct{} `type:"structure"`
10890
10891	// The metadata that is applied to the task definition to help you categorize
10892	// and organize them. Each tag consists of a key and an optional value, both
10893	// of which you define.
10894	//
10895	// The following basic restrictions apply to tags:
10896	//
10897	//    * Maximum number of tags per resource - 50
10898	//
10899	//    * For each resource, each tag key must be unique, and each tag key can
10900	//    have only one value.
10901	//
10902	//    * Maximum key length - 128 Unicode characters in UTF-8
10903	//
10904	//    * Maximum value length - 256 Unicode characters in UTF-8
10905	//
10906	//    * If your tagging schema is used across multiple services and resources,
10907	//    remember that other services may have restrictions on allowed characters.
10908	//    Generally allowed characters are: letters, numbers, and spaces representable
10909	//    in UTF-8, and the following characters: + - = . _ : / @.
10910	//
10911	//    * Tag keys and values are case-sensitive.
10912	//
10913	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
10914	//    as a prefix for either keys or values as it is reserved for AWS use. You
10915	//    cannot edit or delete tag keys or values with this prefix. Tags with this
10916	//    prefix do not count against your tags per resource limit.
10917	Tags []*Tag `locationName:"tags" type:"list"`
10918
10919	// The full task definition description.
10920	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10921}
10922
10923// String returns the string representation
10924func (s DescribeTaskDefinitionOutput) String() string {
10925	return awsutil.Prettify(s)
10926}
10927
10928// GoString returns the string representation
10929func (s DescribeTaskDefinitionOutput) GoString() string {
10930	return s.String()
10931}
10932
10933// SetTags sets the Tags field's value.
10934func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
10935	s.Tags = v
10936	return s
10937}
10938
10939// SetTaskDefinition sets the TaskDefinition field's value.
10940func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
10941	s.TaskDefinition = v
10942	return s
10943}
10944
10945type DescribeTaskSetsInput struct {
10946	_ struct{} `type:"structure"`
10947
10948	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10949	// the service that the task sets exist in.
10950	//
10951	// Cluster is a required field
10952	Cluster *string `locationName:"cluster" type:"string" required:"true"`
10953
10954	// Specifies whether to see the resource tags for the task set. If TAGS is specified,
10955	// the tags are included in the response. If this field is omitted, tags are
10956	// not included in the response.
10957	Include []*string `locationName:"include" type:"list"`
10958
10959	// The short name or full Amazon Resource Name (ARN) of the service that the
10960	// task sets exist in.
10961	//
10962	// Service is a required field
10963	Service *string `locationName:"service" type:"string" required:"true"`
10964
10965	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
10966	TaskSets []*string `locationName:"taskSets" type:"list"`
10967}
10968
10969// String returns the string representation
10970func (s DescribeTaskSetsInput) String() string {
10971	return awsutil.Prettify(s)
10972}
10973
10974// GoString returns the string representation
10975func (s DescribeTaskSetsInput) GoString() string {
10976	return s.String()
10977}
10978
10979// Validate inspects the fields of the type to determine if they are valid.
10980func (s *DescribeTaskSetsInput) Validate() error {
10981	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
10982	if s.Cluster == nil {
10983		invalidParams.Add(request.NewErrParamRequired("Cluster"))
10984	}
10985	if s.Service == nil {
10986		invalidParams.Add(request.NewErrParamRequired("Service"))
10987	}
10988
10989	if invalidParams.Len() > 0 {
10990		return invalidParams
10991	}
10992	return nil
10993}
10994
10995// SetCluster sets the Cluster field's value.
10996func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
10997	s.Cluster = &v
10998	return s
10999}
11000
11001// SetInclude sets the Include field's value.
11002func (s *DescribeTaskSetsInput) SetInclude(v []*string) *DescribeTaskSetsInput {
11003	s.Include = v
11004	return s
11005}
11006
11007// SetService sets the Service field's value.
11008func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
11009	s.Service = &v
11010	return s
11011}
11012
11013// SetTaskSets sets the TaskSets field's value.
11014func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
11015	s.TaskSets = v
11016	return s
11017}
11018
11019type DescribeTaskSetsOutput struct {
11020	_ struct{} `type:"structure"`
11021
11022	// Any failures associated with the call.
11023	Failures []*Failure `locationName:"failures" type:"list"`
11024
11025	// The list of task sets described.
11026	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
11027}
11028
11029// String returns the string representation
11030func (s DescribeTaskSetsOutput) String() string {
11031	return awsutil.Prettify(s)
11032}
11033
11034// GoString returns the string representation
11035func (s DescribeTaskSetsOutput) GoString() string {
11036	return s.String()
11037}
11038
11039// SetFailures sets the Failures field's value.
11040func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
11041	s.Failures = v
11042	return s
11043}
11044
11045// SetTaskSets sets the TaskSets field's value.
11046func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
11047	s.TaskSets = v
11048	return s
11049}
11050
11051type DescribeTasksInput struct {
11052	_ struct{} `type:"structure"`
11053
11054	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11055	// the task or tasks to describe. If you do not specify a cluster, the default
11056	// cluster is assumed. This parameter is required if the task or tasks you are
11057	// describing were launched in any cluster other than the default cluster.
11058	Cluster *string `locationName:"cluster" type:"string"`
11059
11060	// Specifies whether you want to see the resource tags for the task. If TAGS
11061	// is specified, the tags are included in the response. If this field is omitted,
11062	// tags are not included in the response.
11063	Include []*string `locationName:"include" type:"list"`
11064
11065	// A list of up to 100 task IDs or full ARN entries.
11066	//
11067	// Tasks is a required field
11068	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
11069}
11070
11071// String returns the string representation
11072func (s DescribeTasksInput) String() string {
11073	return awsutil.Prettify(s)
11074}
11075
11076// GoString returns the string representation
11077func (s DescribeTasksInput) GoString() string {
11078	return s.String()
11079}
11080
11081// Validate inspects the fields of the type to determine if they are valid.
11082func (s *DescribeTasksInput) Validate() error {
11083	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
11084	if s.Tasks == nil {
11085		invalidParams.Add(request.NewErrParamRequired("Tasks"))
11086	}
11087
11088	if invalidParams.Len() > 0 {
11089		return invalidParams
11090	}
11091	return nil
11092}
11093
11094// SetCluster sets the Cluster field's value.
11095func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
11096	s.Cluster = &v
11097	return s
11098}
11099
11100// SetInclude sets the Include field's value.
11101func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
11102	s.Include = v
11103	return s
11104}
11105
11106// SetTasks sets the Tasks field's value.
11107func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
11108	s.Tasks = v
11109	return s
11110}
11111
11112type DescribeTasksOutput struct {
11113	_ struct{} `type:"structure"`
11114
11115	// Any failures associated with the call.
11116	Failures []*Failure `locationName:"failures" type:"list"`
11117
11118	// The list of tasks.
11119	Tasks []*Task `locationName:"tasks" type:"list"`
11120}
11121
11122// String returns the string representation
11123func (s DescribeTasksOutput) String() string {
11124	return awsutil.Prettify(s)
11125}
11126
11127// GoString returns the string representation
11128func (s DescribeTasksOutput) GoString() string {
11129	return s.String()
11130}
11131
11132// SetFailures sets the Failures field's value.
11133func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
11134	s.Failures = v
11135	return s
11136}
11137
11138// SetTasks sets the Tasks field's value.
11139func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
11140	s.Tasks = v
11141	return s
11142}
11143
11144// An object representing a container instance host device.
11145type Device struct {
11146	_ struct{} `type:"structure"`
11147
11148	// The path inside the container at which to expose the host device.
11149	ContainerPath *string `locationName:"containerPath" type:"string"`
11150
11151	// The path for the device on the host container instance.
11152	//
11153	// HostPath is a required field
11154	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
11155
11156	// The explicit permissions to provide to the container for the device. By default,
11157	// the container has permissions for read, write, and mknod for the device.
11158	Permissions []*string `locationName:"permissions" type:"list"`
11159}
11160
11161// String returns the string representation
11162func (s Device) String() string {
11163	return awsutil.Prettify(s)
11164}
11165
11166// GoString returns the string representation
11167func (s Device) GoString() string {
11168	return s.String()
11169}
11170
11171// Validate inspects the fields of the type to determine if they are valid.
11172func (s *Device) Validate() error {
11173	invalidParams := request.ErrInvalidParams{Context: "Device"}
11174	if s.HostPath == nil {
11175		invalidParams.Add(request.NewErrParamRequired("HostPath"))
11176	}
11177
11178	if invalidParams.Len() > 0 {
11179		return invalidParams
11180	}
11181	return nil
11182}
11183
11184// SetContainerPath sets the ContainerPath field's value.
11185func (s *Device) SetContainerPath(v string) *Device {
11186	s.ContainerPath = &v
11187	return s
11188}
11189
11190// SetHostPath sets the HostPath field's value.
11191func (s *Device) SetHostPath(v string) *Device {
11192	s.HostPath = &v
11193	return s
11194}
11195
11196// SetPermissions sets the Permissions field's value.
11197func (s *Device) SetPermissions(v []*string) *Device {
11198	s.Permissions = v
11199	return s
11200}
11201
11202type DiscoverPollEndpointInput struct {
11203	_ struct{} `type:"structure"`
11204
11205	// The short name or full Amazon Resource Name (ARN) of the cluster to which
11206	// the container instance belongs.
11207	Cluster *string `locationName:"cluster" type:"string"`
11208
11209	// The container instance ID or full ARN of the container instance. The ARN
11210	// contains the arn:aws:ecs namespace, followed by the Region of the container
11211	// instance, the AWS account ID of the container instance owner, the container-instance
11212	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
11213	ContainerInstance *string `locationName:"containerInstance" type:"string"`
11214}
11215
11216// String returns the string representation
11217func (s DiscoverPollEndpointInput) String() string {
11218	return awsutil.Prettify(s)
11219}
11220
11221// GoString returns the string representation
11222func (s DiscoverPollEndpointInput) GoString() string {
11223	return s.String()
11224}
11225
11226// SetCluster sets the Cluster field's value.
11227func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
11228	s.Cluster = &v
11229	return s
11230}
11231
11232// SetContainerInstance sets the ContainerInstance field's value.
11233func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
11234	s.ContainerInstance = &v
11235	return s
11236}
11237
11238type DiscoverPollEndpointOutput struct {
11239	_ struct{} `type:"structure"`
11240
11241	// The endpoint for the Amazon ECS agent to poll.
11242	Endpoint *string `locationName:"endpoint" type:"string"`
11243
11244	// The telemetry endpoint for the Amazon ECS agent.
11245	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
11246}
11247
11248// String returns the string representation
11249func (s DiscoverPollEndpointOutput) String() string {
11250	return awsutil.Prettify(s)
11251}
11252
11253// GoString returns the string representation
11254func (s DiscoverPollEndpointOutput) GoString() string {
11255	return s.String()
11256}
11257
11258// SetEndpoint sets the Endpoint field's value.
11259func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
11260	s.Endpoint = &v
11261	return s
11262}
11263
11264// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
11265func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
11266	s.TelemetryEndpoint = &v
11267	return s
11268}
11269
11270// This parameter is specified when you are using Docker volumes. Docker volumes
11271// are only supported when you are using the EC2 launch type. Windows containers
11272// only support the use of the local driver. To use bind mounts, specify a host
11273// instead.
11274type DockerVolumeConfiguration struct {
11275	_ struct{} `type:"structure"`
11276
11277	// If this value is true, the Docker volume is created if it does not already
11278	// exist.
11279	//
11280	// This field is only used if the scope is shared.
11281	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
11282
11283	// The Docker volume driver to use. The driver value must match the driver name
11284	// provided by Docker because it is used for task placement. If the driver was
11285	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
11286	// driver name from your container instance. If the driver was installed using
11287	// another method, use Docker plugin discovery to retrieve the driver name.
11288	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
11289	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11290	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11291	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11292	Driver *string `locationName:"driver" type:"string"`
11293
11294	// A map of Docker driver-specific options passed through. This parameter maps
11295	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11296	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11297	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11298	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
11299
11300	// Custom metadata to add to your Docker volume. This parameter maps to Labels
11301	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11302	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11303	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11304	Labels map[string]*string `locationName:"labels" type:"map"`
11305
11306	// The scope for the Docker volume that determines its lifecycle. Docker volumes
11307	// that are scoped to a task are automatically provisioned when the task starts
11308	// and destroyed when the task stops. Docker volumes that are scoped as shared
11309	// persist after the task stops.
11310	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
11311}
11312
11313// String returns the string representation
11314func (s DockerVolumeConfiguration) String() string {
11315	return awsutil.Prettify(s)
11316}
11317
11318// GoString returns the string representation
11319func (s DockerVolumeConfiguration) GoString() string {
11320	return s.String()
11321}
11322
11323// SetAutoprovision sets the Autoprovision field's value.
11324func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
11325	s.Autoprovision = &v
11326	return s
11327}
11328
11329// SetDriver sets the Driver field's value.
11330func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
11331	s.Driver = &v
11332	return s
11333}
11334
11335// SetDriverOpts sets the DriverOpts field's value.
11336func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
11337	s.DriverOpts = v
11338	return s
11339}
11340
11341// SetLabels sets the Labels field's value.
11342func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
11343	s.Labels = v
11344	return s
11345}
11346
11347// SetScope sets the Scope field's value.
11348func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
11349	s.Scope = &v
11350	return s
11351}
11352
11353// The authorization configuration details for the Amazon EFS file system.
11354type EFSAuthorizationConfig struct {
11355	_ struct{} `type:"structure"`
11356
11357	// The Amazon EFS access point ID to use. If an access point is specified, the
11358	// root directory value specified in the EFSVolumeConfiguration will be relative
11359	// to the directory set for the access point. If an access point is used, transit
11360	// encryption must be enabled in the EFSVolumeConfiguration. For more information,
11361	// see Working with Amazon EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)
11362	// in the Amazon Elastic File System User Guide.
11363	AccessPointId *string `locationName:"accessPointId" type:"string"`
11364
11365	// Whether or not to use the Amazon ECS task IAM role defined in a task definition
11366	// when mounting the Amazon EFS file system. If enabled, transit encryption
11367	// must be enabled in the EFSVolumeConfiguration. If this parameter is omitted,
11368	// the default value of DISABLED is used. For more information, see Using Amazon
11369	// EFS Access Points (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints)
11370	// in the Amazon Elastic Container Service Developer Guide.
11371	Iam *string `locationName:"iam" type:"string" enum:"EFSAuthorizationConfigIAM"`
11372}
11373
11374// String returns the string representation
11375func (s EFSAuthorizationConfig) String() string {
11376	return awsutil.Prettify(s)
11377}
11378
11379// GoString returns the string representation
11380func (s EFSAuthorizationConfig) GoString() string {
11381	return s.String()
11382}
11383
11384// SetAccessPointId sets the AccessPointId field's value.
11385func (s *EFSAuthorizationConfig) SetAccessPointId(v string) *EFSAuthorizationConfig {
11386	s.AccessPointId = &v
11387	return s
11388}
11389
11390// SetIam sets the Iam field's value.
11391func (s *EFSAuthorizationConfig) SetIam(v string) *EFSAuthorizationConfig {
11392	s.Iam = &v
11393	return s
11394}
11395
11396// This parameter is specified when you are using an Amazon Elastic File System
11397// file system for task storage. For more information, see Amazon EFS Volumes
11398// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html)
11399// in the Amazon Elastic Container Service Developer Guide.
11400type EFSVolumeConfiguration struct {
11401	_ struct{} `type:"structure"`
11402
11403	// The authorization configuration details for the Amazon EFS file system.
11404	AuthorizationConfig *EFSAuthorizationConfig `locationName:"authorizationConfig" type:"structure"`
11405
11406	// The Amazon EFS file system ID to use.
11407	//
11408	// FileSystemId is a required field
11409	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
11410
11411	// The directory within the Amazon EFS file system to mount as the root directory
11412	// inside the host. If this parameter is omitted, the root of the Amazon EFS
11413	// volume will be used. Specifying / will have the same effect as omitting this
11414	// parameter.
11415	RootDirectory *string `locationName:"rootDirectory" type:"string"`
11416
11417	// Whether or not to enable encryption for Amazon EFS data in transit between
11418	// the Amazon ECS host and the Amazon EFS server. Transit encryption must be
11419	// enabled if Amazon EFS IAM authorization is used. If this parameter is omitted,
11420	// the default value of DISABLED is used. For more information, see Encrypting
11421	// Data in Transit (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)
11422	// in the Amazon Elastic File System User Guide.
11423	TransitEncryption *string `locationName:"transitEncryption" type:"string" enum:"EFSTransitEncryption"`
11424
11425	// The port to use when sending encrypted data between the Amazon ECS host and
11426	// the Amazon EFS server. If you do not specify a transit encryption port, it
11427	// will use the port selection strategy that the Amazon EFS mount helper uses.
11428	// For more information, see EFS Mount Helper (https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html)
11429	// in the Amazon Elastic File System User Guide.
11430	TransitEncryptionPort *int64 `locationName:"transitEncryptionPort" type:"integer"`
11431}
11432
11433// String returns the string representation
11434func (s EFSVolumeConfiguration) String() string {
11435	return awsutil.Prettify(s)
11436}
11437
11438// GoString returns the string representation
11439func (s EFSVolumeConfiguration) GoString() string {
11440	return s.String()
11441}
11442
11443// Validate inspects the fields of the type to determine if they are valid.
11444func (s *EFSVolumeConfiguration) Validate() error {
11445	invalidParams := request.ErrInvalidParams{Context: "EFSVolumeConfiguration"}
11446	if s.FileSystemId == nil {
11447		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
11448	}
11449
11450	if invalidParams.Len() > 0 {
11451		return invalidParams
11452	}
11453	return nil
11454}
11455
11456// SetAuthorizationConfig sets the AuthorizationConfig field's value.
11457func (s *EFSVolumeConfiguration) SetAuthorizationConfig(v *EFSAuthorizationConfig) *EFSVolumeConfiguration {
11458	s.AuthorizationConfig = v
11459	return s
11460}
11461
11462// SetFileSystemId sets the FileSystemId field's value.
11463func (s *EFSVolumeConfiguration) SetFileSystemId(v string) *EFSVolumeConfiguration {
11464	s.FileSystemId = &v
11465	return s
11466}
11467
11468// SetRootDirectory sets the RootDirectory field's value.
11469func (s *EFSVolumeConfiguration) SetRootDirectory(v string) *EFSVolumeConfiguration {
11470	s.RootDirectory = &v
11471	return s
11472}
11473
11474// SetTransitEncryption sets the TransitEncryption field's value.
11475func (s *EFSVolumeConfiguration) SetTransitEncryption(v string) *EFSVolumeConfiguration {
11476	s.TransitEncryption = &v
11477	return s
11478}
11479
11480// SetTransitEncryptionPort sets the TransitEncryptionPort field's value.
11481func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeConfiguration {
11482	s.TransitEncryptionPort = &v
11483	return s
11484}
11485
11486// A list of files containing the environment variables to pass to a container.
11487// You can specify up to ten environment files. The file must have a .env file
11488// extension. Each line in an environment file should contain an environment
11489// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
11490// comments and are ignored. For more information on the environment variable
11491// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
11492//
11493// If there are environment variables specified using the environment parameter
11494// in a container definition, they take precedence over the variables contained
11495// within an environment file. If multiple environment files are specified that
11496// contain the same variable, they are processed from the top down. It is recommended
11497// to use unique variable names. For more information, see Specifying Environment
11498// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
11499// in the Amazon Elastic Container Service Developer Guide.
11500//
11501// This field is not valid for containers in tasks using the Fargate launch
11502// type.
11503type EnvironmentFile struct {
11504	_ struct{} `type:"structure"`
11505
11506	// The file type to use. The only supported value is s3.
11507	//
11508	// Type is a required field
11509	Type *string `locationName:"type" type:"string" required:"true" enum:"EnvironmentFileType"`
11510
11511	// The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment
11512	// variable file.
11513	//
11514	// Value is a required field
11515	Value *string `locationName:"value" type:"string" required:"true"`
11516}
11517
11518// String returns the string representation
11519func (s EnvironmentFile) String() string {
11520	return awsutil.Prettify(s)
11521}
11522
11523// GoString returns the string representation
11524func (s EnvironmentFile) GoString() string {
11525	return s.String()
11526}
11527
11528// Validate inspects the fields of the type to determine if they are valid.
11529func (s *EnvironmentFile) Validate() error {
11530	invalidParams := request.ErrInvalidParams{Context: "EnvironmentFile"}
11531	if s.Type == nil {
11532		invalidParams.Add(request.NewErrParamRequired("Type"))
11533	}
11534	if s.Value == nil {
11535		invalidParams.Add(request.NewErrParamRequired("Value"))
11536	}
11537
11538	if invalidParams.Len() > 0 {
11539		return invalidParams
11540	}
11541	return nil
11542}
11543
11544// SetType sets the Type field's value.
11545func (s *EnvironmentFile) SetType(v string) *EnvironmentFile {
11546	s.Type = &v
11547	return s
11548}
11549
11550// SetValue sets the Value field's value.
11551func (s *EnvironmentFile) SetValue(v string) *EnvironmentFile {
11552	s.Value = &v
11553	return s
11554}
11555
11556// A failed resource.
11557type Failure struct {
11558	_ struct{} `type:"structure"`
11559
11560	// The Amazon Resource Name (ARN) of the failed resource.
11561	Arn *string `locationName:"arn" type:"string"`
11562
11563	// The details of the failure.
11564	Detail *string `locationName:"detail" type:"string"`
11565
11566	// The reason for the failure.
11567	Reason *string `locationName:"reason" type:"string"`
11568}
11569
11570// String returns the string representation
11571func (s Failure) String() string {
11572	return awsutil.Prettify(s)
11573}
11574
11575// GoString returns the string representation
11576func (s Failure) GoString() string {
11577	return s.String()
11578}
11579
11580// SetArn sets the Arn field's value.
11581func (s *Failure) SetArn(v string) *Failure {
11582	s.Arn = &v
11583	return s
11584}
11585
11586// SetDetail sets the Detail field's value.
11587func (s *Failure) SetDetail(v string) *Failure {
11588	s.Detail = &v
11589	return s
11590}
11591
11592// SetReason sets the Reason field's value.
11593func (s *Failure) SetReason(v string) *Failure {
11594	s.Reason = &v
11595	return s
11596}
11597
11598// The FireLens configuration for the container. This is used to specify and
11599// configure a log router for container logs. For more information, see Custom
11600// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
11601// in the Amazon Elastic Container Service Developer Guide.
11602type FirelensConfiguration struct {
11603	_ struct{} `type:"structure"`
11604
11605	// The options to use when configuring the log router. This field is optional
11606	// and can be used to specify a custom configuration file or to add additional
11607	// metadata, such as the task, task definition, cluster, and container instance
11608	// 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"}.
11609	// For more information, see Creating a Task Definition that Uses a FireLens
11610	// Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef)
11611	// in the Amazon Elastic Container Service Developer Guide.
11612	Options map[string]*string `locationName:"options" type:"map"`
11613
11614	// The log router to use. The valid values are fluentd or fluentbit.
11615	//
11616	// Type is a required field
11617	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
11618}
11619
11620// String returns the string representation
11621func (s FirelensConfiguration) String() string {
11622	return awsutil.Prettify(s)
11623}
11624
11625// GoString returns the string representation
11626func (s FirelensConfiguration) GoString() string {
11627	return s.String()
11628}
11629
11630// Validate inspects the fields of the type to determine if they are valid.
11631func (s *FirelensConfiguration) Validate() error {
11632	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
11633	if s.Type == nil {
11634		invalidParams.Add(request.NewErrParamRequired("Type"))
11635	}
11636
11637	if invalidParams.Len() > 0 {
11638		return invalidParams
11639	}
11640	return nil
11641}
11642
11643// SetOptions sets the Options field's value.
11644func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
11645	s.Options = v
11646	return s
11647}
11648
11649// SetType sets the Type field's value.
11650func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
11651	s.Type = &v
11652	return s
11653}
11654
11655// An object representing a container health check. Health check parameters
11656// that are specified in a container definition override any Docker health checks
11657// that exist in the container image (such as those specified in a parent image
11658// or from the image's Dockerfile).
11659//
11660// You can view the health status of both individual containers and a task with
11661// the DescribeTasks API operation or when viewing the task details in the console.
11662//
11663// The following describes the possible healthStatus values for a container:
11664//
11665//    * HEALTHY-The container health check has passed successfully.
11666//
11667//    * UNHEALTHY-The container health check has failed.
11668//
11669//    * UNKNOWN-The container health check is being evaluated or there is no
11670//    container health check defined.
11671//
11672// The following describes the possible healthStatus values for a task. The
11673// container health check status of nonessential containers do not have an effect
11674// on the health status of a task.
11675//
11676//    * HEALTHY-All essential containers within the task have passed their health
11677//    checks.
11678//
11679//    * UNHEALTHY-One or more essential containers have failed their health
11680//    check.
11681//
11682//    * UNKNOWN-The essential containers within the task are still having their
11683//    health checks evaluated or there are no container health checks defined.
11684//
11685// If a task is run manually, and not as part of a service, the task will continue
11686// its lifecycle regardless of its health status. For tasks that are part of
11687// a service, if the task reports as unhealthy then the task will be stopped
11688// and the service scheduler will replace it.
11689//
11690// The following are notes about container health check support:
11691//
11692//    * Container health checks require version 1.17.0 or greater of the Amazon
11693//    ECS container agent. For more information, see Updating the Amazon ECS
11694//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
11695//
11696//    * Container health checks are supported for Fargate tasks if you are using
11697//    platform version 1.1.0 or greater. For more information, see AWS Fargate
11698//    Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
11699//
11700//    * Container health checks are not supported for tasks that are part of
11701//    a service that is configured to use a Classic Load Balancer.
11702type HealthCheck struct {
11703	_ struct{} `type:"structure"`
11704
11705	// A string array representing the command that the container runs to determine
11706	// if it is healthy. The string array must start with CMD to execute the command
11707	// arguments directly, or CMD-SHELL to run the command with the container's
11708	// default shell. For example:
11709	//
11710	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
11711	//
11712	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
11713	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
11714	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
11715	//
11716	// Command is a required field
11717	Command []*string `locationName:"command" type:"list" required:"true"`
11718
11719	// The time period in seconds between each health check execution. You may specify
11720	// between 5 and 300 seconds. The default value is 30 seconds.
11721	Interval *int64 `locationName:"interval" type:"integer"`
11722
11723	// The number of times to retry a failed health check before the container is
11724	// considered unhealthy. You may specify between 1 and 10 retries. The default
11725	// value is 3.
11726	Retries *int64 `locationName:"retries" type:"integer"`
11727
11728	// The optional grace period within which to provide containers time to bootstrap
11729	// before failed health checks count towards the maximum number of retries.
11730	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
11731	// default.
11732	//
11733	// If a health check succeeds within the startPeriod, then the container is
11734	// considered healthy and any subsequent failures count toward the maximum number
11735	// of retries.
11736	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
11737
11738	// The time period in seconds to wait for a health check to succeed before it
11739	// is considered a failure. You may specify between 2 and 60 seconds. The default
11740	// value is 5.
11741	Timeout *int64 `locationName:"timeout" type:"integer"`
11742}
11743
11744// String returns the string representation
11745func (s HealthCheck) String() string {
11746	return awsutil.Prettify(s)
11747}
11748
11749// GoString returns the string representation
11750func (s HealthCheck) GoString() string {
11751	return s.String()
11752}
11753
11754// Validate inspects the fields of the type to determine if they are valid.
11755func (s *HealthCheck) Validate() error {
11756	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
11757	if s.Command == nil {
11758		invalidParams.Add(request.NewErrParamRequired("Command"))
11759	}
11760
11761	if invalidParams.Len() > 0 {
11762		return invalidParams
11763	}
11764	return nil
11765}
11766
11767// SetCommand sets the Command field's value.
11768func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
11769	s.Command = v
11770	return s
11771}
11772
11773// SetInterval sets the Interval field's value.
11774func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
11775	s.Interval = &v
11776	return s
11777}
11778
11779// SetRetries sets the Retries field's value.
11780func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
11781	s.Retries = &v
11782	return s
11783}
11784
11785// SetStartPeriod sets the StartPeriod field's value.
11786func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
11787	s.StartPeriod = &v
11788	return s
11789}
11790
11791// SetTimeout sets the Timeout field's value.
11792func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
11793	s.Timeout = &v
11794	return s
11795}
11796
11797// Hostnames and IP address entries that are added to the /etc/hosts file of
11798// a container via the extraHosts parameter of its ContainerDefinition.
11799type HostEntry struct {
11800	_ struct{} `type:"structure"`
11801
11802	// The hostname to use in the /etc/hosts entry.
11803	//
11804	// Hostname is a required field
11805	Hostname *string `locationName:"hostname" type:"string" required:"true"`
11806
11807	// The IP address to use in the /etc/hosts entry.
11808	//
11809	// IpAddress is a required field
11810	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
11811}
11812
11813// String returns the string representation
11814func (s HostEntry) String() string {
11815	return awsutil.Prettify(s)
11816}
11817
11818// GoString returns the string representation
11819func (s HostEntry) GoString() string {
11820	return s.String()
11821}
11822
11823// Validate inspects the fields of the type to determine if they are valid.
11824func (s *HostEntry) Validate() error {
11825	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
11826	if s.Hostname == nil {
11827		invalidParams.Add(request.NewErrParamRequired("Hostname"))
11828	}
11829	if s.IpAddress == nil {
11830		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
11831	}
11832
11833	if invalidParams.Len() > 0 {
11834		return invalidParams
11835	}
11836	return nil
11837}
11838
11839// SetHostname sets the Hostname field's value.
11840func (s *HostEntry) SetHostname(v string) *HostEntry {
11841	s.Hostname = &v
11842	return s
11843}
11844
11845// SetIpAddress sets the IpAddress field's value.
11846func (s *HostEntry) SetIpAddress(v string) *HostEntry {
11847	s.IpAddress = &v
11848	return s
11849}
11850
11851// Details on a container instance bind mount host volume.
11852type HostVolumeProperties struct {
11853	_ struct{} `type:"structure"`
11854
11855	// When the host parameter is used, specify a sourcePath to declare the path
11856	// on the host container instance that is presented to the container. If this
11857	// parameter is empty, then the Docker daemon has assigned a host path for you.
11858	// If the host parameter contains a sourcePath file location, then the data
11859	// volume persists at the specified location on the host container instance
11860	// until you delete it manually. If the sourcePath value does not exist on the
11861	// host container instance, the Docker daemon creates it. If the location does
11862	// exist, the contents of the source path folder are exported.
11863	//
11864	// If you are using the Fargate launch type, the sourcePath parameter is not
11865	// supported.
11866	SourcePath *string `locationName:"sourcePath" type:"string"`
11867}
11868
11869// String returns the string representation
11870func (s HostVolumeProperties) String() string {
11871	return awsutil.Prettify(s)
11872}
11873
11874// GoString returns the string representation
11875func (s HostVolumeProperties) GoString() string {
11876	return s.String()
11877}
11878
11879// SetSourcePath sets the SourcePath field's value.
11880func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
11881	s.SourcePath = &v
11882	return s
11883}
11884
11885// Details on a Elastic Inference accelerator. For more information, see Working
11886// with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
11887// in the Amazon Elastic Container Service Developer Guide.
11888type InferenceAccelerator struct {
11889	_ struct{} `type:"structure"`
11890
11891	// The Elastic Inference accelerator device name. The deviceName must also be
11892	// referenced in a container definition as a ResourceRequirement.
11893	//
11894	// DeviceName is a required field
11895	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
11896
11897	// The Elastic Inference accelerator type to use.
11898	//
11899	// DeviceType is a required field
11900	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
11901}
11902
11903// String returns the string representation
11904func (s InferenceAccelerator) String() string {
11905	return awsutil.Prettify(s)
11906}
11907
11908// GoString returns the string representation
11909func (s InferenceAccelerator) GoString() string {
11910	return s.String()
11911}
11912
11913// Validate inspects the fields of the type to determine if they are valid.
11914func (s *InferenceAccelerator) Validate() error {
11915	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
11916	if s.DeviceName == nil {
11917		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
11918	}
11919	if s.DeviceType == nil {
11920		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
11921	}
11922
11923	if invalidParams.Len() > 0 {
11924		return invalidParams
11925	}
11926	return nil
11927}
11928
11929// SetDeviceName sets the DeviceName field's value.
11930func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
11931	s.DeviceName = &v
11932	return s
11933}
11934
11935// SetDeviceType sets the DeviceType field's value.
11936func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
11937	s.DeviceType = &v
11938	return s
11939}
11940
11941// Details on an Elastic Inference accelerator task override. This parameter
11942// is used to override the Elastic Inference accelerator specified in the task
11943// definition. For more information, see Working with Amazon Elastic Inference
11944// on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
11945// in the Amazon Elastic Container Service Developer Guide.
11946type InferenceAcceleratorOverride struct {
11947	_ struct{} `type:"structure"`
11948
11949	// The Elastic Inference accelerator device name to override for the task. This
11950	// parameter must match a deviceName specified in the task definition.
11951	DeviceName *string `locationName:"deviceName" type:"string"`
11952
11953	// The Elastic Inference accelerator type to use.
11954	DeviceType *string `locationName:"deviceType" type:"string"`
11955}
11956
11957// String returns the string representation
11958func (s InferenceAcceleratorOverride) String() string {
11959	return awsutil.Prettify(s)
11960}
11961
11962// GoString returns the string representation
11963func (s InferenceAcceleratorOverride) GoString() string {
11964	return s.String()
11965}
11966
11967// SetDeviceName sets the DeviceName field's value.
11968func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
11969	s.DeviceName = &v
11970	return s
11971}
11972
11973// SetDeviceType sets the DeviceType field's value.
11974func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
11975	s.DeviceType = &v
11976	return s
11977}
11978
11979// The specified parameter is invalid. Review the available parameters for the
11980// API request.
11981type InvalidParameterException struct {
11982	_            struct{}                  `type:"structure"`
11983	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11984
11985	Message_ *string `locationName:"message" type:"string"`
11986}
11987
11988// String returns the string representation
11989func (s InvalidParameterException) String() string {
11990	return awsutil.Prettify(s)
11991}
11992
11993// GoString returns the string representation
11994func (s InvalidParameterException) GoString() string {
11995	return s.String()
11996}
11997
11998func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
11999	return &InvalidParameterException{
12000		RespMetadata: v,
12001	}
12002}
12003
12004// Code returns the exception type name.
12005func (s *InvalidParameterException) Code() string {
12006	return "InvalidParameterException"
12007}
12008
12009// Message returns the exception's message.
12010func (s *InvalidParameterException) Message() string {
12011	if s.Message_ != nil {
12012		return *s.Message_
12013	}
12014	return ""
12015}
12016
12017// OrigErr always returns nil, satisfies awserr.Error interface.
12018func (s *InvalidParameterException) OrigErr() error {
12019	return nil
12020}
12021
12022func (s *InvalidParameterException) Error() string {
12023	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12024}
12025
12026// Status code returns the HTTP status code for the request's response error.
12027func (s *InvalidParameterException) StatusCode() int {
12028	return s.RespMetadata.StatusCode
12029}
12030
12031// RequestID returns the service's response RequestID for request.
12032func (s *InvalidParameterException) RequestID() string {
12033	return s.RespMetadata.RequestID
12034}
12035
12036// The Linux capabilities for the container that are added to or dropped from
12037// the default configuration provided by Docker. For more information on the
12038// default capabilities and the non-default available capabilities, see Runtime
12039// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
12040// in the Docker run reference. For more detailed information on these Linux
12041// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
12042// Linux manual page.
12043type KernelCapabilities struct {
12044	_ struct{} `type:"structure"`
12045
12046	// The Linux capabilities for the container that have been added to the default
12047	// configuration provided by Docker. This parameter maps to CapAdd in the Create
12048	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12049	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12050	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/).
12051	//
12052	// The SYS_PTRACE capability is supported for tasks that use the Fargate launch
12053	// type if they are also using platform version 1.4.0. The other capabilities
12054	// are not supported for any platform versions.
12055	//
12056	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
12057	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
12058	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
12059	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
12060	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
12061	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
12062	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
12063	// "WAKE_ALARM"
12064	Add []*string `locationName:"add" type:"list"`
12065
12066	// The Linux capabilities for the container that have been removed from the
12067	// default configuration provided by Docker. This parameter maps to CapDrop
12068	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12069	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12070	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/).
12071	//
12072	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
12073	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
12074	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
12075	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
12076	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
12077	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
12078	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
12079	// "WAKE_ALARM"
12080	Drop []*string `locationName:"drop" type:"list"`
12081}
12082
12083// String returns the string representation
12084func (s KernelCapabilities) String() string {
12085	return awsutil.Prettify(s)
12086}
12087
12088// GoString returns the string representation
12089func (s KernelCapabilities) GoString() string {
12090	return s.String()
12091}
12092
12093// SetAdd sets the Add field's value.
12094func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
12095	s.Add = v
12096	return s
12097}
12098
12099// SetDrop sets the Drop field's value.
12100func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
12101	s.Drop = v
12102	return s
12103}
12104
12105// A key-value pair object.
12106type KeyValuePair struct {
12107	_ struct{} `type:"structure"`
12108
12109	// The name of the key-value pair. For environment variables, this is the name
12110	// of the environment variable.
12111	Name *string `locationName:"name" type:"string"`
12112
12113	// The value of the key-value pair. For environment variables, this is the value
12114	// of the environment variable.
12115	Value *string `locationName:"value" type:"string"`
12116}
12117
12118// String returns the string representation
12119func (s KeyValuePair) String() string {
12120	return awsutil.Prettify(s)
12121}
12122
12123// GoString returns the string representation
12124func (s KeyValuePair) GoString() string {
12125	return s.String()
12126}
12127
12128// SetName sets the Name field's value.
12129func (s *KeyValuePair) SetName(v string) *KeyValuePair {
12130	s.Name = &v
12131	return s
12132}
12133
12134// SetValue sets the Value field's value.
12135func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
12136	s.Value = &v
12137	return s
12138}
12139
12140// The limit for the resource has been exceeded.
12141type LimitExceededException struct {
12142	_            struct{}                  `type:"structure"`
12143	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12144
12145	Message_ *string `locationName:"message" type:"string"`
12146}
12147
12148// String returns the string representation
12149func (s LimitExceededException) String() string {
12150	return awsutil.Prettify(s)
12151}
12152
12153// GoString returns the string representation
12154func (s LimitExceededException) GoString() string {
12155	return s.String()
12156}
12157
12158func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
12159	return &LimitExceededException{
12160		RespMetadata: v,
12161	}
12162}
12163
12164// Code returns the exception type name.
12165func (s *LimitExceededException) Code() string {
12166	return "LimitExceededException"
12167}
12168
12169// Message returns the exception's message.
12170func (s *LimitExceededException) Message() string {
12171	if s.Message_ != nil {
12172		return *s.Message_
12173	}
12174	return ""
12175}
12176
12177// OrigErr always returns nil, satisfies awserr.Error interface.
12178func (s *LimitExceededException) OrigErr() error {
12179	return nil
12180}
12181
12182func (s *LimitExceededException) Error() string {
12183	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12184}
12185
12186// Status code returns the HTTP status code for the request's response error.
12187func (s *LimitExceededException) StatusCode() int {
12188	return s.RespMetadata.StatusCode
12189}
12190
12191// RequestID returns the service's response RequestID for request.
12192func (s *LimitExceededException) RequestID() string {
12193	return s.RespMetadata.RequestID
12194}
12195
12196// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
12197type LinuxParameters struct {
12198	_ struct{} `type:"structure"`
12199
12200	// The Linux capabilities for the container that are added to or dropped from
12201	// the default configuration provided by Docker.
12202	//
12203	// For tasks that use the Fargate launch type, capabilities is supported for
12204	// all platform versions but the add parameter is only supported if using platform
12205	// version 1.4.0 or later.
12206	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
12207
12208	// Any host devices to expose to the container. This parameter maps to Devices
12209	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12210	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12211	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
12212	//
12213	// If you are using tasks that use the Fargate launch type, the devices parameter
12214	// is not supported.
12215	Devices []*Device `locationName:"devices" type:"list"`
12216
12217	// Run an init process inside the container that forwards signals and reaps
12218	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/).
12219	// This parameter requires version 1.25 of the Docker Remote API or greater
12220	// on your container instance. To check the Docker Remote API version on your
12221	// container instance, log in to your container instance and run the following
12222	// command: sudo docker version --format '{{.Server.APIVersion}}'
12223	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
12224
12225	// The total amount of swap memory (in MiB) a container can use. This parameter
12226	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/)
12227	// where the value would be the sum of the container memory plus the maxSwap
12228	// value.
12229	//
12230	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
12231	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
12232	// the container will use the swap configuration for the container instance
12233	// it is running on. A maxSwap value must be set for the swappiness parameter
12234	// to be used.
12235	//
12236	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
12237	// is not supported.
12238	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
12239
12240	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
12241	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/).
12242	//
12243	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
12244	// parameter is not supported.
12245	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
12246
12247	// This allows you to tune a container's memory swappiness behavior. A swappiness
12248	// value of 0 will cause swapping to not happen unless absolutely necessary.
12249	// A swappiness value of 100 will cause pages to be swapped very aggressively.
12250	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
12251	// is not specified, a default value of 60 is used. If a value is not specified
12252	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
12253	// option to docker run (https://docs.docker.com/engine/reference/run/).
12254	//
12255	// If you are using tasks that use the Fargate launch type, the swappiness parameter
12256	// is not supported.
12257	Swappiness *int64 `locationName:"swappiness" type:"integer"`
12258
12259	// The container path, mount options, and size (in MiB) of the tmpfs mount.
12260	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/).
12261	//
12262	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
12263	// is not supported.
12264	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
12265}
12266
12267// String returns the string representation
12268func (s LinuxParameters) String() string {
12269	return awsutil.Prettify(s)
12270}
12271
12272// GoString returns the string representation
12273func (s LinuxParameters) GoString() string {
12274	return s.String()
12275}
12276
12277// Validate inspects the fields of the type to determine if they are valid.
12278func (s *LinuxParameters) Validate() error {
12279	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
12280	if s.Devices != nil {
12281		for i, v := range s.Devices {
12282			if v == nil {
12283				continue
12284			}
12285			if err := v.Validate(); err != nil {
12286				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
12287			}
12288		}
12289	}
12290	if s.Tmpfs != nil {
12291		for i, v := range s.Tmpfs {
12292			if v == nil {
12293				continue
12294			}
12295			if err := v.Validate(); err != nil {
12296				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
12297			}
12298		}
12299	}
12300
12301	if invalidParams.Len() > 0 {
12302		return invalidParams
12303	}
12304	return nil
12305}
12306
12307// SetCapabilities sets the Capabilities field's value.
12308func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
12309	s.Capabilities = v
12310	return s
12311}
12312
12313// SetDevices sets the Devices field's value.
12314func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
12315	s.Devices = v
12316	return s
12317}
12318
12319// SetInitProcessEnabled sets the InitProcessEnabled field's value.
12320func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
12321	s.InitProcessEnabled = &v
12322	return s
12323}
12324
12325// SetMaxSwap sets the MaxSwap field's value.
12326func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
12327	s.MaxSwap = &v
12328	return s
12329}
12330
12331// SetSharedMemorySize sets the SharedMemorySize field's value.
12332func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
12333	s.SharedMemorySize = &v
12334	return s
12335}
12336
12337// SetSwappiness sets the Swappiness field's value.
12338func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
12339	s.Swappiness = &v
12340	return s
12341}
12342
12343// SetTmpfs sets the Tmpfs field's value.
12344func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
12345	s.Tmpfs = v
12346	return s
12347}
12348
12349type ListAccountSettingsInput struct {
12350	_ struct{} `type:"structure"`
12351
12352	// Specifies whether to return the effective settings. If true, the account
12353	// settings for the root user or the default setting for the principalArn are
12354	// returned. If false, the account settings for the principalArn are returned
12355	// if they are set. Otherwise, no account settings are returned.
12356	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
12357
12358	// The maximum number of account setting results returned by ListAccountSettings
12359	// in paginated output. When this parameter is used, ListAccountSettings only
12360	// returns maxResults results in a single page along with a nextToken response
12361	// element. The remaining results of the initial request can be seen by sending
12362	// another ListAccountSettings request with the returned nextToken value. This
12363	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
12364	// returns up to 10 results and a nextToken value if applicable.
12365	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12366
12367	// The name of the account setting you want to list the settings for.
12368	Name *string `locationName:"name" type:"string" enum:"SettingName"`
12369
12370	// The nextToken value returned from a ListAccountSettings request indicating
12371	// that more results are available to fulfill the request and further calls
12372	// will be needed. If maxResults was provided, it is possible the number of
12373	// results to be fewer than maxResults.
12374	//
12375	// This token should be treated as an opaque identifier that is only used to
12376	// retrieve the next items in a list and not for other programmatic purposes.
12377	NextToken *string `locationName:"nextToken" type:"string"`
12378
12379	// The ARN of the principal, which can be an IAM user, IAM role, or the root
12380	// user. If this field is omitted, the account settings are listed only for
12381	// the authenticated user.
12382	PrincipalArn *string `locationName:"principalArn" type:"string"`
12383
12384	// The value of the account settings with which to filter results. You must
12385	// also specify an account setting name to use this parameter.
12386	Value *string `locationName:"value" type:"string"`
12387}
12388
12389// String returns the string representation
12390func (s ListAccountSettingsInput) String() string {
12391	return awsutil.Prettify(s)
12392}
12393
12394// GoString returns the string representation
12395func (s ListAccountSettingsInput) GoString() string {
12396	return s.String()
12397}
12398
12399// SetEffectiveSettings sets the EffectiveSettings field's value.
12400func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
12401	s.EffectiveSettings = &v
12402	return s
12403}
12404
12405// SetMaxResults sets the MaxResults field's value.
12406func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
12407	s.MaxResults = &v
12408	return s
12409}
12410
12411// SetName sets the Name field's value.
12412func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
12413	s.Name = &v
12414	return s
12415}
12416
12417// SetNextToken sets the NextToken field's value.
12418func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
12419	s.NextToken = &v
12420	return s
12421}
12422
12423// SetPrincipalArn sets the PrincipalArn field's value.
12424func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
12425	s.PrincipalArn = &v
12426	return s
12427}
12428
12429// SetValue sets the Value field's value.
12430func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
12431	s.Value = &v
12432	return s
12433}
12434
12435type ListAccountSettingsOutput struct {
12436	_ struct{} `type:"structure"`
12437
12438	// The nextToken value to include in a future ListAccountSettings request. When
12439	// the results of a ListAccountSettings request exceed maxResults, this value
12440	// can be used to retrieve the next page of results. This value is null when
12441	// there are no more results to return.
12442	NextToken *string `locationName:"nextToken" type:"string"`
12443
12444	// The account settings for the resource.
12445	Settings []*Setting `locationName:"settings" type:"list"`
12446}
12447
12448// String returns the string representation
12449func (s ListAccountSettingsOutput) String() string {
12450	return awsutil.Prettify(s)
12451}
12452
12453// GoString returns the string representation
12454func (s ListAccountSettingsOutput) GoString() string {
12455	return s.String()
12456}
12457
12458// SetNextToken sets the NextToken field's value.
12459func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
12460	s.NextToken = &v
12461	return s
12462}
12463
12464// SetSettings sets the Settings field's value.
12465func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
12466	s.Settings = v
12467	return s
12468}
12469
12470type ListAttributesInput struct {
12471	_ struct{} `type:"structure"`
12472
12473	// The name of the attribute with which to filter the results.
12474	AttributeName *string `locationName:"attributeName" type:"string"`
12475
12476	// The value of the attribute with which to filter results. You must also specify
12477	// an attribute name to use this parameter.
12478	AttributeValue *string `locationName:"attributeValue" type:"string"`
12479
12480	// The short name or full Amazon Resource Name (ARN) of the cluster to list
12481	// attributes. If you do not specify a cluster, the default cluster is assumed.
12482	Cluster *string `locationName:"cluster" type:"string"`
12483
12484	// The maximum number of cluster results returned by ListAttributes in paginated
12485	// output. When this parameter is used, ListAttributes only returns maxResults
12486	// results in a single page along with a nextToken response element. The remaining
12487	// results of the initial request can be seen by sending another ListAttributes
12488	// request with the returned nextToken value. This value can be between 1 and
12489	// 100. If this parameter is not used, then ListAttributes returns up to 100
12490	// results and a nextToken value if applicable.
12491	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12492
12493	// The nextToken value returned from a ListAttributes request indicating that
12494	// more results are available to fulfill the request and further calls will
12495	// be needed. If maxResults was provided, it is possible the number of results
12496	// to be fewer than maxResults.
12497	//
12498	// This token should be treated as an opaque identifier that is only used to
12499	// retrieve the next items in a list and not for other programmatic purposes.
12500	NextToken *string `locationName:"nextToken" type:"string"`
12501
12502	// The type of the target with which to list attributes.
12503	//
12504	// TargetType is a required field
12505	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
12506}
12507
12508// String returns the string representation
12509func (s ListAttributesInput) String() string {
12510	return awsutil.Prettify(s)
12511}
12512
12513// GoString returns the string representation
12514func (s ListAttributesInput) GoString() string {
12515	return s.String()
12516}
12517
12518// Validate inspects the fields of the type to determine if they are valid.
12519func (s *ListAttributesInput) Validate() error {
12520	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
12521	if s.TargetType == nil {
12522		invalidParams.Add(request.NewErrParamRequired("TargetType"))
12523	}
12524
12525	if invalidParams.Len() > 0 {
12526		return invalidParams
12527	}
12528	return nil
12529}
12530
12531// SetAttributeName sets the AttributeName field's value.
12532func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
12533	s.AttributeName = &v
12534	return s
12535}
12536
12537// SetAttributeValue sets the AttributeValue field's value.
12538func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
12539	s.AttributeValue = &v
12540	return s
12541}
12542
12543// SetCluster sets the Cluster field's value.
12544func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
12545	s.Cluster = &v
12546	return s
12547}
12548
12549// SetMaxResults sets the MaxResults field's value.
12550func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
12551	s.MaxResults = &v
12552	return s
12553}
12554
12555// SetNextToken sets the NextToken field's value.
12556func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
12557	s.NextToken = &v
12558	return s
12559}
12560
12561// SetTargetType sets the TargetType field's value.
12562func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
12563	s.TargetType = &v
12564	return s
12565}
12566
12567type ListAttributesOutput struct {
12568	_ struct{} `type:"structure"`
12569
12570	// A list of attribute objects that meet the criteria of the request.
12571	Attributes []*Attribute `locationName:"attributes" type:"list"`
12572
12573	// The nextToken value to include in a future ListAttributes request. When the
12574	// results of a ListAttributes request exceed maxResults, this value can be
12575	// used to retrieve the next page of results. This value is null when there
12576	// are no more results to return.
12577	NextToken *string `locationName:"nextToken" type:"string"`
12578}
12579
12580// String returns the string representation
12581func (s ListAttributesOutput) String() string {
12582	return awsutil.Prettify(s)
12583}
12584
12585// GoString returns the string representation
12586func (s ListAttributesOutput) GoString() string {
12587	return s.String()
12588}
12589
12590// SetAttributes sets the Attributes field's value.
12591func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
12592	s.Attributes = v
12593	return s
12594}
12595
12596// SetNextToken sets the NextToken field's value.
12597func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
12598	s.NextToken = &v
12599	return s
12600}
12601
12602type ListClustersInput struct {
12603	_ struct{} `type:"structure"`
12604
12605	// The maximum number of cluster results returned by ListClusters in paginated
12606	// output. When this parameter is used, ListClusters only returns maxResults
12607	// results in a single page along with a nextToken response element. The remaining
12608	// results of the initial request can be seen by sending another ListClusters
12609	// request with the returned nextToken value. This value can be between 1 and
12610	// 100. If this parameter is not used, then ListClusters returns up to 100 results
12611	// and a nextToken value if applicable.
12612	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12613
12614	// The nextToken value returned from a ListClusters request indicating that
12615	// more results are available to fulfill the request and further calls will
12616	// be needed. If maxResults was provided, it is possible the number of results
12617	// to be fewer than maxResults.
12618	//
12619	// This token should be treated as an opaque identifier that is only used to
12620	// retrieve the next items in a list and not for other programmatic purposes.
12621	NextToken *string `locationName:"nextToken" type:"string"`
12622}
12623
12624// String returns the string representation
12625func (s ListClustersInput) String() string {
12626	return awsutil.Prettify(s)
12627}
12628
12629// GoString returns the string representation
12630func (s ListClustersInput) GoString() string {
12631	return s.String()
12632}
12633
12634// SetMaxResults sets the MaxResults field's value.
12635func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
12636	s.MaxResults = &v
12637	return s
12638}
12639
12640// SetNextToken sets the NextToken field's value.
12641func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
12642	s.NextToken = &v
12643	return s
12644}
12645
12646type ListClustersOutput struct {
12647	_ struct{} `type:"structure"`
12648
12649	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
12650	// with your account.
12651	ClusterArns []*string `locationName:"clusterArns" type:"list"`
12652
12653	// The nextToken value to include in a future ListClusters request. When the
12654	// results of a ListClusters request exceed maxResults, this value can be used
12655	// to retrieve the next page of results. This value is null when there are no
12656	// more results to return.
12657	NextToken *string `locationName:"nextToken" type:"string"`
12658}
12659
12660// String returns the string representation
12661func (s ListClustersOutput) String() string {
12662	return awsutil.Prettify(s)
12663}
12664
12665// GoString returns the string representation
12666func (s ListClustersOutput) GoString() string {
12667	return s.String()
12668}
12669
12670// SetClusterArns sets the ClusterArns field's value.
12671func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
12672	s.ClusterArns = v
12673	return s
12674}
12675
12676// SetNextToken sets the NextToken field's value.
12677func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
12678	s.NextToken = &v
12679	return s
12680}
12681
12682type ListContainerInstancesInput struct {
12683	_ struct{} `type:"structure"`
12684
12685	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
12686	// the container instances to list. If you do not specify a cluster, the default
12687	// cluster is assumed.
12688	Cluster *string `locationName:"cluster" type:"string"`
12689
12690	// You can filter the results of a ListContainerInstances operation with cluster
12691	// query language statements. For more information, see Cluster Query Language
12692	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
12693	// in the Amazon Elastic Container Service Developer Guide.
12694	Filter *string `locationName:"filter" type:"string"`
12695
12696	// The maximum number of container instance results returned by ListContainerInstances
12697	// in paginated output. When this parameter is used, ListContainerInstances
12698	// only returns maxResults results in a single page along with a nextToken response
12699	// element. The remaining results of the initial request can be seen by sending
12700	// another ListContainerInstances request with the returned nextToken value.
12701	// This value can be between 1 and 100. If this parameter is not used, then
12702	// ListContainerInstances returns up to 100 results and a nextToken value if
12703	// applicable.
12704	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12705
12706	// The nextToken value returned from a ListContainerInstances request indicating
12707	// that more results are available to fulfill the request and further calls
12708	// will be needed. If maxResults was provided, it is possible the number of
12709	// results to be fewer than maxResults.
12710	//
12711	// This token should be treated as an opaque identifier that is only used to
12712	// retrieve the next items in a list and not for other programmatic purposes.
12713	NextToken *string `locationName:"nextToken" type:"string"`
12714
12715	// Filters the container instances by status. For example, if you specify the
12716	// DRAINING status, the results include only container instances that have been
12717	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
12718	// this parameter, the default is to include container instances set to all
12719	// states other than INACTIVE.
12720	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
12721}
12722
12723// String returns the string representation
12724func (s ListContainerInstancesInput) String() string {
12725	return awsutil.Prettify(s)
12726}
12727
12728// GoString returns the string representation
12729func (s ListContainerInstancesInput) GoString() string {
12730	return s.String()
12731}
12732
12733// SetCluster sets the Cluster field's value.
12734func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
12735	s.Cluster = &v
12736	return s
12737}
12738
12739// SetFilter sets the Filter field's value.
12740func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
12741	s.Filter = &v
12742	return s
12743}
12744
12745// SetMaxResults sets the MaxResults field's value.
12746func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
12747	s.MaxResults = &v
12748	return s
12749}
12750
12751// SetNextToken sets the NextToken field's value.
12752func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
12753	s.NextToken = &v
12754	return s
12755}
12756
12757// SetStatus sets the Status field's value.
12758func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
12759	s.Status = &v
12760	return s
12761}
12762
12763type ListContainerInstancesOutput struct {
12764	_ struct{} `type:"structure"`
12765
12766	// The list of container instances with full ARN entries for each container
12767	// instance associated with the specified cluster.
12768	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
12769
12770	// The nextToken value to include in a future ListContainerInstances request.
12771	// When the results of a ListContainerInstances request exceed maxResults, this
12772	// value can be used to retrieve the next page of results. This value is null
12773	// when there are no more results to return.
12774	NextToken *string `locationName:"nextToken" type:"string"`
12775}
12776
12777// String returns the string representation
12778func (s ListContainerInstancesOutput) String() string {
12779	return awsutil.Prettify(s)
12780}
12781
12782// GoString returns the string representation
12783func (s ListContainerInstancesOutput) GoString() string {
12784	return s.String()
12785}
12786
12787// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
12788func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
12789	s.ContainerInstanceArns = v
12790	return s
12791}
12792
12793// SetNextToken sets the NextToken field's value.
12794func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
12795	s.NextToken = &v
12796	return s
12797}
12798
12799type ListServicesInput struct {
12800	_ struct{} `type:"structure"`
12801
12802	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
12803	// the services to list. If you do not specify a cluster, the default cluster
12804	// is assumed.
12805	Cluster *string `locationName:"cluster" type:"string"`
12806
12807	// The launch type for the services to list.
12808	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
12809
12810	// The maximum number of service results returned by ListServices in paginated
12811	// output. When this parameter is used, ListServices only returns maxResults
12812	// results in a single page along with a nextToken response element. The remaining
12813	// results of the initial request can be seen by sending another ListServices
12814	// request with the returned nextToken value. This value can be between 1 and
12815	// 100. If this parameter is not used, then ListServices returns up to 10 results
12816	// and a nextToken value if applicable.
12817	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12818
12819	// The nextToken value returned from a ListServices request indicating that
12820	// more results are available to fulfill the request and further calls will
12821	// be needed. If maxResults was provided, it is possible the number of results
12822	// to be fewer than maxResults.
12823	//
12824	// This token should be treated as an opaque identifier that is only used to
12825	// retrieve the next items in a list and not for other programmatic purposes.
12826	NextToken *string `locationName:"nextToken" type:"string"`
12827
12828	// The scheduling strategy for services to list.
12829	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
12830}
12831
12832// String returns the string representation
12833func (s ListServicesInput) String() string {
12834	return awsutil.Prettify(s)
12835}
12836
12837// GoString returns the string representation
12838func (s ListServicesInput) GoString() string {
12839	return s.String()
12840}
12841
12842// SetCluster sets the Cluster field's value.
12843func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
12844	s.Cluster = &v
12845	return s
12846}
12847
12848// SetLaunchType sets the LaunchType field's value.
12849func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
12850	s.LaunchType = &v
12851	return s
12852}
12853
12854// SetMaxResults sets the MaxResults field's value.
12855func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
12856	s.MaxResults = &v
12857	return s
12858}
12859
12860// SetNextToken sets the NextToken field's value.
12861func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
12862	s.NextToken = &v
12863	return s
12864}
12865
12866// SetSchedulingStrategy sets the SchedulingStrategy field's value.
12867func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
12868	s.SchedulingStrategy = &v
12869	return s
12870}
12871
12872type ListServicesOutput struct {
12873	_ struct{} `type:"structure"`
12874
12875	// The nextToken value to include in a future ListServices request. When the
12876	// results of a ListServices request exceed maxResults, this value can be used
12877	// to retrieve the next page of results. This value is null when there are no
12878	// more results to return.
12879	NextToken *string `locationName:"nextToken" type:"string"`
12880
12881	// The list of full ARN entries for each service associated with the specified
12882	// cluster.
12883	ServiceArns []*string `locationName:"serviceArns" type:"list"`
12884}
12885
12886// String returns the string representation
12887func (s ListServicesOutput) String() string {
12888	return awsutil.Prettify(s)
12889}
12890
12891// GoString returns the string representation
12892func (s ListServicesOutput) GoString() string {
12893	return s.String()
12894}
12895
12896// SetNextToken sets the NextToken field's value.
12897func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
12898	s.NextToken = &v
12899	return s
12900}
12901
12902// SetServiceArns sets the ServiceArns field's value.
12903func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
12904	s.ServiceArns = v
12905	return s
12906}
12907
12908type ListTagsForResourceInput struct {
12909	_ struct{} `type:"structure"`
12910
12911	// The Amazon Resource Name (ARN) that identifies the resource for which to
12912	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
12913	// task definitions, clusters, and container instances.
12914	//
12915	// ResourceArn is a required field
12916	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
12917}
12918
12919// String returns the string representation
12920func (s ListTagsForResourceInput) String() string {
12921	return awsutil.Prettify(s)
12922}
12923
12924// GoString returns the string representation
12925func (s ListTagsForResourceInput) GoString() string {
12926	return s.String()
12927}
12928
12929// Validate inspects the fields of the type to determine if they are valid.
12930func (s *ListTagsForResourceInput) Validate() error {
12931	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
12932	if s.ResourceArn == nil {
12933		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12934	}
12935
12936	if invalidParams.Len() > 0 {
12937		return invalidParams
12938	}
12939	return nil
12940}
12941
12942// SetResourceArn sets the ResourceArn field's value.
12943func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
12944	s.ResourceArn = &v
12945	return s
12946}
12947
12948type ListTagsForResourceOutput struct {
12949	_ struct{} `type:"structure"`
12950
12951	// The tags for the resource.
12952	Tags []*Tag `locationName:"tags" type:"list"`
12953}
12954
12955// String returns the string representation
12956func (s ListTagsForResourceOutput) String() string {
12957	return awsutil.Prettify(s)
12958}
12959
12960// GoString returns the string representation
12961func (s ListTagsForResourceOutput) GoString() string {
12962	return s.String()
12963}
12964
12965// SetTags sets the Tags field's value.
12966func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
12967	s.Tags = v
12968	return s
12969}
12970
12971type ListTaskDefinitionFamiliesInput struct {
12972	_ struct{} `type:"structure"`
12973
12974	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
12975	// If you specify a familyPrefix, only task definition family names that begin
12976	// with the familyPrefix string are returned.
12977	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
12978
12979	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
12980	// in paginated output. When this parameter is used, ListTaskDefinitions only
12981	// returns maxResults results in a single page along with a nextToken response
12982	// element. The remaining results of the initial request can be seen by sending
12983	// another ListTaskDefinitionFamilies request with the returned nextToken value.
12984	// This value can be between 1 and 100. If this parameter is not used, then
12985	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
12986	// if applicable.
12987	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12988
12989	// The nextToken value returned from a ListTaskDefinitionFamilies request indicating
12990	// that more results are available to fulfill the request and further calls
12991	// will be needed. If maxResults was provided, it is possible the number of
12992	// results to be fewer than maxResults.
12993	//
12994	// This token should be treated as an opaque identifier that is only used to
12995	// retrieve the next items in a list and not for other programmatic purposes.
12996	NextToken *string `locationName:"nextToken" type:"string"`
12997
12998	// The task definition family status with which to filter the ListTaskDefinitionFamilies
12999	// results. By default, both ACTIVE and INACTIVE task definition families are
13000	// listed. If this parameter is set to ACTIVE, only task definition families
13001	// that have an ACTIVE task definition revision are returned. If this parameter
13002	// is set to INACTIVE, only task definition families that do not have any ACTIVE
13003	// task definition revisions are returned. If you paginate the resulting output,
13004	// be sure to keep the status value constant in each subsequent request.
13005	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
13006}
13007
13008// String returns the string representation
13009func (s ListTaskDefinitionFamiliesInput) String() string {
13010	return awsutil.Prettify(s)
13011}
13012
13013// GoString returns the string representation
13014func (s ListTaskDefinitionFamiliesInput) GoString() string {
13015	return s.String()
13016}
13017
13018// SetFamilyPrefix sets the FamilyPrefix field's value.
13019func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
13020	s.FamilyPrefix = &v
13021	return s
13022}
13023
13024// SetMaxResults sets the MaxResults field's value.
13025func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
13026	s.MaxResults = &v
13027	return s
13028}
13029
13030// SetNextToken sets the NextToken field's value.
13031func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
13032	s.NextToken = &v
13033	return s
13034}
13035
13036// SetStatus sets the Status field's value.
13037func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
13038	s.Status = &v
13039	return s
13040}
13041
13042type ListTaskDefinitionFamiliesOutput struct {
13043	_ struct{} `type:"structure"`
13044
13045	// The list of task definition family names that match the ListTaskDefinitionFamilies
13046	// request.
13047	Families []*string `locationName:"families" type:"list"`
13048
13049	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
13050	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
13051	// this value can be used to retrieve the next page of results. This value is
13052	// null when there are no more results to return.
13053	NextToken *string `locationName:"nextToken" type:"string"`
13054}
13055
13056// String returns the string representation
13057func (s ListTaskDefinitionFamiliesOutput) String() string {
13058	return awsutil.Prettify(s)
13059}
13060
13061// GoString returns the string representation
13062func (s ListTaskDefinitionFamiliesOutput) GoString() string {
13063	return s.String()
13064}
13065
13066// SetFamilies sets the Families field's value.
13067func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
13068	s.Families = v
13069	return s
13070}
13071
13072// SetNextToken sets the NextToken field's value.
13073func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
13074	s.NextToken = &v
13075	return s
13076}
13077
13078type ListTaskDefinitionsInput struct {
13079	_ struct{} `type:"structure"`
13080
13081	// The full family name with which to filter the ListTaskDefinitions results.
13082	// Specifying a familyPrefix limits the listed task definitions to task definition
13083	// revisions that belong to that family.
13084	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
13085
13086	// The maximum number of task definition results returned by ListTaskDefinitions
13087	// in paginated output. When this parameter is used, ListTaskDefinitions only
13088	// returns maxResults results in a single page along with a nextToken response
13089	// element. The remaining results of the initial request can be seen by sending
13090	// another ListTaskDefinitions request with the returned nextToken value. This
13091	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
13092	// returns up to 100 results and a nextToken value if applicable.
13093	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13094
13095	// The nextToken value returned from a ListTaskDefinitions request indicating
13096	// that more results are available to fulfill the request and further calls
13097	// will be needed. If maxResults was provided, it is possible the number of
13098	// results to be fewer than maxResults.
13099	//
13100	// This token should be treated as an opaque identifier that is only used to
13101	// retrieve the next items in a list and not for other programmatic purposes.
13102	NextToken *string `locationName:"nextToken" type:"string"`
13103
13104	// The order in which to sort the results. Valid values are ASC and DESC. By
13105	// default (ASC), task definitions are listed lexicographically by family name
13106	// and in ascending numerical order by revision so that the newest task definitions
13107	// in a family are listed last. Setting this parameter to DESC reverses the
13108	// sort order on family name and revision so that the newest task definitions
13109	// in a family are listed first.
13110	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
13111
13112	// The task definition status with which to filter the ListTaskDefinitions results.
13113	// By default, only ACTIVE task definitions are listed. By setting this parameter
13114	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
13115	// active task or service still references them. If you paginate the resulting
13116	// output, be sure to keep the status value constant in each subsequent request.
13117	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
13118}
13119
13120// String returns the string representation
13121func (s ListTaskDefinitionsInput) String() string {
13122	return awsutil.Prettify(s)
13123}
13124
13125// GoString returns the string representation
13126func (s ListTaskDefinitionsInput) GoString() string {
13127	return s.String()
13128}
13129
13130// SetFamilyPrefix sets the FamilyPrefix field's value.
13131func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
13132	s.FamilyPrefix = &v
13133	return s
13134}
13135
13136// SetMaxResults sets the MaxResults field's value.
13137func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
13138	s.MaxResults = &v
13139	return s
13140}
13141
13142// SetNextToken sets the NextToken field's value.
13143func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
13144	s.NextToken = &v
13145	return s
13146}
13147
13148// SetSort sets the Sort field's value.
13149func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
13150	s.Sort = &v
13151	return s
13152}
13153
13154// SetStatus sets the Status field's value.
13155func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
13156	s.Status = &v
13157	return s
13158}
13159
13160type ListTaskDefinitionsOutput struct {
13161	_ struct{} `type:"structure"`
13162
13163	// The nextToken value to include in a future ListTaskDefinitions request. When
13164	// the results of a ListTaskDefinitions request exceed maxResults, this value
13165	// can be used to retrieve the next page of results. This value is null when
13166	// there are no more results to return.
13167	NextToken *string `locationName:"nextToken" type:"string"`
13168
13169	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
13170	// request.
13171	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
13172}
13173
13174// String returns the string representation
13175func (s ListTaskDefinitionsOutput) String() string {
13176	return awsutil.Prettify(s)
13177}
13178
13179// GoString returns the string representation
13180func (s ListTaskDefinitionsOutput) GoString() string {
13181	return s.String()
13182}
13183
13184// SetNextToken sets the NextToken field's value.
13185func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
13186	s.NextToken = &v
13187	return s
13188}
13189
13190// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
13191func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
13192	s.TaskDefinitionArns = v
13193	return s
13194}
13195
13196type ListTasksInput struct {
13197	_ struct{} `type:"structure"`
13198
13199	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13200	// the tasks to list. If you do not specify a cluster, the default cluster is
13201	// assumed.
13202	Cluster *string `locationName:"cluster" type:"string"`
13203
13204	// The container instance ID or full ARN of the container instance with which
13205	// to filter the ListTasks results. Specifying a containerInstance limits the
13206	// results to tasks that belong to that container instance.
13207	ContainerInstance *string `locationName:"containerInstance" type:"string"`
13208
13209	// The task desired status with which to filter the ListTasks results. Specifying
13210	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
13211	// set the desired status to STOPPED. This can be useful for debugging tasks
13212	// that are not starting properly or have died or finished. The default status
13213	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
13214	// status to RUNNING.
13215	//
13216	// Although you can filter results based on a desired status of PENDING, this
13217	// does not return any results. Amazon ECS never sets the desired status of
13218	// a task to that value (only a task's lastStatus may have a value of PENDING).
13219	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
13220
13221	// The name of the family with which to filter the ListTasks results. Specifying
13222	// a family limits the results to tasks that belong to that family.
13223	Family *string `locationName:"family" type:"string"`
13224
13225	// The launch type for services to list.
13226	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13227
13228	// The maximum number of task results returned by ListTasks in paginated output.
13229	// When this parameter is used, ListTasks only returns maxResults results in
13230	// a single page along with a nextToken response element. The remaining results
13231	// of the initial request can be seen by sending another ListTasks request with
13232	// the returned nextToken value. This value can be between 1 and 100. If this
13233	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
13234	// value if applicable.
13235	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13236
13237	// The nextToken value returned from a ListTasks request indicating that more
13238	// results are available to fulfill the request and further calls will be needed.
13239	// If maxResults was provided, it is possible the number of results to be fewer
13240	// than maxResults.
13241	//
13242	// This token should be treated as an opaque identifier that is only used to
13243	// retrieve the next items in a list and not for other programmatic purposes.
13244	NextToken *string `locationName:"nextToken" type:"string"`
13245
13246	// The name of the service with which to filter the ListTasks results. Specifying
13247	// a serviceName limits the results to tasks that belong to that service.
13248	ServiceName *string `locationName:"serviceName" type:"string"`
13249
13250	// The startedBy value with which to filter the task results. Specifying a startedBy
13251	// value limits the results to tasks that were started with that value.
13252	StartedBy *string `locationName:"startedBy" type:"string"`
13253}
13254
13255// String returns the string representation
13256func (s ListTasksInput) String() string {
13257	return awsutil.Prettify(s)
13258}
13259
13260// GoString returns the string representation
13261func (s ListTasksInput) GoString() string {
13262	return s.String()
13263}
13264
13265// SetCluster sets the Cluster field's value.
13266func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
13267	s.Cluster = &v
13268	return s
13269}
13270
13271// SetContainerInstance sets the ContainerInstance field's value.
13272func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
13273	s.ContainerInstance = &v
13274	return s
13275}
13276
13277// SetDesiredStatus sets the DesiredStatus field's value.
13278func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
13279	s.DesiredStatus = &v
13280	return s
13281}
13282
13283// SetFamily sets the Family field's value.
13284func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
13285	s.Family = &v
13286	return s
13287}
13288
13289// SetLaunchType sets the LaunchType field's value.
13290func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
13291	s.LaunchType = &v
13292	return s
13293}
13294
13295// SetMaxResults sets the MaxResults field's value.
13296func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
13297	s.MaxResults = &v
13298	return s
13299}
13300
13301// SetNextToken sets the NextToken field's value.
13302func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
13303	s.NextToken = &v
13304	return s
13305}
13306
13307// SetServiceName sets the ServiceName field's value.
13308func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
13309	s.ServiceName = &v
13310	return s
13311}
13312
13313// SetStartedBy sets the StartedBy field's value.
13314func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
13315	s.StartedBy = &v
13316	return s
13317}
13318
13319type ListTasksOutput struct {
13320	_ struct{} `type:"structure"`
13321
13322	// The nextToken value to include in a future ListTasks request. When the results
13323	// of a ListTasks request exceed maxResults, this value can be used to retrieve
13324	// the next page of results. This value is null when there are no more results
13325	// to return.
13326	NextToken *string `locationName:"nextToken" type:"string"`
13327
13328	// The list of task ARN entries for the ListTasks request.
13329	TaskArns []*string `locationName:"taskArns" type:"list"`
13330}
13331
13332// String returns the string representation
13333func (s ListTasksOutput) String() string {
13334	return awsutil.Prettify(s)
13335}
13336
13337// GoString returns the string representation
13338func (s ListTasksOutput) GoString() string {
13339	return s.String()
13340}
13341
13342// SetNextToken sets the NextToken field's value.
13343func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
13344	s.NextToken = &v
13345	return s
13346}
13347
13348// SetTaskArns sets the TaskArns field's value.
13349func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
13350	s.TaskArns = v
13351	return s
13352}
13353
13354// The load balancer configuration to use with a service or task set.
13355//
13356// For specific notes and restrictions regarding the use of load balancers with
13357// services and task sets, see the CreateService and CreateTaskSet actions.
13358type LoadBalancer struct {
13359	_ struct{} `type:"structure"`
13360
13361	// The name of the container (as it appears in a container definition) to associate
13362	// with the load balancer.
13363	ContainerName *string `locationName:"containerName" type:"string"`
13364
13365	// The port on the container to associate with the load balancer. This port
13366	// must correspond to a containerPort in the task definition the tasks in the
13367	// service are using. For tasks that use the EC2 launch type, the container
13368	// instance they are launched on must allow ingress traffic on the hostPort
13369	// of the port mapping.
13370	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13371
13372	// The name of the load balancer to associate with the Amazon ECS service or
13373	// task set.
13374	//
13375	// A load balancer name is only specified when using a Classic Load Balancer.
13376	// If you are using an Application Load Balancer or a Network Load Balancer
13377	// the load balancer name parameter should be omitted.
13378	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
13379
13380	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
13381	// group or groups associated with a service or task set.
13382	//
13383	// A target group ARN is only specified when using an Application Load Balancer
13384	// or Network Load Balancer. If you are using a Classic Load Balancer the target
13385	// group ARN should be omitted.
13386	//
13387	// For services using the ECS deployment controller, you can specify one or
13388	// multiple target groups. For more information, see Registering Multiple Target
13389	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
13390	// in the Amazon Elastic Container Service Developer Guide.
13391	//
13392	// For services using the CODE_DEPLOY deployment controller, you are required
13393	// to define two target groups for the load balancer. For more information,
13394	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
13395	// in the Amazon Elastic Container Service Developer Guide.
13396	//
13397	// If your service's task definition uses the awsvpc network mode (which is
13398	// required for the Fargate launch type), you must choose ip as the target type,
13399	// not instance, when creating your target groups because tasks that use the
13400	// awsvpc network mode are associated with an elastic network interface, not
13401	// an Amazon EC2 instance.
13402	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
13403}
13404
13405// String returns the string representation
13406func (s LoadBalancer) String() string {
13407	return awsutil.Prettify(s)
13408}
13409
13410// GoString returns the string representation
13411func (s LoadBalancer) GoString() string {
13412	return s.String()
13413}
13414
13415// SetContainerName sets the ContainerName field's value.
13416func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
13417	s.ContainerName = &v
13418	return s
13419}
13420
13421// SetContainerPort sets the ContainerPort field's value.
13422func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
13423	s.ContainerPort = &v
13424	return s
13425}
13426
13427// SetLoadBalancerName sets the LoadBalancerName field's value.
13428func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
13429	s.LoadBalancerName = &v
13430	return s
13431}
13432
13433// SetTargetGroupArn sets the TargetGroupArn field's value.
13434func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
13435	s.TargetGroupArn = &v
13436	return s
13437}
13438
13439// The log configuration specification for the container.
13440//
13441// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13442// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13443// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).
13444// By default, containers use the same logging driver that the Docker daemon
13445// uses; however the container may use a different logging driver than the Docker
13446// daemon by specifying a log driver with this parameter in the container definition.
13447// To use a different logging driver for a container, the log system must be
13448// configured properly on the container instance (or on a different log server
13449// for remote logging options). For more information on the options for different
13450// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
13451// in the Docker documentation.
13452//
13453// The following should be noted when specifying a log configuration for your
13454// containers:
13455//
13456//    * Amazon ECS currently supports a subset of the logging drivers available
13457//    to the Docker daemon (shown in the valid values below). Additional log
13458//    drivers may be available in future releases of the Amazon ECS container
13459//    agent.
13460//
13461//    * This parameter requires version 1.18 of the Docker Remote API or greater
13462//    on your container instance.
13463//
13464//    * For tasks using the EC2 launch type, the Amazon ECS container agent
13465//    running on a container instance must register the logging drivers available
13466//    on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable
13467//    before containers placed on that instance can use these log configuration
13468//    options. For more information, see Amazon ECS Container Agent Configuration
13469//    (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
13470//    in the Amazon Elastic Container Service Developer Guide.
13471//
13472//    * For tasks using the Fargate launch type, because you do not have access
13473//    to the underlying infrastructure your tasks are hosted on, any additional
13474//    software needed will have to be installed outside of the task. For example,
13475//    the Fluentd output aggregators or a remote host running Logstash to send
13476//    Gelf logs to.
13477type LogConfiguration struct {
13478	_ struct{} `type:"structure"`
13479
13480	// The log driver to use for the container. The valid values listed earlier
13481	// are log drivers that the Amazon ECS container agent can communicate with
13482	// by default.
13483	//
13484	// For tasks using the Fargate launch type, the supported log drivers are awslogs,
13485	// splunk, and awsfirelens.
13486	//
13487	// For tasks using the EC2 launch type, the supported log drivers are awslogs,
13488	// fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.
13489	//
13490	// For more information about using the awslogs log driver, see Using the awslogs
13491	// Log Driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
13492	// in the Amazon Elastic Container Service Developer Guide.
13493	//
13494	// For more information about using the awsfirelens log driver, see Custom Log
13495	// Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
13496	// in the Amazon Elastic Container Service Developer Guide.
13497	//
13498	// If you have a custom driver that is not listed, you can fork the Amazon ECS
13499	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
13500	// and customize it to work with that driver. We encourage you to submit pull
13501	// requests for changes that you would like to have included. However, we do
13502	// not currently provide support for running modified copies of this software.
13503	//
13504	// LogDriver is a required field
13505	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
13506
13507	// The configuration options to send to the log driver. This parameter requires
13508	// version 1.19 of the Docker Remote API or greater on your container instance.
13509	// To check the Docker Remote API version on your container instance, log in
13510	// to your container instance and run the following command: sudo docker version
13511	// --format '{{.Server.APIVersion}}'
13512	Options map[string]*string `locationName:"options" type:"map"`
13513
13514	// The secrets to pass to the log configuration. For more information, see Specifying
13515	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
13516	// in the Amazon Elastic Container Service Developer Guide.
13517	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
13518}
13519
13520// String returns the string representation
13521func (s LogConfiguration) String() string {
13522	return awsutil.Prettify(s)
13523}
13524
13525// GoString returns the string representation
13526func (s LogConfiguration) GoString() string {
13527	return s.String()
13528}
13529
13530// Validate inspects the fields of the type to determine if they are valid.
13531func (s *LogConfiguration) Validate() error {
13532	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
13533	if s.LogDriver == nil {
13534		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
13535	}
13536	if s.SecretOptions != nil {
13537		for i, v := range s.SecretOptions {
13538			if v == nil {
13539				continue
13540			}
13541			if err := v.Validate(); err != nil {
13542				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
13543			}
13544		}
13545	}
13546
13547	if invalidParams.Len() > 0 {
13548		return invalidParams
13549	}
13550	return nil
13551}
13552
13553// SetLogDriver sets the LogDriver field's value.
13554func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
13555	s.LogDriver = &v
13556	return s
13557}
13558
13559// SetOptions sets the Options field's value.
13560func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
13561	s.Options = v
13562	return s
13563}
13564
13565// SetSecretOptions sets the SecretOptions field's value.
13566func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
13567	s.SecretOptions = v
13568	return s
13569}
13570
13571// The managed scaling settings for the Auto Scaling group capacity provider.
13572//
13573// When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
13574// actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
13575// policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
13576// value as the target value for the metric. For more information, see Using
13577// Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
13578// in the Amazon Elastic Container Service Developer Guide.
13579//
13580// If managed scaling is disabled, the user must manage the scaling of the Auto
13581// Scaling group.
13582type ManagedScaling struct {
13583	_ struct{} `type:"structure"`
13584
13585	// The maximum number of container instances that Amazon ECS will scale in or
13586	// scale out at one time. If this parameter is omitted, the default value of
13587	// 10000 is used.
13588	MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"`
13589
13590	// The minimum number of container instances that Amazon ECS will scale in or
13591	// scale out at one time. If this parameter is omitted, the default value of
13592	// 1 is used.
13593	MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"`
13594
13595	// Whether or not to enable managed scaling for the capacity provider.
13596	Status *string `locationName:"status" type:"string" enum:"ManagedScalingStatus"`
13597
13598	// The target capacity value for the capacity provider. The specified value
13599	// must be greater than 0 and less than or equal to 100. A value of 100 will
13600	// result in the Amazon EC2 instances in your Auto Scaling group being completely
13601	// utilized.
13602	TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"`
13603}
13604
13605// String returns the string representation
13606func (s ManagedScaling) String() string {
13607	return awsutil.Prettify(s)
13608}
13609
13610// GoString returns the string representation
13611func (s ManagedScaling) GoString() string {
13612	return s.String()
13613}
13614
13615// Validate inspects the fields of the type to determine if they are valid.
13616func (s *ManagedScaling) Validate() error {
13617	invalidParams := request.ErrInvalidParams{Context: "ManagedScaling"}
13618	if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 {
13619		invalidParams.Add(request.NewErrParamMinValue("MaximumScalingStepSize", 1))
13620	}
13621	if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 {
13622		invalidParams.Add(request.NewErrParamMinValue("MinimumScalingStepSize", 1))
13623	}
13624	if s.TargetCapacity != nil && *s.TargetCapacity < 1 {
13625		invalidParams.Add(request.NewErrParamMinValue("TargetCapacity", 1))
13626	}
13627
13628	if invalidParams.Len() > 0 {
13629		return invalidParams
13630	}
13631	return nil
13632}
13633
13634// SetMaximumScalingStepSize sets the MaximumScalingStepSize field's value.
13635func (s *ManagedScaling) SetMaximumScalingStepSize(v int64) *ManagedScaling {
13636	s.MaximumScalingStepSize = &v
13637	return s
13638}
13639
13640// SetMinimumScalingStepSize sets the MinimumScalingStepSize field's value.
13641func (s *ManagedScaling) SetMinimumScalingStepSize(v int64) *ManagedScaling {
13642	s.MinimumScalingStepSize = &v
13643	return s
13644}
13645
13646// SetStatus sets the Status field's value.
13647func (s *ManagedScaling) SetStatus(v string) *ManagedScaling {
13648	s.Status = &v
13649	return s
13650}
13651
13652// SetTargetCapacity sets the TargetCapacity field's value.
13653func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling {
13654	s.TargetCapacity = &v
13655	return s
13656}
13657
13658// Amazon ECS is unable to determine the current version of the Amazon ECS container
13659// agent on the container instance and does not have enough information to proceed
13660// with an update. This could be because the agent running on the container
13661// instance is an older or custom version that does not use our version information.
13662type MissingVersionException struct {
13663	_            struct{}                  `type:"structure"`
13664	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13665
13666	Message_ *string `locationName:"message" type:"string"`
13667}
13668
13669// String returns the string representation
13670func (s MissingVersionException) String() string {
13671	return awsutil.Prettify(s)
13672}
13673
13674// GoString returns the string representation
13675func (s MissingVersionException) GoString() string {
13676	return s.String()
13677}
13678
13679func newErrorMissingVersionException(v protocol.ResponseMetadata) error {
13680	return &MissingVersionException{
13681		RespMetadata: v,
13682	}
13683}
13684
13685// Code returns the exception type name.
13686func (s *MissingVersionException) Code() string {
13687	return "MissingVersionException"
13688}
13689
13690// Message returns the exception's message.
13691func (s *MissingVersionException) Message() string {
13692	if s.Message_ != nil {
13693		return *s.Message_
13694	}
13695	return ""
13696}
13697
13698// OrigErr always returns nil, satisfies awserr.Error interface.
13699func (s *MissingVersionException) OrigErr() error {
13700	return nil
13701}
13702
13703func (s *MissingVersionException) Error() string {
13704	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13705}
13706
13707// Status code returns the HTTP status code for the request's response error.
13708func (s *MissingVersionException) StatusCode() int {
13709	return s.RespMetadata.StatusCode
13710}
13711
13712// RequestID returns the service's response RequestID for request.
13713func (s *MissingVersionException) RequestID() string {
13714	return s.RespMetadata.RequestID
13715}
13716
13717// Details on a volume mount point that is used in a container definition.
13718type MountPoint struct {
13719	_ struct{} `type:"structure"`
13720
13721	// The path on the container to mount the host volume at.
13722	ContainerPath *string `locationName:"containerPath" type:"string"`
13723
13724	// If this value is true, the container has read-only access to the volume.
13725	// If this value is false, then the container can write to the volume. The default
13726	// value is false.
13727	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
13728
13729	// The name of the volume to mount. Must be a volume name referenced in the
13730	// name parameter of task definition volume.
13731	SourceVolume *string `locationName:"sourceVolume" type:"string"`
13732}
13733
13734// String returns the string representation
13735func (s MountPoint) String() string {
13736	return awsutil.Prettify(s)
13737}
13738
13739// GoString returns the string representation
13740func (s MountPoint) GoString() string {
13741	return s.String()
13742}
13743
13744// SetContainerPath sets the ContainerPath field's value.
13745func (s *MountPoint) SetContainerPath(v string) *MountPoint {
13746	s.ContainerPath = &v
13747	return s
13748}
13749
13750// SetReadOnly sets the ReadOnly field's value.
13751func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
13752	s.ReadOnly = &v
13753	return s
13754}
13755
13756// SetSourceVolume sets the SourceVolume field's value.
13757func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
13758	s.SourceVolume = &v
13759	return s
13760}
13761
13762// Details on the network bindings between a container and its host container
13763// instance. After a task reaches the RUNNING status, manual and automatic host
13764// and container port assignments are visible in the networkBindings section
13765// of DescribeTasks API responses.
13766type NetworkBinding struct {
13767	_ struct{} `type:"structure"`
13768
13769	// The IP address that the container is bound to on the container instance.
13770	BindIP *string `locationName:"bindIP" type:"string"`
13771
13772	// The port number on the container that is used with the network binding.
13773	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13774
13775	// The port number on the host that is used with the network binding.
13776	HostPort *int64 `locationName:"hostPort" type:"integer"`
13777
13778	// The protocol used for the network binding.
13779	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
13780}
13781
13782// String returns the string representation
13783func (s NetworkBinding) String() string {
13784	return awsutil.Prettify(s)
13785}
13786
13787// GoString returns the string representation
13788func (s NetworkBinding) GoString() string {
13789	return s.String()
13790}
13791
13792// SetBindIP sets the BindIP field's value.
13793func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
13794	s.BindIP = &v
13795	return s
13796}
13797
13798// SetContainerPort sets the ContainerPort field's value.
13799func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
13800	s.ContainerPort = &v
13801	return s
13802}
13803
13804// SetHostPort sets the HostPort field's value.
13805func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
13806	s.HostPort = &v
13807	return s
13808}
13809
13810// SetProtocol sets the Protocol field's value.
13811func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
13812	s.Protocol = &v
13813	return s
13814}
13815
13816// An object representing the network configuration for a task or service.
13817type NetworkConfiguration struct {
13818	_ struct{} `type:"structure"`
13819
13820	// The VPC subnets and security groups associated with a task.
13821	//
13822	// All specified subnets and security groups must be from the same VPC.
13823	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
13824}
13825
13826// String returns the string representation
13827func (s NetworkConfiguration) String() string {
13828	return awsutil.Prettify(s)
13829}
13830
13831// GoString returns the string representation
13832func (s NetworkConfiguration) GoString() string {
13833	return s.String()
13834}
13835
13836// Validate inspects the fields of the type to determine if they are valid.
13837func (s *NetworkConfiguration) Validate() error {
13838	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
13839	if s.AwsvpcConfiguration != nil {
13840		if err := s.AwsvpcConfiguration.Validate(); err != nil {
13841			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
13842		}
13843	}
13844
13845	if invalidParams.Len() > 0 {
13846		return invalidParams
13847	}
13848	return nil
13849}
13850
13851// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
13852func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
13853	s.AwsvpcConfiguration = v
13854	return s
13855}
13856
13857// An object representing the elastic network interface for tasks that use the
13858// awsvpc network mode.
13859type NetworkInterface struct {
13860	_ struct{} `type:"structure"`
13861
13862	// The attachment ID for the network interface.
13863	AttachmentId *string `locationName:"attachmentId" type:"string"`
13864
13865	// The private IPv6 address for the network interface.
13866	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
13867
13868	// The private IPv4 address for the network interface.
13869	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
13870}
13871
13872// String returns the string representation
13873func (s NetworkInterface) String() string {
13874	return awsutil.Prettify(s)
13875}
13876
13877// GoString returns the string representation
13878func (s NetworkInterface) GoString() string {
13879	return s.String()
13880}
13881
13882// SetAttachmentId sets the AttachmentId field's value.
13883func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
13884	s.AttachmentId = &v
13885	return s
13886}
13887
13888// SetIpv6Address sets the Ipv6Address field's value.
13889func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
13890	s.Ipv6Address = &v
13891	return s
13892}
13893
13894// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
13895func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
13896	s.PrivateIpv4Address = &v
13897	return s
13898}
13899
13900// There is no update available for this Amazon ECS container agent. This could
13901// be because the agent is already running the latest version, or it is so old
13902// that there is no update path to the current version.
13903type NoUpdateAvailableException struct {
13904	_            struct{}                  `type:"structure"`
13905	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13906
13907	Message_ *string `locationName:"message" type:"string"`
13908}
13909
13910// String returns the string representation
13911func (s NoUpdateAvailableException) String() string {
13912	return awsutil.Prettify(s)
13913}
13914
13915// GoString returns the string representation
13916func (s NoUpdateAvailableException) GoString() string {
13917	return s.String()
13918}
13919
13920func newErrorNoUpdateAvailableException(v protocol.ResponseMetadata) error {
13921	return &NoUpdateAvailableException{
13922		RespMetadata: v,
13923	}
13924}
13925
13926// Code returns the exception type name.
13927func (s *NoUpdateAvailableException) Code() string {
13928	return "NoUpdateAvailableException"
13929}
13930
13931// Message returns the exception's message.
13932func (s *NoUpdateAvailableException) Message() string {
13933	if s.Message_ != nil {
13934		return *s.Message_
13935	}
13936	return ""
13937}
13938
13939// OrigErr always returns nil, satisfies awserr.Error interface.
13940func (s *NoUpdateAvailableException) OrigErr() error {
13941	return nil
13942}
13943
13944func (s *NoUpdateAvailableException) Error() string {
13945	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13946}
13947
13948// Status code returns the HTTP status code for the request's response error.
13949func (s *NoUpdateAvailableException) StatusCode() int {
13950	return s.RespMetadata.StatusCode
13951}
13952
13953// RequestID returns the service's response RequestID for request.
13954func (s *NoUpdateAvailableException) RequestID() string {
13955	return s.RespMetadata.RequestID
13956}
13957
13958// An object representing a constraint on task placement. For more information,
13959// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
13960// in the Amazon Elastic Container Service Developer Guide.
13961//
13962// If you are using the Fargate launch type, task placement constraints are
13963// not supported.
13964type PlacementConstraint struct {
13965	_ struct{} `type:"structure"`
13966
13967	// A cluster query language expression to apply to the constraint. You cannot
13968	// specify an expression if the constraint type is distinctInstance. For more
13969	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
13970	// in the Amazon Elastic Container Service Developer Guide.
13971	Expression *string `locationName:"expression" type:"string"`
13972
13973	// The type of constraint. Use distinctInstance to ensure that each task in
13974	// a particular group is running on a different container instance. Use memberOf
13975	// to restrict the selection to a group of valid candidates.
13976	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
13977}
13978
13979// String returns the string representation
13980func (s PlacementConstraint) String() string {
13981	return awsutil.Prettify(s)
13982}
13983
13984// GoString returns the string representation
13985func (s PlacementConstraint) GoString() string {
13986	return s.String()
13987}
13988
13989// SetExpression sets the Expression field's value.
13990func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
13991	s.Expression = &v
13992	return s
13993}
13994
13995// SetType sets the Type field's value.
13996func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
13997	s.Type = &v
13998	return s
13999}
14000
14001// The task placement strategy for a task or service. For more information,
14002// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
14003// in the Amazon Elastic Container Service Developer Guide.
14004type PlacementStrategy struct {
14005	_ struct{} `type:"structure"`
14006
14007	// The field to apply the placement strategy against. For the spread placement
14008	// strategy, valid values are instanceId (or host, which has the same effect),
14009	// or any platform or custom attribute that is applied to a container instance,
14010	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
14011	// valid values are cpu and memory. For the random placement strategy, this
14012	// field is not used.
14013	Field *string `locationName:"field" type:"string"`
14014
14015	// The type of placement strategy. The random placement strategy randomly places
14016	// tasks on available candidates. The spread placement strategy spreads placement
14017	// across available candidates evenly based on the field parameter. The binpack
14018	// strategy places tasks on available candidates that have the least available
14019	// amount of the resource that is specified with the field parameter. For example,
14020	// if you binpack on memory, a task is placed on the instance with the least
14021	// amount of remaining memory (but still enough to run the task).
14022	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
14023}
14024
14025// String returns the string representation
14026func (s PlacementStrategy) String() string {
14027	return awsutil.Prettify(s)
14028}
14029
14030// GoString returns the string representation
14031func (s PlacementStrategy) GoString() string {
14032	return s.String()
14033}
14034
14035// SetField sets the Field field's value.
14036func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
14037	s.Field = &v
14038	return s
14039}
14040
14041// SetType sets the Type field's value.
14042func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
14043	s.Type = &v
14044	return s
14045}
14046
14047// The devices that are available on the container instance. The only supported
14048// device type is a GPU.
14049type PlatformDevice struct {
14050	_ struct{} `type:"structure"`
14051
14052	// The ID for the GPU(s) on the container instance. The available GPU IDs can
14053	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
14054	// file.
14055	//
14056	// Id is a required field
14057	Id *string `locationName:"id" type:"string" required:"true"`
14058
14059	// The type of device that is available on the container instance. The only
14060	// supported value is GPU.
14061	//
14062	// Type is a required field
14063	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
14064}
14065
14066// String returns the string representation
14067func (s PlatformDevice) String() string {
14068	return awsutil.Prettify(s)
14069}
14070
14071// GoString returns the string representation
14072func (s PlatformDevice) GoString() string {
14073	return s.String()
14074}
14075
14076// Validate inspects the fields of the type to determine if they are valid.
14077func (s *PlatformDevice) Validate() error {
14078	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
14079	if s.Id == nil {
14080		invalidParams.Add(request.NewErrParamRequired("Id"))
14081	}
14082	if s.Type == nil {
14083		invalidParams.Add(request.NewErrParamRequired("Type"))
14084	}
14085
14086	if invalidParams.Len() > 0 {
14087		return invalidParams
14088	}
14089	return nil
14090}
14091
14092// SetId sets the Id field's value.
14093func (s *PlatformDevice) SetId(v string) *PlatformDevice {
14094	s.Id = &v
14095	return s
14096}
14097
14098// SetType sets the Type field's value.
14099func (s *PlatformDevice) SetType(v string) *PlatformDevice {
14100	s.Type = &v
14101	return s
14102}
14103
14104// The specified platform version does not satisfy the task definition's required
14105// capabilities.
14106type PlatformTaskDefinitionIncompatibilityException struct {
14107	_            struct{}                  `type:"structure"`
14108	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14109
14110	Message_ *string `locationName:"message" type:"string"`
14111}
14112
14113// String returns the string representation
14114func (s PlatformTaskDefinitionIncompatibilityException) String() string {
14115	return awsutil.Prettify(s)
14116}
14117
14118// GoString returns the string representation
14119func (s PlatformTaskDefinitionIncompatibilityException) GoString() string {
14120	return s.String()
14121}
14122
14123func newErrorPlatformTaskDefinitionIncompatibilityException(v protocol.ResponseMetadata) error {
14124	return &PlatformTaskDefinitionIncompatibilityException{
14125		RespMetadata: v,
14126	}
14127}
14128
14129// Code returns the exception type name.
14130func (s *PlatformTaskDefinitionIncompatibilityException) Code() string {
14131	return "PlatformTaskDefinitionIncompatibilityException"
14132}
14133
14134// Message returns the exception's message.
14135func (s *PlatformTaskDefinitionIncompatibilityException) Message() string {
14136	if s.Message_ != nil {
14137		return *s.Message_
14138	}
14139	return ""
14140}
14141
14142// OrigErr always returns nil, satisfies awserr.Error interface.
14143func (s *PlatformTaskDefinitionIncompatibilityException) OrigErr() error {
14144	return nil
14145}
14146
14147func (s *PlatformTaskDefinitionIncompatibilityException) Error() string {
14148	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14149}
14150
14151// Status code returns the HTTP status code for the request's response error.
14152func (s *PlatformTaskDefinitionIncompatibilityException) StatusCode() int {
14153	return s.RespMetadata.StatusCode
14154}
14155
14156// RequestID returns the service's response RequestID for request.
14157func (s *PlatformTaskDefinitionIncompatibilityException) RequestID() string {
14158	return s.RespMetadata.RequestID
14159}
14160
14161// The specified platform version does not exist.
14162type PlatformUnknownException struct {
14163	_            struct{}                  `type:"structure"`
14164	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14165
14166	Message_ *string `locationName:"message" type:"string"`
14167}
14168
14169// String returns the string representation
14170func (s PlatformUnknownException) String() string {
14171	return awsutil.Prettify(s)
14172}
14173
14174// GoString returns the string representation
14175func (s PlatformUnknownException) GoString() string {
14176	return s.String()
14177}
14178
14179func newErrorPlatformUnknownException(v protocol.ResponseMetadata) error {
14180	return &PlatformUnknownException{
14181		RespMetadata: v,
14182	}
14183}
14184
14185// Code returns the exception type name.
14186func (s *PlatformUnknownException) Code() string {
14187	return "PlatformUnknownException"
14188}
14189
14190// Message returns the exception's message.
14191func (s *PlatformUnknownException) Message() string {
14192	if s.Message_ != nil {
14193		return *s.Message_
14194	}
14195	return ""
14196}
14197
14198// OrigErr always returns nil, satisfies awserr.Error interface.
14199func (s *PlatformUnknownException) OrigErr() error {
14200	return nil
14201}
14202
14203func (s *PlatformUnknownException) Error() string {
14204	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14205}
14206
14207// Status code returns the HTTP status code for the request's response error.
14208func (s *PlatformUnknownException) StatusCode() int {
14209	return s.RespMetadata.StatusCode
14210}
14211
14212// RequestID returns the service's response RequestID for request.
14213func (s *PlatformUnknownException) RequestID() string {
14214	return s.RespMetadata.RequestID
14215}
14216
14217// Port mappings allow containers to access ports on the host container instance
14218// to send or receive traffic. Port mappings are specified as part of the container
14219// definition.
14220//
14221// If you are using containers in a task with the awsvpc or host network mode,
14222// exposed ports should be specified using containerPort. The hostPort can be
14223// left blank or it must be the same value as the containerPort.
14224//
14225// After a task reaches the RUNNING status, manual and automatic host and container
14226// port assignments are visible in the networkBindings section of DescribeTasks
14227// API responses.
14228type PortMapping struct {
14229	_ struct{} `type:"structure"`
14230
14231	// The port number on the container that is bound to the user-specified or automatically
14232	// assigned host port.
14233	//
14234	// If you are using containers in a task with the awsvpc or host network mode,
14235	// exposed ports should be specified using containerPort.
14236	//
14237	// If you are using containers in a task with the bridge network mode and you
14238	// specify a container port and not a host port, your container automatically
14239	// receives a host port in the ephemeral port range. For more information, see
14240	// hostPort. Port mappings that are automatically assigned in this way do not
14241	// count toward the 100 reserved ports limit of a container instance.
14242	//
14243	// You cannot expose the same container port for multiple protocols. An error
14244	// will be returned if this is attempted.
14245	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14246
14247	// The port number on the container instance to reserve for your container.
14248	//
14249	// If you are using containers in a task with the awsvpc or host network mode,
14250	// the hostPort can either be left blank or set to the same value as the containerPort.
14251	//
14252	// If you are using containers in a task with the bridge network mode, you can
14253	// specify a non-reserved host port for your container port mapping, or you
14254	// can omit the hostPort (or set it to 0) while specifying a containerPort and
14255	// your container automatically receives a port in the ephemeral port range
14256	// for your container instance operating system and Docker version.
14257	//
14258	// The default ephemeral port range for Docker version 1.6.0 and later is listed
14259	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
14260	// parameter is unavailable, the default ephemeral port range from 49153 through
14261	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
14262	// range as these are reserved for automatic assignment. In general, ports below
14263	// 32768 are outside of the ephemeral port range.
14264	//
14265	// The default ephemeral port range from 49153 through 65535 is always used
14266	// for Docker versions before 1.6.0.
14267	//
14268	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
14269	// and the Amazon ECS container agent ports 51678-51680. Any host port that
14270	// was previously specified in a running task is also reserved while the task
14271	// is running (after a task stops, the host port is released). The current reserved
14272	// ports are displayed in the remainingResources of DescribeContainerInstances
14273	// output. A container instance can have up to 100 reserved ports at a time,
14274	// including the default reserved ports. Automatically assigned ports don't
14275	// count toward the 100 reserved ports limit.
14276	HostPort *int64 `locationName:"hostPort" type:"integer"`
14277
14278	// The protocol used for the port mapping. Valid values are tcp and udp. The
14279	// default is tcp.
14280	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
14281}
14282
14283// String returns the string representation
14284func (s PortMapping) String() string {
14285	return awsutil.Prettify(s)
14286}
14287
14288// GoString returns the string representation
14289func (s PortMapping) GoString() string {
14290	return s.String()
14291}
14292
14293// SetContainerPort sets the ContainerPort field's value.
14294func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
14295	s.ContainerPort = &v
14296	return s
14297}
14298
14299// SetHostPort sets the HostPort field's value.
14300func (s *PortMapping) SetHostPort(v int64) *PortMapping {
14301	s.HostPort = &v
14302	return s
14303}
14304
14305// SetProtocol sets the Protocol field's value.
14306func (s *PortMapping) SetProtocol(v string) *PortMapping {
14307	s.Protocol = &v
14308	return s
14309}
14310
14311// The configuration details for the App Mesh proxy.
14312//
14313// For tasks using the EC2 launch type, the container instances require at least
14314// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
14315// ecs-init package to enable a proxy configuration. If your container instances
14316// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
14317// then they contain the required versions of the container agent and ecs-init.
14318// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
14319// in the Amazon Elastic Container Service Developer Guide.
14320//
14321// For tasks using the Fargate launch type, the task or service requires platform
14322// version 1.3.0 or later.
14323type ProxyConfiguration struct {
14324	_ struct{} `type:"structure"`
14325
14326	// The name of the container that will serve as the App Mesh proxy.
14327	//
14328	// ContainerName is a required field
14329	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
14330
14331	// The set of network configuration parameters to provide the Container Network
14332	// Interface (CNI) plugin, specified as key-value pairs.
14333	//
14334	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
14335	//    defined by the user parameter in a container definition. This is used
14336	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
14337	//    this field can be empty.
14338	//
14339	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
14340	//    defined by the user parameter in a container definition. This is used
14341	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
14342	//    this field can be empty.
14343	//
14344	//    * AppPorts - (Required) The list of ports that the application uses. Network
14345	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
14346	//
14347	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
14348	//    to the AppPorts is directed to.
14349	//
14350	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
14351	//    from the AppPorts is directed to.
14352	//
14353	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
14354	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
14355	//    an empty list.
14356	//
14357	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
14358	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
14359	//    can be an empty list.
14360	Properties []*KeyValuePair `locationName:"properties" type:"list"`
14361
14362	// The proxy type. The only supported value is APPMESH.
14363	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
14364}
14365
14366// String returns the string representation
14367func (s ProxyConfiguration) String() string {
14368	return awsutil.Prettify(s)
14369}
14370
14371// GoString returns the string representation
14372func (s ProxyConfiguration) GoString() string {
14373	return s.String()
14374}
14375
14376// Validate inspects the fields of the type to determine if they are valid.
14377func (s *ProxyConfiguration) Validate() error {
14378	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
14379	if s.ContainerName == nil {
14380		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
14381	}
14382
14383	if invalidParams.Len() > 0 {
14384		return invalidParams
14385	}
14386	return nil
14387}
14388
14389// SetContainerName sets the ContainerName field's value.
14390func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
14391	s.ContainerName = &v
14392	return s
14393}
14394
14395// SetProperties sets the Properties field's value.
14396func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
14397	s.Properties = v
14398	return s
14399}
14400
14401// SetType sets the Type field's value.
14402func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
14403	s.Type = &v
14404	return s
14405}
14406
14407type PutAccountSettingDefaultInput struct {
14408	_ struct{} `type:"structure"`
14409
14410	// The resource name for which to modify the account setting. If serviceLongArnFormat
14411	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
14412	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
14413	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
14414	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
14415	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
14416	// is specified, the default setting for CloudWatch Container Insights for your
14417	// clusters is affected.
14418	//
14419	// Name is a required field
14420	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14421
14422	// The account setting value for the specified principal ARN. Accepted values
14423	// are enabled and disabled.
14424	//
14425	// Value is a required field
14426	Value *string `locationName:"value" type:"string" required:"true"`
14427}
14428
14429// String returns the string representation
14430func (s PutAccountSettingDefaultInput) String() string {
14431	return awsutil.Prettify(s)
14432}
14433
14434// GoString returns the string representation
14435func (s PutAccountSettingDefaultInput) GoString() string {
14436	return s.String()
14437}
14438
14439// Validate inspects the fields of the type to determine if they are valid.
14440func (s *PutAccountSettingDefaultInput) Validate() error {
14441	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
14442	if s.Name == nil {
14443		invalidParams.Add(request.NewErrParamRequired("Name"))
14444	}
14445	if s.Value == nil {
14446		invalidParams.Add(request.NewErrParamRequired("Value"))
14447	}
14448
14449	if invalidParams.Len() > 0 {
14450		return invalidParams
14451	}
14452	return nil
14453}
14454
14455// SetName sets the Name field's value.
14456func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
14457	s.Name = &v
14458	return s
14459}
14460
14461// SetValue sets the Value field's value.
14462func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
14463	s.Value = &v
14464	return s
14465}
14466
14467type PutAccountSettingDefaultOutput struct {
14468	_ struct{} `type:"structure"`
14469
14470	// The current account setting for a resource.
14471	Setting *Setting `locationName:"setting" type:"structure"`
14472}
14473
14474// String returns the string representation
14475func (s PutAccountSettingDefaultOutput) String() string {
14476	return awsutil.Prettify(s)
14477}
14478
14479// GoString returns the string representation
14480func (s PutAccountSettingDefaultOutput) GoString() string {
14481	return s.String()
14482}
14483
14484// SetSetting sets the Setting field's value.
14485func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
14486	s.Setting = v
14487	return s
14488}
14489
14490type PutAccountSettingInput struct {
14491	_ struct{} `type:"structure"`
14492
14493	// The Amazon ECS resource name for which to modify the account setting. If
14494	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
14495	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
14496	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
14497	// the ARN and resource ID for your Amazon ECS container instances is affected.
14498	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
14499	// for your Amazon ECS container instances is affected. If containerInsights
14500	// is specified, the default setting for CloudWatch Container Insights for your
14501	// clusters is affected.
14502	//
14503	// Name is a required field
14504	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14505
14506	// The ARN of the principal, which can be an IAM user, IAM role, or the root
14507	// user. If you specify the root user, it modifies the account setting for all
14508	// IAM users, IAM roles, and the root user of the account unless an IAM user
14509	// or role explicitly overrides these settings. If this field is omitted, the
14510	// setting is changed only for the authenticated user.
14511	PrincipalArn *string `locationName:"principalArn" type:"string"`
14512
14513	// The account setting value for the specified principal ARN. Accepted values
14514	// are enabled and disabled.
14515	//
14516	// Value is a required field
14517	Value *string `locationName:"value" type:"string" required:"true"`
14518}
14519
14520// String returns the string representation
14521func (s PutAccountSettingInput) String() string {
14522	return awsutil.Prettify(s)
14523}
14524
14525// GoString returns the string representation
14526func (s PutAccountSettingInput) GoString() string {
14527	return s.String()
14528}
14529
14530// Validate inspects the fields of the type to determine if they are valid.
14531func (s *PutAccountSettingInput) Validate() error {
14532	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
14533	if s.Name == nil {
14534		invalidParams.Add(request.NewErrParamRequired("Name"))
14535	}
14536	if s.Value == nil {
14537		invalidParams.Add(request.NewErrParamRequired("Value"))
14538	}
14539
14540	if invalidParams.Len() > 0 {
14541		return invalidParams
14542	}
14543	return nil
14544}
14545
14546// SetName sets the Name field's value.
14547func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
14548	s.Name = &v
14549	return s
14550}
14551
14552// SetPrincipalArn sets the PrincipalArn field's value.
14553func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
14554	s.PrincipalArn = &v
14555	return s
14556}
14557
14558// SetValue sets the Value field's value.
14559func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
14560	s.Value = &v
14561	return s
14562}
14563
14564type PutAccountSettingOutput struct {
14565	_ struct{} `type:"structure"`
14566
14567	// The current account setting for a resource.
14568	Setting *Setting `locationName:"setting" type:"structure"`
14569}
14570
14571// String returns the string representation
14572func (s PutAccountSettingOutput) String() string {
14573	return awsutil.Prettify(s)
14574}
14575
14576// GoString returns the string representation
14577func (s PutAccountSettingOutput) GoString() string {
14578	return s.String()
14579}
14580
14581// SetSetting sets the Setting field's value.
14582func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
14583	s.Setting = v
14584	return s
14585}
14586
14587type PutAttributesInput struct {
14588	_ struct{} `type:"structure"`
14589
14590	// The attributes to apply to your resource. You can specify up to 10 custom
14591	// attributes per resource. You can specify up to 10 attributes in a single
14592	// call.
14593	//
14594	// Attributes is a required field
14595	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
14596
14597	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
14598	// the resource to apply attributes. If you do not specify a cluster, the default
14599	// cluster is assumed.
14600	Cluster *string `locationName:"cluster" type:"string"`
14601}
14602
14603// String returns the string representation
14604func (s PutAttributesInput) String() string {
14605	return awsutil.Prettify(s)
14606}
14607
14608// GoString returns the string representation
14609func (s PutAttributesInput) GoString() string {
14610	return s.String()
14611}
14612
14613// Validate inspects the fields of the type to determine if they are valid.
14614func (s *PutAttributesInput) Validate() error {
14615	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
14616	if s.Attributes == nil {
14617		invalidParams.Add(request.NewErrParamRequired("Attributes"))
14618	}
14619	if s.Attributes != nil {
14620		for i, v := range s.Attributes {
14621			if v == nil {
14622				continue
14623			}
14624			if err := v.Validate(); err != nil {
14625				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
14626			}
14627		}
14628	}
14629
14630	if invalidParams.Len() > 0 {
14631		return invalidParams
14632	}
14633	return nil
14634}
14635
14636// SetAttributes sets the Attributes field's value.
14637func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
14638	s.Attributes = v
14639	return s
14640}
14641
14642// SetCluster sets the Cluster field's value.
14643func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
14644	s.Cluster = &v
14645	return s
14646}
14647
14648type PutAttributesOutput struct {
14649	_ struct{} `type:"structure"`
14650
14651	// The attributes applied to your resource.
14652	Attributes []*Attribute `locationName:"attributes" type:"list"`
14653}
14654
14655// String returns the string representation
14656func (s PutAttributesOutput) String() string {
14657	return awsutil.Prettify(s)
14658}
14659
14660// GoString returns the string representation
14661func (s PutAttributesOutput) GoString() string {
14662	return s.String()
14663}
14664
14665// SetAttributes sets the Attributes field's value.
14666func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
14667	s.Attributes = v
14668	return s
14669}
14670
14671type PutClusterCapacityProvidersInput struct {
14672	_ struct{} `type:"structure"`
14673
14674	// The name of one or more capacity providers to associate with the cluster.
14675	//
14676	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
14677	// provider must already be created. New capacity providers can be created with
14678	// the CreateCapacityProvider API operation.
14679	//
14680	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
14681	// capacity providers. The AWS Fargate capacity providers are available to all
14682	// accounts and only need to be associated with a cluster to be used.
14683	//
14684	// CapacityProviders is a required field
14685	CapacityProviders []*string `locationName:"capacityProviders" type:"list" required:"true"`
14686
14687	// The short name or full Amazon Resource Name (ARN) of the cluster to modify
14688	// the capacity provider settings for. If you do not specify a cluster, the
14689	// default cluster is assumed.
14690	//
14691	// Cluster is a required field
14692	Cluster *string `locationName:"cluster" type:"string" required:"true"`
14693
14694	// The capacity provider strategy to use by default for the cluster.
14695	//
14696	// When creating a service or running a task on a cluster, if no capacity provider
14697	// or launch type is specified then the default capacity provider strategy for
14698	// the cluster is used.
14699	//
14700	// A capacity provider strategy consists of one or more capacity providers along
14701	// with the base and weight to assign to them. A capacity provider must be associated
14702	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
14703	// API is used to associate a capacity provider with a cluster. Only capacity
14704	// providers with an ACTIVE or UPDATING status can be used.
14705	//
14706	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
14707	// provider must already be created. New capacity providers can be created with
14708	// the CreateCapacityProvider API operation.
14709	//
14710	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
14711	// capacity providers. The AWS Fargate capacity providers are available to all
14712	// accounts and only need to be associated with a cluster to be used.
14713	//
14714	// DefaultCapacityProviderStrategy is a required field
14715	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"`
14716}
14717
14718// String returns the string representation
14719func (s PutClusterCapacityProvidersInput) String() string {
14720	return awsutil.Prettify(s)
14721}
14722
14723// GoString returns the string representation
14724func (s PutClusterCapacityProvidersInput) GoString() string {
14725	return s.String()
14726}
14727
14728// Validate inspects the fields of the type to determine if they are valid.
14729func (s *PutClusterCapacityProvidersInput) Validate() error {
14730	invalidParams := request.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"}
14731	if s.CapacityProviders == nil {
14732		invalidParams.Add(request.NewErrParamRequired("CapacityProviders"))
14733	}
14734	if s.Cluster == nil {
14735		invalidParams.Add(request.NewErrParamRequired("Cluster"))
14736	}
14737	if s.DefaultCapacityProviderStrategy == nil {
14738		invalidParams.Add(request.NewErrParamRequired("DefaultCapacityProviderStrategy"))
14739	}
14740	if s.DefaultCapacityProviderStrategy != nil {
14741		for i, v := range s.DefaultCapacityProviderStrategy {
14742			if v == nil {
14743				continue
14744			}
14745			if err := v.Validate(); err != nil {
14746				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
14747			}
14748		}
14749	}
14750
14751	if invalidParams.Len() > 0 {
14752		return invalidParams
14753	}
14754	return nil
14755}
14756
14757// SetCapacityProviders sets the CapacityProviders field's value.
14758func (s *PutClusterCapacityProvidersInput) SetCapacityProviders(v []*string) *PutClusterCapacityProvidersInput {
14759	s.CapacityProviders = v
14760	return s
14761}
14762
14763// SetCluster sets the Cluster field's value.
14764func (s *PutClusterCapacityProvidersInput) SetCluster(v string) *PutClusterCapacityProvidersInput {
14765	s.Cluster = &v
14766	return s
14767}
14768
14769// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
14770func (s *PutClusterCapacityProvidersInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *PutClusterCapacityProvidersInput {
14771	s.DefaultCapacityProviderStrategy = v
14772	return s
14773}
14774
14775type PutClusterCapacityProvidersOutput struct {
14776	_ struct{} `type:"structure"`
14777
14778	// A regional grouping of one or more container instances on which you can run
14779	// task requests. Each account receives a default cluster the first time you
14780	// use the Amazon ECS service, but you may also create other clusters. Clusters
14781	// may contain more than one instance type simultaneously.
14782	Cluster *Cluster `locationName:"cluster" type:"structure"`
14783}
14784
14785// String returns the string representation
14786func (s PutClusterCapacityProvidersOutput) String() string {
14787	return awsutil.Prettify(s)
14788}
14789
14790// GoString returns the string representation
14791func (s PutClusterCapacityProvidersOutput) GoString() string {
14792	return s.String()
14793}
14794
14795// SetCluster sets the Cluster field's value.
14796func (s *PutClusterCapacityProvidersOutput) SetCluster(v *Cluster) *PutClusterCapacityProvidersOutput {
14797	s.Cluster = v
14798	return s
14799}
14800
14801type RegisterContainerInstanceInput struct {
14802	_ struct{} `type:"structure"`
14803
14804	// The container instance attributes that this container instance supports.
14805	Attributes []*Attribute `locationName:"attributes" type:"list"`
14806
14807	// The short name or full Amazon Resource Name (ARN) of the cluster with which
14808	// to register your container instance. If you do not specify a cluster, the
14809	// default cluster is assumed.
14810	Cluster *string `locationName:"cluster" type:"string"`
14811
14812	// The ARN of the container instance (if it was previously registered).
14813	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
14814
14815	// The instance identity document for the EC2 instance to register. This document
14816	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
14817	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
14818
14819	// The instance identity document signature for the EC2 instance to register.
14820	// This signature can be found by running the following command from the instance:
14821	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
14822	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
14823
14824	// The devices that are available on the container instance. The only supported
14825	// device type is a GPU.
14826	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
14827
14828	// The metadata that you apply to the container instance to help you categorize
14829	// and organize them. Each tag consists of a key and an optional value, both
14830	// of which you define.
14831	//
14832	// The following basic restrictions apply to tags:
14833	//
14834	//    * Maximum number of tags per resource - 50
14835	//
14836	//    * For each resource, each tag key must be unique, and each tag key can
14837	//    have only one value.
14838	//
14839	//    * Maximum key length - 128 Unicode characters in UTF-8
14840	//
14841	//    * Maximum value length - 256 Unicode characters in UTF-8
14842	//
14843	//    * If your tagging schema is used across multiple services and resources,
14844	//    remember that other services may have restrictions on allowed characters.
14845	//    Generally allowed characters are: letters, numbers, and spaces representable
14846	//    in UTF-8, and the following characters: + - = . _ : / @.
14847	//
14848	//    * Tag keys and values are case-sensitive.
14849	//
14850	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14851	//    as a prefix for either keys or values as it is reserved for AWS use. You
14852	//    cannot edit or delete tag keys or values with this prefix. Tags with this
14853	//    prefix do not count against your tags per resource limit.
14854	Tags []*Tag `locationName:"tags" type:"list"`
14855
14856	// The resources available on the instance.
14857	TotalResources []*Resource `locationName:"totalResources" type:"list"`
14858
14859	// The version information for the Amazon ECS container agent and Docker daemon
14860	// running on the container instance.
14861	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
14862}
14863
14864// String returns the string representation
14865func (s RegisterContainerInstanceInput) String() string {
14866	return awsutil.Prettify(s)
14867}
14868
14869// GoString returns the string representation
14870func (s RegisterContainerInstanceInput) GoString() string {
14871	return s.String()
14872}
14873
14874// Validate inspects the fields of the type to determine if they are valid.
14875func (s *RegisterContainerInstanceInput) Validate() error {
14876	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
14877	if s.Attributes != nil {
14878		for i, v := range s.Attributes {
14879			if v == nil {
14880				continue
14881			}
14882			if err := v.Validate(); err != nil {
14883				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
14884			}
14885		}
14886	}
14887	if s.PlatformDevices != nil {
14888		for i, v := range s.PlatformDevices {
14889			if v == nil {
14890				continue
14891			}
14892			if err := v.Validate(); err != nil {
14893				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
14894			}
14895		}
14896	}
14897	if s.Tags != nil {
14898		for i, v := range s.Tags {
14899			if v == nil {
14900				continue
14901			}
14902			if err := v.Validate(); err != nil {
14903				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
14904			}
14905		}
14906	}
14907
14908	if invalidParams.Len() > 0 {
14909		return invalidParams
14910	}
14911	return nil
14912}
14913
14914// SetAttributes sets the Attributes field's value.
14915func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
14916	s.Attributes = v
14917	return s
14918}
14919
14920// SetCluster sets the Cluster field's value.
14921func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
14922	s.Cluster = &v
14923	return s
14924}
14925
14926// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
14927func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
14928	s.ContainerInstanceArn = &v
14929	return s
14930}
14931
14932// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
14933func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
14934	s.InstanceIdentityDocument = &v
14935	return s
14936}
14937
14938// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
14939func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
14940	s.InstanceIdentityDocumentSignature = &v
14941	return s
14942}
14943
14944// SetPlatformDevices sets the PlatformDevices field's value.
14945func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
14946	s.PlatformDevices = v
14947	return s
14948}
14949
14950// SetTags sets the Tags field's value.
14951func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
14952	s.Tags = v
14953	return s
14954}
14955
14956// SetTotalResources sets the TotalResources field's value.
14957func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
14958	s.TotalResources = v
14959	return s
14960}
14961
14962// SetVersionInfo sets the VersionInfo field's value.
14963func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
14964	s.VersionInfo = v
14965	return s
14966}
14967
14968type RegisterContainerInstanceOutput struct {
14969	_ struct{} `type:"structure"`
14970
14971	// The container instance that was registered.
14972	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
14973}
14974
14975// String returns the string representation
14976func (s RegisterContainerInstanceOutput) String() string {
14977	return awsutil.Prettify(s)
14978}
14979
14980// GoString returns the string representation
14981func (s RegisterContainerInstanceOutput) GoString() string {
14982	return s.String()
14983}
14984
14985// SetContainerInstance sets the ContainerInstance field's value.
14986func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
14987	s.ContainerInstance = v
14988	return s
14989}
14990
14991type RegisterTaskDefinitionInput struct {
14992	_ struct{} `type:"structure"`
14993
14994	// A list of container definitions in JSON format that describe the different
14995	// containers that make up your task.
14996	//
14997	// ContainerDefinitions is a required field
14998	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
14999
15000	// The number of CPU units used by the task. It can be expressed as an integer
15001	// using CPU units, for example 1024, or as a string using vCPUs, for example
15002	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
15003	// integer indicating the CPU units when the task definition is registered.
15004	//
15005	// Task-level CPU and memory parameters are ignored for Windows containers.
15006	// We recommend specifying container-level resources for Windows containers.
15007	//
15008	// If you are using the EC2 launch type, this field is optional. Supported values
15009	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
15010	//
15011	// If you are using the Fargate launch type, this field is required and you
15012	// must use one of the following values, which determines your range of supported
15013	// values for the memory parameter:
15014	//
15015	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
15016	//    2048 (2 GB)
15017	//
15018	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
15019	//    (3 GB), 4096 (4 GB)
15020	//
15021	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
15022	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
15023	//
15024	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
15025	//    (16 GB) in increments of 1024 (1 GB)
15026	//
15027	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
15028	//    (30 GB) in increments of 1024 (1 GB)
15029	Cpu *string `locationName:"cpu" type:"string"`
15030
15031	// The Amazon Resource Name (ARN) of the task execution role that grants the
15032	// Amazon ECS container agent permission to make AWS API calls on your behalf.
15033	// The task execution IAM role is required depending on the requirements of
15034	// your task. For more information, see Amazon ECS task execution IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
15035	// in the Amazon Elastic Container Service Developer Guide.
15036	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
15037
15038	// You must specify a family for a task definition, which allows you to track
15039	// multiple versions of the same task definition. The family is used as a name
15040	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
15041	// and hyphens are allowed.
15042	//
15043	// Family is a required field
15044	Family *string `locationName:"family" type:"string" required:"true"`
15045
15046	// The Elastic Inference accelerators to use for the containers in the task.
15047	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
15048
15049	// The IPC resource namespace to use for the containers in the task. The valid
15050	// values are host, task, or none. If host is specified, then all containers
15051	// within the tasks that specified the host IPC mode on the same container instance
15052	// share the same IPC resources with the host Amazon EC2 instance. If task is
15053	// specified, all containers within the specified task share the same IPC resources.
15054	// If none is specified, then IPC resources within the containers of a task
15055	// are private and not shared with other containers in a task or on the container
15056	// instance. If no value is specified, then the IPC resource namespace sharing
15057	// depends on the Docker daemon setting on the container instance. For more
15058	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
15059	// in the Docker run reference.
15060	//
15061	// If the host IPC mode is used, be aware that there is a heightened risk of
15062	// undesired IPC namespace expose. For more information, see Docker security
15063	// (https://docs.docker.com/engine/security/security/).
15064	//
15065	// If you are setting namespaced kernel parameters using systemControls for
15066	// the containers in the task, the following will apply to your IPC resource
15067	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
15068	// in the Amazon Elastic Container Service Developer Guide.
15069	//
15070	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
15071	//    are not supported.
15072	//
15073	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
15074	//    will apply to all containers within a task.
15075	//
15076	// This parameter is not supported for Windows containers or tasks using the
15077	// Fargate launch type.
15078	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
15079
15080	// The amount of memory (in MiB) used by the task. It can be expressed as an
15081	// integer using MiB, for example 1024, or as a string using GB, for example
15082	// 1GB or 1 GB, in a task definition. String values are converted to an integer
15083	// indicating the MiB when the task definition is registered.
15084	//
15085	// Task-level CPU and memory parameters are ignored for Windows containers.
15086	// We recommend specifying container-level resources for Windows containers.
15087	//
15088	// If using the EC2 launch type, this field is optional.
15089	//
15090	// If using the Fargate launch type, this field is required and you must use
15091	// one of the following values, which determines your range of supported values
15092	// for the cpu parameter:
15093	//
15094	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
15095	//    vCPU)
15096	//
15097	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
15098	//    512 (.5 vCPU)
15099	//
15100	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
15101	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
15102	//
15103	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
15104	//    Available cpu values: 2048 (2 vCPU)
15105	//
15106	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
15107	//    Available cpu values: 4096 (4 vCPU)
15108	Memory *string `locationName:"memory" type:"string"`
15109
15110	// The Docker networking mode to use for the containers in the task. The valid
15111	// values are none, bridge, awsvpc, and host. The default Docker network mode
15112	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
15113	// is required. If you are using the EC2 launch type, any network mode can be
15114	// used. If the network mode is set to none, you cannot specify port mappings
15115	// in your container definitions, and the tasks containers do not have external
15116	// connectivity. The host and awsvpc network modes offer the highest networking
15117	// performance for containers because they use the EC2 network stack instead
15118	// of the virtualized network stack provided by the bridge mode.
15119	//
15120	// With the host and awsvpc network modes, exposed container ports are mapped
15121	// directly to the corresponding host port (for the host network mode) or the
15122	// attached elastic network interface port (for the awsvpc network mode), so
15123	// you cannot take advantage of dynamic host port mappings.
15124	//
15125	// If the network mode is awsvpc, the task is allocated an elastic network interface,
15126	// and you must specify a NetworkConfiguration value when you create a service
15127	// or run a task with the task definition. For more information, see Task Networking
15128	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15129	// in the Amazon Elastic Container Service Developer Guide.
15130	//
15131	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
15132	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
15133	// mode.
15134	//
15135	// If the network mode is host, you cannot run multiple instantiations of the
15136	// same task on a single container instance when port mappings are used.
15137	//
15138	// Docker for Windows uses different network modes than Docker for Linux. When
15139	// you register a task definition with Windows containers, you must not specify
15140	// a network mode. If you use the console to register a task definition with
15141	// Windows containers, you must choose the <default> network mode object.
15142	//
15143	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
15144	// in the Docker run reference.
15145	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
15146
15147	// The process namespace to use for the containers in the task. The valid values
15148	// are host or task. If host is specified, then all containers within the tasks
15149	// that specified the host PID mode on the same container instance share the
15150	// same process namespace with the host Amazon EC2 instance. If task is specified,
15151	// all containers within the specified task share the same process namespace.
15152	// If no value is specified, the default is a private namespace. For more information,
15153	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
15154	// in the Docker run reference.
15155	//
15156	// If the host PID mode is used, be aware that there is a heightened risk of
15157	// undesired process namespace expose. For more information, see Docker security
15158	// (https://docs.docker.com/engine/security/security/).
15159	//
15160	// This parameter is not supported for Windows containers or tasks using the
15161	// Fargate launch type.
15162	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
15163
15164	// An array of placement constraint objects to use for the task. You can specify
15165	// a maximum of 10 constraints per task (this limit includes constraints in
15166	// the task definition and those specified at runtime).
15167	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
15168
15169	// The configuration details for the App Mesh proxy.
15170	//
15171	// For tasks using the EC2 launch type, the container instances require at least
15172	// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
15173	// ecs-init package to enable a proxy configuration. If your container instances
15174	// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
15175	// then they contain the required versions of the container agent and ecs-init.
15176	// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
15177	// in the Amazon Elastic Container Service Developer Guide.
15178	//
15179	// For tasks using the Fargate launch type, the task or service requires platform
15180	// version 1.3.0 or later.
15181	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
15182
15183	// The launch type required by the task. If no value is specified, it defaults
15184	// to EC2.
15185	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
15186
15187	// The metadata that you apply to the task definition to help you categorize
15188	// and organize them. Each tag consists of a key and an optional value, both
15189	// of which you define.
15190	//
15191	// The following basic restrictions apply to tags:
15192	//
15193	//    * Maximum number of tags per resource - 50
15194	//
15195	//    * For each resource, each tag key must be unique, and each tag key can
15196	//    have only one value.
15197	//
15198	//    * Maximum key length - 128 Unicode characters in UTF-8
15199	//
15200	//    * Maximum value length - 256 Unicode characters in UTF-8
15201	//
15202	//    * If your tagging schema is used across multiple services and resources,
15203	//    remember that other services may have restrictions on allowed characters.
15204	//    Generally allowed characters are: letters, numbers, and spaces representable
15205	//    in UTF-8, and the following characters: + - = . _ : / @.
15206	//
15207	//    * Tag keys and values are case-sensitive.
15208	//
15209	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15210	//    as a prefix for either keys or values as it is reserved for AWS use. You
15211	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15212	//    prefix do not count against your tags per resource limit.
15213	Tags []*Tag `locationName:"tags" type:"list"`
15214
15215	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
15216	// in this task can assume. All containers in this task are granted the permissions
15217	// that are specified in this role. For more information, see IAM Roles for
15218	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
15219	// in the Amazon Elastic Container Service Developer Guide.
15220	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
15221
15222	// A list of volume definitions in JSON format that containers in your task
15223	// may use.
15224	Volumes []*Volume `locationName:"volumes" type:"list"`
15225}
15226
15227// String returns the string representation
15228func (s RegisterTaskDefinitionInput) String() string {
15229	return awsutil.Prettify(s)
15230}
15231
15232// GoString returns the string representation
15233func (s RegisterTaskDefinitionInput) GoString() string {
15234	return s.String()
15235}
15236
15237// Validate inspects the fields of the type to determine if they are valid.
15238func (s *RegisterTaskDefinitionInput) Validate() error {
15239	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
15240	if s.ContainerDefinitions == nil {
15241		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
15242	}
15243	if s.Family == nil {
15244		invalidParams.Add(request.NewErrParamRequired("Family"))
15245	}
15246	if s.ContainerDefinitions != nil {
15247		for i, v := range s.ContainerDefinitions {
15248			if v == nil {
15249				continue
15250			}
15251			if err := v.Validate(); err != nil {
15252				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
15253			}
15254		}
15255	}
15256	if s.InferenceAccelerators != nil {
15257		for i, v := range s.InferenceAccelerators {
15258			if v == nil {
15259				continue
15260			}
15261			if err := v.Validate(); err != nil {
15262				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
15263			}
15264		}
15265	}
15266	if s.ProxyConfiguration != nil {
15267		if err := s.ProxyConfiguration.Validate(); err != nil {
15268			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
15269		}
15270	}
15271	if s.Tags != nil {
15272		for i, v := range s.Tags {
15273			if v == nil {
15274				continue
15275			}
15276			if err := v.Validate(); err != nil {
15277				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15278			}
15279		}
15280	}
15281	if s.Volumes != nil {
15282		for i, v := range s.Volumes {
15283			if v == nil {
15284				continue
15285			}
15286			if err := v.Validate(); err != nil {
15287				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
15288			}
15289		}
15290	}
15291
15292	if invalidParams.Len() > 0 {
15293		return invalidParams
15294	}
15295	return nil
15296}
15297
15298// SetContainerDefinitions sets the ContainerDefinitions field's value.
15299func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
15300	s.ContainerDefinitions = v
15301	return s
15302}
15303
15304// SetCpu sets the Cpu field's value.
15305func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
15306	s.Cpu = &v
15307	return s
15308}
15309
15310// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
15311func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
15312	s.ExecutionRoleArn = &v
15313	return s
15314}
15315
15316// SetFamily sets the Family field's value.
15317func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
15318	s.Family = &v
15319	return s
15320}
15321
15322// SetInferenceAccelerators sets the InferenceAccelerators field's value.
15323func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
15324	s.InferenceAccelerators = v
15325	return s
15326}
15327
15328// SetIpcMode sets the IpcMode field's value.
15329func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
15330	s.IpcMode = &v
15331	return s
15332}
15333
15334// SetMemory sets the Memory field's value.
15335func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
15336	s.Memory = &v
15337	return s
15338}
15339
15340// SetNetworkMode sets the NetworkMode field's value.
15341func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
15342	s.NetworkMode = &v
15343	return s
15344}
15345
15346// SetPidMode sets the PidMode field's value.
15347func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
15348	s.PidMode = &v
15349	return s
15350}
15351
15352// SetPlacementConstraints sets the PlacementConstraints field's value.
15353func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
15354	s.PlacementConstraints = v
15355	return s
15356}
15357
15358// SetProxyConfiguration sets the ProxyConfiguration field's value.
15359func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
15360	s.ProxyConfiguration = v
15361	return s
15362}
15363
15364// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
15365func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
15366	s.RequiresCompatibilities = v
15367	return s
15368}
15369
15370// SetTags sets the Tags field's value.
15371func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
15372	s.Tags = v
15373	return s
15374}
15375
15376// SetTaskRoleArn sets the TaskRoleArn field's value.
15377func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
15378	s.TaskRoleArn = &v
15379	return s
15380}
15381
15382// SetVolumes sets the Volumes field's value.
15383func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
15384	s.Volumes = v
15385	return s
15386}
15387
15388type RegisterTaskDefinitionOutput struct {
15389	_ struct{} `type:"structure"`
15390
15391	// The list of tags associated with the task definition.
15392	Tags []*Tag `locationName:"tags" type:"list"`
15393
15394	// The full description of the registered task definition.
15395	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
15396}
15397
15398// String returns the string representation
15399func (s RegisterTaskDefinitionOutput) String() string {
15400	return awsutil.Prettify(s)
15401}
15402
15403// GoString returns the string representation
15404func (s RegisterTaskDefinitionOutput) GoString() string {
15405	return s.String()
15406}
15407
15408// SetTags sets the Tags field's value.
15409func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
15410	s.Tags = v
15411	return s
15412}
15413
15414// SetTaskDefinition sets the TaskDefinition field's value.
15415func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
15416	s.TaskDefinition = v
15417	return s
15418}
15419
15420// The repository credentials for private registry authentication.
15421type RepositoryCredentials struct {
15422	_ struct{} `type:"structure"`
15423
15424	// The Amazon Resource Name (ARN) of the secret containing the private repository
15425	// credentials.
15426	//
15427	// When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret
15428	// exists in the same Region as the task that you are launching then you can
15429	// use either the full ARN or the name of the secret. When you are using the
15430	// AWS Management Console, you must specify the full ARN of the secret.
15431	//
15432	// CredentialsParameter is a required field
15433	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
15434}
15435
15436// String returns the string representation
15437func (s RepositoryCredentials) String() string {
15438	return awsutil.Prettify(s)
15439}
15440
15441// GoString returns the string representation
15442func (s RepositoryCredentials) GoString() string {
15443	return s.String()
15444}
15445
15446// Validate inspects the fields of the type to determine if they are valid.
15447func (s *RepositoryCredentials) Validate() error {
15448	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
15449	if s.CredentialsParameter == nil {
15450		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
15451	}
15452
15453	if invalidParams.Len() > 0 {
15454		return invalidParams
15455	}
15456	return nil
15457}
15458
15459// SetCredentialsParameter sets the CredentialsParameter field's value.
15460func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
15461	s.CredentialsParameter = &v
15462	return s
15463}
15464
15465// Describes the resources available for a container instance.
15466type Resource struct {
15467	_ struct{} `type:"structure"`
15468
15469	// When the doubleValue type is set, the value of the resource must be a double
15470	// precision floating-point type.
15471	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
15472
15473	// When the integerValue type is set, the value of the resource must be an integer.
15474	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
15475
15476	// When the longValue type is set, the value of the resource must be an extended
15477	// precision floating-point type.
15478	LongValue *int64 `locationName:"longValue" type:"long"`
15479
15480	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
15481	// resource.
15482	Name *string `locationName:"name" type:"string"`
15483
15484	// When the stringSetValue type is set, the value of the resource must be a
15485	// string type.
15486	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
15487
15488	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
15489	Type *string `locationName:"type" type:"string"`
15490}
15491
15492// String returns the string representation
15493func (s Resource) String() string {
15494	return awsutil.Prettify(s)
15495}
15496
15497// GoString returns the string representation
15498func (s Resource) GoString() string {
15499	return s.String()
15500}
15501
15502// SetDoubleValue sets the DoubleValue field's value.
15503func (s *Resource) SetDoubleValue(v float64) *Resource {
15504	s.DoubleValue = &v
15505	return s
15506}
15507
15508// SetIntegerValue sets the IntegerValue field's value.
15509func (s *Resource) SetIntegerValue(v int64) *Resource {
15510	s.IntegerValue = &v
15511	return s
15512}
15513
15514// SetLongValue sets the LongValue field's value.
15515func (s *Resource) SetLongValue(v int64) *Resource {
15516	s.LongValue = &v
15517	return s
15518}
15519
15520// SetName sets the Name field's value.
15521func (s *Resource) SetName(v string) *Resource {
15522	s.Name = &v
15523	return s
15524}
15525
15526// SetStringSetValue sets the StringSetValue field's value.
15527func (s *Resource) SetStringSetValue(v []*string) *Resource {
15528	s.StringSetValue = v
15529	return s
15530}
15531
15532// SetType sets the Type field's value.
15533func (s *Resource) SetType(v string) *Resource {
15534	s.Type = &v
15535	return s
15536}
15537
15538// The specified resource is in-use and cannot be removed.
15539type ResourceInUseException struct {
15540	_            struct{}                  `type:"structure"`
15541	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15542
15543	Message_ *string `locationName:"message" type:"string"`
15544}
15545
15546// String returns the string representation
15547func (s ResourceInUseException) String() string {
15548	return awsutil.Prettify(s)
15549}
15550
15551// GoString returns the string representation
15552func (s ResourceInUseException) GoString() string {
15553	return s.String()
15554}
15555
15556func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
15557	return &ResourceInUseException{
15558		RespMetadata: v,
15559	}
15560}
15561
15562// Code returns the exception type name.
15563func (s *ResourceInUseException) Code() string {
15564	return "ResourceInUseException"
15565}
15566
15567// Message returns the exception's message.
15568func (s *ResourceInUseException) Message() string {
15569	if s.Message_ != nil {
15570		return *s.Message_
15571	}
15572	return ""
15573}
15574
15575// OrigErr always returns nil, satisfies awserr.Error interface.
15576func (s *ResourceInUseException) OrigErr() error {
15577	return nil
15578}
15579
15580func (s *ResourceInUseException) Error() string {
15581	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15582}
15583
15584// Status code returns the HTTP status code for the request's response error.
15585func (s *ResourceInUseException) StatusCode() int {
15586	return s.RespMetadata.StatusCode
15587}
15588
15589// RequestID returns the service's response RequestID for request.
15590func (s *ResourceInUseException) RequestID() string {
15591	return s.RespMetadata.RequestID
15592}
15593
15594// The specified resource could not be found.
15595type ResourceNotFoundException struct {
15596	_            struct{}                  `type:"structure"`
15597	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15598
15599	Message_ *string `locationName:"message" type:"string"`
15600}
15601
15602// String returns the string representation
15603func (s ResourceNotFoundException) String() string {
15604	return awsutil.Prettify(s)
15605}
15606
15607// GoString returns the string representation
15608func (s ResourceNotFoundException) GoString() string {
15609	return s.String()
15610}
15611
15612func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
15613	return &ResourceNotFoundException{
15614		RespMetadata: v,
15615	}
15616}
15617
15618// Code returns the exception type name.
15619func (s *ResourceNotFoundException) Code() string {
15620	return "ResourceNotFoundException"
15621}
15622
15623// Message returns the exception's message.
15624func (s *ResourceNotFoundException) Message() string {
15625	if s.Message_ != nil {
15626		return *s.Message_
15627	}
15628	return ""
15629}
15630
15631// OrigErr always returns nil, satisfies awserr.Error interface.
15632func (s *ResourceNotFoundException) OrigErr() error {
15633	return nil
15634}
15635
15636func (s *ResourceNotFoundException) Error() string {
15637	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15638}
15639
15640// Status code returns the HTTP status code for the request's response error.
15641func (s *ResourceNotFoundException) StatusCode() int {
15642	return s.RespMetadata.StatusCode
15643}
15644
15645// RequestID returns the service's response RequestID for request.
15646func (s *ResourceNotFoundException) RequestID() string {
15647	return s.RespMetadata.RequestID
15648}
15649
15650// The type and amount of a resource to assign to a container. The supported
15651// resource types are GPUs and Elastic Inference accelerators. For more information,
15652// see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
15653// or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
15654// in the Amazon Elastic Container Service Developer Guide
15655type ResourceRequirement struct {
15656	_ struct{} `type:"structure"`
15657
15658	// The type of resource to assign to a container. The supported values are GPU
15659	// or InferenceAccelerator.
15660	//
15661	// Type is a required field
15662	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
15663
15664	// The value for the specified resource type.
15665	//
15666	// If the GPU type is used, the value is the number of physical GPUs the Amazon
15667	// ECS container agent will reserve for the container. The number of GPUs reserved
15668	// for all containers in a task should not exceed the number of available GPUs
15669	// on the container instance the task is launched on.
15670	//
15671	// If the InferenceAccelerator type is used, the value should match the deviceName
15672	// for an InferenceAccelerator specified in a task definition.
15673	//
15674	// Value is a required field
15675	Value *string `locationName:"value" type:"string" required:"true"`
15676}
15677
15678// String returns the string representation
15679func (s ResourceRequirement) String() string {
15680	return awsutil.Prettify(s)
15681}
15682
15683// GoString returns the string representation
15684func (s ResourceRequirement) GoString() string {
15685	return s.String()
15686}
15687
15688// Validate inspects the fields of the type to determine if they are valid.
15689func (s *ResourceRequirement) Validate() error {
15690	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
15691	if s.Type == nil {
15692		invalidParams.Add(request.NewErrParamRequired("Type"))
15693	}
15694	if s.Value == nil {
15695		invalidParams.Add(request.NewErrParamRequired("Value"))
15696	}
15697
15698	if invalidParams.Len() > 0 {
15699		return invalidParams
15700	}
15701	return nil
15702}
15703
15704// SetType sets the Type field's value.
15705func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
15706	s.Type = &v
15707	return s
15708}
15709
15710// SetValue sets the Value field's value.
15711func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
15712	s.Value = &v
15713	return s
15714}
15715
15716type RunTaskInput struct {
15717	_ struct{} `type:"structure"`
15718
15719	// The capacity provider strategy to use for the task.
15720	//
15721	// A capacity provider strategy consists of one or more capacity providers along
15722	// with the base and weight to assign to them. A capacity provider must be associated
15723	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
15724	// API is used to associate a capacity provider with a cluster. Only capacity
15725	// providers with an ACTIVE or UPDATING status can be used.
15726	//
15727	// If a capacityProviderStrategy is specified, the launchType parameter must
15728	// be omitted. If no capacityProviderStrategy or launchType is specified, the
15729	// defaultCapacityProviderStrategy for the cluster is used.
15730	//
15731	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
15732	// provider must already be created. New capacity providers can be created with
15733	// the CreateCapacityProvider API operation.
15734	//
15735	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
15736	// capacity providers. The AWS Fargate capacity providers are available to all
15737	// accounts and only need to be associated with a cluster to be used.
15738	//
15739	// The PutClusterCapacityProviders API operation is used to update the list
15740	// of available capacity providers for a cluster after the cluster is created.
15741	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
15742
15743	// The short name or full Amazon Resource Name (ARN) of the cluster on which
15744	// to run your task. If you do not specify a cluster, the default cluster is
15745	// assumed.
15746	Cluster *string `locationName:"cluster" type:"string"`
15747
15748	// The number of instantiations of the specified task to place on your cluster.
15749	// You can specify up to 10 tasks per call.
15750	Count *int64 `locationName:"count" type:"integer"`
15751
15752	// Specifies whether to enable Amazon ECS managed tags for the task. For more
15753	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
15754	// in the Amazon Elastic Container Service Developer Guide.
15755	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
15756
15757	// The name of the task group to associate with the task. The default value
15758	// is the family name of the task definition (for example, family:my-family-name).
15759	Group *string `locationName:"group" type:"string"`
15760
15761	// The launch type on which to run your task. For more information, see Amazon
15762	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
15763	// in the Amazon Elastic Container Service Developer Guide.
15764	//
15765	// If a launchType is specified, the capacityProviderStrategy parameter must
15766	// be omitted.
15767	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
15768
15769	// The network configuration for the task. This parameter is required for task
15770	// definitions that use the awsvpc network mode to receive their own elastic
15771	// network interface, and it is not supported for other network modes. For more
15772	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15773	// in the Amazon Elastic Container Service Developer Guide.
15774	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
15775
15776	// A list of container overrides in JSON format that specify the name of a container
15777	// in the specified task definition and the overrides it should receive. You
15778	// can override the default command for a container (that is specified in the
15779	// task definition or Docker image) with a command override. You can also override
15780	// existing environment variables (that are specified in the task definition
15781	// or Docker image) on a container or add new environment variables to it with
15782	// an environment override.
15783	//
15784	// A total of 8192 characters are allowed for overrides. This limit includes
15785	// the JSON formatting characters of the override structure.
15786	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
15787
15788	// An array of placement constraint objects to use for the task. You can specify
15789	// up to 10 constraints per task (including constraints in the task definition
15790	// and those specified at runtime).
15791	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
15792
15793	// The placement strategy objects to use for the task. You can specify a maximum
15794	// of five strategy rules per task.
15795	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
15796
15797	// The platform version the task should run. A platform version is only specified
15798	// for tasks using the Fargate launch type. If one is not specified, the LATEST
15799	// platform version is used by default. For more information, see AWS Fargate
15800	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
15801	// in the Amazon Elastic Container Service Developer Guide.
15802	PlatformVersion *string `locationName:"platformVersion" type:"string"`
15803
15804	// Specifies whether to propagate the tags from the task definition to the task.
15805	// If no value is specified, the tags are not propagated. Tags can only be propagated
15806	// to the task during task creation. To add tags to a task after task creation,
15807	// use the TagResource API action.
15808	//
15809	// An error will be received if you specify the SERVICE option when running
15810	// a task.
15811	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
15812
15813	// The reference ID to use for the task.
15814	ReferenceId *string `locationName:"referenceId" type:"string"`
15815
15816	// An optional tag specified when a task is started. For example, if you automatically
15817	// trigger a task to run a batch process job, you could apply a unique identifier
15818	// for that job to your task with the startedBy parameter. You can then identify
15819	// which tasks belong to that job by filtering the results of a ListTasks call
15820	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
15821	// hyphens, and underscores are allowed.
15822	//
15823	// If a task is started by an Amazon ECS service, then the startedBy parameter
15824	// contains the deployment ID of the service that starts it.
15825	StartedBy *string `locationName:"startedBy" type:"string"`
15826
15827	// The metadata that you apply to the task to help you categorize and organize
15828	// them. Each tag consists of a key and an optional value, both of which you
15829	// define.
15830	//
15831	// The following basic restrictions apply to tags:
15832	//
15833	//    * Maximum number of tags per resource - 50
15834	//
15835	//    * For each resource, each tag key must be unique, and each tag key can
15836	//    have only one value.
15837	//
15838	//    * Maximum key length - 128 Unicode characters in UTF-8
15839	//
15840	//    * Maximum value length - 256 Unicode characters in UTF-8
15841	//
15842	//    * If your tagging schema is used across multiple services and resources,
15843	//    remember that other services may have restrictions on allowed characters.
15844	//    Generally allowed characters are: letters, numbers, and spaces representable
15845	//    in UTF-8, and the following characters: + - = . _ : / @.
15846	//
15847	//    * Tag keys and values are case-sensitive.
15848	//
15849	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15850	//    as a prefix for either keys or values as it is reserved for AWS use. You
15851	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15852	//    prefix do not count against your tags per resource limit.
15853	Tags []*Tag `locationName:"tags" type:"list"`
15854
15855	// The family and revision (family:revision) or full ARN of the task definition
15856	// to run. If a revision is not specified, the latest ACTIVE revision is used.
15857	//
15858	// TaskDefinition is a required field
15859	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
15860}
15861
15862// String returns the string representation
15863func (s RunTaskInput) String() string {
15864	return awsutil.Prettify(s)
15865}
15866
15867// GoString returns the string representation
15868func (s RunTaskInput) GoString() string {
15869	return s.String()
15870}
15871
15872// Validate inspects the fields of the type to determine if they are valid.
15873func (s *RunTaskInput) Validate() error {
15874	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
15875	if s.TaskDefinition == nil {
15876		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
15877	}
15878	if s.CapacityProviderStrategy != nil {
15879		for i, v := range s.CapacityProviderStrategy {
15880			if v == nil {
15881				continue
15882			}
15883			if err := v.Validate(); err != nil {
15884				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
15885			}
15886		}
15887	}
15888	if s.NetworkConfiguration != nil {
15889		if err := s.NetworkConfiguration.Validate(); err != nil {
15890			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
15891		}
15892	}
15893	if s.Overrides != nil {
15894		if err := s.Overrides.Validate(); err != nil {
15895			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
15896		}
15897	}
15898	if s.Tags != nil {
15899		for i, v := range s.Tags {
15900			if v == nil {
15901				continue
15902			}
15903			if err := v.Validate(); err != nil {
15904				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15905			}
15906		}
15907	}
15908
15909	if invalidParams.Len() > 0 {
15910		return invalidParams
15911	}
15912	return nil
15913}
15914
15915// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
15916func (s *RunTaskInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *RunTaskInput {
15917	s.CapacityProviderStrategy = v
15918	return s
15919}
15920
15921// SetCluster sets the Cluster field's value.
15922func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
15923	s.Cluster = &v
15924	return s
15925}
15926
15927// SetCount sets the Count field's value.
15928func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
15929	s.Count = &v
15930	return s
15931}
15932
15933// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
15934func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
15935	s.EnableECSManagedTags = &v
15936	return s
15937}
15938
15939// SetGroup sets the Group field's value.
15940func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
15941	s.Group = &v
15942	return s
15943}
15944
15945// SetLaunchType sets the LaunchType field's value.
15946func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
15947	s.LaunchType = &v
15948	return s
15949}
15950
15951// SetNetworkConfiguration sets the NetworkConfiguration field's value.
15952func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
15953	s.NetworkConfiguration = v
15954	return s
15955}
15956
15957// SetOverrides sets the Overrides field's value.
15958func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
15959	s.Overrides = v
15960	return s
15961}
15962
15963// SetPlacementConstraints sets the PlacementConstraints field's value.
15964func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
15965	s.PlacementConstraints = v
15966	return s
15967}
15968
15969// SetPlacementStrategy sets the PlacementStrategy field's value.
15970func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
15971	s.PlacementStrategy = v
15972	return s
15973}
15974
15975// SetPlatformVersion sets the PlatformVersion field's value.
15976func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
15977	s.PlatformVersion = &v
15978	return s
15979}
15980
15981// SetPropagateTags sets the PropagateTags field's value.
15982func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
15983	s.PropagateTags = &v
15984	return s
15985}
15986
15987// SetReferenceId sets the ReferenceId field's value.
15988func (s *RunTaskInput) SetReferenceId(v string) *RunTaskInput {
15989	s.ReferenceId = &v
15990	return s
15991}
15992
15993// SetStartedBy sets the StartedBy field's value.
15994func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
15995	s.StartedBy = &v
15996	return s
15997}
15998
15999// SetTags sets the Tags field's value.
16000func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
16001	s.Tags = v
16002	return s
16003}
16004
16005// SetTaskDefinition sets the TaskDefinition field's value.
16006func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
16007	s.TaskDefinition = &v
16008	return s
16009}
16010
16011type RunTaskOutput struct {
16012	_ struct{} `type:"structure"`
16013
16014	// Any failures associated with the call.
16015	Failures []*Failure `locationName:"failures" type:"list"`
16016
16017	// A full description of the tasks that were run. The tasks that were successfully
16018	// placed on your cluster are described here.
16019	Tasks []*Task `locationName:"tasks" type:"list"`
16020}
16021
16022// String returns the string representation
16023func (s RunTaskOutput) String() string {
16024	return awsutil.Prettify(s)
16025}
16026
16027// GoString returns the string representation
16028func (s RunTaskOutput) GoString() string {
16029	return s.String()
16030}
16031
16032// SetFailures sets the Failures field's value.
16033func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
16034	s.Failures = v
16035	return s
16036}
16037
16038// SetTasks sets the Tasks field's value.
16039func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
16040	s.Tasks = v
16041	return s
16042}
16043
16044// A floating-point percentage of the desired number of tasks to place and keep
16045// running in the task set.
16046type Scale struct {
16047	_ struct{} `type:"structure"`
16048
16049	// The unit of measure for the scale value.
16050	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
16051
16052	// The value, specified as a percent total of a service's desiredCount, to scale
16053	// the task set. Accepted values are numbers between 0 and 100.
16054	Value *float64 `locationName:"value" type:"double"`
16055}
16056
16057// String returns the string representation
16058func (s Scale) String() string {
16059	return awsutil.Prettify(s)
16060}
16061
16062// GoString returns the string representation
16063func (s Scale) GoString() string {
16064	return s.String()
16065}
16066
16067// SetUnit sets the Unit field's value.
16068func (s *Scale) SetUnit(v string) *Scale {
16069	s.Unit = &v
16070	return s
16071}
16072
16073// SetValue sets the Value field's value.
16074func (s *Scale) SetValue(v float64) *Scale {
16075	s.Value = &v
16076	return s
16077}
16078
16079// An object representing the secret to expose to your container. Secrets can
16080// be exposed to a container in the following ways:
16081//
16082//    * To inject sensitive data into your containers as environment variables,
16083//    use the secrets container definition parameter.
16084//
16085//    * To reference sensitive information in the log configuration of a container,
16086//    use the secretOptions container definition parameter.
16087//
16088// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
16089// in the Amazon Elastic Container Service Developer Guide.
16090type Secret struct {
16091	_ struct{} `type:"structure"`
16092
16093	// The name of the secret.
16094	//
16095	// Name is a required field
16096	Name *string `locationName:"name" type:"string" required:"true"`
16097
16098	// The secret to expose to the container. The supported values are either the
16099	// full ARN of the AWS Secrets Manager secret or the full ARN of the parameter
16100	// in the AWS Systems Manager Parameter Store.
16101	//
16102	// If the AWS Systems Manager Parameter Store parameter exists in the same Region
16103	// as the task you are launching, then you can use either the full ARN or name
16104	// of the parameter. If the parameter exists in a different Region, then the
16105	// full ARN must be specified.
16106	//
16107	// ValueFrom is a required field
16108	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
16109}
16110
16111// String returns the string representation
16112func (s Secret) String() string {
16113	return awsutil.Prettify(s)
16114}
16115
16116// GoString returns the string representation
16117func (s Secret) GoString() string {
16118	return s.String()
16119}
16120
16121// Validate inspects the fields of the type to determine if they are valid.
16122func (s *Secret) Validate() error {
16123	invalidParams := request.ErrInvalidParams{Context: "Secret"}
16124	if s.Name == nil {
16125		invalidParams.Add(request.NewErrParamRequired("Name"))
16126	}
16127	if s.ValueFrom == nil {
16128		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
16129	}
16130
16131	if invalidParams.Len() > 0 {
16132		return invalidParams
16133	}
16134	return nil
16135}
16136
16137// SetName sets the Name field's value.
16138func (s *Secret) SetName(v string) *Secret {
16139	s.Name = &v
16140	return s
16141}
16142
16143// SetValueFrom sets the ValueFrom field's value.
16144func (s *Secret) SetValueFrom(v string) *Secret {
16145	s.ValueFrom = &v
16146	return s
16147}
16148
16149// These errors are usually caused by a server issue.
16150type ServerException struct {
16151	_            struct{}                  `type:"structure"`
16152	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16153
16154	Message_ *string `locationName:"message" type:"string"`
16155}
16156
16157// String returns the string representation
16158func (s ServerException) String() string {
16159	return awsutil.Prettify(s)
16160}
16161
16162// GoString returns the string representation
16163func (s ServerException) GoString() string {
16164	return s.String()
16165}
16166
16167func newErrorServerException(v protocol.ResponseMetadata) error {
16168	return &ServerException{
16169		RespMetadata: v,
16170	}
16171}
16172
16173// Code returns the exception type name.
16174func (s *ServerException) Code() string {
16175	return "ServerException"
16176}
16177
16178// Message returns the exception's message.
16179func (s *ServerException) Message() string {
16180	if s.Message_ != nil {
16181		return *s.Message_
16182	}
16183	return ""
16184}
16185
16186// OrigErr always returns nil, satisfies awserr.Error interface.
16187func (s *ServerException) OrigErr() error {
16188	return nil
16189}
16190
16191func (s *ServerException) Error() string {
16192	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16193}
16194
16195// Status code returns the HTTP status code for the request's response error.
16196func (s *ServerException) StatusCode() int {
16197	return s.RespMetadata.StatusCode
16198}
16199
16200// RequestID returns the service's response RequestID for request.
16201func (s *ServerException) RequestID() string {
16202	return s.RespMetadata.RequestID
16203}
16204
16205// Details on a service within a cluster
16206type Service struct {
16207	_ struct{} `type:"structure"`
16208
16209	// The capacity provider strategy associated with the service.
16210	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
16211
16212	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
16213	ClusterArn *string `locationName:"clusterArn" type:"string"`
16214
16215	// The Unix timestamp for when the service was created.
16216	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16217
16218	// The principal that created the service.
16219	CreatedBy *string `locationName:"createdBy" type:"string"`
16220
16221	// Optional deployment parameters that control how many tasks run during the
16222	// deployment and the ordering of stopping and starting tasks.
16223	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
16224
16225	// The deployment controller type the service is using. When using the DescribeServices
16226	// API, this field is omitted if the service is using the ECS deployment controller
16227	// type.
16228	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
16229
16230	// The current state of deployments for the service.
16231	Deployments []*Deployment `locationName:"deployments" type:"list"`
16232
16233	// The desired number of instantiations of the task definition to keep running
16234	// on the service. This value is specified when the service is created with
16235	// CreateService, and it can be modified with UpdateService.
16236	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
16237
16238	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
16239	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16240	// in the Amazon Elastic Container Service Developer Guide.
16241	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16242
16243	// The event stream for your service. A maximum of 100 of the latest events
16244	// are displayed.
16245	Events []*ServiceEvent `locationName:"events" type:"list"`
16246
16247	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
16248	// unhealthy Elastic Load Balancing target health checks after a task has first
16249	// started.
16250	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
16251
16252	// The launch type on which your service is running. If no value is specified,
16253	// it will default to EC2. Valid values include EC2 and FARGATE. For more information,
16254	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16255	// in the Amazon Elastic Container Service Developer Guide.
16256	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
16257
16258	// A list of Elastic Load Balancing load balancer objects, containing the load
16259	// balancer name, the container name (as it appears in a container definition),
16260	// and the container port to access from the load balancer.
16261	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
16262
16263	// The VPC subnet and security group configuration for tasks that receive their
16264	// own elastic network interface by using the awsvpc networking mode.
16265	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16266
16267	// The number of tasks in the cluster that are in the PENDING state.
16268	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
16269
16270	// The placement constraints for the tasks in the service.
16271	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
16272
16273	// The placement strategy that determines how tasks for the service are placed.
16274	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
16275
16276	// The platform version on which to run your service. A platform version is
16277	// only specified for tasks using the Fargate launch type. If one is not specified,
16278	// the LATEST platform version is used by default. For more information, see
16279	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16280	// in the Amazon Elastic Container Service Developer Guide.
16281	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16282
16283	// Specifies whether to propagate the tags from the task definition or the service
16284	// to the task. If no value is specified, the tags are not propagated.
16285	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16286
16287	// The ARN of the IAM role associated with the service that allows the Amazon
16288	// ECS container agent to register container instances with an Elastic Load
16289	// Balancing load balancer.
16290	RoleArn *string `locationName:"roleArn" type:"string"`
16291
16292	// The number of tasks in the cluster that are in the RUNNING state.
16293	RunningCount *int64 `locationName:"runningCount" type:"integer"`
16294
16295	// The scheduling strategy to use for the service. For more information, see
16296	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
16297	//
16298	// There are two service scheduler strategies available:
16299	//
16300	//    * REPLICA-The replica scheduling strategy places and maintains the desired
16301	//    number of tasks across your cluster. By default, the service scheduler
16302	//    spreads tasks across Availability Zones. You can use task placement strategies
16303	//    and constraints to customize task placement decisions.
16304	//
16305	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
16306	//    active container instance that meets all of the task placement constraints
16307	//    that you specify in your cluster. The service scheduler also evaluates
16308	//    the task placement constraints for running tasks and will stop tasks that
16309	//    do not meet the placement constraints. Fargate tasks do not support the
16310	//    DAEMON scheduling strategy.
16311	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
16312
16313	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
16314	// followed by the Region of the service, the AWS account ID of the service
16315	// owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.
16316	ServiceArn *string `locationName:"serviceArn" type:"string"`
16317
16318	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
16319	// and hyphens are allowed. Service names must be unique within a cluster, but
16320	// you can have similarly named services in multiple clusters within a Region
16321	// or across multiple Regions.
16322	ServiceName *string `locationName:"serviceName" type:"string"`
16323
16324	// The details of the service discovery registries to assign to this service.
16325	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
16326	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
16327
16328	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
16329	Status *string `locationName:"status" type:"string"`
16330
16331	// The metadata that you apply to the service to help you categorize and organize
16332	// them. Each tag consists of a key and an optional value, both of which you
16333	// define.
16334	//
16335	// The following basic restrictions apply to tags:
16336	//
16337	//    * Maximum number of tags per resource - 50
16338	//
16339	//    * For each resource, each tag key must be unique, and each tag key can
16340	//    have only one value.
16341	//
16342	//    * Maximum key length - 128 Unicode characters in UTF-8
16343	//
16344	//    * Maximum value length - 256 Unicode characters in UTF-8
16345	//
16346	//    * If your tagging schema is used across multiple services and resources,
16347	//    remember that other services may have restrictions on allowed characters.
16348	//    Generally allowed characters are: letters, numbers, and spaces representable
16349	//    in UTF-8, and the following characters: + - = . _ : / @.
16350	//
16351	//    * Tag keys and values are case-sensitive.
16352	//
16353	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16354	//    as a prefix for either keys or values as it is reserved for AWS use. You
16355	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16356	//    prefix do not count against your tags per resource limit.
16357	Tags []*Tag `locationName:"tags" type:"list"`
16358
16359	// The task definition to use for tasks in the service. This value is specified
16360	// when the service is created with CreateService, and it can be modified with
16361	// UpdateService.
16362	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
16363
16364	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
16365	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
16366	// desired number of tasks, how many tasks are running, and whether the task
16367	// set serves production traffic.
16368	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
16369}
16370
16371// String returns the string representation
16372func (s Service) String() string {
16373	return awsutil.Prettify(s)
16374}
16375
16376// GoString returns the string representation
16377func (s Service) GoString() string {
16378	return s.String()
16379}
16380
16381// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
16382func (s *Service) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Service {
16383	s.CapacityProviderStrategy = v
16384	return s
16385}
16386
16387// SetClusterArn sets the ClusterArn field's value.
16388func (s *Service) SetClusterArn(v string) *Service {
16389	s.ClusterArn = &v
16390	return s
16391}
16392
16393// SetCreatedAt sets the CreatedAt field's value.
16394func (s *Service) SetCreatedAt(v time.Time) *Service {
16395	s.CreatedAt = &v
16396	return s
16397}
16398
16399// SetCreatedBy sets the CreatedBy field's value.
16400func (s *Service) SetCreatedBy(v string) *Service {
16401	s.CreatedBy = &v
16402	return s
16403}
16404
16405// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
16406func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
16407	s.DeploymentConfiguration = v
16408	return s
16409}
16410
16411// SetDeploymentController sets the DeploymentController field's value.
16412func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
16413	s.DeploymentController = v
16414	return s
16415}
16416
16417// SetDeployments sets the Deployments field's value.
16418func (s *Service) SetDeployments(v []*Deployment) *Service {
16419	s.Deployments = v
16420	return s
16421}
16422
16423// SetDesiredCount sets the DesiredCount field's value.
16424func (s *Service) SetDesiredCount(v int64) *Service {
16425	s.DesiredCount = &v
16426	return s
16427}
16428
16429// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16430func (s *Service) SetEnableECSManagedTags(v bool) *Service {
16431	s.EnableECSManagedTags = &v
16432	return s
16433}
16434
16435// SetEvents sets the Events field's value.
16436func (s *Service) SetEvents(v []*ServiceEvent) *Service {
16437	s.Events = v
16438	return s
16439}
16440
16441// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
16442func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
16443	s.HealthCheckGracePeriodSeconds = &v
16444	return s
16445}
16446
16447// SetLaunchType sets the LaunchType field's value.
16448func (s *Service) SetLaunchType(v string) *Service {
16449	s.LaunchType = &v
16450	return s
16451}
16452
16453// SetLoadBalancers sets the LoadBalancers field's value.
16454func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
16455	s.LoadBalancers = v
16456	return s
16457}
16458
16459// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16460func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
16461	s.NetworkConfiguration = v
16462	return s
16463}
16464
16465// SetPendingCount sets the PendingCount field's value.
16466func (s *Service) SetPendingCount(v int64) *Service {
16467	s.PendingCount = &v
16468	return s
16469}
16470
16471// SetPlacementConstraints sets the PlacementConstraints field's value.
16472func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
16473	s.PlacementConstraints = v
16474	return s
16475}
16476
16477// SetPlacementStrategy sets the PlacementStrategy field's value.
16478func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
16479	s.PlacementStrategy = v
16480	return s
16481}
16482
16483// SetPlatformVersion sets the PlatformVersion field's value.
16484func (s *Service) SetPlatformVersion(v string) *Service {
16485	s.PlatformVersion = &v
16486	return s
16487}
16488
16489// SetPropagateTags sets the PropagateTags field's value.
16490func (s *Service) SetPropagateTags(v string) *Service {
16491	s.PropagateTags = &v
16492	return s
16493}
16494
16495// SetRoleArn sets the RoleArn field's value.
16496func (s *Service) SetRoleArn(v string) *Service {
16497	s.RoleArn = &v
16498	return s
16499}
16500
16501// SetRunningCount sets the RunningCount field's value.
16502func (s *Service) SetRunningCount(v int64) *Service {
16503	s.RunningCount = &v
16504	return s
16505}
16506
16507// SetSchedulingStrategy sets the SchedulingStrategy field's value.
16508func (s *Service) SetSchedulingStrategy(v string) *Service {
16509	s.SchedulingStrategy = &v
16510	return s
16511}
16512
16513// SetServiceArn sets the ServiceArn field's value.
16514func (s *Service) SetServiceArn(v string) *Service {
16515	s.ServiceArn = &v
16516	return s
16517}
16518
16519// SetServiceName sets the ServiceName field's value.
16520func (s *Service) SetServiceName(v string) *Service {
16521	s.ServiceName = &v
16522	return s
16523}
16524
16525// SetServiceRegistries sets the ServiceRegistries field's value.
16526func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
16527	s.ServiceRegistries = v
16528	return s
16529}
16530
16531// SetStatus sets the Status field's value.
16532func (s *Service) SetStatus(v string) *Service {
16533	s.Status = &v
16534	return s
16535}
16536
16537// SetTags sets the Tags field's value.
16538func (s *Service) SetTags(v []*Tag) *Service {
16539	s.Tags = v
16540	return s
16541}
16542
16543// SetTaskDefinition sets the TaskDefinition field's value.
16544func (s *Service) SetTaskDefinition(v string) *Service {
16545	s.TaskDefinition = &v
16546	return s
16547}
16548
16549// SetTaskSets sets the TaskSets field's value.
16550func (s *Service) SetTaskSets(v []*TaskSet) *Service {
16551	s.TaskSets = v
16552	return s
16553}
16554
16555// Details on an event associated with a service.
16556type ServiceEvent struct {
16557	_ struct{} `type:"structure"`
16558
16559	// The Unix timestamp for when the event was triggered.
16560	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16561
16562	// The ID string of the event.
16563	Id *string `locationName:"id" type:"string"`
16564
16565	// The event message.
16566	Message *string `locationName:"message" type:"string"`
16567}
16568
16569// String returns the string representation
16570func (s ServiceEvent) String() string {
16571	return awsutil.Prettify(s)
16572}
16573
16574// GoString returns the string representation
16575func (s ServiceEvent) GoString() string {
16576	return s.String()
16577}
16578
16579// SetCreatedAt sets the CreatedAt field's value.
16580func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
16581	s.CreatedAt = &v
16582	return s
16583}
16584
16585// SetId sets the Id field's value.
16586func (s *ServiceEvent) SetId(v string) *ServiceEvent {
16587	s.Id = &v
16588	return s
16589}
16590
16591// SetMessage sets the Message field's value.
16592func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
16593	s.Message = &v
16594	return s
16595}
16596
16597// The specified service is not active. You can't update a service that is inactive.
16598// If you have previously deleted a service, you can re-create it with CreateService.
16599type ServiceNotActiveException struct {
16600	_            struct{}                  `type:"structure"`
16601	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16602
16603	Message_ *string `locationName:"message" type:"string"`
16604}
16605
16606// String returns the string representation
16607func (s ServiceNotActiveException) String() string {
16608	return awsutil.Prettify(s)
16609}
16610
16611// GoString returns the string representation
16612func (s ServiceNotActiveException) GoString() string {
16613	return s.String()
16614}
16615
16616func newErrorServiceNotActiveException(v protocol.ResponseMetadata) error {
16617	return &ServiceNotActiveException{
16618		RespMetadata: v,
16619	}
16620}
16621
16622// Code returns the exception type name.
16623func (s *ServiceNotActiveException) Code() string {
16624	return "ServiceNotActiveException"
16625}
16626
16627// Message returns the exception's message.
16628func (s *ServiceNotActiveException) Message() string {
16629	if s.Message_ != nil {
16630		return *s.Message_
16631	}
16632	return ""
16633}
16634
16635// OrigErr always returns nil, satisfies awserr.Error interface.
16636func (s *ServiceNotActiveException) OrigErr() error {
16637	return nil
16638}
16639
16640func (s *ServiceNotActiveException) Error() string {
16641	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16642}
16643
16644// Status code returns the HTTP status code for the request's response error.
16645func (s *ServiceNotActiveException) StatusCode() int {
16646	return s.RespMetadata.StatusCode
16647}
16648
16649// RequestID returns the service's response RequestID for request.
16650func (s *ServiceNotActiveException) RequestID() string {
16651	return s.RespMetadata.RequestID
16652}
16653
16654// The specified service could not be found. You can view your available services
16655// with ListServices. Amazon ECS services are cluster-specific and Region-specific.
16656type ServiceNotFoundException struct {
16657	_            struct{}                  `type:"structure"`
16658	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16659
16660	Message_ *string `locationName:"message" type:"string"`
16661}
16662
16663// String returns the string representation
16664func (s ServiceNotFoundException) String() string {
16665	return awsutil.Prettify(s)
16666}
16667
16668// GoString returns the string representation
16669func (s ServiceNotFoundException) GoString() string {
16670	return s.String()
16671}
16672
16673func newErrorServiceNotFoundException(v protocol.ResponseMetadata) error {
16674	return &ServiceNotFoundException{
16675		RespMetadata: v,
16676	}
16677}
16678
16679// Code returns the exception type name.
16680func (s *ServiceNotFoundException) Code() string {
16681	return "ServiceNotFoundException"
16682}
16683
16684// Message returns the exception's message.
16685func (s *ServiceNotFoundException) Message() string {
16686	if s.Message_ != nil {
16687		return *s.Message_
16688	}
16689	return ""
16690}
16691
16692// OrigErr always returns nil, satisfies awserr.Error interface.
16693func (s *ServiceNotFoundException) OrigErr() error {
16694	return nil
16695}
16696
16697func (s *ServiceNotFoundException) Error() string {
16698	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16699}
16700
16701// Status code returns the HTTP status code for the request's response error.
16702func (s *ServiceNotFoundException) StatusCode() int {
16703	return s.RespMetadata.StatusCode
16704}
16705
16706// RequestID returns the service's response RequestID for request.
16707func (s *ServiceNotFoundException) RequestID() string {
16708	return s.RespMetadata.RequestID
16709}
16710
16711// Details of the service registry.
16712type ServiceRegistry struct {
16713	_ struct{} `type:"structure"`
16714
16715	// The container name value, already specified in the task definition, to be
16716	// used for your service discovery service. If the task definition that your
16717	// service task specifies uses the bridge or host network mode, you must specify
16718	// a containerName and containerPort combination from the task definition. If
16719	// the task definition that your service task specifies uses the awsvpc network
16720	// mode and a type SRV DNS record is used, you must specify either a containerName
16721	// and containerPort combination or a port value, but not both.
16722	ContainerName *string `locationName:"containerName" type:"string"`
16723
16724	// The port value, already specified in the task definition, to be used for
16725	// your service discovery service. If the task definition your service task
16726	// specifies uses the bridge or host network mode, you must specify a containerName
16727	// and containerPort combination from the task definition. If the task definition
16728	// your service task specifies uses the awsvpc network mode and a type SRV DNS
16729	// record is used, you must specify either a containerName and containerPort
16730	// combination or a port value, but not both.
16731	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
16732
16733	// The port value used if your service discovery service specified an SRV record.
16734	// This field may be used if both the awsvpc network mode and SRV records are
16735	// used.
16736	Port *int64 `locationName:"port" type:"integer"`
16737
16738	// The Amazon Resource Name (ARN) of the service registry. The currently supported
16739	// service registry is AWS Cloud Map. For more information, see CreateService
16740	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
16741	RegistryArn *string `locationName:"registryArn" type:"string"`
16742}
16743
16744// String returns the string representation
16745func (s ServiceRegistry) String() string {
16746	return awsutil.Prettify(s)
16747}
16748
16749// GoString returns the string representation
16750func (s ServiceRegistry) GoString() string {
16751	return s.String()
16752}
16753
16754// SetContainerName sets the ContainerName field's value.
16755func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
16756	s.ContainerName = &v
16757	return s
16758}
16759
16760// SetContainerPort sets the ContainerPort field's value.
16761func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
16762	s.ContainerPort = &v
16763	return s
16764}
16765
16766// SetPort sets the Port field's value.
16767func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
16768	s.Port = &v
16769	return s
16770}
16771
16772// SetRegistryArn sets the RegistryArn field's value.
16773func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
16774	s.RegistryArn = &v
16775	return s
16776}
16777
16778// The current account setting for a resource.
16779type Setting struct {
16780	_ struct{} `type:"structure"`
16781
16782	// The Amazon ECS resource name.
16783	Name *string `locationName:"name" type:"string" enum:"SettingName"`
16784
16785	// The ARN of the principal, which can be an IAM user, IAM role, or the root
16786	// user. If this field is omitted, the authenticated user is assumed.
16787	PrincipalArn *string `locationName:"principalArn" type:"string"`
16788
16789	// Whether the account setting is enabled or disabled for the specified resource.
16790	Value *string `locationName:"value" type:"string"`
16791}
16792
16793// String returns the string representation
16794func (s Setting) String() string {
16795	return awsutil.Prettify(s)
16796}
16797
16798// GoString returns the string representation
16799func (s Setting) GoString() string {
16800	return s.String()
16801}
16802
16803// SetName sets the Name field's value.
16804func (s *Setting) SetName(v string) *Setting {
16805	s.Name = &v
16806	return s
16807}
16808
16809// SetPrincipalArn sets the PrincipalArn field's value.
16810func (s *Setting) SetPrincipalArn(v string) *Setting {
16811	s.PrincipalArn = &v
16812	return s
16813}
16814
16815// SetValue sets the Value field's value.
16816func (s *Setting) SetValue(v string) *Setting {
16817	s.Value = &v
16818	return s
16819}
16820
16821type StartTaskInput struct {
16822	_ struct{} `type:"structure"`
16823
16824	// The short name or full Amazon Resource Name (ARN) of the cluster on which
16825	// to start your task. If you do not specify a cluster, the default cluster
16826	// is assumed.
16827	Cluster *string `locationName:"cluster" type:"string"`
16828
16829	// The container instance IDs or full ARN entries for the container instances
16830	// on which you would like to place your task. You can specify up to 10 container
16831	// instances.
16832	//
16833	// ContainerInstances is a required field
16834	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
16835
16836	// Specifies whether to enable Amazon ECS managed tags for the task. For more
16837	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16838	// in the Amazon Elastic Container Service Developer Guide.
16839	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16840
16841	// The name of the task group to associate with the task. The default value
16842	// is the family name of the task definition (for example, family:my-family-name).
16843	Group *string `locationName:"group" type:"string"`
16844
16845	// The VPC subnet and security group configuration for tasks that receive their
16846	// own elastic network interface by using the awsvpc networking mode.
16847	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16848
16849	// A list of container overrides in JSON format that specify the name of a container
16850	// in the specified task definition and the overrides it should receive. You
16851	// can override the default command for a container (that is specified in the
16852	// task definition or Docker image) with a command override. You can also override
16853	// existing environment variables (that are specified in the task definition
16854	// or Docker image) on a container or add new environment variables to it with
16855	// an environment override.
16856	//
16857	// A total of 8192 characters are allowed for overrides. This limit includes
16858	// the JSON formatting characters of the override structure.
16859	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
16860
16861	// Specifies whether to propagate the tags from the task definition or the service
16862	// to the task. If no value is specified, the tags are not propagated.
16863	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16864
16865	// The reference ID to use for the task.
16866	ReferenceId *string `locationName:"referenceId" type:"string"`
16867
16868	// An optional tag specified when a task is started. For example, if you automatically
16869	// trigger a task to run a batch process job, you could apply a unique identifier
16870	// for that job to your task with the startedBy parameter. You can then identify
16871	// which tasks belong to that job by filtering the results of a ListTasks call
16872	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
16873	// hyphens, and underscores are allowed.
16874	//
16875	// If a task is started by an Amazon ECS service, then the startedBy parameter
16876	// contains the deployment ID of the service that starts it.
16877	StartedBy *string `locationName:"startedBy" type:"string"`
16878
16879	// The metadata that you apply to the task to help you categorize and organize
16880	// them. Each tag consists of a key and an optional value, both of which you
16881	// define.
16882	//
16883	// The following basic restrictions apply to tags:
16884	//
16885	//    * Maximum number of tags per resource - 50
16886	//
16887	//    * For each resource, each tag key must be unique, and each tag key can
16888	//    have only one value.
16889	//
16890	//    * Maximum key length - 128 Unicode characters in UTF-8
16891	//
16892	//    * Maximum value length - 256 Unicode characters in UTF-8
16893	//
16894	//    * If your tagging schema is used across multiple services and resources,
16895	//    remember that other services may have restrictions on allowed characters.
16896	//    Generally allowed characters are: letters, numbers, and spaces representable
16897	//    in UTF-8, and the following characters: + - = . _ : / @.
16898	//
16899	//    * Tag keys and values are case-sensitive.
16900	//
16901	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16902	//    as a prefix for either keys or values as it is reserved for AWS use. You
16903	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16904	//    prefix do not count against your tags per resource limit.
16905	Tags []*Tag `locationName:"tags" type:"list"`
16906
16907	// The family and revision (family:revision) or full ARN of the task definition
16908	// to start. If a revision is not specified, the latest ACTIVE revision is used.
16909	//
16910	// TaskDefinition is a required field
16911	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
16912}
16913
16914// String returns the string representation
16915func (s StartTaskInput) String() string {
16916	return awsutil.Prettify(s)
16917}
16918
16919// GoString returns the string representation
16920func (s StartTaskInput) GoString() string {
16921	return s.String()
16922}
16923
16924// Validate inspects the fields of the type to determine if they are valid.
16925func (s *StartTaskInput) Validate() error {
16926	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
16927	if s.ContainerInstances == nil {
16928		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
16929	}
16930	if s.TaskDefinition == nil {
16931		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
16932	}
16933	if s.NetworkConfiguration != nil {
16934		if err := s.NetworkConfiguration.Validate(); err != nil {
16935			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
16936		}
16937	}
16938	if s.Overrides != nil {
16939		if err := s.Overrides.Validate(); err != nil {
16940			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
16941		}
16942	}
16943	if s.Tags != nil {
16944		for i, v := range s.Tags {
16945			if v == nil {
16946				continue
16947			}
16948			if err := v.Validate(); err != nil {
16949				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16950			}
16951		}
16952	}
16953
16954	if invalidParams.Len() > 0 {
16955		return invalidParams
16956	}
16957	return nil
16958}
16959
16960// SetCluster sets the Cluster field's value.
16961func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
16962	s.Cluster = &v
16963	return s
16964}
16965
16966// SetContainerInstances sets the ContainerInstances field's value.
16967func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
16968	s.ContainerInstances = v
16969	return s
16970}
16971
16972// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16973func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
16974	s.EnableECSManagedTags = &v
16975	return s
16976}
16977
16978// SetGroup sets the Group field's value.
16979func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
16980	s.Group = &v
16981	return s
16982}
16983
16984// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16985func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
16986	s.NetworkConfiguration = v
16987	return s
16988}
16989
16990// SetOverrides sets the Overrides field's value.
16991func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
16992	s.Overrides = v
16993	return s
16994}
16995
16996// SetPropagateTags sets the PropagateTags field's value.
16997func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
16998	s.PropagateTags = &v
16999	return s
17000}
17001
17002// SetReferenceId sets the ReferenceId field's value.
17003func (s *StartTaskInput) SetReferenceId(v string) *StartTaskInput {
17004	s.ReferenceId = &v
17005	return s
17006}
17007
17008// SetStartedBy sets the StartedBy field's value.
17009func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
17010	s.StartedBy = &v
17011	return s
17012}
17013
17014// SetTags sets the Tags field's value.
17015func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
17016	s.Tags = v
17017	return s
17018}
17019
17020// SetTaskDefinition sets the TaskDefinition field's value.
17021func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
17022	s.TaskDefinition = &v
17023	return s
17024}
17025
17026type StartTaskOutput struct {
17027	_ struct{} `type:"structure"`
17028
17029	// Any failures associated with the call.
17030	Failures []*Failure `locationName:"failures" type:"list"`
17031
17032	// A full description of the tasks that were started. Each task that was successfully
17033	// placed on your container instances is described.
17034	Tasks []*Task `locationName:"tasks" type:"list"`
17035}
17036
17037// String returns the string representation
17038func (s StartTaskOutput) String() string {
17039	return awsutil.Prettify(s)
17040}
17041
17042// GoString returns the string representation
17043func (s StartTaskOutput) GoString() string {
17044	return s.String()
17045}
17046
17047// SetFailures sets the Failures field's value.
17048func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
17049	s.Failures = v
17050	return s
17051}
17052
17053// SetTasks sets the Tasks field's value.
17054func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
17055	s.Tasks = v
17056	return s
17057}
17058
17059type StopTaskInput struct {
17060	_ struct{} `type:"structure"`
17061
17062	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17063	// the task to stop. If you do not specify a cluster, the default cluster is
17064	// assumed.
17065	Cluster *string `locationName:"cluster" type:"string"`
17066
17067	// An optional message specified when a task is stopped. For example, if you
17068	// are using a custom scheduler, you can use this parameter to specify the reason
17069	// for stopping the task here, and the message appears in subsequent DescribeTasks
17070	// API operations on this task. Up to 255 characters are allowed in this message.
17071	Reason *string `locationName:"reason" type:"string"`
17072
17073	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
17074	//
17075	// Task is a required field
17076	Task *string `locationName:"task" type:"string" required:"true"`
17077}
17078
17079// String returns the string representation
17080func (s StopTaskInput) String() string {
17081	return awsutil.Prettify(s)
17082}
17083
17084// GoString returns the string representation
17085func (s StopTaskInput) GoString() string {
17086	return s.String()
17087}
17088
17089// Validate inspects the fields of the type to determine if they are valid.
17090func (s *StopTaskInput) Validate() error {
17091	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
17092	if s.Task == nil {
17093		invalidParams.Add(request.NewErrParamRequired("Task"))
17094	}
17095
17096	if invalidParams.Len() > 0 {
17097		return invalidParams
17098	}
17099	return nil
17100}
17101
17102// SetCluster sets the Cluster field's value.
17103func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
17104	s.Cluster = &v
17105	return s
17106}
17107
17108// SetReason sets the Reason field's value.
17109func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
17110	s.Reason = &v
17111	return s
17112}
17113
17114// SetTask sets the Task field's value.
17115func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
17116	s.Task = &v
17117	return s
17118}
17119
17120type StopTaskOutput struct {
17121	_ struct{} `type:"structure"`
17122
17123	// The task that was stopped.
17124	Task *Task `locationName:"task" type:"structure"`
17125}
17126
17127// String returns the string representation
17128func (s StopTaskOutput) String() string {
17129	return awsutil.Prettify(s)
17130}
17131
17132// GoString returns the string representation
17133func (s StopTaskOutput) GoString() string {
17134	return s.String()
17135}
17136
17137// SetTask sets the Task field's value.
17138func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
17139	s.Task = v
17140	return s
17141}
17142
17143type SubmitAttachmentStateChangesInput struct {
17144	_ struct{} `type:"structure"`
17145
17146	// Any attachments associated with the state change request.
17147	//
17148	// Attachments is a required field
17149	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
17150
17151	// The short name or full ARN of the cluster that hosts the container instance
17152	// the attachment belongs to.
17153	Cluster *string `locationName:"cluster" type:"string"`
17154}
17155
17156// String returns the string representation
17157func (s SubmitAttachmentStateChangesInput) String() string {
17158	return awsutil.Prettify(s)
17159}
17160
17161// GoString returns the string representation
17162func (s SubmitAttachmentStateChangesInput) GoString() string {
17163	return s.String()
17164}
17165
17166// Validate inspects the fields of the type to determine if they are valid.
17167func (s *SubmitAttachmentStateChangesInput) Validate() error {
17168	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
17169	if s.Attachments == nil {
17170		invalidParams.Add(request.NewErrParamRequired("Attachments"))
17171	}
17172	if s.Attachments != nil {
17173		for i, v := range s.Attachments {
17174			if v == nil {
17175				continue
17176			}
17177			if err := v.Validate(); err != nil {
17178				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
17179			}
17180		}
17181	}
17182
17183	if invalidParams.Len() > 0 {
17184		return invalidParams
17185	}
17186	return nil
17187}
17188
17189// SetAttachments sets the Attachments field's value.
17190func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
17191	s.Attachments = v
17192	return s
17193}
17194
17195// SetCluster sets the Cluster field's value.
17196func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
17197	s.Cluster = &v
17198	return s
17199}
17200
17201type SubmitAttachmentStateChangesOutput struct {
17202	_ struct{} `type:"structure"`
17203
17204	// Acknowledgement of the state change.
17205	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17206}
17207
17208// String returns the string representation
17209func (s SubmitAttachmentStateChangesOutput) String() string {
17210	return awsutil.Prettify(s)
17211}
17212
17213// GoString returns the string representation
17214func (s SubmitAttachmentStateChangesOutput) GoString() string {
17215	return s.String()
17216}
17217
17218// SetAcknowledgment sets the Acknowledgment field's value.
17219func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
17220	s.Acknowledgment = &v
17221	return s
17222}
17223
17224type SubmitContainerStateChangeInput struct {
17225	_ struct{} `type:"structure"`
17226
17227	// The short name or full ARN of the cluster that hosts the container.
17228	Cluster *string `locationName:"cluster" type:"string"`
17229
17230	// The name of the container.
17231	ContainerName *string `locationName:"containerName" type:"string"`
17232
17233	// The exit code returned for the state change request.
17234	ExitCode *int64 `locationName:"exitCode" type:"integer"`
17235
17236	// The network bindings of the container.
17237	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
17238
17239	// The reason for the state change request.
17240	Reason *string `locationName:"reason" type:"string"`
17241
17242	// The ID of the Docker container.
17243	RuntimeId *string `locationName:"runtimeId" type:"string"`
17244
17245	// The status of the state change request.
17246	Status *string `locationName:"status" type:"string"`
17247
17248	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
17249	// container.
17250	Task *string `locationName:"task" type:"string"`
17251}
17252
17253// String returns the string representation
17254func (s SubmitContainerStateChangeInput) String() string {
17255	return awsutil.Prettify(s)
17256}
17257
17258// GoString returns the string representation
17259func (s SubmitContainerStateChangeInput) GoString() string {
17260	return s.String()
17261}
17262
17263// SetCluster sets the Cluster field's value.
17264func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
17265	s.Cluster = &v
17266	return s
17267}
17268
17269// SetContainerName sets the ContainerName field's value.
17270func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
17271	s.ContainerName = &v
17272	return s
17273}
17274
17275// SetExitCode sets the ExitCode field's value.
17276func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
17277	s.ExitCode = &v
17278	return s
17279}
17280
17281// SetNetworkBindings sets the NetworkBindings field's value.
17282func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
17283	s.NetworkBindings = v
17284	return s
17285}
17286
17287// SetReason sets the Reason field's value.
17288func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
17289	s.Reason = &v
17290	return s
17291}
17292
17293// SetRuntimeId sets the RuntimeId field's value.
17294func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
17295	s.RuntimeId = &v
17296	return s
17297}
17298
17299// SetStatus sets the Status field's value.
17300func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
17301	s.Status = &v
17302	return s
17303}
17304
17305// SetTask sets the Task field's value.
17306func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
17307	s.Task = &v
17308	return s
17309}
17310
17311type SubmitContainerStateChangeOutput struct {
17312	_ struct{} `type:"structure"`
17313
17314	// Acknowledgement of the state change.
17315	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17316}
17317
17318// String returns the string representation
17319func (s SubmitContainerStateChangeOutput) String() string {
17320	return awsutil.Prettify(s)
17321}
17322
17323// GoString returns the string representation
17324func (s SubmitContainerStateChangeOutput) GoString() string {
17325	return s.String()
17326}
17327
17328// SetAcknowledgment sets the Acknowledgment field's value.
17329func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
17330	s.Acknowledgment = &v
17331	return s
17332}
17333
17334type SubmitTaskStateChangeInput struct {
17335	_ struct{} `type:"structure"`
17336
17337	// Any attachments associated with the state change request.
17338	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
17339
17340	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17341	// the task.
17342	Cluster *string `locationName:"cluster" type:"string"`
17343
17344	// Any containers associated with the state change request.
17345	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
17346
17347	// The Unix timestamp for when the task execution stopped.
17348	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
17349
17350	// The Unix timestamp for when the container image pull began.
17351	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
17352
17353	// The Unix timestamp for when the container image pull completed.
17354	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
17355
17356	// The reason for the state change request.
17357	Reason *string `locationName:"reason" type:"string"`
17358
17359	// The status of the state change request.
17360	Status *string `locationName:"status" type:"string"`
17361
17362	// The task ID or full ARN of the task in the state change request.
17363	Task *string `locationName:"task" type:"string"`
17364}
17365
17366// String returns the string representation
17367func (s SubmitTaskStateChangeInput) String() string {
17368	return awsutil.Prettify(s)
17369}
17370
17371// GoString returns the string representation
17372func (s SubmitTaskStateChangeInput) GoString() string {
17373	return s.String()
17374}
17375
17376// Validate inspects the fields of the type to determine if they are valid.
17377func (s *SubmitTaskStateChangeInput) Validate() error {
17378	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
17379	if s.Attachments != nil {
17380		for i, v := range s.Attachments {
17381			if v == nil {
17382				continue
17383			}
17384			if err := v.Validate(); err != nil {
17385				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
17386			}
17387		}
17388	}
17389
17390	if invalidParams.Len() > 0 {
17391		return invalidParams
17392	}
17393	return nil
17394}
17395
17396// SetAttachments sets the Attachments field's value.
17397func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
17398	s.Attachments = v
17399	return s
17400}
17401
17402// SetCluster sets the Cluster field's value.
17403func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
17404	s.Cluster = &v
17405	return s
17406}
17407
17408// SetContainers sets the Containers field's value.
17409func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
17410	s.Containers = v
17411	return s
17412}
17413
17414// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
17415func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17416	s.ExecutionStoppedAt = &v
17417	return s
17418}
17419
17420// SetPullStartedAt sets the PullStartedAt field's value.
17421func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
17422	s.PullStartedAt = &v
17423	return s
17424}
17425
17426// SetPullStoppedAt sets the PullStoppedAt field's value.
17427func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17428	s.PullStoppedAt = &v
17429	return s
17430}
17431
17432// SetReason sets the Reason field's value.
17433func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
17434	s.Reason = &v
17435	return s
17436}
17437
17438// SetStatus sets the Status field's value.
17439func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
17440	s.Status = &v
17441	return s
17442}
17443
17444// SetTask sets the Task field's value.
17445func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
17446	s.Task = &v
17447	return s
17448}
17449
17450type SubmitTaskStateChangeOutput struct {
17451	_ struct{} `type:"structure"`
17452
17453	// Acknowledgement of the state change.
17454	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17455}
17456
17457// String returns the string representation
17458func (s SubmitTaskStateChangeOutput) String() string {
17459	return awsutil.Prettify(s)
17460}
17461
17462// GoString returns the string representation
17463func (s SubmitTaskStateChangeOutput) GoString() string {
17464	return s.String()
17465}
17466
17467// SetAcknowledgment sets the Acknowledgment field's value.
17468func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
17469	s.Acknowledgment = &v
17470	return s
17471}
17472
17473// A list of namespaced kernel parameters to set in the container. This parameter
17474// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
17475// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
17476// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
17477//
17478// It is not recommended that you specify network-related systemControls parameters
17479// for multiple containers in a single task that also uses either the awsvpc
17480// or host network mode for the following reasons:
17481//
17482//    * For tasks that use the awsvpc network mode, if you set systemControls
17483//    for any container, it applies to all containers in the task. If you set
17484//    different systemControls for multiple containers in a single task, the
17485//    container that is started last determines which systemControls take effect.
17486//
17487//    * For tasks that use the host network mode, the systemControls parameter
17488//    applies to the container instance's kernel parameter as well as that of
17489//    all containers of any tasks running on that container instance.
17490type SystemControl struct {
17491	_ struct{} `type:"structure"`
17492
17493	// The namespaced kernel parameter for which to set a value.
17494	Namespace *string `locationName:"namespace" type:"string"`
17495
17496	// The value for the namespaced kernel parameter specified in namespace.
17497	Value *string `locationName:"value" type:"string"`
17498}
17499
17500// String returns the string representation
17501func (s SystemControl) String() string {
17502	return awsutil.Prettify(s)
17503}
17504
17505// GoString returns the string representation
17506func (s SystemControl) GoString() string {
17507	return s.String()
17508}
17509
17510// SetNamespace sets the Namespace field's value.
17511func (s *SystemControl) SetNamespace(v string) *SystemControl {
17512	s.Namespace = &v
17513	return s
17514}
17515
17516// SetValue sets the Value field's value.
17517func (s *SystemControl) SetValue(v string) *SystemControl {
17518	s.Value = &v
17519	return s
17520}
17521
17522// The metadata that you apply to a resource to help you categorize and organize
17523// them. Each tag consists of a key and an optional value, both of which you
17524// define.
17525//
17526// The following basic restrictions apply to tags:
17527//
17528//    * Maximum number of tags per resource - 50
17529//
17530//    * For each resource, each tag key must be unique, and each tag key can
17531//    have only one value.
17532//
17533//    * Maximum key length - 128 Unicode characters in UTF-8
17534//
17535//    * Maximum value length - 256 Unicode characters in UTF-8
17536//
17537//    * If your tagging schema is used across multiple services and resources,
17538//    remember that other services may have restrictions on allowed characters.
17539//    Generally allowed characters are: letters, numbers, and spaces representable
17540//    in UTF-8, and the following characters: + - = . _ : / @.
17541//
17542//    * Tag keys and values are case-sensitive.
17543//
17544//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17545//    as a prefix for either keys or values as it is reserved for AWS use. You
17546//    cannot edit or delete tag keys or values with this prefix. Tags with this
17547//    prefix do not count against your tags per resource limit.
17548type Tag struct {
17549	_ struct{} `type:"structure"`
17550
17551	// One part of a key-value pair that make up a tag. A key is a general label
17552	// that acts like a category for more specific tag values.
17553	Key *string `locationName:"key" min:"1" type:"string"`
17554
17555	// The optional part of a key-value pair that make up a tag. A value acts as
17556	// a descriptor within a tag category (key).
17557	Value *string `locationName:"value" type:"string"`
17558}
17559
17560// String returns the string representation
17561func (s Tag) String() string {
17562	return awsutil.Prettify(s)
17563}
17564
17565// GoString returns the string representation
17566func (s Tag) GoString() string {
17567	return s.String()
17568}
17569
17570// Validate inspects the fields of the type to determine if they are valid.
17571func (s *Tag) Validate() error {
17572	invalidParams := request.ErrInvalidParams{Context: "Tag"}
17573	if s.Key != nil && len(*s.Key) < 1 {
17574		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
17575	}
17576
17577	if invalidParams.Len() > 0 {
17578		return invalidParams
17579	}
17580	return nil
17581}
17582
17583// SetKey sets the Key field's value.
17584func (s *Tag) SetKey(v string) *Tag {
17585	s.Key = &v
17586	return s
17587}
17588
17589// SetValue sets the Value field's value.
17590func (s *Tag) SetValue(v string) *Tag {
17591	s.Value = &v
17592	return s
17593}
17594
17595type TagResourceInput struct {
17596	_ struct{} `type:"structure"`
17597
17598	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
17599	// the supported resources are Amazon ECS capacity providers, tasks, services,
17600	// task definitions, clusters, and container instances.
17601	//
17602	// ResourceArn is a required field
17603	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
17604
17605	// The tags to add to the resource. A tag is an array of key-value pairs.
17606	//
17607	// The following basic restrictions apply to tags:
17608	//
17609	//    * Maximum number of tags per resource - 50
17610	//
17611	//    * For each resource, each tag key must be unique, and each tag key can
17612	//    have only one value.
17613	//
17614	//    * Maximum key length - 128 Unicode characters in UTF-8
17615	//
17616	//    * Maximum value length - 256 Unicode characters in UTF-8
17617	//
17618	//    * If your tagging schema is used across multiple services and resources,
17619	//    remember that other services may have restrictions on allowed characters.
17620	//    Generally allowed characters are: letters, numbers, and spaces representable
17621	//    in UTF-8, and the following characters: + - = . _ : / @.
17622	//
17623	//    * Tag keys and values are case-sensitive.
17624	//
17625	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17626	//    as a prefix for either keys or values as it is reserved for AWS use. You
17627	//    cannot edit or delete tag keys or values with this prefix. Tags with this
17628	//    prefix do not count against your tags per resource limit.
17629	//
17630	// Tags is a required field
17631	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
17632}
17633
17634// String returns the string representation
17635func (s TagResourceInput) String() string {
17636	return awsutil.Prettify(s)
17637}
17638
17639// GoString returns the string representation
17640func (s TagResourceInput) GoString() string {
17641	return s.String()
17642}
17643
17644// Validate inspects the fields of the type to determine if they are valid.
17645func (s *TagResourceInput) Validate() error {
17646	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
17647	if s.ResourceArn == nil {
17648		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
17649	}
17650	if s.Tags == nil {
17651		invalidParams.Add(request.NewErrParamRequired("Tags"))
17652	}
17653	if s.Tags != nil {
17654		for i, v := range s.Tags {
17655			if v == nil {
17656				continue
17657			}
17658			if err := v.Validate(); err != nil {
17659				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17660			}
17661		}
17662	}
17663
17664	if invalidParams.Len() > 0 {
17665		return invalidParams
17666	}
17667	return nil
17668}
17669
17670// SetResourceArn sets the ResourceArn field's value.
17671func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
17672	s.ResourceArn = &v
17673	return s
17674}
17675
17676// SetTags sets the Tags field's value.
17677func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
17678	s.Tags = v
17679	return s
17680}
17681
17682type TagResourceOutput struct {
17683	_ struct{} `type:"structure"`
17684}
17685
17686// String returns the string representation
17687func (s TagResourceOutput) String() string {
17688	return awsutil.Prettify(s)
17689}
17690
17691// GoString returns the string representation
17692func (s TagResourceOutput) GoString() string {
17693	return s.String()
17694}
17695
17696// The specified target could not be found. You can view your available container
17697// instances with ListContainerInstances. Amazon ECS container instances are
17698// cluster-specific and Region-specific.
17699type TargetNotFoundException struct {
17700	_            struct{}                  `type:"structure"`
17701	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17702
17703	Message_ *string `locationName:"message" type:"string"`
17704}
17705
17706// String returns the string representation
17707func (s TargetNotFoundException) String() string {
17708	return awsutil.Prettify(s)
17709}
17710
17711// GoString returns the string representation
17712func (s TargetNotFoundException) GoString() string {
17713	return s.String()
17714}
17715
17716func newErrorTargetNotFoundException(v protocol.ResponseMetadata) error {
17717	return &TargetNotFoundException{
17718		RespMetadata: v,
17719	}
17720}
17721
17722// Code returns the exception type name.
17723func (s *TargetNotFoundException) Code() string {
17724	return "TargetNotFoundException"
17725}
17726
17727// Message returns the exception's message.
17728func (s *TargetNotFoundException) Message() string {
17729	if s.Message_ != nil {
17730		return *s.Message_
17731	}
17732	return ""
17733}
17734
17735// OrigErr always returns nil, satisfies awserr.Error interface.
17736func (s *TargetNotFoundException) OrigErr() error {
17737	return nil
17738}
17739
17740func (s *TargetNotFoundException) Error() string {
17741	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17742}
17743
17744// Status code returns the HTTP status code for the request's response error.
17745func (s *TargetNotFoundException) StatusCode() int {
17746	return s.RespMetadata.StatusCode
17747}
17748
17749// RequestID returns the service's response RequestID for request.
17750func (s *TargetNotFoundException) RequestID() string {
17751	return s.RespMetadata.RequestID
17752}
17753
17754// Details on a task in a cluster.
17755type Task struct {
17756	_ struct{} `type:"structure"`
17757
17758	// The Elastic Network Adapter associated with the task if the task uses the
17759	// awsvpc network mode.
17760	Attachments []*Attachment `locationName:"attachments" type:"list"`
17761
17762	// The attributes of the task
17763	Attributes []*Attribute `locationName:"attributes" type:"list"`
17764
17765	// The availability zone of the task.
17766	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
17767
17768	// The capacity provider associated with the task.
17769	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
17770
17771	// The ARN of the cluster that hosts the task.
17772	ClusterArn *string `locationName:"clusterArn" type:"string"`
17773
17774	// The connectivity status of a task.
17775	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
17776
17777	// The Unix timestamp for when the task last went into CONNECTED status.
17778	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
17779
17780	// The ARN of the container instances that host the task.
17781	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
17782
17783	// The containers associated with the task.
17784	Containers []*Container `locationName:"containers" type:"list"`
17785
17786	// The number of CPU units used by the task as expressed in a task definition.
17787	// It can be expressed as an integer using CPU units, for example 1024. It can
17788	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
17789	// String values are converted to an integer indicating the CPU units when the
17790	// task definition is registered.
17791	//
17792	// If you are using the EC2 launch type, this field is optional. Supported values
17793	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
17794	//
17795	// If you are using the Fargate launch type, this field is required and you
17796	// must use one of the following values, which determines your range of supported
17797	// values for the memory parameter:
17798	//
17799	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
17800	//    2048 (2 GB)
17801	//
17802	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
17803	//    (3 GB), 4096 (4 GB)
17804	//
17805	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
17806	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
17807	//
17808	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
17809	//    (16 GB) in increments of 1024 (1 GB)
17810	//
17811	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
17812	//    (30 GB) in increments of 1024 (1 GB)
17813	Cpu *string `locationName:"cpu" type:"string"`
17814
17815	// The Unix timestamp for when the task was created (the task entered the PENDING
17816	// state).
17817	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
17818
17819	// The desired status of the task. For more information, see Task Lifecycle
17820	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
17821	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
17822
17823	// The Unix timestamp for when the task execution stopped.
17824	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
17825
17826	// The name of the task group associated with the task.
17827	Group *string `locationName:"group" type:"string"`
17828
17829	// The health status for the task, which is determined by the health of the
17830	// essential containers in the task. If all essential containers in the task
17831	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
17832	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
17833	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
17834	//
17835	// The Amazon ECS container agent does not monitor or report on Docker health
17836	// checks that are embedded in a container image (such as those specified in
17837	// a parent image or from the image's Dockerfile) and not specified in the container
17838	// definition. Health check parameters that are specified in a container definition
17839	// override any Docker health checks that exist in the container image.
17840	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
17841
17842	// The Elastic Inference accelerator associated with the task.
17843	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
17844
17845	// The last known status of the task. For more information, see Task Lifecycle
17846	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
17847	LastStatus *string `locationName:"lastStatus" type:"string"`
17848
17849	// The launch type on which your task is running. For more information, see
17850	// Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
17851	// in the Amazon Elastic Container Service Developer Guide.
17852	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
17853
17854	// The amount of memory (in MiB) used by the task as expressed in a task definition.
17855	// It can be expressed as an integer using MiB, for example 1024. It can also
17856	// be expressed as a string using GB, for example 1GB or 1 GB. String values
17857	// are converted to an integer indicating the MiB when the task definition is
17858	// registered.
17859	//
17860	// If you are using the EC2 launch type, this field is optional.
17861	//
17862	// If you are using the Fargate launch type, this field is required and you
17863	// must use one of the following values, which determines your range of supported
17864	// values for the cpu parameter:
17865	//
17866	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
17867	//    vCPU)
17868	//
17869	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
17870	//    512 (.5 vCPU)
17871	//
17872	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
17873	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
17874	//
17875	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
17876	//    Available cpu values: 2048 (2 vCPU)
17877	//
17878	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
17879	//    Available cpu values: 4096 (4 vCPU)
17880	Memory *string `locationName:"memory" type:"string"`
17881
17882	// One or more container overrides.
17883	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
17884
17885	// The platform version on which your task is running. A platform version is
17886	// only specified for tasks using the Fargate launch type. If one is not specified,
17887	// the LATEST platform version is used by default. For more information, see
17888	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
17889	// in the Amazon Elastic Container Service Developer Guide.
17890	PlatformVersion *string `locationName:"platformVersion" type:"string"`
17891
17892	// The Unix timestamp for when the container image pull began.
17893	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
17894
17895	// The Unix timestamp for when the container image pull completed.
17896	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
17897
17898	// The Unix timestamp for when the task started (the task transitioned from
17899	// the PENDING state to the RUNNING state).
17900	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
17901
17902	// The tag specified when a task is started. If the task is started by an Amazon
17903	// ECS service, then the startedBy parameter contains the deployment ID of the
17904	// service that starts it.
17905	StartedBy *string `locationName:"startedBy" type:"string"`
17906
17907	// The stop code indicating why a task was stopped. The stoppedReason may contain
17908	// additional details.
17909	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
17910
17911	// The Unix timestamp for when the task was stopped (the task transitioned from
17912	// the RUNNING state to the STOPPED state).
17913	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
17914
17915	// The reason that the task was stopped.
17916	StoppedReason *string `locationName:"stoppedReason" type:"string"`
17917
17918	// The Unix timestamp for when the task stops (transitions from the RUNNING
17919	// state to STOPPED).
17920	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
17921
17922	// The metadata that you apply to the task to help you categorize and organize
17923	// them. Each tag consists of a key and an optional value, both of which you
17924	// define.
17925	//
17926	// The following basic restrictions apply to tags:
17927	//
17928	//    * Maximum number of tags per resource - 50
17929	//
17930	//    * For each resource, each tag key must be unique, and each tag key can
17931	//    have only one value.
17932	//
17933	//    * Maximum key length - 128 Unicode characters in UTF-8
17934	//
17935	//    * Maximum value length - 256 Unicode characters in UTF-8
17936	//
17937	//    * If your tagging schema is used across multiple services and resources,
17938	//    remember that other services may have restrictions on allowed characters.
17939	//    Generally allowed characters are: letters, numbers, and spaces representable
17940	//    in UTF-8, and the following characters: + - = . _ : / @.
17941	//
17942	//    * Tag keys and values are case-sensitive.
17943	//
17944	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17945	//    as a prefix for either keys or values as it is reserved for AWS use. You
17946	//    cannot edit or delete tag keys or values with this prefix. Tags with this
17947	//    prefix do not count against your tags per resource limit.
17948	Tags []*Tag `locationName:"tags" type:"list"`
17949
17950	// The Amazon Resource Name (ARN) of the task.
17951	TaskArn *string `locationName:"taskArn" type:"string"`
17952
17953	// The ARN of the task definition that creates the task.
17954	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
17955
17956	// The version counter for the task. Every time a task experiences a change
17957	// that triggers a CloudWatch event, the version counter is incremented. If
17958	// you are replicating your Amazon ECS task state with CloudWatch Events, you
17959	// can compare the version of a task reported by the Amazon ECS API actions
17960	// with the version reported in CloudWatch Events for the task (inside the detail
17961	// object) to verify that the version in your event stream is current.
17962	Version *int64 `locationName:"version" type:"long"`
17963}
17964
17965// String returns the string representation
17966func (s Task) String() string {
17967	return awsutil.Prettify(s)
17968}
17969
17970// GoString returns the string representation
17971func (s Task) GoString() string {
17972	return s.String()
17973}
17974
17975// SetAttachments sets the Attachments field's value.
17976func (s *Task) SetAttachments(v []*Attachment) *Task {
17977	s.Attachments = v
17978	return s
17979}
17980
17981// SetAttributes sets the Attributes field's value.
17982func (s *Task) SetAttributes(v []*Attribute) *Task {
17983	s.Attributes = v
17984	return s
17985}
17986
17987// SetAvailabilityZone sets the AvailabilityZone field's value.
17988func (s *Task) SetAvailabilityZone(v string) *Task {
17989	s.AvailabilityZone = &v
17990	return s
17991}
17992
17993// SetCapacityProviderName sets the CapacityProviderName field's value.
17994func (s *Task) SetCapacityProviderName(v string) *Task {
17995	s.CapacityProviderName = &v
17996	return s
17997}
17998
17999// SetClusterArn sets the ClusterArn field's value.
18000func (s *Task) SetClusterArn(v string) *Task {
18001	s.ClusterArn = &v
18002	return s
18003}
18004
18005// SetConnectivity sets the Connectivity field's value.
18006func (s *Task) SetConnectivity(v string) *Task {
18007	s.Connectivity = &v
18008	return s
18009}
18010
18011// SetConnectivityAt sets the ConnectivityAt field's value.
18012func (s *Task) SetConnectivityAt(v time.Time) *Task {
18013	s.ConnectivityAt = &v
18014	return s
18015}
18016
18017// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
18018func (s *Task) SetContainerInstanceArn(v string) *Task {
18019	s.ContainerInstanceArn = &v
18020	return s
18021}
18022
18023// SetContainers sets the Containers field's value.
18024func (s *Task) SetContainers(v []*Container) *Task {
18025	s.Containers = v
18026	return s
18027}
18028
18029// SetCpu sets the Cpu field's value.
18030func (s *Task) SetCpu(v string) *Task {
18031	s.Cpu = &v
18032	return s
18033}
18034
18035// SetCreatedAt sets the CreatedAt field's value.
18036func (s *Task) SetCreatedAt(v time.Time) *Task {
18037	s.CreatedAt = &v
18038	return s
18039}
18040
18041// SetDesiredStatus sets the DesiredStatus field's value.
18042func (s *Task) SetDesiredStatus(v string) *Task {
18043	s.DesiredStatus = &v
18044	return s
18045}
18046
18047// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
18048func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
18049	s.ExecutionStoppedAt = &v
18050	return s
18051}
18052
18053// SetGroup sets the Group field's value.
18054func (s *Task) SetGroup(v string) *Task {
18055	s.Group = &v
18056	return s
18057}
18058
18059// SetHealthStatus sets the HealthStatus field's value.
18060func (s *Task) SetHealthStatus(v string) *Task {
18061	s.HealthStatus = &v
18062	return s
18063}
18064
18065// SetInferenceAccelerators sets the InferenceAccelerators field's value.
18066func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
18067	s.InferenceAccelerators = v
18068	return s
18069}
18070
18071// SetLastStatus sets the LastStatus field's value.
18072func (s *Task) SetLastStatus(v string) *Task {
18073	s.LastStatus = &v
18074	return s
18075}
18076
18077// SetLaunchType sets the LaunchType field's value.
18078func (s *Task) SetLaunchType(v string) *Task {
18079	s.LaunchType = &v
18080	return s
18081}
18082
18083// SetMemory sets the Memory field's value.
18084func (s *Task) SetMemory(v string) *Task {
18085	s.Memory = &v
18086	return s
18087}
18088
18089// SetOverrides sets the Overrides field's value.
18090func (s *Task) SetOverrides(v *TaskOverride) *Task {
18091	s.Overrides = v
18092	return s
18093}
18094
18095// SetPlatformVersion sets the PlatformVersion field's value.
18096func (s *Task) SetPlatformVersion(v string) *Task {
18097	s.PlatformVersion = &v
18098	return s
18099}
18100
18101// SetPullStartedAt sets the PullStartedAt field's value.
18102func (s *Task) SetPullStartedAt(v time.Time) *Task {
18103	s.PullStartedAt = &v
18104	return s
18105}
18106
18107// SetPullStoppedAt sets the PullStoppedAt field's value.
18108func (s *Task) SetPullStoppedAt(v time.Time) *Task {
18109	s.PullStoppedAt = &v
18110	return s
18111}
18112
18113// SetStartedAt sets the StartedAt field's value.
18114func (s *Task) SetStartedAt(v time.Time) *Task {
18115	s.StartedAt = &v
18116	return s
18117}
18118
18119// SetStartedBy sets the StartedBy field's value.
18120func (s *Task) SetStartedBy(v string) *Task {
18121	s.StartedBy = &v
18122	return s
18123}
18124
18125// SetStopCode sets the StopCode field's value.
18126func (s *Task) SetStopCode(v string) *Task {
18127	s.StopCode = &v
18128	return s
18129}
18130
18131// SetStoppedAt sets the StoppedAt field's value.
18132func (s *Task) SetStoppedAt(v time.Time) *Task {
18133	s.StoppedAt = &v
18134	return s
18135}
18136
18137// SetStoppedReason sets the StoppedReason field's value.
18138func (s *Task) SetStoppedReason(v string) *Task {
18139	s.StoppedReason = &v
18140	return s
18141}
18142
18143// SetStoppingAt sets the StoppingAt field's value.
18144func (s *Task) SetStoppingAt(v time.Time) *Task {
18145	s.StoppingAt = &v
18146	return s
18147}
18148
18149// SetTags sets the Tags field's value.
18150func (s *Task) SetTags(v []*Tag) *Task {
18151	s.Tags = v
18152	return s
18153}
18154
18155// SetTaskArn sets the TaskArn field's value.
18156func (s *Task) SetTaskArn(v string) *Task {
18157	s.TaskArn = &v
18158	return s
18159}
18160
18161// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
18162func (s *Task) SetTaskDefinitionArn(v string) *Task {
18163	s.TaskDefinitionArn = &v
18164	return s
18165}
18166
18167// SetVersion sets the Version field's value.
18168func (s *Task) SetVersion(v int64) *Task {
18169	s.Version = &v
18170	return s
18171}
18172
18173// The details of a task definition which describes the container and volume
18174// definitions of an Amazon Elastic Container Service task. You can specify
18175// which Docker images to use, the required resources, and other configurations
18176// related to launching the task definition through an Amazon ECS service or
18177// task.
18178type TaskDefinition struct {
18179	_ struct{} `type:"structure"`
18180
18181	// The launch type to use with your task. For more information, see Amazon ECS
18182	// Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
18183	// in the Amazon Elastic Container Service Developer Guide.
18184	Compatibilities []*string `locationName:"compatibilities" type:"list"`
18185
18186	// A list of container definitions in JSON format that describe the different
18187	// containers that make up your task. For more information about container definition
18188	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
18189	// in the Amazon Elastic Container Service Developer Guide.
18190	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
18191
18192	// The number of cpu units used by the task. If you are using the EC2 launch
18193	// type, this field is optional and any value can be used. If you are using
18194	// the Fargate launch type, this field is required and you must use one of the
18195	// following values, which determines your range of valid values for the memory
18196	// parameter:
18197	//
18198	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
18199	//    2048 (2 GB)
18200	//
18201	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
18202	//    (3 GB), 4096 (4 GB)
18203	//
18204	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
18205	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
18206	//
18207	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
18208	//    (16 GB) in increments of 1024 (1 GB)
18209	//
18210	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
18211	//    (30 GB) in increments of 1024 (1 GB)
18212	Cpu *string `locationName:"cpu" type:"string"`
18213
18214	// The Amazon Resource Name (ARN) of the task execution role that grants the
18215	// Amazon ECS container agent permission to make AWS API calls on your behalf.
18216	// The task execution IAM role is required depending on the requirements of
18217	// your task. For more information, see Amazon ECS task execution IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
18218	// in the Amazon Elastic Container Service Developer Guide.
18219	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
18220
18221	// The name of a family that this task definition is registered to. Up to 255
18222	// letters (uppercase and lowercase), numbers, hyphens, and underscores are
18223	// allowed.
18224	//
18225	// A family groups multiple versions of a task definition. Amazon ECS gives
18226	// the first task definition that you registered to a family a revision number
18227	// of 1. Amazon ECS gives sequential revision numbers to each task definition
18228	// that you add.
18229	Family *string `locationName:"family" type:"string"`
18230
18231	// The Elastic Inference accelerator associated with the task.
18232	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
18233
18234	// The IPC resource namespace to use for the containers in the task. The valid
18235	// values are host, task, or none. If host is specified, then all containers
18236	// within the tasks that specified the host IPC mode on the same container instance
18237	// share the same IPC resources with the host Amazon EC2 instance. If task is
18238	// specified, all containers within the specified task share the same IPC resources.
18239	// If none is specified, then IPC resources within the containers of a task
18240	// are private and not shared with other containers in a task or on the container
18241	// instance. If no value is specified, then the IPC resource namespace sharing
18242	// depends on the Docker daemon setting on the container instance. For more
18243	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
18244	// in the Docker run reference.
18245	//
18246	// If the host IPC mode is used, be aware that there is a heightened risk of
18247	// undesired IPC namespace expose. For more information, see Docker security
18248	// (https://docs.docker.com/engine/security/security/).
18249	//
18250	// If you are setting namespaced kernel parameters using systemControls for
18251	// the containers in the task, the following will apply to your IPC resource
18252	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
18253	// in the Amazon Elastic Container Service Developer Guide.
18254	//
18255	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
18256	//    are not supported.
18257	//
18258	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
18259	//    will apply to all containers within a task.
18260	//
18261	// This parameter is not supported for Windows containers or tasks using the
18262	// Fargate launch type.
18263	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
18264
18265	// The amount (in MiB) of memory used by the task.
18266	//
18267	// If using the EC2 launch type, this field is optional and any value can be
18268	// used. If a task-level memory value is specified then the container-level
18269	// memory value is optional.
18270	//
18271	// If using the Fargate launch type, this field is required and you must use
18272	// one of the following values, which determines your range of valid values
18273	// for the cpu parameter:
18274	//
18275	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
18276	//    vCPU)
18277	//
18278	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
18279	//    512 (.5 vCPU)
18280	//
18281	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
18282	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
18283	//
18284	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
18285	//    Available cpu values: 2048 (2 vCPU)
18286	//
18287	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
18288	//    Available cpu values: 4096 (4 vCPU)
18289	Memory *string `locationName:"memory" type:"string"`
18290
18291	// The Docker networking mode to use for the containers in the task. The valid
18292	// values are none, bridge, awsvpc, and host. The default Docker network mode
18293	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
18294	// is required. If you are using the EC2 launch type, any network mode can be
18295	// used. If the network mode is set to none, you cannot specify port mappings
18296	// in your container definitions, and the tasks containers do not have external
18297	// connectivity. The host and awsvpc network modes offer the highest networking
18298	// performance for containers because they use the EC2 network stack instead
18299	// of the virtualized network stack provided by the bridge mode.
18300	//
18301	// With the host and awsvpc network modes, exposed container ports are mapped
18302	// directly to the corresponding host port (for the host network mode) or the
18303	// attached elastic network interface port (for the awsvpc network mode), so
18304	// you cannot take advantage of dynamic host port mappings.
18305	//
18306	// If the network mode is awsvpc, the task is allocated an elastic network interface,
18307	// and you must specify a NetworkConfiguration value when you create a service
18308	// or run a task with the task definition. For more information, see Task Networking
18309	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
18310	// in the Amazon Elastic Container Service Developer Guide.
18311	//
18312	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
18313	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
18314	// mode.
18315	//
18316	// If the network mode is host, you cannot run multiple instantiations of the
18317	// same task on a single container instance when port mappings are used.
18318	//
18319	// Docker for Windows uses different network modes than Docker for Linux. When
18320	// you register a task definition with Windows containers, you must not specify
18321	// a network mode. If you use the console to register a task definition with
18322	// Windows containers, you must choose the <default> network mode object.
18323	//
18324	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
18325	// in the Docker run reference.
18326	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
18327
18328	// The process namespace to use for the containers in the task. The valid values
18329	// are host or task. If host is specified, then all containers within the tasks
18330	// that specified the host PID mode on the same container instance share the
18331	// same process namespace with the host Amazon EC2 instance. If task is specified,
18332	// all containers within the specified task share the same process namespace.
18333	// If no value is specified, the default is a private namespace. For more information,
18334	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
18335	// in the Docker run reference.
18336	//
18337	// If the host PID mode is used, be aware that there is a heightened risk of
18338	// undesired process namespace expose. For more information, see Docker security
18339	// (https://docs.docker.com/engine/security/security/).
18340	//
18341	// This parameter is not supported for Windows containers or tasks using the
18342	// Fargate launch type.
18343	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
18344
18345	// An array of placement constraint objects to use for tasks. This field is
18346	// not valid if you are using the Fargate launch type for your task.
18347	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
18348
18349	// The configuration details for the App Mesh proxy.
18350	//
18351	// Your Amazon ECS container instances require at least version 1.26.0 of the
18352	// container agent and at least version 1.26.0-1 of the ecs-init package to
18353	// enable a proxy configuration. If your container instances are launched from
18354	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
18355	// the required versions of the container agent and ecs-init. For more information,
18356	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
18357	// in the Amazon Elastic Container Service Developer Guide.
18358	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
18359
18360	// The container instance attributes required by your task. This field is not
18361	// valid if you are using the Fargate launch type for your task.
18362	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
18363
18364	// The launch type the task requires. If no value is specified, it will default
18365	// to EC2. Valid values include EC2 and FARGATE.
18366	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
18367
18368	// The revision of the task in a particular family. The revision is a version
18369	// number of a task definition in a family. When you register a task definition
18370	// for the first time, the revision is 1. Each time that you register a new
18371	// revision of a task definition in the same family, the revision value always
18372	// increases by one, even if you have deregistered previous revisions in this
18373	// family.
18374	Revision *int64 `locationName:"revision" type:"integer"`
18375
18376	// The status of the task definition.
18377	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
18378
18379	// The full Amazon Resource Name (ARN) of the task definition.
18380	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
18381
18382	// The short name or full Amazon Resource Name (ARN) of the AWS Identity and
18383	// Access Management (IAM) role that grants containers in the task permission
18384	// to call AWS APIs on your behalf. For more information, see Amazon ECS Task
18385	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
18386	// in the Amazon Elastic Container Service Developer Guide.
18387	//
18388	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
18389	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
18390	// must also run some configuration code in order to take advantage of the feature.
18391	// For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
18392	// in the Amazon Elastic Container Service Developer Guide.
18393	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
18394
18395	// The list of volume definitions for the task.
18396	//
18397	// If your tasks are using the Fargate launch type, the host and sourcePath
18398	// parameters are not supported.
18399	//
18400	// For more information about volume definition parameters and defaults, see
18401	// Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
18402	// in the Amazon Elastic Container Service Developer Guide.
18403	Volumes []*Volume `locationName:"volumes" type:"list"`
18404}
18405
18406// String returns the string representation
18407func (s TaskDefinition) String() string {
18408	return awsutil.Prettify(s)
18409}
18410
18411// GoString returns the string representation
18412func (s TaskDefinition) GoString() string {
18413	return s.String()
18414}
18415
18416// SetCompatibilities sets the Compatibilities field's value.
18417func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
18418	s.Compatibilities = v
18419	return s
18420}
18421
18422// SetContainerDefinitions sets the ContainerDefinitions field's value.
18423func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
18424	s.ContainerDefinitions = v
18425	return s
18426}
18427
18428// SetCpu sets the Cpu field's value.
18429func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
18430	s.Cpu = &v
18431	return s
18432}
18433
18434// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
18435func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
18436	s.ExecutionRoleArn = &v
18437	return s
18438}
18439
18440// SetFamily sets the Family field's value.
18441func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
18442	s.Family = &v
18443	return s
18444}
18445
18446// SetInferenceAccelerators sets the InferenceAccelerators field's value.
18447func (s *TaskDefinition) SetInferenceAccelerators(v []*InferenceAccelerator) *TaskDefinition {
18448	s.InferenceAccelerators = v
18449	return s
18450}
18451
18452// SetIpcMode sets the IpcMode field's value.
18453func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
18454	s.IpcMode = &v
18455	return s
18456}
18457
18458// SetMemory sets the Memory field's value.
18459func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
18460	s.Memory = &v
18461	return s
18462}
18463
18464// SetNetworkMode sets the NetworkMode field's value.
18465func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
18466	s.NetworkMode = &v
18467	return s
18468}
18469
18470// SetPidMode sets the PidMode field's value.
18471func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
18472	s.PidMode = &v
18473	return s
18474}
18475
18476// SetPlacementConstraints sets the PlacementConstraints field's value.
18477func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
18478	s.PlacementConstraints = v
18479	return s
18480}
18481
18482// SetProxyConfiguration sets the ProxyConfiguration field's value.
18483func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
18484	s.ProxyConfiguration = v
18485	return s
18486}
18487
18488// SetRequiresAttributes sets the RequiresAttributes field's value.
18489func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
18490	s.RequiresAttributes = v
18491	return s
18492}
18493
18494// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
18495func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
18496	s.RequiresCompatibilities = v
18497	return s
18498}
18499
18500// SetRevision sets the Revision field's value.
18501func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
18502	s.Revision = &v
18503	return s
18504}
18505
18506// SetStatus sets the Status field's value.
18507func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
18508	s.Status = &v
18509	return s
18510}
18511
18512// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
18513func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
18514	s.TaskDefinitionArn = &v
18515	return s
18516}
18517
18518// SetTaskRoleArn sets the TaskRoleArn field's value.
18519func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
18520	s.TaskRoleArn = &v
18521	return s
18522}
18523
18524// SetVolumes sets the Volumes field's value.
18525func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
18526	s.Volumes = v
18527	return s
18528}
18529
18530// An object representing a constraint on task placement in the task definition.
18531// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
18532// in the Amazon Elastic Container Service Developer Guide.
18533//
18534// If you are using the Fargate launch type, task placement constraints are
18535// not supported.
18536type TaskDefinitionPlacementConstraint struct {
18537	_ struct{} `type:"structure"`
18538
18539	// A cluster query language expression to apply to the constraint. For more
18540	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
18541	// in the Amazon Elastic Container Service Developer Guide.
18542	Expression *string `locationName:"expression" type:"string"`
18543
18544	// The type of constraint. The MemberOf constraint restricts selection to be
18545	// from a group of valid candidates.
18546	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
18547}
18548
18549// String returns the string representation
18550func (s TaskDefinitionPlacementConstraint) String() string {
18551	return awsutil.Prettify(s)
18552}
18553
18554// GoString returns the string representation
18555func (s TaskDefinitionPlacementConstraint) GoString() string {
18556	return s.String()
18557}
18558
18559// SetExpression sets the Expression field's value.
18560func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
18561	s.Expression = &v
18562	return s
18563}
18564
18565// SetType sets the Type field's value.
18566func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
18567	s.Type = &v
18568	return s
18569}
18570
18571// The overrides associated with a task.
18572type TaskOverride struct {
18573	_ struct{} `type:"structure"`
18574
18575	// One or more container overrides sent to a task.
18576	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
18577
18578	// The cpu override for the task.
18579	Cpu *string `locationName:"cpu" type:"string"`
18580
18581	// The Amazon Resource Name (ARN) of the task execution IAM role override for
18582	// the task.
18583	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
18584
18585	// The Elastic Inference accelerator override for the task.
18586	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
18587
18588	// The memory override for the task.
18589	Memory *string `locationName:"memory" type:"string"`
18590
18591	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
18592	// can assume. All containers in this task are granted the permissions that
18593	// are specified in this role.
18594	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
18595}
18596
18597// String returns the string representation
18598func (s TaskOverride) String() string {
18599	return awsutil.Prettify(s)
18600}
18601
18602// GoString returns the string representation
18603func (s TaskOverride) GoString() string {
18604	return s.String()
18605}
18606
18607// Validate inspects the fields of the type to determine if they are valid.
18608func (s *TaskOverride) Validate() error {
18609	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
18610	if s.ContainerOverrides != nil {
18611		for i, v := range s.ContainerOverrides {
18612			if v == nil {
18613				continue
18614			}
18615			if err := v.Validate(); err != nil {
18616				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
18617			}
18618		}
18619	}
18620
18621	if invalidParams.Len() > 0 {
18622		return invalidParams
18623	}
18624	return nil
18625}
18626
18627// SetContainerOverrides sets the ContainerOverrides field's value.
18628func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
18629	s.ContainerOverrides = v
18630	return s
18631}
18632
18633// SetCpu sets the Cpu field's value.
18634func (s *TaskOverride) SetCpu(v string) *TaskOverride {
18635	s.Cpu = &v
18636	return s
18637}
18638
18639// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
18640func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
18641	s.ExecutionRoleArn = &v
18642	return s
18643}
18644
18645// SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
18646func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
18647	s.InferenceAcceleratorOverrides = v
18648	return s
18649}
18650
18651// SetMemory sets the Memory field's value.
18652func (s *TaskOverride) SetMemory(v string) *TaskOverride {
18653	s.Memory = &v
18654	return s
18655}
18656
18657// SetTaskRoleArn sets the TaskRoleArn field's value.
18658func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
18659	s.TaskRoleArn = &v
18660	return s
18661}
18662
18663// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
18664// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
18665// desired number of tasks, how many tasks are running, and whether the task
18666// set serves production traffic.
18667type TaskSet struct {
18668	_ struct{} `type:"structure"`
18669
18670	// The capacity provider strategy associated with the task set.
18671	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
18672
18673	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
18674	// the task set exists in.
18675	ClusterArn *string `locationName:"clusterArn" type:"string"`
18676
18677	// The computed desired count for the task set. This is calculated by multiplying
18678	// the service's desiredCount by the task set's scale percentage. The result
18679	// is always rounded up. For example, if the computed desired count is 1.2,
18680	// it rounds up to 2 tasks.
18681	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
18682
18683	// The Unix timestamp for when the task set was created.
18684	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
18685
18686	// The external ID associated with the task set.
18687	//
18688	// If a task set is created by an AWS CodeDeploy deployment, the externalId
18689	// parameter contains the AWS CodeDeploy deployment ID.
18690	//
18691	// If a task set is created for an external deployment and is associated with
18692	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
18693	// AWS Cloud Map attribute.
18694	ExternalId *string `locationName:"externalId" type:"string"`
18695
18696	// The ID of the task set.
18697	Id *string `locationName:"id" type:"string"`
18698
18699	// The launch type the tasks in the task set are using. For more information,
18700	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
18701	// in the Amazon Elastic Container Service Developer Guide.
18702	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
18703
18704	// Details on a load balancer that is used with a task set.
18705	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
18706
18707	// The network configuration for the task set.
18708	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
18709
18710	// The number of tasks in the task set that are in the PENDING status during
18711	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
18712	// state. A task set enters the PENDING status when it launches for the first
18713	// time or when it is restarted after being in the STOPPED state.
18714	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
18715
18716	// The platform version on which the tasks in the task set are running. A platform
18717	// version is only specified for tasks using the Fargate launch type. If one
18718	// is not specified, the LATEST platform version is used by default. For more
18719	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
18720	// in the Amazon Elastic Container Service Developer Guide.
18721	PlatformVersion *string `locationName:"platformVersion" type:"string"`
18722
18723	// The number of tasks in the task set that are in the RUNNING status during
18724	// a deployment. A task in the RUNNING state is running and ready for use.
18725	RunningCount *int64 `locationName:"runningCount" type:"integer"`
18726
18727	// A floating-point percentage of the desired number of tasks to place and keep
18728	// running in the task set.
18729	Scale *Scale `locationName:"scale" type:"structure"`
18730
18731	// The Amazon Resource Name (ARN) of the service the task set exists in.
18732	ServiceArn *string `locationName:"serviceArn" type:"string"`
18733
18734	// The details of the service discovery registries to assign to this task set.
18735	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
18736	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
18737
18738	// The stability status, which indicates whether the task set has reached a
18739	// steady state. If the following conditions are met, the task set will be in
18740	// STEADY_STATE:
18741	//
18742	//    * The task runningCount is equal to the computedDesiredCount.
18743	//
18744	//    * The pendingCount is 0.
18745	//
18746	//    * There are no tasks running on container instances in the DRAINING status.
18747	//
18748	//    * All tasks are reporting a healthy status from the load balancers, service
18749	//    discovery, and container health checks.
18750	//
18751	// If any of those conditions are not met, the stability status returns STABILIZING.
18752	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
18753
18754	// The Unix timestamp for when the task set stability status was retrieved.
18755	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
18756
18757	// The tag specified when a task set is started. If the task set is created
18758	// by an AWS CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY.
18759	// For a task set created for an external deployment, the startedBy field isn't
18760	// used.
18761	StartedBy *string `locationName:"startedBy" type:"string"`
18762
18763	// The status of the task set. The following describes each state:
18764	//
18765	// PRIMARY
18766	//
18767	// The task set is serving production traffic.
18768	//
18769	// ACTIVE
18770	//
18771	// The task set is not serving production traffic.
18772	//
18773	// DRAINING
18774	//
18775	// The tasks in the task set are being stopped and their corresponding targets
18776	// are being deregistered from their target group.
18777	Status *string `locationName:"status" type:"string"`
18778
18779	// The metadata that you apply to the task set to help you categorize and organize
18780	// them. Each tag consists of a key and an optional value, both of which you
18781	// define.
18782	//
18783	// The following basic restrictions apply to tags:
18784	//
18785	//    * Maximum number of tags per resource - 50
18786	//
18787	//    * For each resource, each tag key must be unique, and each tag key can
18788	//    have only one value.
18789	//
18790	//    * Maximum key length - 128 Unicode characters in UTF-8
18791	//
18792	//    * Maximum value length - 256 Unicode characters in UTF-8
18793	//
18794	//    * If your tagging schema is used across multiple services and resources,
18795	//    remember that other services may have restrictions on allowed characters.
18796	//    Generally allowed characters are: letters, numbers, and spaces representable
18797	//    in UTF-8, and the following characters: + - = . _ : / @.
18798	//
18799	//    * Tag keys and values are case-sensitive.
18800	//
18801	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18802	//    as a prefix for either keys or values as it is reserved for AWS use. You
18803	//    cannot edit or delete tag keys or values with this prefix. Tags with this
18804	//    prefix do not count against your tags per resource limit.
18805	Tags []*Tag `locationName:"tags" type:"list"`
18806
18807	// The task definition the task set is using.
18808	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
18809
18810	// The Amazon Resource Name (ARN) of the task set.
18811	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
18812
18813	// The Unix timestamp for when the task set was last updated.
18814	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
18815}
18816
18817// String returns the string representation
18818func (s TaskSet) String() string {
18819	return awsutil.Prettify(s)
18820}
18821
18822// GoString returns the string representation
18823func (s TaskSet) GoString() string {
18824	return s.String()
18825}
18826
18827// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
18828func (s *TaskSet) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *TaskSet {
18829	s.CapacityProviderStrategy = v
18830	return s
18831}
18832
18833// SetClusterArn sets the ClusterArn field's value.
18834func (s *TaskSet) SetClusterArn(v string) *TaskSet {
18835	s.ClusterArn = &v
18836	return s
18837}
18838
18839// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
18840func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
18841	s.ComputedDesiredCount = &v
18842	return s
18843}
18844
18845// SetCreatedAt sets the CreatedAt field's value.
18846func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
18847	s.CreatedAt = &v
18848	return s
18849}
18850
18851// SetExternalId sets the ExternalId field's value.
18852func (s *TaskSet) SetExternalId(v string) *TaskSet {
18853	s.ExternalId = &v
18854	return s
18855}
18856
18857// SetId sets the Id field's value.
18858func (s *TaskSet) SetId(v string) *TaskSet {
18859	s.Id = &v
18860	return s
18861}
18862
18863// SetLaunchType sets the LaunchType field's value.
18864func (s *TaskSet) SetLaunchType(v string) *TaskSet {
18865	s.LaunchType = &v
18866	return s
18867}
18868
18869// SetLoadBalancers sets the LoadBalancers field's value.
18870func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
18871	s.LoadBalancers = v
18872	return s
18873}
18874
18875// SetNetworkConfiguration sets the NetworkConfiguration field's value.
18876func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
18877	s.NetworkConfiguration = v
18878	return s
18879}
18880
18881// SetPendingCount sets the PendingCount field's value.
18882func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
18883	s.PendingCount = &v
18884	return s
18885}
18886
18887// SetPlatformVersion sets the PlatformVersion field's value.
18888func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
18889	s.PlatformVersion = &v
18890	return s
18891}
18892
18893// SetRunningCount sets the RunningCount field's value.
18894func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
18895	s.RunningCount = &v
18896	return s
18897}
18898
18899// SetScale sets the Scale field's value.
18900func (s *TaskSet) SetScale(v *Scale) *TaskSet {
18901	s.Scale = v
18902	return s
18903}
18904
18905// SetServiceArn sets the ServiceArn field's value.
18906func (s *TaskSet) SetServiceArn(v string) *TaskSet {
18907	s.ServiceArn = &v
18908	return s
18909}
18910
18911// SetServiceRegistries sets the ServiceRegistries field's value.
18912func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
18913	s.ServiceRegistries = v
18914	return s
18915}
18916
18917// SetStabilityStatus sets the StabilityStatus field's value.
18918func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
18919	s.StabilityStatus = &v
18920	return s
18921}
18922
18923// SetStabilityStatusAt sets the StabilityStatusAt field's value.
18924func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
18925	s.StabilityStatusAt = &v
18926	return s
18927}
18928
18929// SetStartedBy sets the StartedBy field's value.
18930func (s *TaskSet) SetStartedBy(v string) *TaskSet {
18931	s.StartedBy = &v
18932	return s
18933}
18934
18935// SetStatus sets the Status field's value.
18936func (s *TaskSet) SetStatus(v string) *TaskSet {
18937	s.Status = &v
18938	return s
18939}
18940
18941// SetTags sets the Tags field's value.
18942func (s *TaskSet) SetTags(v []*Tag) *TaskSet {
18943	s.Tags = v
18944	return s
18945}
18946
18947// SetTaskDefinition sets the TaskDefinition field's value.
18948func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
18949	s.TaskDefinition = &v
18950	return s
18951}
18952
18953// SetTaskSetArn sets the TaskSetArn field's value.
18954func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
18955	s.TaskSetArn = &v
18956	return s
18957}
18958
18959// SetUpdatedAt sets the UpdatedAt field's value.
18960func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
18961	s.UpdatedAt = &v
18962	return s
18963}
18964
18965// The specified task set could not be found. You can view your available task
18966// sets with DescribeTaskSets. Task sets are specific to each cluster, service
18967// and Region.
18968type TaskSetNotFoundException struct {
18969	_            struct{}                  `type:"structure"`
18970	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18971
18972	Message_ *string `locationName:"message" type:"string"`
18973}
18974
18975// String returns the string representation
18976func (s TaskSetNotFoundException) String() string {
18977	return awsutil.Prettify(s)
18978}
18979
18980// GoString returns the string representation
18981func (s TaskSetNotFoundException) GoString() string {
18982	return s.String()
18983}
18984
18985func newErrorTaskSetNotFoundException(v protocol.ResponseMetadata) error {
18986	return &TaskSetNotFoundException{
18987		RespMetadata: v,
18988	}
18989}
18990
18991// Code returns the exception type name.
18992func (s *TaskSetNotFoundException) Code() string {
18993	return "TaskSetNotFoundException"
18994}
18995
18996// Message returns the exception's message.
18997func (s *TaskSetNotFoundException) Message() string {
18998	if s.Message_ != nil {
18999		return *s.Message_
19000	}
19001	return ""
19002}
19003
19004// OrigErr always returns nil, satisfies awserr.Error interface.
19005func (s *TaskSetNotFoundException) OrigErr() error {
19006	return nil
19007}
19008
19009func (s *TaskSetNotFoundException) Error() string {
19010	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19011}
19012
19013// Status code returns the HTTP status code for the request's response error.
19014func (s *TaskSetNotFoundException) StatusCode() int {
19015	return s.RespMetadata.StatusCode
19016}
19017
19018// RequestID returns the service's response RequestID for request.
19019func (s *TaskSetNotFoundException) RequestID() string {
19020	return s.RespMetadata.RequestID
19021}
19022
19023// The container path, mount options, and size of the tmpfs mount.
19024type Tmpfs struct {
19025	_ struct{} `type:"structure"`
19026
19027	// The absolute file path where the tmpfs volume is to be mounted.
19028	//
19029	// ContainerPath is a required field
19030	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
19031
19032	// The list of tmpfs volume mount options.
19033	//
19034	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
19035	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
19036	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
19037	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
19038	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
19039	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
19040	MountOptions []*string `locationName:"mountOptions" type:"list"`
19041
19042	// The size (in MiB) of the tmpfs volume.
19043	//
19044	// Size is a required field
19045	Size *int64 `locationName:"size" type:"integer" required:"true"`
19046}
19047
19048// String returns the string representation
19049func (s Tmpfs) String() string {
19050	return awsutil.Prettify(s)
19051}
19052
19053// GoString returns the string representation
19054func (s Tmpfs) GoString() string {
19055	return s.String()
19056}
19057
19058// Validate inspects the fields of the type to determine if they are valid.
19059func (s *Tmpfs) Validate() error {
19060	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
19061	if s.ContainerPath == nil {
19062		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
19063	}
19064	if s.Size == nil {
19065		invalidParams.Add(request.NewErrParamRequired("Size"))
19066	}
19067
19068	if invalidParams.Len() > 0 {
19069		return invalidParams
19070	}
19071	return nil
19072}
19073
19074// SetContainerPath sets the ContainerPath field's value.
19075func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
19076	s.ContainerPath = &v
19077	return s
19078}
19079
19080// SetMountOptions sets the MountOptions field's value.
19081func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
19082	s.MountOptions = v
19083	return s
19084}
19085
19086// SetSize sets the Size field's value.
19087func (s *Tmpfs) SetSize(v int64) *Tmpfs {
19088	s.Size = &v
19089	return s
19090}
19091
19092// The ulimit settings to pass to the container.
19093type Ulimit struct {
19094	_ struct{} `type:"structure"`
19095
19096	// The hard limit for the ulimit type.
19097	//
19098	// HardLimit is a required field
19099	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
19100
19101	// The type of the ulimit.
19102	//
19103	// Name is a required field
19104	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
19105
19106	// The soft limit for the ulimit type.
19107	//
19108	// SoftLimit is a required field
19109	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
19110}
19111
19112// String returns the string representation
19113func (s Ulimit) String() string {
19114	return awsutil.Prettify(s)
19115}
19116
19117// GoString returns the string representation
19118func (s Ulimit) GoString() string {
19119	return s.String()
19120}
19121
19122// Validate inspects the fields of the type to determine if they are valid.
19123func (s *Ulimit) Validate() error {
19124	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
19125	if s.HardLimit == nil {
19126		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
19127	}
19128	if s.Name == nil {
19129		invalidParams.Add(request.NewErrParamRequired("Name"))
19130	}
19131	if s.SoftLimit == nil {
19132		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
19133	}
19134
19135	if invalidParams.Len() > 0 {
19136		return invalidParams
19137	}
19138	return nil
19139}
19140
19141// SetHardLimit sets the HardLimit field's value.
19142func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
19143	s.HardLimit = &v
19144	return s
19145}
19146
19147// SetName sets the Name field's value.
19148func (s *Ulimit) SetName(v string) *Ulimit {
19149	s.Name = &v
19150	return s
19151}
19152
19153// SetSoftLimit sets the SoftLimit field's value.
19154func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
19155	s.SoftLimit = &v
19156	return s
19157}
19158
19159// The specified task is not supported in this Region.
19160type UnsupportedFeatureException struct {
19161	_            struct{}                  `type:"structure"`
19162	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19163
19164	Message_ *string `locationName:"message" type:"string"`
19165}
19166
19167// String returns the string representation
19168func (s UnsupportedFeatureException) String() string {
19169	return awsutil.Prettify(s)
19170}
19171
19172// GoString returns the string representation
19173func (s UnsupportedFeatureException) GoString() string {
19174	return s.String()
19175}
19176
19177func newErrorUnsupportedFeatureException(v protocol.ResponseMetadata) error {
19178	return &UnsupportedFeatureException{
19179		RespMetadata: v,
19180	}
19181}
19182
19183// Code returns the exception type name.
19184func (s *UnsupportedFeatureException) Code() string {
19185	return "UnsupportedFeatureException"
19186}
19187
19188// Message returns the exception's message.
19189func (s *UnsupportedFeatureException) Message() string {
19190	if s.Message_ != nil {
19191		return *s.Message_
19192	}
19193	return ""
19194}
19195
19196// OrigErr always returns nil, satisfies awserr.Error interface.
19197func (s *UnsupportedFeatureException) OrigErr() error {
19198	return nil
19199}
19200
19201func (s *UnsupportedFeatureException) Error() string {
19202	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19203}
19204
19205// Status code returns the HTTP status code for the request's response error.
19206func (s *UnsupportedFeatureException) StatusCode() int {
19207	return s.RespMetadata.StatusCode
19208}
19209
19210// RequestID returns the service's response RequestID for request.
19211func (s *UnsupportedFeatureException) RequestID() string {
19212	return s.RespMetadata.RequestID
19213}
19214
19215type UntagResourceInput struct {
19216	_ struct{} `type:"structure"`
19217
19218	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
19219	// Currently, the supported resources are Amazon ECS capacity providers, tasks,
19220	// services, task definitions, clusters, and container instances.
19221	//
19222	// ResourceArn is a required field
19223	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
19224
19225	// The keys of the tags to be removed.
19226	//
19227	// TagKeys is a required field
19228	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
19229}
19230
19231// String returns the string representation
19232func (s UntagResourceInput) String() string {
19233	return awsutil.Prettify(s)
19234}
19235
19236// GoString returns the string representation
19237func (s UntagResourceInput) GoString() string {
19238	return s.String()
19239}
19240
19241// Validate inspects the fields of the type to determine if they are valid.
19242func (s *UntagResourceInput) Validate() error {
19243	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
19244	if s.ResourceArn == nil {
19245		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
19246	}
19247	if s.TagKeys == nil {
19248		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
19249	}
19250
19251	if invalidParams.Len() > 0 {
19252		return invalidParams
19253	}
19254	return nil
19255}
19256
19257// SetResourceArn sets the ResourceArn field's value.
19258func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
19259	s.ResourceArn = &v
19260	return s
19261}
19262
19263// SetTagKeys sets the TagKeys field's value.
19264func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
19265	s.TagKeys = v
19266	return s
19267}
19268
19269type UntagResourceOutput struct {
19270	_ struct{} `type:"structure"`
19271}
19272
19273// String returns the string representation
19274func (s UntagResourceOutput) String() string {
19275	return awsutil.Prettify(s)
19276}
19277
19278// GoString returns the string representation
19279func (s UntagResourceOutput) GoString() string {
19280	return s.String()
19281}
19282
19283type UpdateClusterSettingsInput struct {
19284	_ struct{} `type:"structure"`
19285
19286	// The name of the cluster to modify the settings for.
19287	//
19288	// Cluster is a required field
19289	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19290
19291	// The setting to use by default for a cluster. This parameter is used to enable
19292	// CloudWatch Container Insights for a cluster. If this value is specified,
19293	// it will override the containerInsights value set with PutAccountSetting or
19294	// PutAccountSettingDefault.
19295	//
19296	// Settings is a required field
19297	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
19298}
19299
19300// String returns the string representation
19301func (s UpdateClusterSettingsInput) String() string {
19302	return awsutil.Prettify(s)
19303}
19304
19305// GoString returns the string representation
19306func (s UpdateClusterSettingsInput) GoString() string {
19307	return s.String()
19308}
19309
19310// Validate inspects the fields of the type to determine if they are valid.
19311func (s *UpdateClusterSettingsInput) Validate() error {
19312	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
19313	if s.Cluster == nil {
19314		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19315	}
19316	if s.Settings == nil {
19317		invalidParams.Add(request.NewErrParamRequired("Settings"))
19318	}
19319
19320	if invalidParams.Len() > 0 {
19321		return invalidParams
19322	}
19323	return nil
19324}
19325
19326// SetCluster sets the Cluster field's value.
19327func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
19328	s.Cluster = &v
19329	return s
19330}
19331
19332// SetSettings sets the Settings field's value.
19333func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
19334	s.Settings = v
19335	return s
19336}
19337
19338type UpdateClusterSettingsOutput struct {
19339	_ struct{} `type:"structure"`
19340
19341	// A regional grouping of one or more container instances on which you can run
19342	// task requests. Each account receives a default cluster the first time you
19343	// use the Amazon ECS service, but you may also create other clusters. Clusters
19344	// may contain more than one instance type simultaneously.
19345	Cluster *Cluster `locationName:"cluster" type:"structure"`
19346}
19347
19348// String returns the string representation
19349func (s UpdateClusterSettingsOutput) String() string {
19350	return awsutil.Prettify(s)
19351}
19352
19353// GoString returns the string representation
19354func (s UpdateClusterSettingsOutput) GoString() string {
19355	return s.String()
19356}
19357
19358// SetCluster sets the Cluster field's value.
19359func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
19360	s.Cluster = v
19361	return s
19362}
19363
19364type UpdateContainerAgentInput struct {
19365	_ struct{} `type:"structure"`
19366
19367	// The short name or full Amazon Resource Name (ARN) of the cluster that your
19368	// container instance is running on. If you do not specify a cluster, the default
19369	// cluster is assumed.
19370	Cluster *string `locationName:"cluster" type:"string"`
19371
19372	// The container instance ID or full ARN entries for the container instance
19373	// on which you would like to update the Amazon ECS container agent.
19374	//
19375	// ContainerInstance is a required field
19376	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
19377}
19378
19379// String returns the string representation
19380func (s UpdateContainerAgentInput) String() string {
19381	return awsutil.Prettify(s)
19382}
19383
19384// GoString returns the string representation
19385func (s UpdateContainerAgentInput) GoString() string {
19386	return s.String()
19387}
19388
19389// Validate inspects the fields of the type to determine if they are valid.
19390func (s *UpdateContainerAgentInput) Validate() error {
19391	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
19392	if s.ContainerInstance == nil {
19393		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
19394	}
19395
19396	if invalidParams.Len() > 0 {
19397		return invalidParams
19398	}
19399	return nil
19400}
19401
19402// SetCluster sets the Cluster field's value.
19403func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
19404	s.Cluster = &v
19405	return s
19406}
19407
19408// SetContainerInstance sets the ContainerInstance field's value.
19409func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
19410	s.ContainerInstance = &v
19411	return s
19412}
19413
19414type UpdateContainerAgentOutput struct {
19415	_ struct{} `type:"structure"`
19416
19417	// The container instance for which the container agent was updated.
19418	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
19419}
19420
19421// String returns the string representation
19422func (s UpdateContainerAgentOutput) String() string {
19423	return awsutil.Prettify(s)
19424}
19425
19426// GoString returns the string representation
19427func (s UpdateContainerAgentOutput) GoString() string {
19428	return s.String()
19429}
19430
19431// SetContainerInstance sets the ContainerInstance field's value.
19432func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
19433	s.ContainerInstance = v
19434	return s
19435}
19436
19437type UpdateContainerInstancesStateInput struct {
19438	_ struct{} `type:"structure"`
19439
19440	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19441	// the container instance to update. If you do not specify a cluster, the default
19442	// cluster is assumed.
19443	Cluster *string `locationName:"cluster" type:"string"`
19444
19445	// A list of container instance IDs or full ARN entries.
19446	//
19447	// ContainerInstances is a required field
19448	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
19449
19450	// The container instance state with which to update the container instance.
19451	// The only valid values for this action are ACTIVE and DRAINING. A container
19452	// instance can only be updated to DRAINING status once it has reached an ACTIVE
19453	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
19454	// state you can describe the container instance but will be unable to update
19455	// the container instance state.
19456	//
19457	// Status is a required field
19458	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
19459}
19460
19461// String returns the string representation
19462func (s UpdateContainerInstancesStateInput) String() string {
19463	return awsutil.Prettify(s)
19464}
19465
19466// GoString returns the string representation
19467func (s UpdateContainerInstancesStateInput) GoString() string {
19468	return s.String()
19469}
19470
19471// Validate inspects the fields of the type to determine if they are valid.
19472func (s *UpdateContainerInstancesStateInput) Validate() error {
19473	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
19474	if s.ContainerInstances == nil {
19475		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
19476	}
19477	if s.Status == nil {
19478		invalidParams.Add(request.NewErrParamRequired("Status"))
19479	}
19480
19481	if invalidParams.Len() > 0 {
19482		return invalidParams
19483	}
19484	return nil
19485}
19486
19487// SetCluster sets the Cluster field's value.
19488func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
19489	s.Cluster = &v
19490	return s
19491}
19492
19493// SetContainerInstances sets the ContainerInstances field's value.
19494func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
19495	s.ContainerInstances = v
19496	return s
19497}
19498
19499// SetStatus sets the Status field's value.
19500func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
19501	s.Status = &v
19502	return s
19503}
19504
19505type UpdateContainerInstancesStateOutput struct {
19506	_ struct{} `type:"structure"`
19507
19508	// The list of container instances.
19509	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
19510
19511	// Any failures associated with the call.
19512	Failures []*Failure `locationName:"failures" type:"list"`
19513}
19514
19515// String returns the string representation
19516func (s UpdateContainerInstancesStateOutput) String() string {
19517	return awsutil.Prettify(s)
19518}
19519
19520// GoString returns the string representation
19521func (s UpdateContainerInstancesStateOutput) GoString() string {
19522	return s.String()
19523}
19524
19525// SetContainerInstances sets the ContainerInstances field's value.
19526func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
19527	s.ContainerInstances = v
19528	return s
19529}
19530
19531// SetFailures sets the Failures field's value.
19532func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
19533	s.Failures = v
19534	return s
19535}
19536
19537// There is already a current Amazon ECS container agent update in progress
19538// on the specified container instance. If the container agent becomes disconnected
19539// while it is in a transitional stage, such as PENDING or STAGING, the update
19540// process can get stuck in that state. However, when the agent reconnects,
19541// it resumes where it stopped previously.
19542type UpdateInProgressException struct {
19543	_            struct{}                  `type:"structure"`
19544	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19545
19546	Message_ *string `locationName:"message" type:"string"`
19547}
19548
19549// String returns the string representation
19550func (s UpdateInProgressException) String() string {
19551	return awsutil.Prettify(s)
19552}
19553
19554// GoString returns the string representation
19555func (s UpdateInProgressException) GoString() string {
19556	return s.String()
19557}
19558
19559func newErrorUpdateInProgressException(v protocol.ResponseMetadata) error {
19560	return &UpdateInProgressException{
19561		RespMetadata: v,
19562	}
19563}
19564
19565// Code returns the exception type name.
19566func (s *UpdateInProgressException) Code() string {
19567	return "UpdateInProgressException"
19568}
19569
19570// Message returns the exception's message.
19571func (s *UpdateInProgressException) Message() string {
19572	if s.Message_ != nil {
19573		return *s.Message_
19574	}
19575	return ""
19576}
19577
19578// OrigErr always returns nil, satisfies awserr.Error interface.
19579func (s *UpdateInProgressException) OrigErr() error {
19580	return nil
19581}
19582
19583func (s *UpdateInProgressException) Error() string {
19584	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19585}
19586
19587// Status code returns the HTTP status code for the request's response error.
19588func (s *UpdateInProgressException) StatusCode() int {
19589	return s.RespMetadata.StatusCode
19590}
19591
19592// RequestID returns the service's response RequestID for request.
19593func (s *UpdateInProgressException) RequestID() string {
19594	return s.RespMetadata.RequestID
19595}
19596
19597type UpdateServiceInput struct {
19598	_ struct{} `type:"structure"`
19599
19600	// The capacity provider strategy to update the service to use.
19601	//
19602	// If the service is using the default capacity provider strategy for the cluster,
19603	// the service can be updated to use one or more capacity providers as opposed
19604	// to the default capacity provider strategy. However, when a service is using
19605	// a capacity provider strategy that is not the default capacity provider strategy,
19606	// the service cannot be updated to use the cluster's default capacity provider
19607	// strategy.
19608	//
19609	// A capacity provider strategy consists of one or more capacity providers along
19610	// with the base and weight to assign to them. A capacity provider must be associated
19611	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
19612	// API is used to associate a capacity provider with a cluster. Only capacity
19613	// providers with an ACTIVE or UPDATING status can be used.
19614	//
19615	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
19616	// provider must already be created. New capacity providers can be created with
19617	// the CreateCapacityProvider API operation.
19618	//
19619	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
19620	// capacity providers. The AWS Fargate capacity providers are available to all
19621	// accounts and only need to be associated with a cluster to be used.
19622	//
19623	// The PutClusterCapacityProviders API operation is used to update the list
19624	// of available capacity providers for a cluster after the cluster is created.
19625	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
19626
19627	// The short name or full Amazon Resource Name (ARN) of the cluster that your
19628	// service is running on. If you do not specify a cluster, the default cluster
19629	// is assumed.
19630	Cluster *string `locationName:"cluster" type:"string"`
19631
19632	// Optional deployment parameters that control how many tasks run during the
19633	// deployment and the ordering of stopping and starting tasks.
19634	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
19635
19636	// The number of instantiations of the task to place and keep running in your
19637	// service.
19638	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
19639
19640	// Whether to force a new deployment of the service. Deployments are not forced
19641	// by default. You can use this option to trigger a new deployment with no service
19642	// definition changes. For example, you can update a service's tasks to use
19643	// a newer Docker image with the same image/tag combination (my_image:latest)
19644	// or to roll Fargate tasks onto a newer platform version.
19645	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
19646
19647	// The period of time, in seconds, that the Amazon ECS service scheduler should
19648	// ignore unhealthy Elastic Load Balancing target health checks after a task
19649	// has first started. This is only valid if your service is configured to use
19650	// a load balancer. If your service's tasks take a while to start and respond
19651	// to Elastic Load Balancing health checks, you can specify a health check grace
19652	// period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service
19653	// scheduler ignores the Elastic Load Balancing health check status. This grace
19654	// period can prevent the ECS service scheduler from marking tasks as unhealthy
19655	// and stopping them before they have time to come up.
19656	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
19657
19658	// An object representing the network configuration for a task or service.
19659	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
19660
19661	// An array of task placement constraint objects to update the service to use.
19662	// If no value is specified, the existing placement constraints for the service
19663	// will remain unchanged. If this value is specified, it will override any existing
19664	// placement constraints defined for the service. To remove all existing placement
19665	// constraints, specify an empty array.
19666	//
19667	// You can specify a maximum of 10 constraints per task (this limit includes
19668	// constraints in the task definition and those specified at runtime).
19669	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
19670
19671	// The task placement strategy objects to update the service to use. If no value
19672	// is specified, the existing placement strategy for the service will remain
19673	// unchanged. If this value is specified, it will override the existing placement
19674	// strategy defined for the service. To remove an existing placement strategy,
19675	// specify an empty object.
19676	//
19677	// You can specify a maximum of five strategy rules per service.
19678	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
19679
19680	// The platform version on which your tasks in the service are running. A platform
19681	// version is only specified for tasks using the Fargate launch type. If a platform
19682	// version is not specified, the LATEST platform version is used by default.
19683	// For more information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
19684	// in the Amazon Elastic Container Service Developer Guide.
19685	PlatformVersion *string `locationName:"platformVersion" type:"string"`
19686
19687	// The name of the service to update.
19688	//
19689	// Service is a required field
19690	Service *string `locationName:"service" type:"string" required:"true"`
19691
19692	// The family and revision (family:revision) or full ARN of the task definition
19693	// to run in your service. If a revision is not specified, the latest ACTIVE
19694	// revision is used. If you modify the task definition with UpdateService, Amazon
19695	// ECS spawns a task with the new version of the task definition and then stops
19696	// an old task after the new version is running.
19697	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
19698}
19699
19700// String returns the string representation
19701func (s UpdateServiceInput) String() string {
19702	return awsutil.Prettify(s)
19703}
19704
19705// GoString returns the string representation
19706func (s UpdateServiceInput) GoString() string {
19707	return s.String()
19708}
19709
19710// Validate inspects the fields of the type to determine if they are valid.
19711func (s *UpdateServiceInput) Validate() error {
19712	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
19713	if s.Service == nil {
19714		invalidParams.Add(request.NewErrParamRequired("Service"))
19715	}
19716	if s.CapacityProviderStrategy != nil {
19717		for i, v := range s.CapacityProviderStrategy {
19718			if v == nil {
19719				continue
19720			}
19721			if err := v.Validate(); err != nil {
19722				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
19723			}
19724		}
19725	}
19726	if s.NetworkConfiguration != nil {
19727		if err := s.NetworkConfiguration.Validate(); err != nil {
19728			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
19729		}
19730	}
19731
19732	if invalidParams.Len() > 0 {
19733		return invalidParams
19734	}
19735	return nil
19736}
19737
19738// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
19739func (s *UpdateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *UpdateServiceInput {
19740	s.CapacityProviderStrategy = v
19741	return s
19742}
19743
19744// SetCluster sets the Cluster field's value.
19745func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
19746	s.Cluster = &v
19747	return s
19748}
19749
19750// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
19751func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
19752	s.DeploymentConfiguration = v
19753	return s
19754}
19755
19756// SetDesiredCount sets the DesiredCount field's value.
19757func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
19758	s.DesiredCount = &v
19759	return s
19760}
19761
19762// SetForceNewDeployment sets the ForceNewDeployment field's value.
19763func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
19764	s.ForceNewDeployment = &v
19765	return s
19766}
19767
19768// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
19769func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
19770	s.HealthCheckGracePeriodSeconds = &v
19771	return s
19772}
19773
19774// SetNetworkConfiguration sets the NetworkConfiguration field's value.
19775func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
19776	s.NetworkConfiguration = v
19777	return s
19778}
19779
19780// SetPlacementConstraints sets the PlacementConstraints field's value.
19781func (s *UpdateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *UpdateServiceInput {
19782	s.PlacementConstraints = v
19783	return s
19784}
19785
19786// SetPlacementStrategy sets the PlacementStrategy field's value.
19787func (s *UpdateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *UpdateServiceInput {
19788	s.PlacementStrategy = v
19789	return s
19790}
19791
19792// SetPlatformVersion sets the PlatformVersion field's value.
19793func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
19794	s.PlatformVersion = &v
19795	return s
19796}
19797
19798// SetService sets the Service field's value.
19799func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
19800	s.Service = &v
19801	return s
19802}
19803
19804// SetTaskDefinition sets the TaskDefinition field's value.
19805func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
19806	s.TaskDefinition = &v
19807	return s
19808}
19809
19810type UpdateServiceOutput struct {
19811	_ struct{} `type:"structure"`
19812
19813	// The full description of your service following the update call.
19814	Service *Service `locationName:"service" type:"structure"`
19815}
19816
19817// String returns the string representation
19818func (s UpdateServiceOutput) String() string {
19819	return awsutil.Prettify(s)
19820}
19821
19822// GoString returns the string representation
19823func (s UpdateServiceOutput) GoString() string {
19824	return s.String()
19825}
19826
19827// SetService sets the Service field's value.
19828func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
19829	s.Service = v
19830	return s
19831}
19832
19833type UpdateServicePrimaryTaskSetInput struct {
19834	_ struct{} `type:"structure"`
19835
19836	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19837	// the service that the task set exists in.
19838	//
19839	// Cluster is a required field
19840	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19841
19842	// The short name or full Amazon Resource Name (ARN) of the task set to set
19843	// as the primary task set in the deployment.
19844	//
19845	// PrimaryTaskSet is a required field
19846	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
19847
19848	// The short name or full Amazon Resource Name (ARN) of the service that the
19849	// task set exists in.
19850	//
19851	// Service is a required field
19852	Service *string `locationName:"service" type:"string" required:"true"`
19853}
19854
19855// String returns the string representation
19856func (s UpdateServicePrimaryTaskSetInput) String() string {
19857	return awsutil.Prettify(s)
19858}
19859
19860// GoString returns the string representation
19861func (s UpdateServicePrimaryTaskSetInput) GoString() string {
19862	return s.String()
19863}
19864
19865// Validate inspects the fields of the type to determine if they are valid.
19866func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
19867	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
19868	if s.Cluster == nil {
19869		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19870	}
19871	if s.PrimaryTaskSet == nil {
19872		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
19873	}
19874	if s.Service == nil {
19875		invalidParams.Add(request.NewErrParamRequired("Service"))
19876	}
19877
19878	if invalidParams.Len() > 0 {
19879		return invalidParams
19880	}
19881	return nil
19882}
19883
19884// SetCluster sets the Cluster field's value.
19885func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
19886	s.Cluster = &v
19887	return s
19888}
19889
19890// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
19891func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
19892	s.PrimaryTaskSet = &v
19893	return s
19894}
19895
19896// SetService sets the Service field's value.
19897func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
19898	s.Service = &v
19899	return s
19900}
19901
19902type UpdateServicePrimaryTaskSetOutput struct {
19903	_ struct{} `type:"structure"`
19904
19905	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
19906	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
19907	// desired number of tasks, how many tasks are running, and whether the task
19908	// set serves production traffic.
19909	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
19910}
19911
19912// String returns the string representation
19913func (s UpdateServicePrimaryTaskSetOutput) String() string {
19914	return awsutil.Prettify(s)
19915}
19916
19917// GoString returns the string representation
19918func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
19919	return s.String()
19920}
19921
19922// SetTaskSet sets the TaskSet field's value.
19923func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
19924	s.TaskSet = v
19925	return s
19926}
19927
19928type UpdateTaskSetInput struct {
19929	_ struct{} `type:"structure"`
19930
19931	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19932	// the service that the task set exists in.
19933	//
19934	// Cluster is a required field
19935	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19936
19937	// A floating-point percentage of the desired number of tasks to place and keep
19938	// running in the task set.
19939	//
19940	// Scale is a required field
19941	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
19942
19943	// The short name or full Amazon Resource Name (ARN) of the service that the
19944	// task set exists in.
19945	//
19946	// Service is a required field
19947	Service *string `locationName:"service" type:"string" required:"true"`
19948
19949	// The short name or full Amazon Resource Name (ARN) of the task set to update.
19950	//
19951	// TaskSet is a required field
19952	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
19953}
19954
19955// String returns the string representation
19956func (s UpdateTaskSetInput) String() string {
19957	return awsutil.Prettify(s)
19958}
19959
19960// GoString returns the string representation
19961func (s UpdateTaskSetInput) GoString() string {
19962	return s.String()
19963}
19964
19965// Validate inspects the fields of the type to determine if they are valid.
19966func (s *UpdateTaskSetInput) Validate() error {
19967	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
19968	if s.Cluster == nil {
19969		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19970	}
19971	if s.Scale == nil {
19972		invalidParams.Add(request.NewErrParamRequired("Scale"))
19973	}
19974	if s.Service == nil {
19975		invalidParams.Add(request.NewErrParamRequired("Service"))
19976	}
19977	if s.TaskSet == nil {
19978		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
19979	}
19980
19981	if invalidParams.Len() > 0 {
19982		return invalidParams
19983	}
19984	return nil
19985}
19986
19987// SetCluster sets the Cluster field's value.
19988func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
19989	s.Cluster = &v
19990	return s
19991}
19992
19993// SetScale sets the Scale field's value.
19994func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
19995	s.Scale = v
19996	return s
19997}
19998
19999// SetService sets the Service field's value.
20000func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
20001	s.Service = &v
20002	return s
20003}
20004
20005// SetTaskSet sets the TaskSet field's value.
20006func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
20007	s.TaskSet = &v
20008	return s
20009}
20010
20011type UpdateTaskSetOutput struct {
20012	_ struct{} `type:"structure"`
20013
20014	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
20015	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
20016	// desired number of tasks, how many tasks are running, and whether the task
20017	// set serves production traffic.
20018	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
20019}
20020
20021// String returns the string representation
20022func (s UpdateTaskSetOutput) String() string {
20023	return awsutil.Prettify(s)
20024}
20025
20026// GoString returns the string representation
20027func (s UpdateTaskSetOutput) GoString() string {
20028	return s.String()
20029}
20030
20031// SetTaskSet sets the TaskSet field's value.
20032func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
20033	s.TaskSet = v
20034	return s
20035}
20036
20037// The Docker and Amazon ECS container agent version information about a container
20038// instance.
20039type VersionInfo struct {
20040	_ struct{} `type:"structure"`
20041
20042	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
20043	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
20044	AgentHash *string `locationName:"agentHash" type:"string"`
20045
20046	// The version number of the Amazon ECS container agent.
20047	AgentVersion *string `locationName:"agentVersion" type:"string"`
20048
20049	// The Docker version running on the container instance.
20050	DockerVersion *string `locationName:"dockerVersion" type:"string"`
20051}
20052
20053// String returns the string representation
20054func (s VersionInfo) String() string {
20055	return awsutil.Prettify(s)
20056}
20057
20058// GoString returns the string representation
20059func (s VersionInfo) GoString() string {
20060	return s.String()
20061}
20062
20063// SetAgentHash sets the AgentHash field's value.
20064func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
20065	s.AgentHash = &v
20066	return s
20067}
20068
20069// SetAgentVersion sets the AgentVersion field's value.
20070func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
20071	s.AgentVersion = &v
20072	return s
20073}
20074
20075// SetDockerVersion sets the DockerVersion field's value.
20076func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
20077	s.DockerVersion = &v
20078	return s
20079}
20080
20081// A data volume used in a task definition. For tasks that use Amazon Elastic
20082// File System (Amazon EFS) file storage, specify an efsVolumeConfiguration.
20083// For tasks that use a Docker volume, specify a DockerVolumeConfiguration.
20084// For tasks that use a bind mount host volume, specify a host and optional
20085// sourcePath. For more information, see Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
20086type Volume struct {
20087	_ struct{} `type:"structure"`
20088
20089	// This parameter is specified when you are using Docker volumes. Docker volumes
20090	// are only supported when you are using the EC2 launch type. Windows containers
20091	// only support the use of the local driver. To use bind mounts, specify the
20092	// host parameter instead.
20093	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
20094
20095	// This parameter is specified when you are using an Amazon Elastic File System
20096	// file system for task storage.
20097	EfsVolumeConfiguration *EFSVolumeConfiguration `locationName:"efsVolumeConfiguration" type:"structure"`
20098
20099	// This parameter is specified when you are using bind mount host volumes. The
20100	// contents of the host parameter determine whether your bind mount host volume
20101	// persists on the host container instance and where it is stored. If the host
20102	// parameter is empty, then the Docker daemon assigns a host path for your data
20103	// volume. However, the data is not guaranteed to persist after the containers
20104	// associated with it stop running.
20105	//
20106	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
20107	// Windows containers cannot mount directories on a different drive, and mount
20108	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
20109	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
20110	Host *HostVolumeProperties `locationName:"host" type:"structure"`
20111
20112	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
20113	// and hyphens are allowed. This name is referenced in the sourceVolume parameter
20114	// of container definition mountPoints.
20115	Name *string `locationName:"name" type:"string"`
20116}
20117
20118// String returns the string representation
20119func (s Volume) String() string {
20120	return awsutil.Prettify(s)
20121}
20122
20123// GoString returns the string representation
20124func (s Volume) GoString() string {
20125	return s.String()
20126}
20127
20128// Validate inspects the fields of the type to determine if they are valid.
20129func (s *Volume) Validate() error {
20130	invalidParams := request.ErrInvalidParams{Context: "Volume"}
20131	if s.EfsVolumeConfiguration != nil {
20132		if err := s.EfsVolumeConfiguration.Validate(); err != nil {
20133			invalidParams.AddNested("EfsVolumeConfiguration", err.(request.ErrInvalidParams))
20134		}
20135	}
20136
20137	if invalidParams.Len() > 0 {
20138		return invalidParams
20139	}
20140	return nil
20141}
20142
20143// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
20144func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
20145	s.DockerVolumeConfiguration = v
20146	return s
20147}
20148
20149// SetEfsVolumeConfiguration sets the EfsVolumeConfiguration field's value.
20150func (s *Volume) SetEfsVolumeConfiguration(v *EFSVolumeConfiguration) *Volume {
20151	s.EfsVolumeConfiguration = v
20152	return s
20153}
20154
20155// SetHost sets the Host field's value.
20156func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
20157	s.Host = v
20158	return s
20159}
20160
20161// SetName sets the Name field's value.
20162func (s *Volume) SetName(v string) *Volume {
20163	s.Name = &v
20164	return s
20165}
20166
20167// Details on a data volume from another container in the same task definition.
20168type VolumeFrom struct {
20169	_ struct{} `type:"structure"`
20170
20171	// If this value is true, the container has read-only access to the volume.
20172	// If this value is false, then the container can write to the volume. The default
20173	// value is false.
20174	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
20175
20176	// The name of another container within the same task definition from which
20177	// to mount volumes.
20178	SourceContainer *string `locationName:"sourceContainer" type:"string"`
20179}
20180
20181// String returns the string representation
20182func (s VolumeFrom) String() string {
20183	return awsutil.Prettify(s)
20184}
20185
20186// GoString returns the string representation
20187func (s VolumeFrom) GoString() string {
20188	return s.String()
20189}
20190
20191// SetReadOnly sets the ReadOnly field's value.
20192func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
20193	s.ReadOnly = &v
20194	return s
20195}
20196
20197// SetSourceContainer sets the SourceContainer field's value.
20198func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
20199	s.SourceContainer = &v
20200	return s
20201}
20202
20203const (
20204	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
20205	AgentUpdateStatusPending = "PENDING"
20206
20207	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
20208	AgentUpdateStatusStaging = "STAGING"
20209
20210	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
20211	AgentUpdateStatusStaged = "STAGED"
20212
20213	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
20214	AgentUpdateStatusUpdating = "UPDATING"
20215
20216	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
20217	AgentUpdateStatusUpdated = "UPDATED"
20218
20219	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
20220	AgentUpdateStatusFailed = "FAILED"
20221)
20222
20223// AgentUpdateStatus_Values returns all elements of the AgentUpdateStatus enum
20224func AgentUpdateStatus_Values() []string {
20225	return []string{
20226		AgentUpdateStatusPending,
20227		AgentUpdateStatusStaging,
20228		AgentUpdateStatusStaged,
20229		AgentUpdateStatusUpdating,
20230		AgentUpdateStatusUpdated,
20231		AgentUpdateStatusFailed,
20232	}
20233}
20234
20235const (
20236	// AssignPublicIpEnabled is a AssignPublicIp enum value
20237	AssignPublicIpEnabled = "ENABLED"
20238
20239	// AssignPublicIpDisabled is a AssignPublicIp enum value
20240	AssignPublicIpDisabled = "DISABLED"
20241)
20242
20243// AssignPublicIp_Values returns all elements of the AssignPublicIp enum
20244func AssignPublicIp_Values() []string {
20245	return []string{
20246		AssignPublicIpEnabled,
20247		AssignPublicIpDisabled,
20248	}
20249}
20250
20251const (
20252	// CapacityProviderFieldTags is a CapacityProviderField enum value
20253	CapacityProviderFieldTags = "TAGS"
20254)
20255
20256// CapacityProviderField_Values returns all elements of the CapacityProviderField enum
20257func CapacityProviderField_Values() []string {
20258	return []string{
20259		CapacityProviderFieldTags,
20260	}
20261}
20262
20263const (
20264	// CapacityProviderStatusActive is a CapacityProviderStatus enum value
20265	CapacityProviderStatusActive = "ACTIVE"
20266
20267	// CapacityProviderStatusInactive is a CapacityProviderStatus enum value
20268	CapacityProviderStatusInactive = "INACTIVE"
20269)
20270
20271// CapacityProviderStatus_Values returns all elements of the CapacityProviderStatus enum
20272func CapacityProviderStatus_Values() []string {
20273	return []string{
20274		CapacityProviderStatusActive,
20275		CapacityProviderStatusInactive,
20276	}
20277}
20278
20279const (
20280	// CapacityProviderUpdateStatusDeleteInProgress is a CapacityProviderUpdateStatus enum value
20281	CapacityProviderUpdateStatusDeleteInProgress = "DELETE_IN_PROGRESS"
20282
20283	// CapacityProviderUpdateStatusDeleteComplete is a CapacityProviderUpdateStatus enum value
20284	CapacityProviderUpdateStatusDeleteComplete = "DELETE_COMPLETE"
20285
20286	// CapacityProviderUpdateStatusDeleteFailed is a CapacityProviderUpdateStatus enum value
20287	CapacityProviderUpdateStatusDeleteFailed = "DELETE_FAILED"
20288)
20289
20290// CapacityProviderUpdateStatus_Values returns all elements of the CapacityProviderUpdateStatus enum
20291func CapacityProviderUpdateStatus_Values() []string {
20292	return []string{
20293		CapacityProviderUpdateStatusDeleteInProgress,
20294		CapacityProviderUpdateStatusDeleteComplete,
20295		CapacityProviderUpdateStatusDeleteFailed,
20296	}
20297}
20298
20299const (
20300	// ClusterFieldAttachments is a ClusterField enum value
20301	ClusterFieldAttachments = "ATTACHMENTS"
20302
20303	// ClusterFieldSettings is a ClusterField enum value
20304	ClusterFieldSettings = "SETTINGS"
20305
20306	// ClusterFieldStatistics is a ClusterField enum value
20307	ClusterFieldStatistics = "STATISTICS"
20308
20309	// ClusterFieldTags is a ClusterField enum value
20310	ClusterFieldTags = "TAGS"
20311)
20312
20313// ClusterField_Values returns all elements of the ClusterField enum
20314func ClusterField_Values() []string {
20315	return []string{
20316		ClusterFieldAttachments,
20317		ClusterFieldSettings,
20318		ClusterFieldStatistics,
20319		ClusterFieldTags,
20320	}
20321}
20322
20323const (
20324	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
20325	ClusterSettingNameContainerInsights = "containerInsights"
20326)
20327
20328// ClusterSettingName_Values returns all elements of the ClusterSettingName enum
20329func ClusterSettingName_Values() []string {
20330	return []string{
20331		ClusterSettingNameContainerInsights,
20332	}
20333}
20334
20335const (
20336	// CompatibilityEc2 is a Compatibility enum value
20337	CompatibilityEc2 = "EC2"
20338
20339	// CompatibilityFargate is a Compatibility enum value
20340	CompatibilityFargate = "FARGATE"
20341)
20342
20343// Compatibility_Values returns all elements of the Compatibility enum
20344func Compatibility_Values() []string {
20345	return []string{
20346		CompatibilityEc2,
20347		CompatibilityFargate,
20348	}
20349}
20350
20351const (
20352	// ConnectivityConnected is a Connectivity enum value
20353	ConnectivityConnected = "CONNECTED"
20354
20355	// ConnectivityDisconnected is a Connectivity enum value
20356	ConnectivityDisconnected = "DISCONNECTED"
20357)
20358
20359// Connectivity_Values returns all elements of the Connectivity enum
20360func Connectivity_Values() []string {
20361	return []string{
20362		ConnectivityConnected,
20363		ConnectivityDisconnected,
20364	}
20365}
20366
20367const (
20368	// ContainerConditionStart is a ContainerCondition enum value
20369	ContainerConditionStart = "START"
20370
20371	// ContainerConditionComplete is a ContainerCondition enum value
20372	ContainerConditionComplete = "COMPLETE"
20373
20374	// ContainerConditionSuccess is a ContainerCondition enum value
20375	ContainerConditionSuccess = "SUCCESS"
20376
20377	// ContainerConditionHealthy is a ContainerCondition enum value
20378	ContainerConditionHealthy = "HEALTHY"
20379)
20380
20381// ContainerCondition_Values returns all elements of the ContainerCondition enum
20382func ContainerCondition_Values() []string {
20383	return []string{
20384		ContainerConditionStart,
20385		ContainerConditionComplete,
20386		ContainerConditionSuccess,
20387		ContainerConditionHealthy,
20388	}
20389}
20390
20391const (
20392	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
20393	ContainerInstanceFieldTags = "TAGS"
20394)
20395
20396// ContainerInstanceField_Values returns all elements of the ContainerInstanceField enum
20397func ContainerInstanceField_Values() []string {
20398	return []string{
20399		ContainerInstanceFieldTags,
20400	}
20401}
20402
20403const (
20404	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
20405	ContainerInstanceStatusActive = "ACTIVE"
20406
20407	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
20408	ContainerInstanceStatusDraining = "DRAINING"
20409
20410	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
20411	ContainerInstanceStatusRegistering = "REGISTERING"
20412
20413	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
20414	ContainerInstanceStatusDeregistering = "DEREGISTERING"
20415
20416	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
20417	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
20418)
20419
20420// ContainerInstanceStatus_Values returns all elements of the ContainerInstanceStatus enum
20421func ContainerInstanceStatus_Values() []string {
20422	return []string{
20423		ContainerInstanceStatusActive,
20424		ContainerInstanceStatusDraining,
20425		ContainerInstanceStatusRegistering,
20426		ContainerInstanceStatusDeregistering,
20427		ContainerInstanceStatusRegistrationFailed,
20428	}
20429}
20430
20431const (
20432	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
20433	DeploymentControllerTypeEcs = "ECS"
20434
20435	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
20436	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
20437
20438	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
20439	DeploymentControllerTypeExternal = "EXTERNAL"
20440)
20441
20442// DeploymentControllerType_Values returns all elements of the DeploymentControllerType enum
20443func DeploymentControllerType_Values() []string {
20444	return []string{
20445		DeploymentControllerTypeEcs,
20446		DeploymentControllerTypeCodeDeploy,
20447		DeploymentControllerTypeExternal,
20448	}
20449}
20450
20451const (
20452	// DesiredStatusRunning is a DesiredStatus enum value
20453	DesiredStatusRunning = "RUNNING"
20454
20455	// DesiredStatusPending is a DesiredStatus enum value
20456	DesiredStatusPending = "PENDING"
20457
20458	// DesiredStatusStopped is a DesiredStatus enum value
20459	DesiredStatusStopped = "STOPPED"
20460)
20461
20462// DesiredStatus_Values returns all elements of the DesiredStatus enum
20463func DesiredStatus_Values() []string {
20464	return []string{
20465		DesiredStatusRunning,
20466		DesiredStatusPending,
20467		DesiredStatusStopped,
20468	}
20469}
20470
20471const (
20472	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
20473	DeviceCgroupPermissionRead = "read"
20474
20475	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
20476	DeviceCgroupPermissionWrite = "write"
20477
20478	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
20479	DeviceCgroupPermissionMknod = "mknod"
20480)
20481
20482// DeviceCgroupPermission_Values returns all elements of the DeviceCgroupPermission enum
20483func DeviceCgroupPermission_Values() []string {
20484	return []string{
20485		DeviceCgroupPermissionRead,
20486		DeviceCgroupPermissionWrite,
20487		DeviceCgroupPermissionMknod,
20488	}
20489}
20490
20491const (
20492	// EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value
20493	EFSAuthorizationConfigIAMEnabled = "ENABLED"
20494
20495	// EFSAuthorizationConfigIAMDisabled is a EFSAuthorizationConfigIAM enum value
20496	EFSAuthorizationConfigIAMDisabled = "DISABLED"
20497)
20498
20499// EFSAuthorizationConfigIAM_Values returns all elements of the EFSAuthorizationConfigIAM enum
20500func EFSAuthorizationConfigIAM_Values() []string {
20501	return []string{
20502		EFSAuthorizationConfigIAMEnabled,
20503		EFSAuthorizationConfigIAMDisabled,
20504	}
20505}
20506
20507const (
20508	// EFSTransitEncryptionEnabled is a EFSTransitEncryption enum value
20509	EFSTransitEncryptionEnabled = "ENABLED"
20510
20511	// EFSTransitEncryptionDisabled is a EFSTransitEncryption enum value
20512	EFSTransitEncryptionDisabled = "DISABLED"
20513)
20514
20515// EFSTransitEncryption_Values returns all elements of the EFSTransitEncryption enum
20516func EFSTransitEncryption_Values() []string {
20517	return []string{
20518		EFSTransitEncryptionEnabled,
20519		EFSTransitEncryptionDisabled,
20520	}
20521}
20522
20523const (
20524	// EnvironmentFileTypeS3 is a EnvironmentFileType enum value
20525	EnvironmentFileTypeS3 = "s3"
20526)
20527
20528// EnvironmentFileType_Values returns all elements of the EnvironmentFileType enum
20529func EnvironmentFileType_Values() []string {
20530	return []string{
20531		EnvironmentFileTypeS3,
20532	}
20533}
20534
20535const (
20536	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
20537	FirelensConfigurationTypeFluentd = "fluentd"
20538
20539	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
20540	FirelensConfigurationTypeFluentbit = "fluentbit"
20541)
20542
20543// FirelensConfigurationType_Values returns all elements of the FirelensConfigurationType enum
20544func FirelensConfigurationType_Values() []string {
20545	return []string{
20546		FirelensConfigurationTypeFluentd,
20547		FirelensConfigurationTypeFluentbit,
20548	}
20549}
20550
20551const (
20552	// HealthStatusHealthy is a HealthStatus enum value
20553	HealthStatusHealthy = "HEALTHY"
20554
20555	// HealthStatusUnhealthy is a HealthStatus enum value
20556	HealthStatusUnhealthy = "UNHEALTHY"
20557
20558	// HealthStatusUnknown is a HealthStatus enum value
20559	HealthStatusUnknown = "UNKNOWN"
20560)
20561
20562// HealthStatus_Values returns all elements of the HealthStatus enum
20563func HealthStatus_Values() []string {
20564	return []string{
20565		HealthStatusHealthy,
20566		HealthStatusUnhealthy,
20567		HealthStatusUnknown,
20568	}
20569}
20570
20571const (
20572	// IpcModeHost is a IpcMode enum value
20573	IpcModeHost = "host"
20574
20575	// IpcModeTask is a IpcMode enum value
20576	IpcModeTask = "task"
20577
20578	// IpcModeNone is a IpcMode enum value
20579	IpcModeNone = "none"
20580)
20581
20582// IpcMode_Values returns all elements of the IpcMode enum
20583func IpcMode_Values() []string {
20584	return []string{
20585		IpcModeHost,
20586		IpcModeTask,
20587		IpcModeNone,
20588	}
20589}
20590
20591const (
20592	// LaunchTypeEc2 is a LaunchType enum value
20593	LaunchTypeEc2 = "EC2"
20594
20595	// LaunchTypeFargate is a LaunchType enum value
20596	LaunchTypeFargate = "FARGATE"
20597)
20598
20599// LaunchType_Values returns all elements of the LaunchType enum
20600func LaunchType_Values() []string {
20601	return []string{
20602		LaunchTypeEc2,
20603		LaunchTypeFargate,
20604	}
20605}
20606
20607const (
20608	// LogDriverJsonFile is a LogDriver enum value
20609	LogDriverJsonFile = "json-file"
20610
20611	// LogDriverSyslog is a LogDriver enum value
20612	LogDriverSyslog = "syslog"
20613
20614	// LogDriverJournald is a LogDriver enum value
20615	LogDriverJournald = "journald"
20616
20617	// LogDriverGelf is a LogDriver enum value
20618	LogDriverGelf = "gelf"
20619
20620	// LogDriverFluentd is a LogDriver enum value
20621	LogDriverFluentd = "fluentd"
20622
20623	// LogDriverAwslogs is a LogDriver enum value
20624	LogDriverAwslogs = "awslogs"
20625
20626	// LogDriverSplunk is a LogDriver enum value
20627	LogDriverSplunk = "splunk"
20628
20629	// LogDriverAwsfirelens is a LogDriver enum value
20630	LogDriverAwsfirelens = "awsfirelens"
20631)
20632
20633// LogDriver_Values returns all elements of the LogDriver enum
20634func LogDriver_Values() []string {
20635	return []string{
20636		LogDriverJsonFile,
20637		LogDriverSyslog,
20638		LogDriverJournald,
20639		LogDriverGelf,
20640		LogDriverFluentd,
20641		LogDriverAwslogs,
20642		LogDriverSplunk,
20643		LogDriverAwsfirelens,
20644	}
20645}
20646
20647const (
20648	// ManagedScalingStatusEnabled is a ManagedScalingStatus enum value
20649	ManagedScalingStatusEnabled = "ENABLED"
20650
20651	// ManagedScalingStatusDisabled is a ManagedScalingStatus enum value
20652	ManagedScalingStatusDisabled = "DISABLED"
20653)
20654
20655// ManagedScalingStatus_Values returns all elements of the ManagedScalingStatus enum
20656func ManagedScalingStatus_Values() []string {
20657	return []string{
20658		ManagedScalingStatusEnabled,
20659		ManagedScalingStatusDisabled,
20660	}
20661}
20662
20663const (
20664	// ManagedTerminationProtectionEnabled is a ManagedTerminationProtection enum value
20665	ManagedTerminationProtectionEnabled = "ENABLED"
20666
20667	// ManagedTerminationProtectionDisabled is a ManagedTerminationProtection enum value
20668	ManagedTerminationProtectionDisabled = "DISABLED"
20669)
20670
20671// ManagedTerminationProtection_Values returns all elements of the ManagedTerminationProtection enum
20672func ManagedTerminationProtection_Values() []string {
20673	return []string{
20674		ManagedTerminationProtectionEnabled,
20675		ManagedTerminationProtectionDisabled,
20676	}
20677}
20678
20679const (
20680	// NetworkModeBridge is a NetworkMode enum value
20681	NetworkModeBridge = "bridge"
20682
20683	// NetworkModeHost is a NetworkMode enum value
20684	NetworkModeHost = "host"
20685
20686	// NetworkModeAwsvpc is a NetworkMode enum value
20687	NetworkModeAwsvpc = "awsvpc"
20688
20689	// NetworkModeNone is a NetworkMode enum value
20690	NetworkModeNone = "none"
20691)
20692
20693// NetworkMode_Values returns all elements of the NetworkMode enum
20694func NetworkMode_Values() []string {
20695	return []string{
20696		NetworkModeBridge,
20697		NetworkModeHost,
20698		NetworkModeAwsvpc,
20699		NetworkModeNone,
20700	}
20701}
20702
20703const (
20704	// PidModeHost is a PidMode enum value
20705	PidModeHost = "host"
20706
20707	// PidModeTask is a PidMode enum value
20708	PidModeTask = "task"
20709)
20710
20711// PidMode_Values returns all elements of the PidMode enum
20712func PidMode_Values() []string {
20713	return []string{
20714		PidModeHost,
20715		PidModeTask,
20716	}
20717}
20718
20719const (
20720	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
20721	PlacementConstraintTypeDistinctInstance = "distinctInstance"
20722
20723	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
20724	PlacementConstraintTypeMemberOf = "memberOf"
20725)
20726
20727// PlacementConstraintType_Values returns all elements of the PlacementConstraintType enum
20728func PlacementConstraintType_Values() []string {
20729	return []string{
20730		PlacementConstraintTypeDistinctInstance,
20731		PlacementConstraintTypeMemberOf,
20732	}
20733}
20734
20735const (
20736	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
20737	PlacementStrategyTypeRandom = "random"
20738
20739	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
20740	PlacementStrategyTypeSpread = "spread"
20741
20742	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
20743	PlacementStrategyTypeBinpack = "binpack"
20744)
20745
20746// PlacementStrategyType_Values returns all elements of the PlacementStrategyType enum
20747func PlacementStrategyType_Values() []string {
20748	return []string{
20749		PlacementStrategyTypeRandom,
20750		PlacementStrategyTypeSpread,
20751		PlacementStrategyTypeBinpack,
20752	}
20753}
20754
20755const (
20756	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
20757	PlatformDeviceTypeGpu = "GPU"
20758)
20759
20760// PlatformDeviceType_Values returns all elements of the PlatformDeviceType enum
20761func PlatformDeviceType_Values() []string {
20762	return []string{
20763		PlatformDeviceTypeGpu,
20764	}
20765}
20766
20767const (
20768	// PropagateTagsTaskDefinition is a PropagateTags enum value
20769	PropagateTagsTaskDefinition = "TASK_DEFINITION"
20770
20771	// PropagateTagsService is a PropagateTags enum value
20772	PropagateTagsService = "SERVICE"
20773)
20774
20775// PropagateTags_Values returns all elements of the PropagateTags enum
20776func PropagateTags_Values() []string {
20777	return []string{
20778		PropagateTagsTaskDefinition,
20779		PropagateTagsService,
20780	}
20781}
20782
20783const (
20784	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
20785	ProxyConfigurationTypeAppmesh = "APPMESH"
20786)
20787
20788// ProxyConfigurationType_Values returns all elements of the ProxyConfigurationType enum
20789func ProxyConfigurationType_Values() []string {
20790	return []string{
20791		ProxyConfigurationTypeAppmesh,
20792	}
20793}
20794
20795const (
20796	// ResourceTypeGpu is a ResourceType enum value
20797	ResourceTypeGpu = "GPU"
20798
20799	// ResourceTypeInferenceAccelerator is a ResourceType enum value
20800	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
20801)
20802
20803// ResourceType_Values returns all elements of the ResourceType enum
20804func ResourceType_Values() []string {
20805	return []string{
20806		ResourceTypeGpu,
20807		ResourceTypeInferenceAccelerator,
20808	}
20809}
20810
20811const (
20812	// ScaleUnitPercent is a ScaleUnit enum value
20813	ScaleUnitPercent = "PERCENT"
20814)
20815
20816// ScaleUnit_Values returns all elements of the ScaleUnit enum
20817func ScaleUnit_Values() []string {
20818	return []string{
20819		ScaleUnitPercent,
20820	}
20821}
20822
20823const (
20824	// SchedulingStrategyReplica is a SchedulingStrategy enum value
20825	SchedulingStrategyReplica = "REPLICA"
20826
20827	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
20828	SchedulingStrategyDaemon = "DAEMON"
20829)
20830
20831// SchedulingStrategy_Values returns all elements of the SchedulingStrategy enum
20832func SchedulingStrategy_Values() []string {
20833	return []string{
20834		SchedulingStrategyReplica,
20835		SchedulingStrategyDaemon,
20836	}
20837}
20838
20839const (
20840	// ScopeTask is a Scope enum value
20841	ScopeTask = "task"
20842
20843	// ScopeShared is a Scope enum value
20844	ScopeShared = "shared"
20845)
20846
20847// Scope_Values returns all elements of the Scope enum
20848func Scope_Values() []string {
20849	return []string{
20850		ScopeTask,
20851		ScopeShared,
20852	}
20853}
20854
20855const (
20856	// ServiceFieldTags is a ServiceField enum value
20857	ServiceFieldTags = "TAGS"
20858)
20859
20860// ServiceField_Values returns all elements of the ServiceField enum
20861func ServiceField_Values() []string {
20862	return []string{
20863		ServiceFieldTags,
20864	}
20865}
20866
20867const (
20868	// SettingNameServiceLongArnFormat is a SettingName enum value
20869	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
20870
20871	// SettingNameTaskLongArnFormat is a SettingName enum value
20872	SettingNameTaskLongArnFormat = "taskLongArnFormat"
20873
20874	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
20875	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
20876
20877	// SettingNameAwsvpcTrunking is a SettingName enum value
20878	SettingNameAwsvpcTrunking = "awsvpcTrunking"
20879
20880	// SettingNameContainerInsights is a SettingName enum value
20881	SettingNameContainerInsights = "containerInsights"
20882)
20883
20884// SettingName_Values returns all elements of the SettingName enum
20885func SettingName_Values() []string {
20886	return []string{
20887		SettingNameServiceLongArnFormat,
20888		SettingNameTaskLongArnFormat,
20889		SettingNameContainerInstanceLongArnFormat,
20890		SettingNameAwsvpcTrunking,
20891		SettingNameContainerInsights,
20892	}
20893}
20894
20895const (
20896	// SortOrderAsc is a SortOrder enum value
20897	SortOrderAsc = "ASC"
20898
20899	// SortOrderDesc is a SortOrder enum value
20900	SortOrderDesc = "DESC"
20901)
20902
20903// SortOrder_Values returns all elements of the SortOrder enum
20904func SortOrder_Values() []string {
20905	return []string{
20906		SortOrderAsc,
20907		SortOrderDesc,
20908	}
20909}
20910
20911const (
20912	// StabilityStatusSteadyState is a StabilityStatus enum value
20913	StabilityStatusSteadyState = "STEADY_STATE"
20914
20915	// StabilityStatusStabilizing is a StabilityStatus enum value
20916	StabilityStatusStabilizing = "STABILIZING"
20917)
20918
20919// StabilityStatus_Values returns all elements of the StabilityStatus enum
20920func StabilityStatus_Values() []string {
20921	return []string{
20922		StabilityStatusSteadyState,
20923		StabilityStatusStabilizing,
20924	}
20925}
20926
20927const (
20928	// TargetTypeContainerInstance is a TargetType enum value
20929	TargetTypeContainerInstance = "container-instance"
20930)
20931
20932// TargetType_Values returns all elements of the TargetType enum
20933func TargetType_Values() []string {
20934	return []string{
20935		TargetTypeContainerInstance,
20936	}
20937}
20938
20939const (
20940	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
20941	TaskDefinitionFamilyStatusActive = "ACTIVE"
20942
20943	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
20944	TaskDefinitionFamilyStatusInactive = "INACTIVE"
20945
20946	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
20947	TaskDefinitionFamilyStatusAll = "ALL"
20948)
20949
20950// TaskDefinitionFamilyStatus_Values returns all elements of the TaskDefinitionFamilyStatus enum
20951func TaskDefinitionFamilyStatus_Values() []string {
20952	return []string{
20953		TaskDefinitionFamilyStatusActive,
20954		TaskDefinitionFamilyStatusInactive,
20955		TaskDefinitionFamilyStatusAll,
20956	}
20957}
20958
20959const (
20960	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
20961	TaskDefinitionFieldTags = "TAGS"
20962)
20963
20964// TaskDefinitionField_Values returns all elements of the TaskDefinitionField enum
20965func TaskDefinitionField_Values() []string {
20966	return []string{
20967		TaskDefinitionFieldTags,
20968	}
20969}
20970
20971const (
20972	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
20973	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
20974)
20975
20976// TaskDefinitionPlacementConstraintType_Values returns all elements of the TaskDefinitionPlacementConstraintType enum
20977func TaskDefinitionPlacementConstraintType_Values() []string {
20978	return []string{
20979		TaskDefinitionPlacementConstraintTypeMemberOf,
20980	}
20981}
20982
20983const (
20984	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
20985	TaskDefinitionStatusActive = "ACTIVE"
20986
20987	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
20988	TaskDefinitionStatusInactive = "INACTIVE"
20989)
20990
20991// TaskDefinitionStatus_Values returns all elements of the TaskDefinitionStatus enum
20992func TaskDefinitionStatus_Values() []string {
20993	return []string{
20994		TaskDefinitionStatusActive,
20995		TaskDefinitionStatusInactive,
20996	}
20997}
20998
20999const (
21000	// TaskFieldTags is a TaskField enum value
21001	TaskFieldTags = "TAGS"
21002)
21003
21004// TaskField_Values returns all elements of the TaskField enum
21005func TaskField_Values() []string {
21006	return []string{
21007		TaskFieldTags,
21008	}
21009}
21010
21011const (
21012	// TaskSetFieldTags is a TaskSetField enum value
21013	TaskSetFieldTags = "TAGS"
21014)
21015
21016// TaskSetField_Values returns all elements of the TaskSetField enum
21017func TaskSetField_Values() []string {
21018	return []string{
21019		TaskSetFieldTags,
21020	}
21021}
21022
21023const (
21024	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
21025	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
21026
21027	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
21028	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
21029
21030	// TaskStopCodeUserInitiated is a TaskStopCode enum value
21031	TaskStopCodeUserInitiated = "UserInitiated"
21032)
21033
21034// TaskStopCode_Values returns all elements of the TaskStopCode enum
21035func TaskStopCode_Values() []string {
21036	return []string{
21037		TaskStopCodeTaskFailedToStart,
21038		TaskStopCodeEssentialContainerExited,
21039		TaskStopCodeUserInitiated,
21040	}
21041}
21042
21043const (
21044	// TransportProtocolTcp is a TransportProtocol enum value
21045	TransportProtocolTcp = "tcp"
21046
21047	// TransportProtocolUdp is a TransportProtocol enum value
21048	TransportProtocolUdp = "udp"
21049)
21050
21051// TransportProtocol_Values returns all elements of the TransportProtocol enum
21052func TransportProtocol_Values() []string {
21053	return []string{
21054		TransportProtocolTcp,
21055		TransportProtocolUdp,
21056	}
21057}
21058
21059const (
21060	// UlimitNameCore is a UlimitName enum value
21061	UlimitNameCore = "core"
21062
21063	// UlimitNameCpu is a UlimitName enum value
21064	UlimitNameCpu = "cpu"
21065
21066	// UlimitNameData is a UlimitName enum value
21067	UlimitNameData = "data"
21068
21069	// UlimitNameFsize is a UlimitName enum value
21070	UlimitNameFsize = "fsize"
21071
21072	// UlimitNameLocks is a UlimitName enum value
21073	UlimitNameLocks = "locks"
21074
21075	// UlimitNameMemlock is a UlimitName enum value
21076	UlimitNameMemlock = "memlock"
21077
21078	// UlimitNameMsgqueue is a UlimitName enum value
21079	UlimitNameMsgqueue = "msgqueue"
21080
21081	// UlimitNameNice is a UlimitName enum value
21082	UlimitNameNice = "nice"
21083
21084	// UlimitNameNofile is a UlimitName enum value
21085	UlimitNameNofile = "nofile"
21086
21087	// UlimitNameNproc is a UlimitName enum value
21088	UlimitNameNproc = "nproc"
21089
21090	// UlimitNameRss is a UlimitName enum value
21091	UlimitNameRss = "rss"
21092
21093	// UlimitNameRtprio is a UlimitName enum value
21094	UlimitNameRtprio = "rtprio"
21095
21096	// UlimitNameRttime is a UlimitName enum value
21097	UlimitNameRttime = "rttime"
21098
21099	// UlimitNameSigpending is a UlimitName enum value
21100	UlimitNameSigpending = "sigpending"
21101
21102	// UlimitNameStack is a UlimitName enum value
21103	UlimitNameStack = "stack"
21104)
21105
21106// UlimitName_Values returns all elements of the UlimitName enum
21107func UlimitName_Values() []string {
21108	return []string{
21109		UlimitNameCore,
21110		UlimitNameCpu,
21111		UlimitNameData,
21112		UlimitNameFsize,
21113		UlimitNameLocks,
21114		UlimitNameMemlock,
21115		UlimitNameMsgqueue,
21116		UlimitNameNice,
21117		UlimitNameNofile,
21118		UlimitNameNproc,
21119		UlimitNameRss,
21120		UlimitNameRtprio,
21121		UlimitNameRttime,
21122		UlimitNameSigpending,
21123		UlimitNameStack,
21124	}
21125}
21126