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 opUpdateCapacityProvider = "UpdateCapacityProvider"
4851
4852// UpdateCapacityProviderRequest generates a "aws/request.Request" representing the
4853// client's request for the UpdateCapacityProvider 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 UpdateCapacityProvider for more information on using the UpdateCapacityProvider
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 UpdateCapacityProviderRequest method.
4868//    req, resp := client.UpdateCapacityProviderRequest(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/UpdateCapacityProvider
4876func (c *ECS) UpdateCapacityProviderRequest(input *UpdateCapacityProviderInput) (req *request.Request, output *UpdateCapacityProviderOutput) {
4877	op := &request.Operation{
4878		Name:       opUpdateCapacityProvider,
4879		HTTPMethod: "POST",
4880		HTTPPath:   "/",
4881	}
4882
4883	if input == nil {
4884		input = &UpdateCapacityProviderInput{}
4885	}
4886
4887	output = &UpdateCapacityProviderOutput{}
4888	req = c.newRequest(op, input, output)
4889	return
4890}
4891
4892// UpdateCapacityProvider API operation for Amazon EC2 Container Service.
4893//
4894// Modifies the parameters for a capacity provider.
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 UpdateCapacityProvider 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//   * InvalidParameterException
4913//   The specified parameter is invalid. Review the available parameters for the
4914//   API request.
4915//
4916// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCapacityProvider
4917func (c *ECS) UpdateCapacityProvider(input *UpdateCapacityProviderInput) (*UpdateCapacityProviderOutput, error) {
4918	req, out := c.UpdateCapacityProviderRequest(input)
4919	return out, req.Send()
4920}
4921
4922// UpdateCapacityProviderWithContext is the same as UpdateCapacityProvider with the addition of
4923// the ability to pass a context and additional request options.
4924//
4925// See UpdateCapacityProvider for details on how to use this API operation.
4926//
4927// The context must be non-nil and will be used for request cancellation. If
4928// the context is nil a panic will occur. In the future the SDK may create
4929// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4930// for more information on using Contexts.
4931func (c *ECS) UpdateCapacityProviderWithContext(ctx aws.Context, input *UpdateCapacityProviderInput, opts ...request.Option) (*UpdateCapacityProviderOutput, error) {
4932	req, out := c.UpdateCapacityProviderRequest(input)
4933	req.SetContext(ctx)
4934	req.ApplyOptions(opts...)
4935	return out, req.Send()
4936}
4937
4938const opUpdateClusterSettings = "UpdateClusterSettings"
4939
4940// UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
4941// client's request for the UpdateClusterSettings operation. The "output" return
4942// value will be populated with the request's response once the request completes
4943// successfully.
4944//
4945// Use "Send" method on the returned Request to send the API call to the service.
4946// the "output" return value is not valid until after Send returns without error.
4947//
4948// See UpdateClusterSettings for more information on using the UpdateClusterSettings
4949// API call, and error handling.
4950//
4951// This method is useful when you want to inject custom logic or configuration
4952// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4953//
4954//
4955//    // Example sending a request using the UpdateClusterSettingsRequest method.
4956//    req, resp := client.UpdateClusterSettingsRequest(params)
4957//
4958//    err := req.Send()
4959//    if err == nil { // resp is now filled
4960//        fmt.Println(resp)
4961//    }
4962//
4963// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4964func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
4965	op := &request.Operation{
4966		Name:       opUpdateClusterSettings,
4967		HTTPMethod: "POST",
4968		HTTPPath:   "/",
4969	}
4970
4971	if input == nil {
4972		input = &UpdateClusterSettingsInput{}
4973	}
4974
4975	output = &UpdateClusterSettingsOutput{}
4976	req = c.newRequest(op, input, output)
4977	return
4978}
4979
4980// UpdateClusterSettings API operation for Amazon EC2 Container Service.
4981//
4982// Modifies the settings to use for a cluster.
4983//
4984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4985// with awserr.Error's Code and Message methods to get detailed information about
4986// the error.
4987//
4988// See the AWS API reference guide for Amazon EC2 Container Service's
4989// API operation UpdateClusterSettings for usage and error information.
4990//
4991// Returned Error Types:
4992//   * ServerException
4993//   These errors are usually caused by a server issue.
4994//
4995//   * ClientException
4996//   These errors are usually caused by a client action, such as using an action
4997//   or resource on behalf of a user that doesn't have permissions to use the
4998//   action or resource, or specifying an identifier that is not valid.
4999//
5000//   * ClusterNotFoundException
5001//   The specified cluster could not be found. You can view your available clusters
5002//   with ListClusters. Amazon ECS clusters are Region-specific.
5003//
5004//   * InvalidParameterException
5005//   The specified parameter is invalid. Review the available parameters for the
5006//   API request.
5007//
5008// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
5009func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
5010	req, out := c.UpdateClusterSettingsRequest(input)
5011	return out, req.Send()
5012}
5013
5014// UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
5015// the ability to pass a context and additional request options.
5016//
5017// See UpdateClusterSettings for details on how to use this API operation.
5018//
5019// The context must be non-nil and will be used for request cancellation. If
5020// the context is nil a panic will occur. In the future the SDK may create
5021// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5022// for more information on using Contexts.
5023func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
5024	req, out := c.UpdateClusterSettingsRequest(input)
5025	req.SetContext(ctx)
5026	req.ApplyOptions(opts...)
5027	return out, req.Send()
5028}
5029
5030const opUpdateContainerAgent = "UpdateContainerAgent"
5031
5032// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
5033// client's request for the UpdateContainerAgent operation. The "output" return
5034// value will be populated with the request's response once the request completes
5035// successfully.
5036//
5037// Use "Send" method on the returned Request to send the API call to the service.
5038// the "output" return value is not valid until after Send returns without error.
5039//
5040// See UpdateContainerAgent for more information on using the UpdateContainerAgent
5041// API call, and error handling.
5042//
5043// This method is useful when you want to inject custom logic or configuration
5044// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5045//
5046//
5047//    // Example sending a request using the UpdateContainerAgentRequest method.
5048//    req, resp := client.UpdateContainerAgentRequest(params)
5049//
5050//    err := req.Send()
5051//    if err == nil { // resp is now filled
5052//        fmt.Println(resp)
5053//    }
5054//
5055// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
5056func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
5057	op := &request.Operation{
5058		Name:       opUpdateContainerAgent,
5059		HTTPMethod: "POST",
5060		HTTPPath:   "/",
5061	}
5062
5063	if input == nil {
5064		input = &UpdateContainerAgentInput{}
5065	}
5066
5067	output = &UpdateContainerAgentOutput{}
5068	req = c.newRequest(op, input, output)
5069	return
5070}
5071
5072// UpdateContainerAgent API operation for Amazon EC2 Container Service.
5073//
5074// Updates the Amazon ECS container agent on a specified container instance.
5075// Updating the Amazon ECS container agent does not interrupt running tasks
5076// or services on the container instance. The process for updating the agent
5077// differs depending on whether your container instance was launched with the
5078// Amazon ECS-optimized AMI or another operating system.
5079//
5080// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
5081// with the ecs-init service installed and running. For help updating the Amazon
5082// ECS container agent on other operating systems, see Manually Updating the
5083// Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
5084// in the Amazon Elastic Container Service Developer Guide.
5085//
5086// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5087// with awserr.Error's Code and Message methods to get detailed information about
5088// the error.
5089//
5090// See the AWS API reference guide for Amazon EC2 Container Service's
5091// API operation UpdateContainerAgent for usage and error information.
5092//
5093// Returned Error Types:
5094//   * ServerException
5095//   These errors are usually caused by a server issue.
5096//
5097//   * ClientException
5098//   These errors are usually caused by a client action, such as using an action
5099//   or resource on behalf of a user that doesn't have permissions to use the
5100//   action or resource, or specifying an identifier that is not valid.
5101//
5102//   * InvalidParameterException
5103//   The specified parameter is invalid. Review the available parameters for the
5104//   API request.
5105//
5106//   * ClusterNotFoundException
5107//   The specified cluster could not be found. You can view your available clusters
5108//   with ListClusters. Amazon ECS clusters are Region-specific.
5109//
5110//   * UpdateInProgressException
5111//   There is already a current Amazon ECS container agent update in progress
5112//   on the specified container instance. If the container agent becomes disconnected
5113//   while it is in a transitional stage, such as PENDING or STAGING, the update
5114//   process can get stuck in that state. However, when the agent reconnects,
5115//   it resumes where it stopped previously.
5116//
5117//   * NoUpdateAvailableException
5118//   There is no update available for this Amazon ECS container agent. This could
5119//   be because the agent is already running the latest version, or it is so old
5120//   that there is no update path to the current version.
5121//
5122//   * MissingVersionException
5123//   Amazon ECS is unable to determine the current version of the Amazon ECS container
5124//   agent on the container instance and does not have enough information to proceed
5125//   with an update. This could be because the agent running on the container
5126//   instance is an older or custom version that does not use our version information.
5127//
5128// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
5129func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
5130	req, out := c.UpdateContainerAgentRequest(input)
5131	return out, req.Send()
5132}
5133
5134// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
5135// the ability to pass a context and additional request options.
5136//
5137// See UpdateContainerAgent for details on how to use this API operation.
5138//
5139// The context must be non-nil and will be used for request cancellation. If
5140// the context is nil a panic will occur. In the future the SDK may create
5141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5142// for more information on using Contexts.
5143func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
5144	req, out := c.UpdateContainerAgentRequest(input)
5145	req.SetContext(ctx)
5146	req.ApplyOptions(opts...)
5147	return out, req.Send()
5148}
5149
5150const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
5151
5152// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
5153// client's request for the UpdateContainerInstancesState operation. The "output" return
5154// value will be populated with the request's response once the request completes
5155// successfully.
5156//
5157// Use "Send" method on the returned Request to send the API call to the service.
5158// the "output" return value is not valid until after Send returns without error.
5159//
5160// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
5161// API call, and error handling.
5162//
5163// This method is useful when you want to inject custom logic or configuration
5164// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5165//
5166//
5167//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
5168//    req, resp := client.UpdateContainerInstancesStateRequest(params)
5169//
5170//    err := req.Send()
5171//    if err == nil { // resp is now filled
5172//        fmt.Println(resp)
5173//    }
5174//
5175// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5176func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
5177	op := &request.Operation{
5178		Name:       opUpdateContainerInstancesState,
5179		HTTPMethod: "POST",
5180		HTTPPath:   "/",
5181	}
5182
5183	if input == nil {
5184		input = &UpdateContainerInstancesStateInput{}
5185	}
5186
5187	output = &UpdateContainerInstancesStateOutput{}
5188	req = c.newRequest(op, input, output)
5189	return
5190}
5191
5192// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
5193//
5194// Modifies the status of an Amazon ECS container instance.
5195//
5196// Once a container instance has reached an ACTIVE state, you can change the
5197// status of a container instance to DRAINING to manually remove an instance
5198// from a cluster, for example to perform system updates, update the Docker
5199// daemon, or scale down the cluster size.
5200//
5201// A container instance cannot be changed to DRAINING until it has reached an
5202// ACTIVE status. If the instance is in any other status, an error will be received.
5203//
5204// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
5205// from being scheduled for placement on the container instance and replacement
5206// service tasks are started on other container instances in the cluster if
5207// the resources are available. Service tasks on the container instance that
5208// are in the PENDING state are stopped immediately.
5209//
5210// Service tasks on the container instance that are in the RUNNING state are
5211// stopped and replaced according to the service's deployment configuration
5212// parameters, minimumHealthyPercent and maximumPercent. You can change the
5213// deployment configuration of your service using UpdateService.
5214//
5215//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5216//    temporarily during task replacement. For example, desiredCount is four
5217//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5218//    before starting two new tasks. If the minimum is 100%, the service scheduler
5219//    can't remove existing tasks until the replacement tasks are considered
5220//    healthy. Tasks for services that do not use a load balancer are considered
5221//    healthy if they are in the RUNNING state. Tasks for services that use
5222//    a load balancer are considered healthy if they are in the RUNNING state
5223//    and the container instance they are hosted on is reported as healthy by
5224//    the load balancer.
5225//
5226//    * The maximumPercent parameter represents an upper limit on the number
5227//    of running tasks during task replacement, which enables you to define
5228//    the replacement batch size. For example, if desiredCount is four tasks,
5229//    a maximum of 200% starts four new tasks before stopping the four tasks
5230//    to be drained, provided that the cluster resources required to do this
5231//    are available. If the maximum is 100%, then replacement tasks can't start
5232//    until the draining tasks have stopped.
5233//
5234// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
5235// You must wait for them to finish or stop them manually.
5236//
5237// A container instance has completed draining when it has no more RUNNING tasks.
5238// You can verify this using ListTasks.
5239//
5240// When a container instance has been drained, you can set a container instance
5241// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
5242// can begin scheduling tasks on the instance again.
5243//
5244// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5245// with awserr.Error's Code and Message methods to get detailed information about
5246// the error.
5247//
5248// See the AWS API reference guide for Amazon EC2 Container Service's
5249// API operation UpdateContainerInstancesState for usage and error information.
5250//
5251// Returned Error Types:
5252//   * ServerException
5253//   These errors are usually caused by a server issue.
5254//
5255//   * ClientException
5256//   These errors are usually caused by a client action, such as using an action
5257//   or resource on behalf of a user that doesn't have permissions to use the
5258//   action or resource, or specifying an identifier that is not valid.
5259//
5260//   * InvalidParameterException
5261//   The specified parameter is invalid. Review the available parameters for the
5262//   API request.
5263//
5264//   * ClusterNotFoundException
5265//   The specified cluster could not be found. You can view your available clusters
5266//   with ListClusters. Amazon ECS clusters are Region-specific.
5267//
5268// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5269func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
5270	req, out := c.UpdateContainerInstancesStateRequest(input)
5271	return out, req.Send()
5272}
5273
5274// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
5275// the ability to pass a context and additional request options.
5276//
5277// See UpdateContainerInstancesState for details on how to use this API operation.
5278//
5279// The context must be non-nil and will be used for request cancellation. If
5280// the context is nil a panic will occur. In the future the SDK may create
5281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5282// for more information on using Contexts.
5283func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
5284	req, out := c.UpdateContainerInstancesStateRequest(input)
5285	req.SetContext(ctx)
5286	req.ApplyOptions(opts...)
5287	return out, req.Send()
5288}
5289
5290const opUpdateService = "UpdateService"
5291
5292// UpdateServiceRequest generates a "aws/request.Request" representing the
5293// client's request for the UpdateService operation. The "output" return
5294// value will be populated with the request's response once the request completes
5295// successfully.
5296//
5297// Use "Send" method on the returned Request to send the API call to the service.
5298// the "output" return value is not valid until after Send returns without error.
5299//
5300// See UpdateService for more information on using the UpdateService
5301// API call, and error handling.
5302//
5303// This method is useful when you want to inject custom logic or configuration
5304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5305//
5306//
5307//    // Example sending a request using the UpdateServiceRequest method.
5308//    req, resp := client.UpdateServiceRequest(params)
5309//
5310//    err := req.Send()
5311//    if err == nil { // resp is now filled
5312//        fmt.Println(resp)
5313//    }
5314//
5315// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5316func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
5317	op := &request.Operation{
5318		Name:       opUpdateService,
5319		HTTPMethod: "POST",
5320		HTTPPath:   "/",
5321	}
5322
5323	if input == nil {
5324		input = &UpdateServiceInput{}
5325	}
5326
5327	output = &UpdateServiceOutput{}
5328	req = c.newRequest(op, input, output)
5329	return
5330}
5331
5332// UpdateService API operation for Amazon EC2 Container Service.
5333//
5334//
5335// Updating the task placement strategies and constraints on an Amazon ECS service
5336// remains in preview and is a Beta Service as defined by and subject to the
5337// Beta Service Participation Service Terms located at https://aws.amazon.com/service-terms
5338// (https://aws.amazon.com/service-terms) ("Beta Terms"). These Beta Terms apply
5339// to your participation in this preview.
5340//
5341// Modifies the parameters of a service.
5342//
5343// For services using the rolling update (ECS) deployment controller, the desired
5344// count, deployment configuration, network configuration, task placement constraints
5345// and strategies, or task definition used can be updated.
5346//
5347// For services using the blue/green (CODE_DEPLOY) deployment controller, only
5348// the desired count, deployment configuration, task placement constraints and
5349// strategies, and health check grace period can be updated using this API.
5350// If the network configuration, platform version, or task definition need to
5351// be updated, a new AWS CodeDeploy deployment should be created. For more information,
5352// see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
5353// in the AWS CodeDeploy API Reference.
5354//
5355// For services using an external deployment controller, you can update only
5356// the desired count, task placement constraints and strategies, and health
5357// check grace period using this API. If the launch type, load balancer, network
5358// configuration, platform version, or task definition need to be updated, you
5359// should create a new task set. For more information, see CreateTaskSet.
5360//
5361// You can add to or subtract from the number of instantiations of a task definition
5362// in a service by specifying the cluster that the service is running in and
5363// a new desiredCount parameter.
5364//
5365// If you have updated the Docker image of your application, you can create
5366// a new task definition with that image and deploy it to your service. The
5367// service scheduler uses the minimum healthy percent and maximum percent parameters
5368// (in the service's deployment configuration) to determine the deployment strategy.
5369//
5370// If your updated Docker image uses the same tag as what is in the existing
5371// task definition for your service (for example, my_image:latest), you do not
5372// need to create a new revision of your task definition. You can update the
5373// service using the forceNewDeployment option. The new tasks launched by the
5374// deployment pull the current image/tag combination from your repository when
5375// they start.
5376//
5377// You can also update the deployment configuration of a service. When a deployment
5378// is triggered by updating the task definition of a service, the service scheduler
5379// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
5380// to determine the deployment strategy.
5381//
5382//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5383//    temporarily during a deployment. For example, if desiredCount is four
5384//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5385//    before starting two new tasks. Tasks for services that do not use a load
5386//    balancer are considered healthy if they are in the RUNNING state. Tasks
5387//    for services that use a load balancer are considered healthy if they are
5388//    in the RUNNING state and the container instance they are hosted on is
5389//    reported as healthy by the load balancer.
5390//
5391//    * The maximumPercent parameter represents an upper limit on the number
5392//    of running tasks during a deployment, which enables you to define the
5393//    deployment batch size. For example, if desiredCount is four tasks, a maximum
5394//    of 200% starts four new tasks before stopping the four older tasks (provided
5395//    that the cluster resources required to do this are available).
5396//
5397// When UpdateService stops a task during a deployment, the equivalent of docker
5398// stop is issued to the containers running in the task. This results in a SIGTERM
5399// and a 30-second timeout, after which SIGKILL is sent and the containers are
5400// forcibly stopped. If the container handles the SIGTERM gracefully and exits
5401// within 30 seconds from receiving it, no SIGKILL is sent.
5402//
5403// When the service scheduler launches new tasks, it determines task placement
5404// in your cluster with the following logic:
5405//
5406//    * Determine which of the container instances in your cluster can support
5407//    your service's task definition (for example, they have the required CPU,
5408//    memory, ports, and container instance attributes).
5409//
5410//    * By default, the service scheduler attempts to balance tasks across Availability
5411//    Zones in this manner (although you can choose a different placement strategy):
5412//    Sort the valid container instances by the fewest number of running tasks
5413//    for this service in the same Availability Zone as the instance. For example,
5414//    if zone A has one running service task and zones B and C each have zero,
5415//    valid container instances in either zone B or C are considered optimal
5416//    for placement. Place the new service task on a valid container instance
5417//    in an optimal Availability Zone (based on the previous steps), favoring
5418//    container instances with the fewest number of running tasks for this service.
5419//
5420// When the service scheduler stops running tasks, it attempts to maintain balance
5421// across the Availability Zones in your cluster using the following logic:
5422//
5423//    * Sort the container instances by the largest number of running tasks
5424//    for this service in the same Availability Zone as the instance. For example,
5425//    if zone A has one running service task and zones B and C each have two,
5426//    container instances in either zone B or C are considered optimal for termination.
5427//
5428//    * Stop the task on a container instance in an optimal Availability Zone
5429//    (based on the previous steps), favoring container instances with the largest
5430//    number of running tasks for this service.
5431//
5432// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5433// with awserr.Error's Code and Message methods to get detailed information about
5434// the error.
5435//
5436// See the AWS API reference guide for Amazon EC2 Container Service's
5437// API operation UpdateService for usage and error information.
5438//
5439// Returned Error Types:
5440//   * ServerException
5441//   These errors are usually caused by a server issue.
5442//
5443//   * ClientException
5444//   These errors are usually caused by a client action, such as using an action
5445//   or resource on behalf of a user that doesn't have permissions to use the
5446//   action or resource, or specifying an identifier that is not valid.
5447//
5448//   * InvalidParameterException
5449//   The specified parameter is invalid. Review the available parameters for the
5450//   API request.
5451//
5452//   * ClusterNotFoundException
5453//   The specified cluster could not be found. You can view your available clusters
5454//   with ListClusters. Amazon ECS clusters are Region-specific.
5455//
5456//   * ServiceNotFoundException
5457//   The specified service could not be found. You can view your available services
5458//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5459//
5460//   * ServiceNotActiveException
5461//   The specified service is not active. You can't update a service that is inactive.
5462//   If you have previously deleted a service, you can re-create it with CreateService.
5463//
5464//   * PlatformUnknownException
5465//   The specified platform version does not exist.
5466//
5467//   * PlatformTaskDefinitionIncompatibilityException
5468//   The specified platform version does not satisfy the task definition's required
5469//   capabilities.
5470//
5471//   * AccessDeniedException
5472//   You do not have authorization to perform the requested action.
5473//
5474// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5475func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
5476	req, out := c.UpdateServiceRequest(input)
5477	return out, req.Send()
5478}
5479
5480// UpdateServiceWithContext is the same as UpdateService with the addition of
5481// the ability to pass a context and additional request options.
5482//
5483// See UpdateService for details on how to use this API operation.
5484//
5485// The context must be non-nil and will be used for request cancellation. If
5486// the context is nil a panic will occur. In the future the SDK may create
5487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5488// for more information on using Contexts.
5489func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
5490	req, out := c.UpdateServiceRequest(input)
5491	req.SetContext(ctx)
5492	req.ApplyOptions(opts...)
5493	return out, req.Send()
5494}
5495
5496const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
5497
5498// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
5499// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
5500// value will be populated with the request's response once the request completes
5501// successfully.
5502//
5503// Use "Send" method on the returned Request to send the API call to the service.
5504// the "output" return value is not valid until after Send returns without error.
5505//
5506// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
5507// API call, and error handling.
5508//
5509// This method is useful when you want to inject custom logic or configuration
5510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5511//
5512//
5513//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
5514//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
5515//
5516//    err := req.Send()
5517//    if err == nil { // resp is now filled
5518//        fmt.Println(resp)
5519//    }
5520//
5521// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5522func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
5523	op := &request.Operation{
5524		Name:       opUpdateServicePrimaryTaskSet,
5525		HTTPMethod: "POST",
5526		HTTPPath:   "/",
5527	}
5528
5529	if input == nil {
5530		input = &UpdateServicePrimaryTaskSetInput{}
5531	}
5532
5533	output = &UpdateServicePrimaryTaskSetOutput{}
5534	req = c.newRequest(op, input, output)
5535	return
5536}
5537
5538// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
5539//
5540// Modifies which task set in a service is the primary task set. Any parameters
5541// that are updated on the primary task set in a service will transition to
5542// the service. This is used when a service uses the EXTERNAL deployment controller
5543// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5544// in the Amazon Elastic Container Service Developer Guide.
5545//
5546// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5547// with awserr.Error's Code and Message methods to get detailed information about
5548// the error.
5549//
5550// See the AWS API reference guide for Amazon EC2 Container Service's
5551// API operation UpdateServicePrimaryTaskSet for usage and error information.
5552//
5553// Returned Error Types:
5554//   * ServerException
5555//   These errors are usually caused by a server issue.
5556//
5557//   * ClientException
5558//   These errors are usually caused by a client action, such as using an action
5559//   or resource on behalf of a user that doesn't have permissions to use the
5560//   action or resource, or specifying an identifier that is not valid.
5561//
5562//   * InvalidParameterException
5563//   The specified parameter is invalid. Review the available parameters for the
5564//   API request.
5565//
5566//   * ClusterNotFoundException
5567//   The specified cluster could not be found. You can view your available clusters
5568//   with ListClusters. Amazon ECS clusters are Region-specific.
5569//
5570//   * UnsupportedFeatureException
5571//   The specified task is not supported in this Region.
5572//
5573//   * ServiceNotFoundException
5574//   The specified service could not be found. You can view your available services
5575//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5576//
5577//   * ServiceNotActiveException
5578//   The specified service is not active. You can't update a service that is inactive.
5579//   If you have previously deleted a service, you can re-create it with CreateService.
5580//
5581//   * TaskSetNotFoundException
5582//   The specified task set could not be found. You can view your available task
5583//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5584//   and Region.
5585//
5586//   * AccessDeniedException
5587//   You do not have authorization to perform the requested action.
5588//
5589// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5590func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
5591	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5592	return out, req.Send()
5593}
5594
5595// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
5596// the ability to pass a context and additional request options.
5597//
5598// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
5599//
5600// The context must be non-nil and will be used for request cancellation. If
5601// the context is nil a panic will occur. In the future the SDK may create
5602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5603// for more information on using Contexts.
5604func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
5605	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5606	req.SetContext(ctx)
5607	req.ApplyOptions(opts...)
5608	return out, req.Send()
5609}
5610
5611const opUpdateTaskSet = "UpdateTaskSet"
5612
5613// UpdateTaskSetRequest generates a "aws/request.Request" representing the
5614// client's request for the UpdateTaskSet operation. The "output" return
5615// value will be populated with the request's response once the request completes
5616// successfully.
5617//
5618// Use "Send" method on the returned Request to send the API call to the service.
5619// the "output" return value is not valid until after Send returns without error.
5620//
5621// See UpdateTaskSet for more information on using the UpdateTaskSet
5622// API call, and error handling.
5623//
5624// This method is useful when you want to inject custom logic or configuration
5625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5626//
5627//
5628//    // Example sending a request using the UpdateTaskSetRequest method.
5629//    req, resp := client.UpdateTaskSetRequest(params)
5630//
5631//    err := req.Send()
5632//    if err == nil { // resp is now filled
5633//        fmt.Println(resp)
5634//    }
5635//
5636// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5637func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
5638	op := &request.Operation{
5639		Name:       opUpdateTaskSet,
5640		HTTPMethod: "POST",
5641		HTTPPath:   "/",
5642	}
5643
5644	if input == nil {
5645		input = &UpdateTaskSetInput{}
5646	}
5647
5648	output = &UpdateTaskSetOutput{}
5649	req = c.newRequest(op, input, output)
5650	return
5651}
5652
5653// UpdateTaskSet API operation for Amazon EC2 Container Service.
5654//
5655// Modifies a task set. This is used when a service uses the EXTERNAL deployment
5656// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5657// in the Amazon Elastic Container Service Developer Guide.
5658//
5659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5660// with awserr.Error's Code and Message methods to get detailed information about
5661// the error.
5662//
5663// See the AWS API reference guide for Amazon EC2 Container Service's
5664// API operation UpdateTaskSet for usage and error information.
5665//
5666// Returned Error Types:
5667//   * ServerException
5668//   These errors are usually caused by a server issue.
5669//
5670//   * ClientException
5671//   These errors are usually caused by a client action, such as using an action
5672//   or resource on behalf of a user that doesn't have permissions to use the
5673//   action or resource, or specifying an identifier that is not valid.
5674//
5675//   * InvalidParameterException
5676//   The specified parameter is invalid. Review the available parameters for the
5677//   API request.
5678//
5679//   * ClusterNotFoundException
5680//   The specified cluster could not be found. You can view your available clusters
5681//   with ListClusters. Amazon ECS clusters are Region-specific.
5682//
5683//   * UnsupportedFeatureException
5684//   The specified task is not supported in this Region.
5685//
5686//   * AccessDeniedException
5687//   You do not have authorization to perform the requested action.
5688//
5689//   * ServiceNotFoundException
5690//   The specified service could not be found. You can view your available services
5691//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5692//
5693//   * ServiceNotActiveException
5694//   The specified service is not active. You can't update a service that is inactive.
5695//   If you have previously deleted a service, you can re-create it with CreateService.
5696//
5697//   * TaskSetNotFoundException
5698//   The specified task set could not be found. You can view your available task
5699//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5700//   and Region.
5701//
5702// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5703func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
5704	req, out := c.UpdateTaskSetRequest(input)
5705	return out, req.Send()
5706}
5707
5708// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
5709// the ability to pass a context and additional request options.
5710//
5711// See UpdateTaskSet for details on how to use this API operation.
5712//
5713// The context must be non-nil and will be used for request cancellation. If
5714// the context is nil a panic will occur. In the future the SDK may create
5715// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5716// for more information on using Contexts.
5717func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
5718	req, out := c.UpdateTaskSetRequest(input)
5719	req.SetContext(ctx)
5720	req.ApplyOptions(opts...)
5721	return out, req.Send()
5722}
5723
5724// You do not have authorization to perform the requested action.
5725type AccessDeniedException struct {
5726	_            struct{}                  `type:"structure"`
5727	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5728
5729	Message_ *string `locationName:"message" type:"string"`
5730}
5731
5732// String returns the string representation
5733func (s AccessDeniedException) String() string {
5734	return awsutil.Prettify(s)
5735}
5736
5737// GoString returns the string representation
5738func (s AccessDeniedException) GoString() string {
5739	return s.String()
5740}
5741
5742func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5743	return &AccessDeniedException{
5744		RespMetadata: v,
5745	}
5746}
5747
5748// Code returns the exception type name.
5749func (s *AccessDeniedException) Code() string {
5750	return "AccessDeniedException"
5751}
5752
5753// Message returns the exception's message.
5754func (s *AccessDeniedException) Message() string {
5755	if s.Message_ != nil {
5756		return *s.Message_
5757	}
5758	return ""
5759}
5760
5761// OrigErr always returns nil, satisfies awserr.Error interface.
5762func (s *AccessDeniedException) OrigErr() error {
5763	return nil
5764}
5765
5766func (s *AccessDeniedException) Error() string {
5767	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5768}
5769
5770// Status code returns the HTTP status code for the request's response error.
5771func (s *AccessDeniedException) StatusCode() int {
5772	return s.RespMetadata.StatusCode
5773}
5774
5775// RequestID returns the service's response RequestID for request.
5776func (s *AccessDeniedException) RequestID() string {
5777	return s.RespMetadata.RequestID
5778}
5779
5780// An object representing a container instance or task attachment.
5781type Attachment struct {
5782	_ struct{} `type:"structure"`
5783
5784	// Details of the attachment. For elastic network interfaces, this includes
5785	// the network interface ID, the MAC address, the subnet ID, and the private
5786	// IPv4 address.
5787	Details []*KeyValuePair `locationName:"details" type:"list"`
5788
5789	// The unique identifier for the attachment.
5790	Id *string `locationName:"id" type:"string"`
5791
5792	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
5793	// ATTACHED, DETACHING, DETACHED, and DELETED.
5794	Status *string `locationName:"status" type:"string"`
5795
5796	// The type of the attachment, such as ElasticNetworkInterface.
5797	Type *string `locationName:"type" type:"string"`
5798}
5799
5800// String returns the string representation
5801func (s Attachment) String() string {
5802	return awsutil.Prettify(s)
5803}
5804
5805// GoString returns the string representation
5806func (s Attachment) GoString() string {
5807	return s.String()
5808}
5809
5810// SetDetails sets the Details field's value.
5811func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
5812	s.Details = v
5813	return s
5814}
5815
5816// SetId sets the Id field's value.
5817func (s *Attachment) SetId(v string) *Attachment {
5818	s.Id = &v
5819	return s
5820}
5821
5822// SetStatus sets the Status field's value.
5823func (s *Attachment) SetStatus(v string) *Attachment {
5824	s.Status = &v
5825	return s
5826}
5827
5828// SetType sets the Type field's value.
5829func (s *Attachment) SetType(v string) *Attachment {
5830	s.Type = &v
5831	return s
5832}
5833
5834// An object representing a change in state for a task attachment.
5835type AttachmentStateChange struct {
5836	_ struct{} `type:"structure"`
5837
5838	// The Amazon Resource Name (ARN) of the attachment.
5839	//
5840	// AttachmentArn is a required field
5841	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
5842
5843	// The status of the attachment.
5844	//
5845	// Status is a required field
5846	Status *string `locationName:"status" type:"string" required:"true"`
5847}
5848
5849// String returns the string representation
5850func (s AttachmentStateChange) String() string {
5851	return awsutil.Prettify(s)
5852}
5853
5854// GoString returns the string representation
5855func (s AttachmentStateChange) GoString() string {
5856	return s.String()
5857}
5858
5859// Validate inspects the fields of the type to determine if they are valid.
5860func (s *AttachmentStateChange) Validate() error {
5861	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
5862	if s.AttachmentArn == nil {
5863		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
5864	}
5865	if s.Status == nil {
5866		invalidParams.Add(request.NewErrParamRequired("Status"))
5867	}
5868
5869	if invalidParams.Len() > 0 {
5870		return invalidParams
5871	}
5872	return nil
5873}
5874
5875// SetAttachmentArn sets the AttachmentArn field's value.
5876func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
5877	s.AttachmentArn = &v
5878	return s
5879}
5880
5881// SetStatus sets the Status field's value.
5882func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
5883	s.Status = &v
5884	return s
5885}
5886
5887// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
5888// enable you to extend the Amazon ECS data model by adding custom metadata
5889// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
5890// in the Amazon Elastic Container Service Developer Guide.
5891type Attribute struct {
5892	_ struct{} `type:"structure"`
5893
5894	// The name of the attribute. The name must contain between 1 and 128 characters
5895	// and name may contain letters (uppercase and lowercase), numbers, hyphens,
5896	// underscores, forward slashes, back slashes, or periods.
5897	//
5898	// Name is a required field
5899	Name *string `locationName:"name" type:"string" required:"true"`
5900
5901	// The ID of the target. You can specify the short form ID for a resource or
5902	// the full Amazon Resource Name (ARN).
5903	TargetId *string `locationName:"targetId" type:"string"`
5904
5905	// The type of the target with which to attach the attribute. This parameter
5906	// is required if you use the short form ID for a resource instead of the full
5907	// ARN.
5908	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
5909
5910	// The value of the attribute. The value must contain between 1 and 128 characters
5911	// and may contain letters (uppercase and lowercase), numbers, hyphens, underscores,
5912	// periods, at signs (@), forward slashes, back slashes, colons, or spaces.
5913	// The value cannot contain any leading or trailing whitespace.
5914	Value *string `locationName:"value" type:"string"`
5915}
5916
5917// String returns the string representation
5918func (s Attribute) String() string {
5919	return awsutil.Prettify(s)
5920}
5921
5922// GoString returns the string representation
5923func (s Attribute) GoString() string {
5924	return s.String()
5925}
5926
5927// Validate inspects the fields of the type to determine if they are valid.
5928func (s *Attribute) Validate() error {
5929	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5930	if s.Name == nil {
5931		invalidParams.Add(request.NewErrParamRequired("Name"))
5932	}
5933
5934	if invalidParams.Len() > 0 {
5935		return invalidParams
5936	}
5937	return nil
5938}
5939
5940// SetName sets the Name field's value.
5941func (s *Attribute) SetName(v string) *Attribute {
5942	s.Name = &v
5943	return s
5944}
5945
5946// SetTargetId sets the TargetId field's value.
5947func (s *Attribute) SetTargetId(v string) *Attribute {
5948	s.TargetId = &v
5949	return s
5950}
5951
5952// SetTargetType sets the TargetType field's value.
5953func (s *Attribute) SetTargetType(v string) *Attribute {
5954	s.TargetType = &v
5955	return s
5956}
5957
5958// SetValue sets the Value field's value.
5959func (s *Attribute) SetValue(v string) *Attribute {
5960	s.Value = &v
5961	return s
5962}
5963
5964// You can apply up to 10 custom attributes per resource. You can view the attributes
5965// of a resource with ListAttributes. You can remove existing attributes on
5966// a resource with DeleteAttributes.
5967type AttributeLimitExceededException struct {
5968	_            struct{}                  `type:"structure"`
5969	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5970
5971	Message_ *string `locationName:"message" type:"string"`
5972}
5973
5974// String returns the string representation
5975func (s AttributeLimitExceededException) String() string {
5976	return awsutil.Prettify(s)
5977}
5978
5979// GoString returns the string representation
5980func (s AttributeLimitExceededException) GoString() string {
5981	return s.String()
5982}
5983
5984func newErrorAttributeLimitExceededException(v protocol.ResponseMetadata) error {
5985	return &AttributeLimitExceededException{
5986		RespMetadata: v,
5987	}
5988}
5989
5990// Code returns the exception type name.
5991func (s *AttributeLimitExceededException) Code() string {
5992	return "AttributeLimitExceededException"
5993}
5994
5995// Message returns the exception's message.
5996func (s *AttributeLimitExceededException) Message() string {
5997	if s.Message_ != nil {
5998		return *s.Message_
5999	}
6000	return ""
6001}
6002
6003// OrigErr always returns nil, satisfies awserr.Error interface.
6004func (s *AttributeLimitExceededException) OrigErr() error {
6005	return nil
6006}
6007
6008func (s *AttributeLimitExceededException) Error() string {
6009	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6010}
6011
6012// Status code returns the HTTP status code for the request's response error.
6013func (s *AttributeLimitExceededException) StatusCode() int {
6014	return s.RespMetadata.StatusCode
6015}
6016
6017// RequestID returns the service's response RequestID for request.
6018func (s *AttributeLimitExceededException) RequestID() string {
6019	return s.RespMetadata.RequestID
6020}
6021
6022// The details of the Auto Scaling group for the capacity provider.
6023type AutoScalingGroupProvider struct {
6024	_ struct{} `type:"structure"`
6025
6026	// The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
6027	//
6028	// AutoScalingGroupArn is a required field
6029	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"`
6030
6031	// The managed scaling settings for the Auto Scaling group capacity provider.
6032	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
6033
6034	// The managed termination protection setting to use for the Auto Scaling group
6035	// capacity provider. This determines whether the Auto Scaling group has managed
6036	// termination protection.
6037	//
6038	// When using managed termination protection, managed scaling must also be used
6039	// otherwise managed termination protection will not work.
6040	//
6041	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
6042	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
6043	// during a scale-in action. The Auto Scaling group and each instance in the
6044	// Auto Scaling group must have instance protection from scale-in actions enabled
6045	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
6046	// in the AWS Auto Scaling User Guide.
6047	//
6048	// When managed termination protection is disabled, your Amazon EC2 instances
6049	// are not protected from termination when the Auto Scaling group scales in.
6050	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
6051}
6052
6053// String returns the string representation
6054func (s AutoScalingGroupProvider) String() string {
6055	return awsutil.Prettify(s)
6056}
6057
6058// GoString returns the string representation
6059func (s AutoScalingGroupProvider) GoString() string {
6060	return s.String()
6061}
6062
6063// Validate inspects the fields of the type to determine if they are valid.
6064func (s *AutoScalingGroupProvider) Validate() error {
6065	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProvider"}
6066	if s.AutoScalingGroupArn == nil {
6067		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupArn"))
6068	}
6069	if s.ManagedScaling != nil {
6070		if err := s.ManagedScaling.Validate(); err != nil {
6071			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
6072		}
6073	}
6074
6075	if invalidParams.Len() > 0 {
6076		return invalidParams
6077	}
6078	return nil
6079}
6080
6081// SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
6082func (s *AutoScalingGroupProvider) SetAutoScalingGroupArn(v string) *AutoScalingGroupProvider {
6083	s.AutoScalingGroupArn = &v
6084	return s
6085}
6086
6087// SetManagedScaling sets the ManagedScaling field's value.
6088func (s *AutoScalingGroupProvider) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProvider {
6089	s.ManagedScaling = v
6090	return s
6091}
6092
6093// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
6094func (s *AutoScalingGroupProvider) SetManagedTerminationProtection(v string) *AutoScalingGroupProvider {
6095	s.ManagedTerminationProtection = &v
6096	return s
6097}
6098
6099// The details of the Auto Scaling group capacity provider to update.
6100type AutoScalingGroupProviderUpdate struct {
6101	_ struct{} `type:"structure"`
6102
6103	// The managed scaling settings for the Auto Scaling group capacity provider.
6104	//
6105	// When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
6106	// actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
6107	// policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
6108	// value as the target value for the metric. For more information, see Using
6109	// Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
6110	// in the Amazon Elastic Container Service Developer Guide.
6111	//
6112	// If managed scaling is disabled, the user must manage the scaling of the Auto
6113	// Scaling group.
6114	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
6115
6116	// The managed termination protection setting to use for the Auto Scaling group
6117	// capacity provider. This determines whether the Auto Scaling group has managed
6118	// termination protection.
6119	//
6120	// When using managed termination protection, managed scaling must also be used
6121	// otherwise managed termination protection will not work.
6122	//
6123	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
6124	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
6125	// during a scale-in action. The Auto Scaling group and each instance in the
6126	// Auto Scaling group must have instance protection from scale-in actions enabled
6127	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
6128	// in the AWS Auto Scaling User Guide.
6129	//
6130	// When managed termination protection is disabled, your Amazon EC2 instances
6131	// are not protected from termination when the Auto Scaling group scales in.
6132	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
6133}
6134
6135// String returns the string representation
6136func (s AutoScalingGroupProviderUpdate) String() string {
6137	return awsutil.Prettify(s)
6138}
6139
6140// GoString returns the string representation
6141func (s AutoScalingGroupProviderUpdate) GoString() string {
6142	return s.String()
6143}
6144
6145// Validate inspects the fields of the type to determine if they are valid.
6146func (s *AutoScalingGroupProviderUpdate) Validate() error {
6147	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProviderUpdate"}
6148	if s.ManagedScaling != nil {
6149		if err := s.ManagedScaling.Validate(); err != nil {
6150			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
6151		}
6152	}
6153
6154	if invalidParams.Len() > 0 {
6155		return invalidParams
6156	}
6157	return nil
6158}
6159
6160// SetManagedScaling sets the ManagedScaling field's value.
6161func (s *AutoScalingGroupProviderUpdate) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProviderUpdate {
6162	s.ManagedScaling = v
6163	return s
6164}
6165
6166// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
6167func (s *AutoScalingGroupProviderUpdate) SetManagedTerminationProtection(v string) *AutoScalingGroupProviderUpdate {
6168	s.ManagedTerminationProtection = &v
6169	return s
6170}
6171
6172// An object representing the networking details for a task or service.
6173type AwsVpcConfiguration struct {
6174	_ struct{} `type:"structure"`
6175
6176	// Whether the task's elastic network interface receives a public IP address.
6177	// The default value is DISABLED.
6178	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
6179
6180	// The IDs of the security groups associated with the task or service. If you
6181	// do not specify a security group, the default security group for the VPC is
6182	// used. There is a limit of 5 security groups that can be specified per AwsVpcConfiguration.
6183	//
6184	// All specified security groups must be from the same VPC.
6185	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
6186
6187	// The IDs of the subnets associated with the task or service. There is a limit
6188	// of 16 subnets that can be specified per AwsVpcConfiguration.
6189	//
6190	// All specified subnets must be from the same VPC.
6191	//
6192	// Subnets is a required field
6193	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
6194}
6195
6196// String returns the string representation
6197func (s AwsVpcConfiguration) String() string {
6198	return awsutil.Prettify(s)
6199}
6200
6201// GoString returns the string representation
6202func (s AwsVpcConfiguration) GoString() string {
6203	return s.String()
6204}
6205
6206// Validate inspects the fields of the type to determine if they are valid.
6207func (s *AwsVpcConfiguration) Validate() error {
6208	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
6209	if s.Subnets == nil {
6210		invalidParams.Add(request.NewErrParamRequired("Subnets"))
6211	}
6212
6213	if invalidParams.Len() > 0 {
6214		return invalidParams
6215	}
6216	return nil
6217}
6218
6219// SetAssignPublicIp sets the AssignPublicIp field's value.
6220func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
6221	s.AssignPublicIp = &v
6222	return s
6223}
6224
6225// SetSecurityGroups sets the SecurityGroups field's value.
6226func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
6227	s.SecurityGroups = v
6228	return s
6229}
6230
6231// SetSubnets sets the Subnets field's value.
6232func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
6233	s.Subnets = v
6234	return s
6235}
6236
6237// Your AWS account has been blocked. For more information, contact AWS Support
6238// (http://aws.amazon.com/contact-us/).
6239type BlockedException struct {
6240	_            struct{}                  `type:"structure"`
6241	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6242
6243	Message_ *string `locationName:"message" type:"string"`
6244}
6245
6246// String returns the string representation
6247func (s BlockedException) String() string {
6248	return awsutil.Prettify(s)
6249}
6250
6251// GoString returns the string representation
6252func (s BlockedException) GoString() string {
6253	return s.String()
6254}
6255
6256func newErrorBlockedException(v protocol.ResponseMetadata) error {
6257	return &BlockedException{
6258		RespMetadata: v,
6259	}
6260}
6261
6262// Code returns the exception type name.
6263func (s *BlockedException) Code() string {
6264	return "BlockedException"
6265}
6266
6267// Message returns the exception's message.
6268func (s *BlockedException) Message() string {
6269	if s.Message_ != nil {
6270		return *s.Message_
6271	}
6272	return ""
6273}
6274
6275// OrigErr always returns nil, satisfies awserr.Error interface.
6276func (s *BlockedException) OrigErr() error {
6277	return nil
6278}
6279
6280func (s *BlockedException) Error() string {
6281	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6282}
6283
6284// Status code returns the HTTP status code for the request's response error.
6285func (s *BlockedException) StatusCode() int {
6286	return s.RespMetadata.StatusCode
6287}
6288
6289// RequestID returns the service's response RequestID for request.
6290func (s *BlockedException) RequestID() string {
6291	return s.RespMetadata.RequestID
6292}
6293
6294// The details of a capacity provider.
6295type CapacityProvider struct {
6296	_ struct{} `type:"structure"`
6297
6298	// The Auto Scaling group settings for the capacity provider.
6299	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"`
6300
6301	// The Amazon Resource Name (ARN) that identifies the capacity provider.
6302	CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"`
6303
6304	// The name of the capacity provider.
6305	Name *string `locationName:"name" type:"string"`
6306
6307	// The current status of the capacity provider. Only capacity providers in an
6308	// ACTIVE state can be used in a cluster. When a capacity provider is successfully
6309	// deleted, it will have an INACTIVE status.
6310	Status *string `locationName:"status" type:"string" enum:"CapacityProviderStatus"`
6311
6312	// The metadata that you apply to the capacity provider to help you categorize
6313	// and organize it. Each tag consists of a key and an optional value, both of
6314	// which you define.
6315	//
6316	// The following basic restrictions apply to tags:
6317	//
6318	//    * Maximum number of tags per resource - 50
6319	//
6320	//    * For each resource, each tag key must be unique, and each tag key can
6321	//    have only one value.
6322	//
6323	//    * Maximum key length - 128 Unicode characters in UTF-8
6324	//
6325	//    * Maximum value length - 256 Unicode characters in UTF-8
6326	//
6327	//    * If your tagging schema is used across multiple services and resources,
6328	//    remember that other services may have restrictions on allowed characters.
6329	//    Generally allowed characters are: letters, numbers, and spaces representable
6330	//    in UTF-8, and the following characters: + - = . _ : / @.
6331	//
6332	//    * Tag keys and values are case-sensitive.
6333	//
6334	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6335	//    as a prefix for either keys or values as it is reserved for AWS use. You
6336	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6337	//    prefix do not count against your tags per resource limit.
6338	Tags []*Tag `locationName:"tags" type:"list"`
6339
6340	// The update status of the capacity provider. The following are the possible
6341	// states that will be returned.
6342	//
6343	// DELETE_IN_PROGRESS
6344	//
6345	// The capacity provider is in the process of being deleted.
6346	//
6347	// DELETE_COMPLETE
6348	//
6349	// The capacity provider has been successfully deleted and will have an INACTIVE
6350	// status.
6351	//
6352	// DELETE_FAILED
6353	//
6354	// The capacity provider was unable to be deleted. The update status reason
6355	// will provide further details about why the delete failed.
6356	UpdateStatus *string `locationName:"updateStatus" type:"string" enum:"CapacityProviderUpdateStatus"`
6357
6358	// The update status reason. This provides further details about the update
6359	// status for the capacity provider.
6360	UpdateStatusReason *string `locationName:"updateStatusReason" type:"string"`
6361}
6362
6363// String returns the string representation
6364func (s CapacityProvider) String() string {
6365	return awsutil.Prettify(s)
6366}
6367
6368// GoString returns the string representation
6369func (s CapacityProvider) GoString() string {
6370	return s.String()
6371}
6372
6373// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
6374func (s *CapacityProvider) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CapacityProvider {
6375	s.AutoScalingGroupProvider = v
6376	return s
6377}
6378
6379// SetCapacityProviderArn sets the CapacityProviderArn field's value.
6380func (s *CapacityProvider) SetCapacityProviderArn(v string) *CapacityProvider {
6381	s.CapacityProviderArn = &v
6382	return s
6383}
6384
6385// SetName sets the Name field's value.
6386func (s *CapacityProvider) SetName(v string) *CapacityProvider {
6387	s.Name = &v
6388	return s
6389}
6390
6391// SetStatus sets the Status field's value.
6392func (s *CapacityProvider) SetStatus(v string) *CapacityProvider {
6393	s.Status = &v
6394	return s
6395}
6396
6397// SetTags sets the Tags field's value.
6398func (s *CapacityProvider) SetTags(v []*Tag) *CapacityProvider {
6399	s.Tags = v
6400	return s
6401}
6402
6403// SetUpdateStatus sets the UpdateStatus field's value.
6404func (s *CapacityProvider) SetUpdateStatus(v string) *CapacityProvider {
6405	s.UpdateStatus = &v
6406	return s
6407}
6408
6409// SetUpdateStatusReason sets the UpdateStatusReason field's value.
6410func (s *CapacityProvider) SetUpdateStatusReason(v string) *CapacityProvider {
6411	s.UpdateStatusReason = &v
6412	return s
6413}
6414
6415// The details of a capacity provider strategy.
6416type CapacityProviderStrategyItem struct {
6417	_ struct{} `type:"structure"`
6418
6419	// The base value designates how many tasks, at a minimum, to run on the specified
6420	// capacity provider. Only one capacity provider in a capacity provider strategy
6421	// can have a base defined.
6422	Base *int64 `locationName:"base" type:"integer"`
6423
6424	// The short name of the capacity provider.
6425	//
6426	// CapacityProvider is a required field
6427	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
6428
6429	// The weight value designates the relative percentage of the total number of
6430	// tasks launched that should use the specified capacity provider.
6431	//
6432	// For example, if you have a strategy that contains two capacity providers
6433	// and both have a weight of 1, then when the base is satisfied, the tasks will
6434	// be split evenly across the two capacity providers. Using that same logic,
6435	// if you specify a weight of 1 for capacityProviderA and a weight of 4 for
6436	// capacityProviderB, then for every one task that is run using capacityProviderA,
6437	// four tasks would use capacityProviderB.
6438	Weight *int64 `locationName:"weight" type:"integer"`
6439}
6440
6441// String returns the string representation
6442func (s CapacityProviderStrategyItem) String() string {
6443	return awsutil.Prettify(s)
6444}
6445
6446// GoString returns the string representation
6447func (s CapacityProviderStrategyItem) GoString() string {
6448	return s.String()
6449}
6450
6451// Validate inspects the fields of the type to determine if they are valid.
6452func (s *CapacityProviderStrategyItem) Validate() error {
6453	invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
6454	if s.CapacityProvider == nil {
6455		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
6456	}
6457
6458	if invalidParams.Len() > 0 {
6459		return invalidParams
6460	}
6461	return nil
6462}
6463
6464// SetBase sets the Base field's value.
6465func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
6466	s.Base = &v
6467	return s
6468}
6469
6470// SetCapacityProvider sets the CapacityProvider field's value.
6471func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
6472	s.CapacityProvider = &v
6473	return s
6474}
6475
6476// SetWeight sets the Weight field's value.
6477func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
6478	s.Weight = &v
6479	return s
6480}
6481
6482// These errors are usually caused by a client action, such as using an action
6483// or resource on behalf of a user that doesn't have permissions to use the
6484// action or resource, or specifying an identifier that is not valid.
6485type ClientException struct {
6486	_            struct{}                  `type:"structure"`
6487	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6488
6489	Message_ *string `locationName:"message" type:"string"`
6490}
6491
6492// String returns the string representation
6493func (s ClientException) String() string {
6494	return awsutil.Prettify(s)
6495}
6496
6497// GoString returns the string representation
6498func (s ClientException) GoString() string {
6499	return s.String()
6500}
6501
6502func newErrorClientException(v protocol.ResponseMetadata) error {
6503	return &ClientException{
6504		RespMetadata: v,
6505	}
6506}
6507
6508// Code returns the exception type name.
6509func (s *ClientException) Code() string {
6510	return "ClientException"
6511}
6512
6513// Message returns the exception's message.
6514func (s *ClientException) Message() string {
6515	if s.Message_ != nil {
6516		return *s.Message_
6517	}
6518	return ""
6519}
6520
6521// OrigErr always returns nil, satisfies awserr.Error interface.
6522func (s *ClientException) OrigErr() error {
6523	return nil
6524}
6525
6526func (s *ClientException) Error() string {
6527	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6528}
6529
6530// Status code returns the HTTP status code for the request's response error.
6531func (s *ClientException) StatusCode() int {
6532	return s.RespMetadata.StatusCode
6533}
6534
6535// RequestID returns the service's response RequestID for request.
6536func (s *ClientException) RequestID() string {
6537	return s.RespMetadata.RequestID
6538}
6539
6540// A regional grouping of one or more container instances on which you can run
6541// task requests. Each account receives a default cluster the first time you
6542// use the Amazon ECS service, but you may also create other clusters. Clusters
6543// may contain more than one instance type simultaneously.
6544type Cluster struct {
6545	_ struct{} `type:"structure"`
6546
6547	// The number of services that are running on the cluster in an ACTIVE state.
6548	// You can view these services with ListServices.
6549	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
6550
6551	// The resources attached to a cluster. When using a capacity provider with
6552	// a cluster, the Auto Scaling plan that is created will be returned as a cluster
6553	// attachment.
6554	Attachments []*Attachment `locationName:"attachments" type:"list"`
6555
6556	// The status of the capacity providers associated with the cluster. The following
6557	// are the states that will be returned:
6558	//
6559	// UPDATE_IN_PROGRESS
6560	//
6561	// The available capacity providers for the cluster are updating. This occurs
6562	// when the Auto Scaling plan is provisioning or deprovisioning.
6563	//
6564	// UPDATE_COMPLETE
6565	//
6566	// The capacity providers have successfully updated.
6567	//
6568	// UPDATE_FAILED
6569	//
6570	// The capacity provider updates failed.
6571	AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"`
6572
6573	// The capacity providers associated with the cluster.
6574	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
6575
6576	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
6577	// the arn:aws:ecs namespace, followed by the Region of the cluster, the AWS
6578	// account ID of the cluster owner, the cluster namespace, and then the cluster
6579	// name. For example, arn:aws:ecs:region:012345678910:cluster/test.
6580	ClusterArn *string `locationName:"clusterArn" type:"string"`
6581
6582	// A user-generated string that you use to identify your cluster.
6583	ClusterName *string `locationName:"clusterName" type:"string"`
6584
6585	// The default capacity provider strategy for the cluster. When services or
6586	// tasks are run in the cluster with no launch type or capacity provider strategy
6587	// specified, the default capacity provider strategy is used.
6588	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
6589
6590	// The number of tasks in the cluster that are in the PENDING state.
6591	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
6592
6593	// The number of container instances registered into the cluster. This includes
6594	// container instances in both ACTIVE and DRAINING status.
6595	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
6596
6597	// The number of tasks in the cluster that are in the RUNNING state.
6598	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
6599
6600	// The settings for the cluster. This parameter indicates whether CloudWatch
6601	// Container Insights is enabled or disabled for a cluster.
6602	Settings []*ClusterSetting `locationName:"settings" type:"list"`
6603
6604	// Additional information about your clusters that are separated by launch type,
6605	// including:
6606	//
6607	//    * runningEC2TasksCount
6608	//
6609	//    * RunningFargateTasksCount
6610	//
6611	//    * pendingEC2TasksCount
6612	//
6613	//    * pendingFargateTasksCount
6614	//
6615	//    * activeEC2ServiceCount
6616	//
6617	//    * activeFargateServiceCount
6618	//
6619	//    * drainingEC2ServiceCount
6620	//
6621	//    * drainingFargateServiceCount
6622	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
6623
6624	// The status of the cluster. The following are the possible states that will
6625	// be returned.
6626	//
6627	// ACTIVE
6628	//
6629	// The cluster is ready to accept tasks and if applicable you can register container
6630	// instances with the cluster.
6631	//
6632	// PROVISIONING
6633	//
6634	// The cluster has capacity providers associated with it and the resources needed
6635	// for the capacity provider are being created.
6636	//
6637	// DEPROVISIONING
6638	//
6639	// The cluster has capacity providers associated with it and the resources needed
6640	// for the capacity provider are being deleted.
6641	//
6642	// FAILED
6643	//
6644	// The cluster has capacity providers associated with it and the resources needed
6645	// for the capacity provider have failed to create.
6646	//
6647	// INACTIVE
6648	//
6649	// The cluster has been deleted. Clusters with an INACTIVE status may remain
6650	// discoverable in your account for a period of time. However, this behavior
6651	// is subject to change in the future, so you should not rely on INACTIVE clusters
6652	// persisting.
6653	Status *string `locationName:"status" type:"string"`
6654
6655	// The metadata that you apply to the cluster to help you categorize and organize
6656	// them. Each tag consists of a key and an optional value, both of which you
6657	// define.
6658	//
6659	// The following basic restrictions apply to tags:
6660	//
6661	//    * Maximum number of tags per resource - 50
6662	//
6663	//    * For each resource, each tag key must be unique, and each tag key can
6664	//    have only one value.
6665	//
6666	//    * Maximum key length - 128 Unicode characters in UTF-8
6667	//
6668	//    * Maximum value length - 256 Unicode characters in UTF-8
6669	//
6670	//    * If your tagging schema is used across multiple services and resources,
6671	//    remember that other services may have restrictions on allowed characters.
6672	//    Generally allowed characters are: letters, numbers, and spaces representable
6673	//    in UTF-8, and the following characters: + - = . _ : / @.
6674	//
6675	//    * Tag keys and values are case-sensitive.
6676	//
6677	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6678	//    as a prefix for either keys or values as it is reserved for AWS use. You
6679	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6680	//    prefix do not count against your tags per resource limit.
6681	Tags []*Tag `locationName:"tags" type:"list"`
6682}
6683
6684// String returns the string representation
6685func (s Cluster) String() string {
6686	return awsutil.Prettify(s)
6687}
6688
6689// GoString returns the string representation
6690func (s Cluster) GoString() string {
6691	return s.String()
6692}
6693
6694// SetActiveServicesCount sets the ActiveServicesCount field's value.
6695func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
6696	s.ActiveServicesCount = &v
6697	return s
6698}
6699
6700// SetAttachments sets the Attachments field's value.
6701func (s *Cluster) SetAttachments(v []*Attachment) *Cluster {
6702	s.Attachments = v
6703	return s
6704}
6705
6706// SetAttachmentsStatus sets the AttachmentsStatus field's value.
6707func (s *Cluster) SetAttachmentsStatus(v string) *Cluster {
6708	s.AttachmentsStatus = &v
6709	return s
6710}
6711
6712// SetCapacityProviders sets the CapacityProviders field's value.
6713func (s *Cluster) SetCapacityProviders(v []*string) *Cluster {
6714	s.CapacityProviders = v
6715	return s
6716}
6717
6718// SetClusterArn sets the ClusterArn field's value.
6719func (s *Cluster) SetClusterArn(v string) *Cluster {
6720	s.ClusterArn = &v
6721	return s
6722}
6723
6724// SetClusterName sets the ClusterName field's value.
6725func (s *Cluster) SetClusterName(v string) *Cluster {
6726	s.ClusterName = &v
6727	return s
6728}
6729
6730// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
6731func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster {
6732	s.DefaultCapacityProviderStrategy = v
6733	return s
6734}
6735
6736// SetPendingTasksCount sets the PendingTasksCount field's value.
6737func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
6738	s.PendingTasksCount = &v
6739	return s
6740}
6741
6742// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
6743func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
6744	s.RegisteredContainerInstancesCount = &v
6745	return s
6746}
6747
6748// SetRunningTasksCount sets the RunningTasksCount field's value.
6749func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
6750	s.RunningTasksCount = &v
6751	return s
6752}
6753
6754// SetSettings sets the Settings field's value.
6755func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
6756	s.Settings = v
6757	return s
6758}
6759
6760// SetStatistics sets the Statistics field's value.
6761func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
6762	s.Statistics = v
6763	return s
6764}
6765
6766// SetStatus sets the Status field's value.
6767func (s *Cluster) SetStatus(v string) *Cluster {
6768	s.Status = &v
6769	return s
6770}
6771
6772// SetTags sets the Tags field's value.
6773func (s *Cluster) SetTags(v []*Tag) *Cluster {
6774	s.Tags = v
6775	return s
6776}
6777
6778// You cannot delete a cluster that has registered container instances. First,
6779// deregister the container instances before you can delete the cluster. For
6780// more information, see DeregisterContainerInstance.
6781type ClusterContainsContainerInstancesException struct {
6782	_            struct{}                  `type:"structure"`
6783	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6784
6785	Message_ *string `locationName:"message" type:"string"`
6786}
6787
6788// String returns the string representation
6789func (s ClusterContainsContainerInstancesException) String() string {
6790	return awsutil.Prettify(s)
6791}
6792
6793// GoString returns the string representation
6794func (s ClusterContainsContainerInstancesException) GoString() string {
6795	return s.String()
6796}
6797
6798func newErrorClusterContainsContainerInstancesException(v protocol.ResponseMetadata) error {
6799	return &ClusterContainsContainerInstancesException{
6800		RespMetadata: v,
6801	}
6802}
6803
6804// Code returns the exception type name.
6805func (s *ClusterContainsContainerInstancesException) Code() string {
6806	return "ClusterContainsContainerInstancesException"
6807}
6808
6809// Message returns the exception's message.
6810func (s *ClusterContainsContainerInstancesException) Message() string {
6811	if s.Message_ != nil {
6812		return *s.Message_
6813	}
6814	return ""
6815}
6816
6817// OrigErr always returns nil, satisfies awserr.Error interface.
6818func (s *ClusterContainsContainerInstancesException) OrigErr() error {
6819	return nil
6820}
6821
6822func (s *ClusterContainsContainerInstancesException) Error() string {
6823	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6824}
6825
6826// Status code returns the HTTP status code for the request's response error.
6827func (s *ClusterContainsContainerInstancesException) StatusCode() int {
6828	return s.RespMetadata.StatusCode
6829}
6830
6831// RequestID returns the service's response RequestID for request.
6832func (s *ClusterContainsContainerInstancesException) RequestID() string {
6833	return s.RespMetadata.RequestID
6834}
6835
6836// You cannot delete a cluster that contains services. First, update the service
6837// to reduce its desired task count to 0 and then delete the service. For more
6838// information, see UpdateService and DeleteService.
6839type ClusterContainsServicesException struct {
6840	_            struct{}                  `type:"structure"`
6841	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6842
6843	Message_ *string `locationName:"message" type:"string"`
6844}
6845
6846// String returns the string representation
6847func (s ClusterContainsServicesException) String() string {
6848	return awsutil.Prettify(s)
6849}
6850
6851// GoString returns the string representation
6852func (s ClusterContainsServicesException) GoString() string {
6853	return s.String()
6854}
6855
6856func newErrorClusterContainsServicesException(v protocol.ResponseMetadata) error {
6857	return &ClusterContainsServicesException{
6858		RespMetadata: v,
6859	}
6860}
6861
6862// Code returns the exception type name.
6863func (s *ClusterContainsServicesException) Code() string {
6864	return "ClusterContainsServicesException"
6865}
6866
6867// Message returns the exception's message.
6868func (s *ClusterContainsServicesException) Message() string {
6869	if s.Message_ != nil {
6870		return *s.Message_
6871	}
6872	return ""
6873}
6874
6875// OrigErr always returns nil, satisfies awserr.Error interface.
6876func (s *ClusterContainsServicesException) OrigErr() error {
6877	return nil
6878}
6879
6880func (s *ClusterContainsServicesException) Error() string {
6881	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6882}
6883
6884// Status code returns the HTTP status code for the request's response error.
6885func (s *ClusterContainsServicesException) StatusCode() int {
6886	return s.RespMetadata.StatusCode
6887}
6888
6889// RequestID returns the service's response RequestID for request.
6890func (s *ClusterContainsServicesException) RequestID() string {
6891	return s.RespMetadata.RequestID
6892}
6893
6894// You cannot delete a cluster that has active tasks.
6895type ClusterContainsTasksException struct {
6896	_            struct{}                  `type:"structure"`
6897	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6898
6899	Message_ *string `locationName:"message" type:"string"`
6900}
6901
6902// String returns the string representation
6903func (s ClusterContainsTasksException) String() string {
6904	return awsutil.Prettify(s)
6905}
6906
6907// GoString returns the string representation
6908func (s ClusterContainsTasksException) GoString() string {
6909	return s.String()
6910}
6911
6912func newErrorClusterContainsTasksException(v protocol.ResponseMetadata) error {
6913	return &ClusterContainsTasksException{
6914		RespMetadata: v,
6915	}
6916}
6917
6918// Code returns the exception type name.
6919func (s *ClusterContainsTasksException) Code() string {
6920	return "ClusterContainsTasksException"
6921}
6922
6923// Message returns the exception's message.
6924func (s *ClusterContainsTasksException) Message() string {
6925	if s.Message_ != nil {
6926		return *s.Message_
6927	}
6928	return ""
6929}
6930
6931// OrigErr always returns nil, satisfies awserr.Error interface.
6932func (s *ClusterContainsTasksException) OrigErr() error {
6933	return nil
6934}
6935
6936func (s *ClusterContainsTasksException) Error() string {
6937	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6938}
6939
6940// Status code returns the HTTP status code for the request's response error.
6941func (s *ClusterContainsTasksException) StatusCode() int {
6942	return s.RespMetadata.StatusCode
6943}
6944
6945// RequestID returns the service's response RequestID for request.
6946func (s *ClusterContainsTasksException) RequestID() string {
6947	return s.RespMetadata.RequestID
6948}
6949
6950// The specified cluster could not be found. You can view your available clusters
6951// with ListClusters. Amazon ECS clusters are Region-specific.
6952type ClusterNotFoundException struct {
6953	_            struct{}                  `type:"structure"`
6954	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6955
6956	Message_ *string `locationName:"message" type:"string"`
6957}
6958
6959// String returns the string representation
6960func (s ClusterNotFoundException) String() string {
6961	return awsutil.Prettify(s)
6962}
6963
6964// GoString returns the string representation
6965func (s ClusterNotFoundException) GoString() string {
6966	return s.String()
6967}
6968
6969func newErrorClusterNotFoundException(v protocol.ResponseMetadata) error {
6970	return &ClusterNotFoundException{
6971		RespMetadata: v,
6972	}
6973}
6974
6975// Code returns the exception type name.
6976func (s *ClusterNotFoundException) Code() string {
6977	return "ClusterNotFoundException"
6978}
6979
6980// Message returns the exception's message.
6981func (s *ClusterNotFoundException) Message() string {
6982	if s.Message_ != nil {
6983		return *s.Message_
6984	}
6985	return ""
6986}
6987
6988// OrigErr always returns nil, satisfies awserr.Error interface.
6989func (s *ClusterNotFoundException) OrigErr() error {
6990	return nil
6991}
6992
6993func (s *ClusterNotFoundException) Error() string {
6994	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6995}
6996
6997// Status code returns the HTTP status code for the request's response error.
6998func (s *ClusterNotFoundException) StatusCode() int {
6999	return s.RespMetadata.StatusCode
7000}
7001
7002// RequestID returns the service's response RequestID for request.
7003func (s *ClusterNotFoundException) RequestID() string {
7004	return s.RespMetadata.RequestID
7005}
7006
7007// The settings to use when creating a cluster. This parameter is used to enable
7008// CloudWatch Container Insights for a cluster.
7009type ClusterSetting struct {
7010	_ struct{} `type:"structure"`
7011
7012	// The name of the cluster setting. The only supported value is containerInsights.
7013	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
7014
7015	// The value to set for the cluster setting. The supported values are enabled
7016	// and disabled. If enabled is specified, CloudWatch Container Insights will
7017	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
7018	// account setting is enabled. If a cluster value is specified, it will override
7019	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
7020	Value *string `locationName:"value" type:"string"`
7021}
7022
7023// String returns the string representation
7024func (s ClusterSetting) String() string {
7025	return awsutil.Prettify(s)
7026}
7027
7028// GoString returns the string representation
7029func (s ClusterSetting) GoString() string {
7030	return s.String()
7031}
7032
7033// SetName sets the Name field's value.
7034func (s *ClusterSetting) SetName(v string) *ClusterSetting {
7035	s.Name = &v
7036	return s
7037}
7038
7039// SetValue sets the Value field's value.
7040func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
7041	s.Value = &v
7042	return s
7043}
7044
7045// A Docker container that is part of a task.
7046type Container struct {
7047	_ struct{} `type:"structure"`
7048
7049	// The Amazon Resource Name (ARN) of the container.
7050	ContainerArn *string `locationName:"containerArn" type:"string"`
7051
7052	// The number of CPU units set for the container. The value will be 0 if no
7053	// value was specified in the container definition when the task definition
7054	// was registered.
7055	Cpu *string `locationName:"cpu" type:"string"`
7056
7057	// The exit code returned from the container.
7058	ExitCode *int64 `locationName:"exitCode" type:"integer"`
7059
7060	// The IDs of each GPU assigned to the container.
7061	GpuIds []*string `locationName:"gpuIds" type:"list"`
7062
7063	// The health status of the container. If health checks are not configured for
7064	// this container in its task definition, then it reports the health status
7065	// as UNKNOWN.
7066	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
7067
7068	// The image used for the container.
7069	Image *string `locationName:"image" type:"string"`
7070
7071	// The container image manifest digest.
7072	//
7073	// The imageDigest is only returned if the container is using an image hosted
7074	// in Amazon ECR, otherwise it is omitted.
7075	ImageDigest *string `locationName:"imageDigest" type:"string"`
7076
7077	// The last known status of the container.
7078	LastStatus *string `locationName:"lastStatus" type:"string"`
7079
7080	// The hard limit (in MiB) of memory set for the container.
7081	Memory *string `locationName:"memory" type:"string"`
7082
7083	// The soft limit (in MiB) of memory set for the container.
7084	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
7085
7086	// The name of the container.
7087	Name *string `locationName:"name" type:"string"`
7088
7089	// The network bindings associated with the container.
7090	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
7091
7092	// The network interfaces associated with the container.
7093	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
7094
7095	// A short (255 max characters) human-readable string to provide additional
7096	// details about a running or stopped container.
7097	Reason *string `locationName:"reason" type:"string"`
7098
7099	// The ID of the Docker container.
7100	RuntimeId *string `locationName:"runtimeId" type:"string"`
7101
7102	// The ARN of the task.
7103	TaskArn *string `locationName:"taskArn" type:"string"`
7104}
7105
7106// String returns the string representation
7107func (s Container) String() string {
7108	return awsutil.Prettify(s)
7109}
7110
7111// GoString returns the string representation
7112func (s Container) GoString() string {
7113	return s.String()
7114}
7115
7116// SetContainerArn sets the ContainerArn field's value.
7117func (s *Container) SetContainerArn(v string) *Container {
7118	s.ContainerArn = &v
7119	return s
7120}
7121
7122// SetCpu sets the Cpu field's value.
7123func (s *Container) SetCpu(v string) *Container {
7124	s.Cpu = &v
7125	return s
7126}
7127
7128// SetExitCode sets the ExitCode field's value.
7129func (s *Container) SetExitCode(v int64) *Container {
7130	s.ExitCode = &v
7131	return s
7132}
7133
7134// SetGpuIds sets the GpuIds field's value.
7135func (s *Container) SetGpuIds(v []*string) *Container {
7136	s.GpuIds = v
7137	return s
7138}
7139
7140// SetHealthStatus sets the HealthStatus field's value.
7141func (s *Container) SetHealthStatus(v string) *Container {
7142	s.HealthStatus = &v
7143	return s
7144}
7145
7146// SetImage sets the Image field's value.
7147func (s *Container) SetImage(v string) *Container {
7148	s.Image = &v
7149	return s
7150}
7151
7152// SetImageDigest sets the ImageDigest field's value.
7153func (s *Container) SetImageDigest(v string) *Container {
7154	s.ImageDigest = &v
7155	return s
7156}
7157
7158// SetLastStatus sets the LastStatus field's value.
7159func (s *Container) SetLastStatus(v string) *Container {
7160	s.LastStatus = &v
7161	return s
7162}
7163
7164// SetMemory sets the Memory field's value.
7165func (s *Container) SetMemory(v string) *Container {
7166	s.Memory = &v
7167	return s
7168}
7169
7170// SetMemoryReservation sets the MemoryReservation field's value.
7171func (s *Container) SetMemoryReservation(v string) *Container {
7172	s.MemoryReservation = &v
7173	return s
7174}
7175
7176// SetName sets the Name field's value.
7177func (s *Container) SetName(v string) *Container {
7178	s.Name = &v
7179	return s
7180}
7181
7182// SetNetworkBindings sets the NetworkBindings field's value.
7183func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
7184	s.NetworkBindings = v
7185	return s
7186}
7187
7188// SetNetworkInterfaces sets the NetworkInterfaces field's value.
7189func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
7190	s.NetworkInterfaces = v
7191	return s
7192}
7193
7194// SetReason sets the Reason field's value.
7195func (s *Container) SetReason(v string) *Container {
7196	s.Reason = &v
7197	return s
7198}
7199
7200// SetRuntimeId sets the RuntimeId field's value.
7201func (s *Container) SetRuntimeId(v string) *Container {
7202	s.RuntimeId = &v
7203	return s
7204}
7205
7206// SetTaskArn sets the TaskArn field's value.
7207func (s *Container) SetTaskArn(v string) *Container {
7208	s.TaskArn = &v
7209	return s
7210}
7211
7212// Container definitions are used in task definitions to describe the different
7213// containers that are launched as part of a task.
7214type ContainerDefinition struct {
7215	_ struct{} `type:"structure"`
7216
7217	// The command that is passed to the container. This parameter maps to Cmd in
7218	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7219	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7220	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7221	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
7222	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
7223	// arguments, each argument should be a separated string in the array.
7224	Command []*string `locationName:"command" type:"list"`
7225
7226	// The number of cpu units reserved for the container. This parameter maps to
7227	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7228	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7229	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7230	//
7231	// This field is optional for tasks using the Fargate launch type, and the only
7232	// requirement is that the total amount of CPU reserved for all containers within
7233	// a task be lower than the task-level cpu value.
7234	//
7235	// You can determine the number of CPU units that are available per EC2 instance
7236	// type by multiplying the vCPUs listed for that instance type on the Amazon
7237	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
7238	// 1,024.
7239	//
7240	// Linux containers share unallocated CPU units with other containers on the
7241	// container instance with the same ratio as their allocated amount. For example,
7242	// if you run a single-container task on a single-core instance type with 512
7243	// CPU units specified for that container, and that is the only task running
7244	// on the container instance, that container could use the full 1,024 CPU unit
7245	// share at any given time. However, if you launched another copy of the same
7246	// task on that container instance, each task would be guaranteed a minimum
7247	// of 512 CPU units when needed, and each container could float to higher CPU
7248	// usage if the other container was not using it, but if both tasks were 100%
7249	// active all of the time, they would be limited to 512 CPU units.
7250	//
7251	// On Linux container instances, the Docker daemon on the container instance
7252	// uses the CPU value to calculate the relative CPU share ratios for running
7253	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
7254	// in the Docker documentation. The minimum valid CPU share value that the Linux
7255	// kernel allows is 2. However, the CPU parameter is not required, and you can
7256	// use CPU values below 2 in your container definitions. For CPU values below
7257	// 2 (including null), the behavior varies based on your Amazon ECS container
7258	// agent version:
7259	//
7260	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
7261	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
7262	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
7263	//    to two CPU shares.
7264	//
7265	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
7266	//    of 1 are passed to Docker as 2.
7267	//
7268	// On Windows container instances, the CPU limit is enforced as an absolute
7269	// limit, or a quota. Windows containers only have access to the specified amount
7270	// of CPU that is described in the task definition. A null or zero CPU value
7271	// is passed to Docker as 0, which Windows interprets as 1% of one CPU.
7272	Cpu *int64 `locationName:"cpu" type:"integer"`
7273
7274	// The dependencies defined for container startup and shutdown. A container
7275	// can contain multiple dependencies. When a dependency is defined for container
7276	// startup, for container shutdown it is reversed.
7277	//
7278	// For tasks using the EC2 launch type, the container instances require at least
7279	// version 1.26.0 of the container agent to enable container dependencies. However,
7280	// we recommend using the latest container agent version. For information about
7281	// checking your agent version and updating to the latest version, see Updating
7282	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7283	// in the Amazon Elastic Container Service Developer Guide. If you are using
7284	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7285	// of the ecs-init package. If your container instances are launched from version
7286	// 20190301 or later, then they contain the required versions of the container
7287	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7288	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7289	// in the Amazon Elastic Container Service Developer Guide.
7290	//
7291	// For tasks using the Fargate launch type, the task or service requires platform
7292	// version 1.3.0 or later.
7293	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
7294
7295	// When this parameter is true, networking is disabled within the container.
7296	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7297	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
7298	//
7299	// This parameter is not supported for Windows containers or tasks that use
7300	// the awsvpc network mode.
7301	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
7302
7303	// A list of DNS search domains that are presented to the container. This parameter
7304	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7305	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7306	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7307	//
7308	// This parameter is not supported for Windows containers or tasks that use
7309	// the awsvpc network mode.
7310	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
7311
7312	// A list of DNS servers that are presented to the container. This parameter
7313	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7314	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7315	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7316	//
7317	// This parameter is not supported for Windows containers or tasks that use
7318	// the awsvpc network mode.
7319	DnsServers []*string `locationName:"dnsServers" type:"list"`
7320
7321	// A key/value map of labels to add to the container. This parameter maps to
7322	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7323	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7324	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7325	// This parameter requires version 1.18 of the Docker Remote API or greater
7326	// on your container instance. To check the Docker Remote API version on your
7327	// container instance, log in to your container instance and run the following
7328	// command: sudo docker version --format '{{.Server.APIVersion}}'
7329	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
7330
7331	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
7332	// security systems. This field is not valid for containers in tasks using the
7333	// Fargate launch type.
7334	//
7335	// With Windows containers, this parameter can be used to reference a credential
7336	// spec file when configuring a container for Active Directory authentication.
7337	// For more information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html)
7338	// in the Amazon Elastic Container Service Developer Guide.
7339	//
7340	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7341	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7342	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7343	//
7344	// The Amazon ECS container agent running on a container instance must register
7345	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
7346	// variables before containers placed on that instance can use these security
7347	// options. For more information, see Amazon ECS Container Agent Configuration
7348	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7349	// in the Amazon Elastic Container Service Developer Guide.
7350	//
7351	// For more information about valid values, see Docker Run Security Configuration
7352	// (https://docs.docker.com/engine/reference/run/#security-configuration).
7353	//
7354	// Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" |
7355	// "credentialspec:CredentialSpecFilePath"
7356	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
7357
7358	//
7359	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
7360	// parameters. If you have problems using entryPoint, update your container
7361	// agent or enter your commands and arguments as command array items instead.
7362	//
7363	// The entry point that is passed to the container. This parameter maps to Entrypoint
7364	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7365	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7366	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7367	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
7368	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
7369	EntryPoint []*string `locationName:"entryPoint" type:"list"`
7370
7371	// The environment variables to pass to a container. This parameter maps to
7372	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7373	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7374	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7375	//
7376	// We do not recommend using plaintext environment variables for sensitive information,
7377	// such as credential data.
7378	Environment []*KeyValuePair `locationName:"environment" type:"list"`
7379
7380	// A list of files containing the environment variables to pass to a container.
7381	// This parameter maps to the --env-file option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7382	//
7383	// You can specify up to ten environment files. The file must have a .env file
7384	// extension. Each line in an environment file should contain an environment
7385	// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
7386	// comments and are ignored. For more information on the environment variable
7387	// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
7388	//
7389	// If there are environment variables specified using the environment parameter
7390	// in a container definition, they take precedence over the variables contained
7391	// within an environment file. If multiple environment files are specified that
7392	// contain the same variable, they are processed from the top down. It is recommended
7393	// to use unique variable names. For more information, see Specifying Environment
7394	// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
7395	// in the Amazon Elastic Container Service Developer Guide.
7396	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
7397
7398	// If the essential parameter of a container is marked as true, and that container
7399	// fails or stops for any reason, all other containers that are part of the
7400	// task are stopped. If the essential parameter of a container is marked as
7401	// false, then its failure does not affect the rest of the containers in a task.
7402	// If this parameter is omitted, a container is assumed to be essential.
7403	//
7404	// All tasks must have at least one essential container. If you have an application
7405	// that is composed of multiple containers, you should group containers that
7406	// are used for a common purpose into components, and separate the different
7407	// components into multiple task definitions. For more information, see Application
7408	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
7409	// in the Amazon Elastic Container Service Developer Guide.
7410	Essential *bool `locationName:"essential" type:"boolean"`
7411
7412	// A list of hostnames and IP address mappings to append to the /etc/hosts file
7413	// on the container. This parameter maps to ExtraHosts in the Create a container
7414	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7415	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7416	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7417	//
7418	// This parameter is not supported for Windows containers or tasks that use
7419	// the awsvpc network mode.
7420	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
7421
7422	// The FireLens configuration for the container. This is used to specify and
7423	// configure a log router for container logs. For more information, see Custom
7424	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
7425	// in the Amazon Elastic Container Service Developer Guide.
7426	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
7427
7428	// The container health check command and associated configuration parameters
7429	// for the container. This parameter maps to HealthCheck in the Create a container
7430	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7431	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7432	// the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7433	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
7434
7435	// The hostname to use for your container. This parameter maps to Hostname in
7436	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7437	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7438	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7439	//
7440	// The hostname parameter is not supported if you are using the awsvpc network
7441	// mode.
7442	Hostname *string `locationName:"hostname" type:"string"`
7443
7444	// The image used to start a container. This string is passed directly to the
7445	// Docker daemon. Images in the Docker Hub registry are available by default.
7446	// Other repositories are specified with either repository-url/image:tag or
7447	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
7448	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
7449	// signs are allowed. This parameter maps to Image in the Create a container
7450	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7451	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7452	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7453	//
7454	//    * When a new task starts, the Amazon ECS container agent pulls the latest
7455	//    version of the specified image and tag for the container to use. However,
7456	//    subsequent updates to a repository image are not propagated to already
7457	//    running tasks.
7458	//
7459	//    * Images in Amazon ECR repositories can be specified by either using the
7460	//    full registry/repository:tag or registry/repository@digest. For example,
7461	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
7462	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
7463	//
7464	//    * Images in official repositories on Docker Hub use a single name (for
7465	//    example, ubuntu or mongo).
7466	//
7467	//    * Images in other repositories on Docker Hub are qualified with an organization
7468	//    name (for example, amazon/amazon-ecs-agent).
7469	//
7470	//    * Images in other online repositories are qualified further by a domain
7471	//    name (for example, quay.io/assemblyline/ubuntu).
7472	Image *string `locationName:"image" type:"string"`
7473
7474	// When this parameter is true, this allows you to deploy containerized applications
7475	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
7476	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7477	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7478	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7479	Interactive *bool `locationName:"interactive" type:"boolean"`
7480
7481	// The links parameter allows containers to communicate with each other without
7482	// the need for port mappings. This parameter is only supported if the network
7483	// mode of a task definition is bridge. The name:internalName construct is analogous
7484	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
7485	// numbers, and hyphens are allowed. For more information about linking Docker
7486	// containers, go to Legacy container links (https://docs.docker.com/network/links/)
7487	// in the Docker documentation. This parameter maps to Links in the Create a
7488	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7489	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7490	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7491	//
7492	// This parameter is not supported for Windows containers or tasks that use
7493	// the awsvpc network mode.
7494	//
7495	// Containers that are collocated on a single container instance may be able
7496	// to communicate with each other without requiring links or host port mappings.
7497	// Network isolation is achieved on the container instance using security groups
7498	// and VPC settings.
7499	Links []*string `locationName:"links" type:"list"`
7500
7501	// Linux-specific modifications that are applied to the container, such as Linux
7502	// kernel capabilities. For more information see KernelCapabilities.
7503	//
7504	// This parameter is not supported for Windows containers.
7505	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
7506
7507	// The log configuration specification for the container.
7508	//
7509	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7510	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7511	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7512	// By default, containers use the same logging driver that the Docker daemon
7513	// uses. However the container may use a different logging driver than the Docker
7514	// daemon by specifying a log driver with this parameter in the container definition.
7515	// To use a different logging driver for a container, the log system must be
7516	// configured properly on the container instance (or on a different log server
7517	// for remote logging options). For more information on the options for different
7518	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
7519	// in the Docker documentation.
7520	//
7521	// Amazon ECS currently supports a subset of the logging drivers available to
7522	// the Docker daemon (shown in the LogConfiguration data type). Additional log
7523	// drivers may be available in future releases of the Amazon ECS container agent.
7524	//
7525	// This parameter requires version 1.18 of the Docker Remote API or greater
7526	// on your container instance. To check the Docker Remote API version on your
7527	// container instance, log in to your container instance and run the following
7528	// command: sudo docker version --format '{{.Server.APIVersion}}'
7529	//
7530	// The Amazon ECS container agent running on a container instance must register
7531	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
7532	// environment variable before containers placed on that instance can use these
7533	// log configuration options. For more information, see Amazon ECS Container
7534	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7535	// in the Amazon Elastic Container Service Developer Guide.
7536	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
7537
7538	// The amount (in MiB) of memory to present to the container. If your container
7539	// attempts to exceed the memory specified here, the container is killed. The
7540	// total amount of memory reserved for all containers within a task must be
7541	// lower than the task memory value, if one is specified. This parameter maps
7542	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7543	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7544	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7545	//
7546	// If using the Fargate launch type, this parameter is optional.
7547	//
7548	// If using the EC2 launch type, you must specify either a task-level memory
7549	// value or a container-level memory value. If you specify both a container-level
7550	// memory and memoryReservation value, memory must be greater than memoryReservation.
7551	// If you specify memoryReservation, then that value is subtracted from the
7552	// available memory resources for the container instance on which the container
7553	// is placed. Otherwise, the value of memory is used.
7554	//
7555	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7556	// so you should not specify fewer than 4 MiB of memory for your containers.
7557	Memory *int64 `locationName:"memory" type:"integer"`
7558
7559	// The soft limit (in MiB) of memory to reserve for the container. When system
7560	// memory is under heavy contention, Docker attempts to keep the container memory
7561	// to this soft limit. However, your container can consume more memory when
7562	// it needs to, up to either the hard limit specified with the memory parameter
7563	// (if applicable), or all of the available memory on the container instance,
7564	// whichever comes first. This parameter maps to MemoryReservation in the Create
7565	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7566	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7567	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7568	//
7569	// If a task-level memory value is not specified, you must specify a non-zero
7570	// integer for one or both of memory or memoryReservation in a container definition.
7571	// If you specify both, memory must be greater than memoryReservation. If you
7572	// specify memoryReservation, then that value is subtracted from the available
7573	// memory resources for the container instance on which the container is placed.
7574	// Otherwise, the value of memory is used.
7575	//
7576	// For example, if your container normally uses 128 MiB of memory, but occasionally
7577	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
7578	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
7579	// allow the container to only reserve 128 MiB of memory from the remaining
7580	// resources on the container instance, but also allow the container to consume
7581	// more memory resources when needed.
7582	//
7583	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7584	// so you should not specify fewer than 4 MiB of memory for your containers.
7585	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
7586
7587	// The mount points for data volumes in your container.
7588	//
7589	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7590	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7591	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7592	//
7593	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
7594	// Windows containers cannot mount directories on a different drive, and mount
7595	// point cannot be across drives.
7596	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
7597
7598	// The name of a container. If you are linking multiple containers together
7599	// in a task definition, the name of one container can be entered in the links
7600	// of another container to connect the containers. Up to 255 letters (uppercase
7601	// and lowercase), numbers, and hyphens are allowed. This parameter maps to
7602	// name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7603	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7604	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7605	Name *string `locationName:"name" type:"string"`
7606
7607	// The list of port mappings for the container. Port mappings allow containers
7608	// to access ports on the host container instance to send or receive traffic.
7609	//
7610	// For task definitions that use the awsvpc network mode, you should only specify
7611	// the containerPort. The hostPort can be left blank or it must be the same
7612	// value as the containerPort.
7613	//
7614	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
7615	// There is no loopback for port mappings on Windows, so you cannot access a
7616	// container's mapped port from the host itself.
7617	//
7618	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7619	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7620	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7621	// If the network mode of a task definition is set to none, then you can't specify
7622	// port mappings. If the network mode of a task definition is set to host, then
7623	// host ports must either be undefined or they must match the container port
7624	// in the port mapping.
7625	//
7626	// After a task reaches the RUNNING status, manual and automatic host and container
7627	// port assignments are visible in the Network Bindings section of a container
7628	// description for a selected task in the Amazon ECS console. The assignments
7629	// are also visible in the networkBindings section DescribeTasks responses.
7630	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
7631
7632	// When this parameter is true, the container is given elevated privileges on
7633	// the host container instance (similar to the root user). This parameter maps
7634	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7635	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7636	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7637	//
7638	// This parameter is not supported for Windows containers or tasks using the
7639	// Fargate launch type.
7640	Privileged *bool `locationName:"privileged" type:"boolean"`
7641
7642	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
7643	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7644	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7645	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7646	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
7647
7648	// When this parameter is true, the container is given read-only access to its
7649	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
7650	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7651	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7652	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7653	//
7654	// This parameter is not supported for Windows containers or tasks that use
7655	// the awsvpc network mode.
7656	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
7657
7658	// The private repository authentication credentials to use.
7659	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
7660
7661	// The type and amount of a resource to assign to a container. The only supported
7662	// resource is a GPU.
7663	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
7664
7665	// The secrets to pass to the container. For more information, see Specifying
7666	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
7667	// in the Amazon Elastic Container Service Developer Guide.
7668	Secrets []*Secret `locationName:"secrets" type:"list"`
7669
7670	// Time duration (in seconds) to wait before giving up on resolving dependencies
7671	// for a container. For example, you specify two containers in a task definition
7672	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
7673	// or HEALTHY status. If a startTimeout value is specified for containerB and
7674	// it does not reach the desired status within that time then containerA will
7675	// give up and not start. This results in the task transitioning to a STOPPED
7676	// state.
7677	//
7678	// When the ECS_CONTAINER_START_TIMEOUT container agent configuration variable
7679	// is used, it is enforced indendently from this start timeout value.
7680	//
7681	// For tasks using the Fargate launch type, this parameter requires that the
7682	// task or service uses platform version 1.3.0 or later.
7683	//
7684	// For tasks using the EC2 launch type, your container instances require at
7685	// least version 1.26.0 of the container agent to enable a container start timeout
7686	// value. However, we recommend using the latest container agent version. For
7687	// information about checking your agent version and updating to the latest
7688	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7689	// in the Amazon Elastic Container Service Developer Guide. If you are using
7690	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7691	// of the ecs-init package. If your container instances are launched from version
7692	// 20190301 or later, then they contain the required versions of the container
7693	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7694	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7695	// in the Amazon Elastic Container Service Developer Guide.
7696	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
7697
7698	// Time duration (in seconds) to wait before the container is forcefully killed
7699	// if it doesn't exit normally on its own.
7700	//
7701	// For tasks using the Fargate launch type, the task or service requires platform
7702	// version 1.3.0 or later. The max stop timeout value is 120 seconds and if
7703	// the parameter is not specified, the default value of 30 seconds is used.
7704	//
7705	// For tasks using the EC2 launch type, if the stopTimeout parameter is not
7706	// specified, the value set for the Amazon ECS container agent configuration
7707	// variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout
7708	// parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable
7709	// are set, then the default values of 30 seconds for Linux containers and 30
7710	// seconds on Windows containers are used. Your container instances require
7711	// at least version 1.26.0 of the container agent to enable a container stop
7712	// timeout value. However, we recommend using the latest container agent version.
7713	// For information about checking your agent version and updating to the latest
7714	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7715	// in the Amazon Elastic Container Service Developer Guide. If you are using
7716	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7717	// of the ecs-init package. If your container instances are launched from version
7718	// 20190301 or later, then they contain the required versions of the container
7719	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7720	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7721	// in the Amazon Elastic Container Service Developer Guide.
7722	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
7723
7724	// A list of namespaced kernel parameters to set in the container. This parameter
7725	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7726	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7727	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7728	//
7729	// It is not recommended that you specify network-related systemControls parameters
7730	// for multiple containers in a single task that also uses either the awsvpc
7731	// or host network modes. For tasks that use the awsvpc network mode, the container
7732	// that is started last determines which systemControls parameters take effect.
7733	// For tasks that use the host network mode, it changes the container instance's
7734	// namespaced kernel parameters as well as the containers.
7735	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
7736
7737	// A list of ulimits to set in the container. If a ulimit value is specified
7738	// in a task definition, it will override the default values set by Docker.
7739	// This parameter maps to Ulimits in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7740	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7741	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7742	// Valid naming values are displayed in the Ulimit data type. This parameter
7743	// requires version 1.18 of the Docker Remote API or greater on your container
7744	// instance. To check the Docker Remote API version on your container instance,
7745	// log in to your container instance and run the following command: sudo docker
7746	// version --format '{{.Server.APIVersion}}'
7747	//
7748	// This parameter is not supported for Windows containers or tasks that use
7749	// the awsvpc network mode.
7750	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
7751
7752	// The user to use inside the container. This parameter maps to User in the
7753	// Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7754	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7755	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7756	//
7757	// When running tasks using the host network mode, you should not run containers
7758	// using the root user (UID 0). It is considered best practice to use a non-root
7759	// user.
7760	//
7761	// You can specify the user using the following formats. If specifying a UID
7762	// or GID, you must specify it as a positive integer.
7763	//
7764	//    * user
7765	//
7766	//    * user:group
7767	//
7768	//    * uid
7769	//
7770	//    * uid:gid
7771	//
7772	//    * user:gid
7773	//
7774	//    * uid:group
7775	//
7776	// This parameter is not supported for Windows containers or tasks that use
7777	// the awsvpc network mode.
7778	User *string `locationName:"user" type:"string"`
7779
7780	// Data volumes to mount from another container. This parameter maps to VolumesFrom
7781	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7782	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7783	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7784	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
7785
7786	// The working directory in which to run commands inside the container. This
7787	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7788	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7789	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
7790	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
7791}
7792
7793// String returns the string representation
7794func (s ContainerDefinition) String() string {
7795	return awsutil.Prettify(s)
7796}
7797
7798// GoString returns the string representation
7799func (s ContainerDefinition) GoString() string {
7800	return s.String()
7801}
7802
7803// Validate inspects the fields of the type to determine if they are valid.
7804func (s *ContainerDefinition) Validate() error {
7805	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
7806	if s.DependsOn != nil {
7807		for i, v := range s.DependsOn {
7808			if v == nil {
7809				continue
7810			}
7811			if err := v.Validate(); err != nil {
7812				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
7813			}
7814		}
7815	}
7816	if s.EnvironmentFiles != nil {
7817		for i, v := range s.EnvironmentFiles {
7818			if v == nil {
7819				continue
7820			}
7821			if err := v.Validate(); err != nil {
7822				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
7823			}
7824		}
7825	}
7826	if s.ExtraHosts != nil {
7827		for i, v := range s.ExtraHosts {
7828			if v == nil {
7829				continue
7830			}
7831			if err := v.Validate(); err != nil {
7832				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
7833			}
7834		}
7835	}
7836	if s.FirelensConfiguration != nil {
7837		if err := s.FirelensConfiguration.Validate(); err != nil {
7838			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
7839		}
7840	}
7841	if s.HealthCheck != nil {
7842		if err := s.HealthCheck.Validate(); err != nil {
7843			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
7844		}
7845	}
7846	if s.LinuxParameters != nil {
7847		if err := s.LinuxParameters.Validate(); err != nil {
7848			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
7849		}
7850	}
7851	if s.LogConfiguration != nil {
7852		if err := s.LogConfiguration.Validate(); err != nil {
7853			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
7854		}
7855	}
7856	if s.RepositoryCredentials != nil {
7857		if err := s.RepositoryCredentials.Validate(); err != nil {
7858			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
7859		}
7860	}
7861	if s.ResourceRequirements != nil {
7862		for i, v := range s.ResourceRequirements {
7863			if v == nil {
7864				continue
7865			}
7866			if err := v.Validate(); err != nil {
7867				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
7868			}
7869		}
7870	}
7871	if s.Secrets != nil {
7872		for i, v := range s.Secrets {
7873			if v == nil {
7874				continue
7875			}
7876			if err := v.Validate(); err != nil {
7877				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
7878			}
7879		}
7880	}
7881	if s.Ulimits != nil {
7882		for i, v := range s.Ulimits {
7883			if v == nil {
7884				continue
7885			}
7886			if err := v.Validate(); err != nil {
7887				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
7888			}
7889		}
7890	}
7891
7892	if invalidParams.Len() > 0 {
7893		return invalidParams
7894	}
7895	return nil
7896}
7897
7898// SetCommand sets the Command field's value.
7899func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
7900	s.Command = v
7901	return s
7902}
7903
7904// SetCpu sets the Cpu field's value.
7905func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
7906	s.Cpu = &v
7907	return s
7908}
7909
7910// SetDependsOn sets the DependsOn field's value.
7911func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
7912	s.DependsOn = v
7913	return s
7914}
7915
7916// SetDisableNetworking sets the DisableNetworking field's value.
7917func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
7918	s.DisableNetworking = &v
7919	return s
7920}
7921
7922// SetDnsSearchDomains sets the DnsSearchDomains field's value.
7923func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
7924	s.DnsSearchDomains = v
7925	return s
7926}
7927
7928// SetDnsServers sets the DnsServers field's value.
7929func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
7930	s.DnsServers = v
7931	return s
7932}
7933
7934// SetDockerLabels sets the DockerLabels field's value.
7935func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
7936	s.DockerLabels = v
7937	return s
7938}
7939
7940// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
7941func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
7942	s.DockerSecurityOptions = v
7943	return s
7944}
7945
7946// SetEntryPoint sets the EntryPoint field's value.
7947func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
7948	s.EntryPoint = v
7949	return s
7950}
7951
7952// SetEnvironment sets the Environment field's value.
7953func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
7954	s.Environment = v
7955	return s
7956}
7957
7958// SetEnvironmentFiles sets the EnvironmentFiles field's value.
7959func (s *ContainerDefinition) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerDefinition {
7960	s.EnvironmentFiles = v
7961	return s
7962}
7963
7964// SetEssential sets the Essential field's value.
7965func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
7966	s.Essential = &v
7967	return s
7968}
7969
7970// SetExtraHosts sets the ExtraHosts field's value.
7971func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
7972	s.ExtraHosts = v
7973	return s
7974}
7975
7976// SetFirelensConfiguration sets the FirelensConfiguration field's value.
7977func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
7978	s.FirelensConfiguration = v
7979	return s
7980}
7981
7982// SetHealthCheck sets the HealthCheck field's value.
7983func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
7984	s.HealthCheck = v
7985	return s
7986}
7987
7988// SetHostname sets the Hostname field's value.
7989func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
7990	s.Hostname = &v
7991	return s
7992}
7993
7994// SetImage sets the Image field's value.
7995func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
7996	s.Image = &v
7997	return s
7998}
7999
8000// SetInteractive sets the Interactive field's value.
8001func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
8002	s.Interactive = &v
8003	return s
8004}
8005
8006// SetLinks sets the Links field's value.
8007func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
8008	s.Links = v
8009	return s
8010}
8011
8012// SetLinuxParameters sets the LinuxParameters field's value.
8013func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
8014	s.LinuxParameters = v
8015	return s
8016}
8017
8018// SetLogConfiguration sets the LogConfiguration field's value.
8019func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
8020	s.LogConfiguration = v
8021	return s
8022}
8023
8024// SetMemory sets the Memory field's value.
8025func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
8026	s.Memory = &v
8027	return s
8028}
8029
8030// SetMemoryReservation sets the MemoryReservation field's value.
8031func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
8032	s.MemoryReservation = &v
8033	return s
8034}
8035
8036// SetMountPoints sets the MountPoints field's value.
8037func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
8038	s.MountPoints = v
8039	return s
8040}
8041
8042// SetName sets the Name field's value.
8043func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
8044	s.Name = &v
8045	return s
8046}
8047
8048// SetPortMappings sets the PortMappings field's value.
8049func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
8050	s.PortMappings = v
8051	return s
8052}
8053
8054// SetPrivileged sets the Privileged field's value.
8055func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
8056	s.Privileged = &v
8057	return s
8058}
8059
8060// SetPseudoTerminal sets the PseudoTerminal field's value.
8061func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
8062	s.PseudoTerminal = &v
8063	return s
8064}
8065
8066// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
8067func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
8068	s.ReadonlyRootFilesystem = &v
8069	return s
8070}
8071
8072// SetRepositoryCredentials sets the RepositoryCredentials field's value.
8073func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
8074	s.RepositoryCredentials = v
8075	return s
8076}
8077
8078// SetResourceRequirements sets the ResourceRequirements field's value.
8079func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
8080	s.ResourceRequirements = v
8081	return s
8082}
8083
8084// SetSecrets sets the Secrets field's value.
8085func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
8086	s.Secrets = v
8087	return s
8088}
8089
8090// SetStartTimeout sets the StartTimeout field's value.
8091func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
8092	s.StartTimeout = &v
8093	return s
8094}
8095
8096// SetStopTimeout sets the StopTimeout field's value.
8097func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
8098	s.StopTimeout = &v
8099	return s
8100}
8101
8102// SetSystemControls sets the SystemControls field's value.
8103func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
8104	s.SystemControls = v
8105	return s
8106}
8107
8108// SetUlimits sets the Ulimits field's value.
8109func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
8110	s.Ulimits = v
8111	return s
8112}
8113
8114// SetUser sets the User field's value.
8115func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
8116	s.User = &v
8117	return s
8118}
8119
8120// SetVolumesFrom sets the VolumesFrom field's value.
8121func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
8122	s.VolumesFrom = v
8123	return s
8124}
8125
8126// SetWorkingDirectory sets the WorkingDirectory field's value.
8127func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
8128	s.WorkingDirectory = &v
8129	return s
8130}
8131
8132// The dependencies defined for container startup and shutdown. A container
8133// can contain multiple dependencies. When a dependency is defined for container
8134// startup, for container shutdown it is reversed.
8135//
8136// Your Amazon ECS container instances require at least version 1.26.0 of the
8137// container agent to enable container dependencies. However, we recommend using
8138// the latest container agent version. For information about checking your agent
8139// version and updating to the latest version, see Updating the Amazon ECS Container
8140// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
8141// in the Amazon Elastic Container Service Developer Guide. If you are using
8142// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
8143// of the ecs-init package. If your container instances are launched from version
8144// 20190301 or later, then they contain the required versions of the container
8145// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
8146// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
8147// in the Amazon Elastic Container Service Developer Guide.
8148//
8149// For tasks using the Fargate launch type, this parameter requires that the
8150// task or service uses platform version 1.3.0 or later.
8151type ContainerDependency struct {
8152	_ struct{} `type:"structure"`
8153
8154	// The dependency condition of the container. The following are the available
8155	// conditions and their behavior:
8156	//
8157	//    * START - This condition emulates the behavior of links and volumes today.
8158	//    It validates that a dependent container is started before permitting other
8159	//    containers to start.
8160	//
8161	//    * COMPLETE - This condition validates that a dependent container runs
8162	//    to completion (exits) before permitting other containers to start. This
8163	//    can be useful for nonessential containers that run a script and then exit.
8164	//    This condition cannot be set on an essential container.
8165	//
8166	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
8167	//    that the container exits with a zero status. This condition cannot be
8168	//    set on an essential container.
8169	//
8170	//    * HEALTHY - This condition validates that the dependent container passes
8171	//    its Docker health check before permitting other containers to start. This
8172	//    requires that the dependent container has health checks configured. This
8173	//    condition is confirmed only at task startup.
8174	//
8175	// Condition is a required field
8176	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
8177
8178	// The name of a container.
8179	//
8180	// ContainerName is a required field
8181	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
8182}
8183
8184// String returns the string representation
8185func (s ContainerDependency) String() string {
8186	return awsutil.Prettify(s)
8187}
8188
8189// GoString returns the string representation
8190func (s ContainerDependency) GoString() string {
8191	return s.String()
8192}
8193
8194// Validate inspects the fields of the type to determine if they are valid.
8195func (s *ContainerDependency) Validate() error {
8196	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
8197	if s.Condition == nil {
8198		invalidParams.Add(request.NewErrParamRequired("Condition"))
8199	}
8200	if s.ContainerName == nil {
8201		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
8202	}
8203
8204	if invalidParams.Len() > 0 {
8205		return invalidParams
8206	}
8207	return nil
8208}
8209
8210// SetCondition sets the Condition field's value.
8211func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
8212	s.Condition = &v
8213	return s
8214}
8215
8216// SetContainerName sets the ContainerName field's value.
8217func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
8218	s.ContainerName = &v
8219	return s
8220}
8221
8222// An EC2 instance that is running the Amazon ECS agent and has been registered
8223// with a cluster.
8224type ContainerInstance struct {
8225	_ struct{} `type:"structure"`
8226
8227	// This parameter returns true if the agent is connected to Amazon ECS. Registered
8228	// instances with an agent that may be unhealthy or stopped return false. Only
8229	// instances connected to an agent can accept placement requests.
8230	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
8231
8232	// The status of the most recent agent update. If an update has never been requested,
8233	// this value is NULL.
8234	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
8235
8236	// The resources attached to a container instance, such as elastic network interfaces.
8237	Attachments []*Attachment `locationName:"attachments" type:"list"`
8238
8239	// The attributes set for the container instance, either by the Amazon ECS container
8240	// agent at instance registration or manually with the PutAttributes operation.
8241	Attributes []*Attribute `locationName:"attributes" type:"list"`
8242
8243	// The capacity provider associated with the container instance.
8244	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
8245
8246	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
8247	// the arn:aws:ecs namespace, followed by the Region of the container instance,
8248	// the AWS account ID of the container instance owner, the container-instance
8249	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
8250	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
8251
8252	// The EC2 instance ID of the container instance.
8253	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
8254
8255	// The number of tasks on the container instance that are in the PENDING status.
8256	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
8257
8258	// The Unix timestamp for when the container instance was registered.
8259	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
8260
8261	// For CPU and memory resource types, this parameter describes the amount of
8262	// each resource that was available on the container instance when the container
8263	// agent registered it with Amazon ECS. This value represents the total amount
8264	// of CPU and memory that can be allocated on this container instance to tasks.
8265	// For port resource types, this parameter describes the ports that were reserved
8266	// by the Amazon ECS container agent when it registered the container instance
8267	// with Amazon ECS.
8268	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
8269
8270	// For CPU and memory resource types, this parameter describes the remaining
8271	// CPU and memory that has not already been allocated to tasks and is therefore
8272	// available for new tasks. For port resource types, this parameter describes
8273	// the ports that were reserved by the Amazon ECS container agent (at instance
8274	// registration time) and any task containers that have reserved port mappings
8275	// on the host (with the host or bridge network mode). Any port that is not
8276	// specified here is available for new tasks.
8277	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
8278
8279	// The number of tasks on the container instance that are in the RUNNING status.
8280	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
8281
8282	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
8283	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
8284	//
8285	// If your account has opted in to the awsvpcTrunking account setting, then
8286	// any newly registered container instance will transition to a REGISTERING
8287	// status while the trunk elastic network interface is provisioned for the instance.
8288	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
8289	// status. You can describe the container instance and see the reason for failure
8290	// in the statusReason parameter. Once the container instance is terminated,
8291	// the instance transitions to a DEREGISTERING status while the trunk elastic
8292	// network interface is deprovisioned. The instance then transitions to an INACTIVE
8293	// status.
8294	//
8295	// The ACTIVE status indicates that the container instance can accept tasks.
8296	// The DRAINING indicates that new tasks are not placed on the container instance
8297	// and any service tasks running on the container instance are removed if possible.
8298	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
8299	// in the Amazon Elastic Container Service Developer Guide.
8300	Status *string `locationName:"status" type:"string"`
8301
8302	// The reason that the container instance reached its current status.
8303	StatusReason *string `locationName:"statusReason" type:"string"`
8304
8305	// The metadata that you apply to the container instance to help you categorize
8306	// and organize them. Each tag consists of a key and an optional value, both
8307	// of which you define.
8308	//
8309	// The following basic restrictions apply to tags:
8310	//
8311	//    * Maximum number of tags per resource - 50
8312	//
8313	//    * For each resource, each tag key must be unique, and each tag key can
8314	//    have only one value.
8315	//
8316	//    * Maximum key length - 128 Unicode characters in UTF-8
8317	//
8318	//    * Maximum value length - 256 Unicode characters in UTF-8
8319	//
8320	//    * If your tagging schema is used across multiple services and resources,
8321	//    remember that other services may have restrictions on allowed characters.
8322	//    Generally allowed characters are: letters, numbers, and spaces representable
8323	//    in UTF-8, and the following characters: + - = . _ : / @.
8324	//
8325	//    * Tag keys and values are case-sensitive.
8326	//
8327	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8328	//    as a prefix for either keys or values as it is reserved for AWS use. You
8329	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8330	//    prefix do not count against your tags per resource limit.
8331	Tags []*Tag `locationName:"tags" type:"list"`
8332
8333	// The version counter for the container instance. Every time a container instance
8334	// experiences a change that triggers a CloudWatch event, the version counter
8335	// is incremented. If you are replicating your Amazon ECS container instance
8336	// state with CloudWatch Events, you can compare the version of a container
8337	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
8338	// Events for the container instance (inside the detail object) to verify that
8339	// the version in your event stream is current.
8340	Version *int64 `locationName:"version" type:"long"`
8341
8342	// The version information for the Amazon ECS container agent and Docker daemon
8343	// running on the container instance.
8344	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
8345}
8346
8347// String returns the string representation
8348func (s ContainerInstance) String() string {
8349	return awsutil.Prettify(s)
8350}
8351
8352// GoString returns the string representation
8353func (s ContainerInstance) GoString() string {
8354	return s.String()
8355}
8356
8357// SetAgentConnected sets the AgentConnected field's value.
8358func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
8359	s.AgentConnected = &v
8360	return s
8361}
8362
8363// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
8364func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
8365	s.AgentUpdateStatus = &v
8366	return s
8367}
8368
8369// SetAttachments sets the Attachments field's value.
8370func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
8371	s.Attachments = v
8372	return s
8373}
8374
8375// SetAttributes sets the Attributes field's value.
8376func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
8377	s.Attributes = v
8378	return s
8379}
8380
8381// SetCapacityProviderName sets the CapacityProviderName field's value.
8382func (s *ContainerInstance) SetCapacityProviderName(v string) *ContainerInstance {
8383	s.CapacityProviderName = &v
8384	return s
8385}
8386
8387// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
8388func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
8389	s.ContainerInstanceArn = &v
8390	return s
8391}
8392
8393// SetEc2InstanceId sets the Ec2InstanceId field's value.
8394func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
8395	s.Ec2InstanceId = &v
8396	return s
8397}
8398
8399// SetPendingTasksCount sets the PendingTasksCount field's value.
8400func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
8401	s.PendingTasksCount = &v
8402	return s
8403}
8404
8405// SetRegisteredAt sets the RegisteredAt field's value.
8406func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
8407	s.RegisteredAt = &v
8408	return s
8409}
8410
8411// SetRegisteredResources sets the RegisteredResources field's value.
8412func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
8413	s.RegisteredResources = v
8414	return s
8415}
8416
8417// SetRemainingResources sets the RemainingResources field's value.
8418func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
8419	s.RemainingResources = v
8420	return s
8421}
8422
8423// SetRunningTasksCount sets the RunningTasksCount field's value.
8424func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
8425	s.RunningTasksCount = &v
8426	return s
8427}
8428
8429// SetStatus sets the Status field's value.
8430func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
8431	s.Status = &v
8432	return s
8433}
8434
8435// SetStatusReason sets the StatusReason field's value.
8436func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
8437	s.StatusReason = &v
8438	return s
8439}
8440
8441// SetTags sets the Tags field's value.
8442func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
8443	s.Tags = v
8444	return s
8445}
8446
8447// SetVersion sets the Version field's value.
8448func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
8449	s.Version = &v
8450	return s
8451}
8452
8453// SetVersionInfo sets the VersionInfo field's value.
8454func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
8455	s.VersionInfo = v
8456	return s
8457}
8458
8459// The overrides that should be sent to a container. An empty container override
8460// can be passed in. An example of an empty container override would be {"containerOverrides":
8461// [ ] }. If a non-empty container override is specified, the name parameter
8462// must be included.
8463type ContainerOverride struct {
8464	_ struct{} `type:"structure"`
8465
8466	// The command to send to the container that overrides the default command from
8467	// the Docker image or the task definition. You must also specify a container
8468	// name.
8469	Command []*string `locationName:"command" type:"list"`
8470
8471	// The number of cpu units reserved for the container, instead of the default
8472	// value from the task definition. You must also specify a container name.
8473	Cpu *int64 `locationName:"cpu" type:"integer"`
8474
8475	// The environment variables to send to the container. You can add new environment
8476	// variables, which are added to the container at launch, or you can override
8477	// the existing environment variables from the Docker image or the task definition.
8478	// You must also specify a container name.
8479	Environment []*KeyValuePair `locationName:"environment" type:"list"`
8480
8481	// A list of files containing the environment variables to pass to a container,
8482	// instead of the value from the container definition.
8483	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
8484
8485	// The hard limit (in MiB) of memory to present to the container, instead of
8486	// the default value from the task definition. If your container attempts to
8487	// exceed the memory specified here, the container is killed. You must also
8488	// specify a container name.
8489	Memory *int64 `locationName:"memory" type:"integer"`
8490
8491	// The soft limit (in MiB) of memory to reserve for the container, instead of
8492	// the default value from the task definition. You must also specify a container
8493	// name.
8494	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
8495
8496	// The name of the container that receives the override. This parameter is required
8497	// if any override is specified.
8498	Name *string `locationName:"name" type:"string"`
8499
8500	// The type and amount of a resource to assign to a container, instead of the
8501	// default value from the task definition. The only supported resource is a
8502	// GPU.
8503	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
8504}
8505
8506// String returns the string representation
8507func (s ContainerOverride) String() string {
8508	return awsutil.Prettify(s)
8509}
8510
8511// GoString returns the string representation
8512func (s ContainerOverride) GoString() string {
8513	return s.String()
8514}
8515
8516// Validate inspects the fields of the type to determine if they are valid.
8517func (s *ContainerOverride) Validate() error {
8518	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
8519	if s.EnvironmentFiles != nil {
8520		for i, v := range s.EnvironmentFiles {
8521			if v == nil {
8522				continue
8523			}
8524			if err := v.Validate(); err != nil {
8525				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
8526			}
8527		}
8528	}
8529	if s.ResourceRequirements != nil {
8530		for i, v := range s.ResourceRequirements {
8531			if v == nil {
8532				continue
8533			}
8534			if err := v.Validate(); err != nil {
8535				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
8536			}
8537		}
8538	}
8539
8540	if invalidParams.Len() > 0 {
8541		return invalidParams
8542	}
8543	return nil
8544}
8545
8546// SetCommand sets the Command field's value.
8547func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
8548	s.Command = v
8549	return s
8550}
8551
8552// SetCpu sets the Cpu field's value.
8553func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
8554	s.Cpu = &v
8555	return s
8556}
8557
8558// SetEnvironment sets the Environment field's value.
8559func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
8560	s.Environment = v
8561	return s
8562}
8563
8564// SetEnvironmentFiles sets the EnvironmentFiles field's value.
8565func (s *ContainerOverride) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerOverride {
8566	s.EnvironmentFiles = v
8567	return s
8568}
8569
8570// SetMemory sets the Memory field's value.
8571func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
8572	s.Memory = &v
8573	return s
8574}
8575
8576// SetMemoryReservation sets the MemoryReservation field's value.
8577func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
8578	s.MemoryReservation = &v
8579	return s
8580}
8581
8582// SetName sets the Name field's value.
8583func (s *ContainerOverride) SetName(v string) *ContainerOverride {
8584	s.Name = &v
8585	return s
8586}
8587
8588// SetResourceRequirements sets the ResourceRequirements field's value.
8589func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
8590	s.ResourceRequirements = v
8591	return s
8592}
8593
8594// An object representing a change in state for a container.
8595type ContainerStateChange struct {
8596	_ struct{} `type:"structure"`
8597
8598	// The name of the container.
8599	ContainerName *string `locationName:"containerName" type:"string"`
8600
8601	// The exit code for the container, if the state change is a result of the container
8602	// exiting.
8603	ExitCode *int64 `locationName:"exitCode" type:"integer"`
8604
8605	// The container image SHA 256 digest.
8606	ImageDigest *string `locationName:"imageDigest" type:"string"`
8607
8608	// Any network bindings associated with the container.
8609	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
8610
8611	// The reason for the state change.
8612	Reason *string `locationName:"reason" type:"string"`
8613
8614	// The ID of the Docker container.
8615	RuntimeId *string `locationName:"runtimeId" type:"string"`
8616
8617	// The status of the container.
8618	Status *string `locationName:"status" type:"string"`
8619}
8620
8621// String returns the string representation
8622func (s ContainerStateChange) String() string {
8623	return awsutil.Prettify(s)
8624}
8625
8626// GoString returns the string representation
8627func (s ContainerStateChange) GoString() string {
8628	return s.String()
8629}
8630
8631// SetContainerName sets the ContainerName field's value.
8632func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
8633	s.ContainerName = &v
8634	return s
8635}
8636
8637// SetExitCode sets the ExitCode field's value.
8638func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
8639	s.ExitCode = &v
8640	return s
8641}
8642
8643// SetImageDigest sets the ImageDigest field's value.
8644func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
8645	s.ImageDigest = &v
8646	return s
8647}
8648
8649// SetNetworkBindings sets the NetworkBindings field's value.
8650func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
8651	s.NetworkBindings = v
8652	return s
8653}
8654
8655// SetReason sets the Reason field's value.
8656func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
8657	s.Reason = &v
8658	return s
8659}
8660
8661// SetRuntimeId sets the RuntimeId field's value.
8662func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
8663	s.RuntimeId = &v
8664	return s
8665}
8666
8667// SetStatus sets the Status field's value.
8668func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
8669	s.Status = &v
8670	return s
8671}
8672
8673type CreateCapacityProviderInput struct {
8674	_ struct{} `type:"structure"`
8675
8676	// The details of the Auto Scaling group for the capacity provider.
8677	//
8678	// AutoScalingGroupProvider is a required field
8679	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
8680
8681	// The name of the capacity provider. Up to 255 characters are allowed, including
8682	// letters (upper and lowercase), numbers, underscores, and hyphens. The name
8683	// cannot be prefixed with "aws", "ecs", or "fargate".
8684	//
8685	// Name is a required field
8686	Name *string `locationName:"name" type:"string" required:"true"`
8687
8688	// The metadata that you apply to the capacity provider to help you categorize
8689	// and organize them. Each tag consists of a key and an optional value, both
8690	// of which you define.
8691	//
8692	// The following basic restrictions apply to tags:
8693	//
8694	//    * Maximum number of tags per resource - 50
8695	//
8696	//    * For each resource, each tag key must be unique, and each tag key can
8697	//    have only one value.
8698	//
8699	//    * Maximum key length - 128 Unicode characters in UTF-8
8700	//
8701	//    * Maximum value length - 256 Unicode characters in UTF-8
8702	//
8703	//    * If your tagging schema is used across multiple services and resources,
8704	//    remember that other services may have restrictions on allowed characters.
8705	//    Generally allowed characters are: letters, numbers, and spaces representable
8706	//    in UTF-8, and the following characters: + - = . _ : / @.
8707	//
8708	//    * Tag keys and values are case-sensitive.
8709	//
8710	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8711	//    as a prefix for either keys or values as it is reserved for AWS use. You
8712	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8713	//    prefix do not count against your tags per resource limit.
8714	Tags []*Tag `locationName:"tags" type:"list"`
8715}
8716
8717// String returns the string representation
8718func (s CreateCapacityProviderInput) String() string {
8719	return awsutil.Prettify(s)
8720}
8721
8722// GoString returns the string representation
8723func (s CreateCapacityProviderInput) GoString() string {
8724	return s.String()
8725}
8726
8727// Validate inspects the fields of the type to determine if they are valid.
8728func (s *CreateCapacityProviderInput) Validate() error {
8729	invalidParams := request.ErrInvalidParams{Context: "CreateCapacityProviderInput"}
8730	if s.AutoScalingGroupProvider == nil {
8731		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
8732	}
8733	if s.Name == nil {
8734		invalidParams.Add(request.NewErrParamRequired("Name"))
8735	}
8736	if s.AutoScalingGroupProvider != nil {
8737		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
8738			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
8739		}
8740	}
8741	if s.Tags != nil {
8742		for i, v := range s.Tags {
8743			if v == nil {
8744				continue
8745			}
8746			if err := v.Validate(); err != nil {
8747				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8748			}
8749		}
8750	}
8751
8752	if invalidParams.Len() > 0 {
8753		return invalidParams
8754	}
8755	return nil
8756}
8757
8758// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
8759func (s *CreateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CreateCapacityProviderInput {
8760	s.AutoScalingGroupProvider = v
8761	return s
8762}
8763
8764// SetName sets the Name field's value.
8765func (s *CreateCapacityProviderInput) SetName(v string) *CreateCapacityProviderInput {
8766	s.Name = &v
8767	return s
8768}
8769
8770// SetTags sets the Tags field's value.
8771func (s *CreateCapacityProviderInput) SetTags(v []*Tag) *CreateCapacityProviderInput {
8772	s.Tags = v
8773	return s
8774}
8775
8776type CreateCapacityProviderOutput struct {
8777	_ struct{} `type:"structure"`
8778
8779	// The full description of the new capacity provider.
8780	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
8781}
8782
8783// String returns the string representation
8784func (s CreateCapacityProviderOutput) String() string {
8785	return awsutil.Prettify(s)
8786}
8787
8788// GoString returns the string representation
8789func (s CreateCapacityProviderOutput) GoString() string {
8790	return s.String()
8791}
8792
8793// SetCapacityProvider sets the CapacityProvider field's value.
8794func (s *CreateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *CreateCapacityProviderOutput {
8795	s.CapacityProvider = v
8796	return s
8797}
8798
8799type CreateClusterInput struct {
8800	_ struct{} `type:"structure"`
8801
8802	// The short name of one or more capacity providers to associate with the cluster.
8803	//
8804	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8805	// provider must already be created and not already associated with another
8806	// cluster. New capacity providers can be created with the CreateCapacityProvider
8807	// API operation.
8808	//
8809	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8810	// capacity providers. The AWS Fargate capacity providers are available to all
8811	// accounts and only need to be associated with a cluster to be used.
8812	//
8813	// The PutClusterCapacityProviders API operation is used to update the list
8814	// of available capacity providers for a cluster after the cluster is created.
8815	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
8816
8817	// The name of your cluster. If you do not specify a name for your cluster,
8818	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
8819	// numbers, and hyphens are allowed.
8820	ClusterName *string `locationName:"clusterName" type:"string"`
8821
8822	// The capacity provider strategy to use by default for the cluster.
8823	//
8824	// When creating a service or running a task on a cluster, if no capacity provider
8825	// or launch type is specified then the default capacity provider strategy for
8826	// the cluster is used.
8827	//
8828	// A capacity provider strategy consists of one or more capacity providers along
8829	// with the base and weight to assign to them. A capacity provider must be associated
8830	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8831	// API is used to associate a capacity provider with a cluster. Only capacity
8832	// providers with an ACTIVE or UPDATING status can be used.
8833	//
8834	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8835	// provider must already be created. New capacity providers can be created with
8836	// the CreateCapacityProvider API operation.
8837	//
8838	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8839	// capacity providers. The AWS Fargate capacity providers are available to all
8840	// accounts and only need to be associated with a cluster to be used.
8841	//
8842	// If a default capacity provider strategy is not defined for a cluster during
8843	// creation, it can be defined later with the PutClusterCapacityProviders API
8844	// operation.
8845	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
8846
8847	// The setting to use when creating a cluster. This parameter is used to enable
8848	// CloudWatch Container Insights for a cluster. If this value is specified,
8849	// it will override the containerInsights value set with PutAccountSetting or
8850	// PutAccountSettingDefault.
8851	Settings []*ClusterSetting `locationName:"settings" type:"list"`
8852
8853	// The metadata that you apply to the cluster to help you categorize and organize
8854	// them. Each tag consists of a key and an optional value, both of which you
8855	// define.
8856	//
8857	// The following basic restrictions apply to tags:
8858	//
8859	//    * Maximum number of tags per resource - 50
8860	//
8861	//    * For each resource, each tag key must be unique, and each tag key can
8862	//    have only one value.
8863	//
8864	//    * Maximum key length - 128 Unicode characters in UTF-8
8865	//
8866	//    * Maximum value length - 256 Unicode characters in UTF-8
8867	//
8868	//    * If your tagging schema is used across multiple services and resources,
8869	//    remember that other services may have restrictions on allowed characters.
8870	//    Generally allowed characters are: letters, numbers, and spaces representable
8871	//    in UTF-8, and the following characters: + - = . _ : / @.
8872	//
8873	//    * Tag keys and values are case-sensitive.
8874	//
8875	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8876	//    as a prefix for either keys or values as it is reserved for AWS use. You
8877	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8878	//    prefix do not count against your tags per resource limit.
8879	Tags []*Tag `locationName:"tags" type:"list"`
8880}
8881
8882// String returns the string representation
8883func (s CreateClusterInput) String() string {
8884	return awsutil.Prettify(s)
8885}
8886
8887// GoString returns the string representation
8888func (s CreateClusterInput) GoString() string {
8889	return s.String()
8890}
8891
8892// Validate inspects the fields of the type to determine if they are valid.
8893func (s *CreateClusterInput) Validate() error {
8894	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
8895	if s.DefaultCapacityProviderStrategy != nil {
8896		for i, v := range s.DefaultCapacityProviderStrategy {
8897			if v == nil {
8898				continue
8899			}
8900			if err := v.Validate(); err != nil {
8901				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
8902			}
8903		}
8904	}
8905	if s.Tags != nil {
8906		for i, v := range s.Tags {
8907			if v == nil {
8908				continue
8909			}
8910			if err := v.Validate(); err != nil {
8911				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8912			}
8913		}
8914	}
8915
8916	if invalidParams.Len() > 0 {
8917		return invalidParams
8918	}
8919	return nil
8920}
8921
8922// SetCapacityProviders sets the CapacityProviders field's value.
8923func (s *CreateClusterInput) SetCapacityProviders(v []*string) *CreateClusterInput {
8924	s.CapacityProviders = v
8925	return s
8926}
8927
8928// SetClusterName sets the ClusterName field's value.
8929func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
8930	s.ClusterName = &v
8931	return s
8932}
8933
8934// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
8935func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput {
8936	s.DefaultCapacityProviderStrategy = v
8937	return s
8938}
8939
8940// SetSettings sets the Settings field's value.
8941func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
8942	s.Settings = v
8943	return s
8944}
8945
8946// SetTags sets the Tags field's value.
8947func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
8948	s.Tags = v
8949	return s
8950}
8951
8952type CreateClusterOutput struct {
8953	_ struct{} `type:"structure"`
8954
8955	// The full description of your new cluster.
8956	Cluster *Cluster `locationName:"cluster" type:"structure"`
8957}
8958
8959// String returns the string representation
8960func (s CreateClusterOutput) String() string {
8961	return awsutil.Prettify(s)
8962}
8963
8964// GoString returns the string representation
8965func (s CreateClusterOutput) GoString() string {
8966	return s.String()
8967}
8968
8969// SetCluster sets the Cluster field's value.
8970func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
8971	s.Cluster = v
8972	return s
8973}
8974
8975type CreateServiceInput struct {
8976	_ struct{} `type:"structure"`
8977
8978	// The capacity provider strategy to use for the service.
8979	//
8980	// A capacity provider strategy consists of one or more capacity providers along
8981	// with the base and weight to assign to them. A capacity provider must be associated
8982	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8983	// API is used to associate a capacity provider with a cluster. Only capacity
8984	// providers with an ACTIVE or UPDATING status can be used.
8985	//
8986	// If a capacityProviderStrategy is specified, the launchType parameter must
8987	// be omitted. If no capacityProviderStrategy or launchType is specified, the
8988	// defaultCapacityProviderStrategy for the cluster is used.
8989	//
8990	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8991	// provider must already be created. New capacity providers can be created with
8992	// the CreateCapacityProvider API operation.
8993	//
8994	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8995	// capacity providers. The AWS Fargate capacity providers are available to all
8996	// accounts and only need to be associated with a cluster to be used.
8997	//
8998	// The PutClusterCapacityProviders API operation is used to update the list
8999	// of available capacity providers for a cluster after the cluster is created.
9000	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9001
9002	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9003	// of the request. Up to 32 ASCII characters are allowed.
9004	ClientToken *string `locationName:"clientToken" type:"string"`
9005
9006	// The short name or full Amazon Resource Name (ARN) of the cluster on which
9007	// to run your service. If you do not specify a cluster, the default cluster
9008	// is assumed.
9009	Cluster *string `locationName:"cluster" type:"string"`
9010
9011	// Optional deployment parameters that control how many tasks run during the
9012	// deployment and the ordering of stopping and starting tasks.
9013	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
9014
9015	// The deployment controller to use for the service.
9016	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
9017
9018	// The number of instantiations of the specified task definition to place and
9019	// keep running on your cluster.
9020	//
9021	// This is required if schedulingStrategy is REPLICA or is not specified. If
9022	// schedulingStrategy is DAEMON then this is not required.
9023	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
9024
9025	// Specifies whether to enable Amazon ECS managed tags for the tasks within
9026	// the service. For more information, see Tagging Your Amazon ECS Resources
9027	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
9028	// in the Amazon Elastic Container Service Developer Guide.
9029	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
9030
9031	// The period of time, in seconds, that the Amazon ECS service scheduler should
9032	// ignore unhealthy Elastic Load Balancing target health checks after a task
9033	// has first started. This is only used when your service is configured to use
9034	// a load balancer. If your service has a load balancer defined and you don't
9035	// specify a health check grace period value, the default value of 0 is used.
9036	//
9037	// If your service's tasks take a while to start and respond to Elastic Load
9038	// Balancing health checks, you can specify a health check grace period of up
9039	// to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler
9040	// ignores health check status. This grace period can prevent the service scheduler
9041	// from marking tasks as unhealthy and stopping them before they have time to
9042	// come up.
9043	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
9044
9045	// The launch type on which to run your service. For more information, see Amazon
9046	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9047	// in the Amazon Elastic Container Service Developer Guide.
9048	//
9049	// If a launchType is specified, the capacityProviderStrategy parameter must
9050	// be omitted.
9051	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9052
9053	// A load balancer object representing the load balancers to use with your service.
9054	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
9055	// in the Amazon Elastic Container Service Developer Guide.
9056	//
9057	// If the service is using the rolling update (ECS) deployment controller and
9058	// using either an Application Load Balancer or Network Load Balancer, you must
9059	// specify one or more target group ARNs to attach to the service. The service-linked
9060	// role is required for services that make use of multiple target groups. For
9061	// more information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
9062	// in the Amazon Elastic Container Service Developer Guide.
9063	//
9064	// If the service is using the CODE_DEPLOY deployment controller, the service
9065	// is required to use either an Application Load Balancer or Network Load Balancer.
9066	// When creating an AWS CodeDeploy deployment group, you specify two target
9067	// groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy
9068	// determines which task set in your service has the status PRIMARY and associates
9069	// one target group with it, and then associates the other target group with
9070	// the replacement task set. The load balancer can also have up to two listeners:
9071	// a required listener for production traffic and an optional listener that
9072	// allows you perform validation tests with Lambda functions before routing
9073	// production traffic to it.
9074	//
9075	// After you create a service using the ECS deployment controller, the load
9076	// balancer name or target group ARN, container name, and container port specified
9077	// in the service definition are immutable. If you are using the CODE_DEPLOY
9078	// deployment controller, these values can be changed when updating the service.
9079	//
9080	// For Application Load Balancers and Network Load Balancers, this object must
9081	// contain the load balancer target group ARN, the container name (as it appears
9082	// in a container definition), and the container port to access from the load
9083	// balancer. The load balancer name parameter must be omitted. When a task from
9084	// this service is placed on a container instance, the container instance and
9085	// port combination is registered as a target in the target group specified
9086	// here.
9087	//
9088	// For Classic Load Balancers, this object must contain the load balancer name,
9089	// the container name (as it appears in a container definition), and the container
9090	// port to access from the load balancer. The target group ARN parameter must
9091	// be omitted. When a task from this service is placed on a container instance,
9092	// the container instance is registered with the load balancer specified here.
9093	//
9094	// Services with tasks that use the awsvpc network mode (for example, those
9095	// with the Fargate launch type) only support Application Load Balancers and
9096	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
9097	// you create any target groups for these services, you must choose ip as the
9098	// target type, not instance, because tasks that use the awsvpc network mode
9099	// are associated with an elastic network interface, not an Amazon EC2 instance.
9100	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
9101
9102	// The network configuration for the service. This parameter is required for
9103	// task definitions that use the awsvpc network mode to receive their own elastic
9104	// network interface, and it is not supported for other network modes. For more
9105	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
9106	// in the Amazon Elastic Container Service Developer Guide.
9107	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9108
9109	// An array of placement constraint objects to use for tasks in your service.
9110	// You can specify a maximum of 10 constraints per task (this limit includes
9111	// constraints in the task definition and those specified at runtime).
9112	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
9113
9114	// The placement strategy objects to use for tasks in your service. You can
9115	// specify a maximum of five strategy rules per service.
9116	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
9117
9118	// The platform version that your tasks in the service are running on. A platform
9119	// version is specified only for tasks using the Fargate launch type. If one
9120	// isn't specified, the LATEST platform version is used by default. For more
9121	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
9122	// in the Amazon Elastic Container Service Developer Guide.
9123	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9124
9125	// Specifies whether to propagate the tags from the task definition or the service
9126	// to the tasks in the service. If no value is specified, the tags are not propagated.
9127	// Tags can only be propagated to the tasks within the service during service
9128	// creation. To add tags to a task after service creation, use the TagResource
9129	// API action.
9130	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
9131
9132	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
9133	// ECS to make calls to your load balancer on your behalf. This parameter is
9134	// only permitted if you are using a load balancer with your service and your
9135	// task definition does not use the awsvpc network mode. If you specify the
9136	// role parameter, you must also specify a load balancer object with the loadBalancers
9137	// parameter.
9138	//
9139	// If your account has already created the Amazon ECS service-linked role, that
9140	// role is used by default for your service unless you specify a role here.
9141	// The service-linked role is required if your task definition uses the awsvpc
9142	// network mode or if the service is configured to use service discovery, an
9143	// external deployment controller, multiple target groups, or Elastic Inference
9144	// accelerators in which case you should not specify a role here. For more information,
9145	// see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
9146	// in the Amazon Elastic Container Service Developer Guide.
9147	//
9148	// If your specified role has a path other than /, then you must either specify
9149	// the full role ARN (this is recommended) or prefix the role name with the
9150	// path. For example, if a role with the name bar has a path of /foo/ then you
9151	// would specify /foo/bar as the role name. For more information, see Friendly
9152	// Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
9153	// in the IAM User Guide.
9154	Role *string `locationName:"role" type:"string"`
9155
9156	// The scheduling strategy to use for the service. For more information, see
9157	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
9158	//
9159	// There are two service scheduler strategies available:
9160	//
9161	//    * REPLICA-The replica scheduling strategy places and maintains the desired
9162	//    number of tasks across your cluster. By default, the service scheduler
9163	//    spreads tasks across Availability Zones. You can use task placement strategies
9164	//    and constraints to customize task placement decisions. This scheduler
9165	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
9166	//    deployment controller types.
9167	//
9168	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
9169	//    active container instance that meets all of the task placement constraints
9170	//    that you specify in your cluster. The service scheduler also evaluates
9171	//    the task placement constraints for running tasks and will stop tasks that
9172	//    do not meet the placement constraints. When you're using this strategy,
9173	//    you don't need to specify a desired number of tasks, a task placement
9174	//    strategy, or use Service Auto Scaling policies. Tasks using the Fargate
9175	//    launch type or the CODE_DEPLOY or EXTERNAL deployment controller types
9176	//    don't support the DAEMON scheduling strategy.
9177	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
9178
9179	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
9180	// and hyphens are allowed. Service names must be unique within a cluster, but
9181	// you can have similarly named services in multiple clusters within a Region
9182	// or across multiple Regions.
9183	//
9184	// ServiceName is a required field
9185	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
9186
9187	// The details of the service discovery registries to assign to this service.
9188	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9189	//
9190	// Service discovery is supported for Fargate tasks if you are using platform
9191	// version v1.1.0 or later. For more information, see AWS Fargate Platform Versions
9192	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
9193	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9194
9195	// The metadata that you apply to the service to help you categorize and organize
9196	// them. Each tag consists of a key and an optional value, both of which you
9197	// define. When a service is deleted, the tags are deleted as well.
9198	//
9199	// The following basic restrictions apply to tags:
9200	//
9201	//    * Maximum number of tags per resource - 50
9202	//
9203	//    * For each resource, each tag key must be unique, and each tag key can
9204	//    have only one value.
9205	//
9206	//    * Maximum key length - 128 Unicode characters in UTF-8
9207	//
9208	//    * Maximum value length - 256 Unicode characters in UTF-8
9209	//
9210	//    * If your tagging schema is used across multiple services and resources,
9211	//    remember that other services may have restrictions on allowed characters.
9212	//    Generally allowed characters are: letters, numbers, and spaces representable
9213	//    in UTF-8, and the following characters: + - = . _ : / @.
9214	//
9215	//    * Tag keys and values are case-sensitive.
9216	//
9217	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9218	//    as a prefix for either keys or values as it is reserved for AWS use. You
9219	//    cannot edit or delete tag keys or values with this prefix. Tags with this
9220	//    prefix do not count against your tags per resource limit.
9221	Tags []*Tag `locationName:"tags" type:"list"`
9222
9223	// The family and revision (family:revision) or full ARN of the task definition
9224	// to run in your service. If a revision is not specified, the latest ACTIVE
9225	// revision is used.
9226	//
9227	// A task definition must be specified if the service is using either the ECS
9228	// or CODE_DEPLOY deployment controllers.
9229	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
9230}
9231
9232// String returns the string representation
9233func (s CreateServiceInput) String() string {
9234	return awsutil.Prettify(s)
9235}
9236
9237// GoString returns the string representation
9238func (s CreateServiceInput) GoString() string {
9239	return s.String()
9240}
9241
9242// Validate inspects the fields of the type to determine if they are valid.
9243func (s *CreateServiceInput) Validate() error {
9244	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
9245	if s.ServiceName == nil {
9246		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
9247	}
9248	if s.CapacityProviderStrategy != nil {
9249		for i, v := range s.CapacityProviderStrategy {
9250			if v == nil {
9251				continue
9252			}
9253			if err := v.Validate(); err != nil {
9254				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9255			}
9256		}
9257	}
9258	if s.DeploymentConfiguration != nil {
9259		if err := s.DeploymentConfiguration.Validate(); err != nil {
9260			invalidParams.AddNested("DeploymentConfiguration", err.(request.ErrInvalidParams))
9261		}
9262	}
9263	if s.DeploymentController != nil {
9264		if err := s.DeploymentController.Validate(); err != nil {
9265			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
9266		}
9267	}
9268	if s.NetworkConfiguration != nil {
9269		if err := s.NetworkConfiguration.Validate(); err != nil {
9270			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9271		}
9272	}
9273	if s.Tags != nil {
9274		for i, v := range s.Tags {
9275			if v == nil {
9276				continue
9277			}
9278			if err := v.Validate(); err != nil {
9279				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9280			}
9281		}
9282	}
9283
9284	if invalidParams.Len() > 0 {
9285		return invalidParams
9286	}
9287	return nil
9288}
9289
9290// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9291func (s *CreateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateServiceInput {
9292	s.CapacityProviderStrategy = v
9293	return s
9294}
9295
9296// SetClientToken sets the ClientToken field's value.
9297func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
9298	s.ClientToken = &v
9299	return s
9300}
9301
9302// SetCluster sets the Cluster field's value.
9303func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
9304	s.Cluster = &v
9305	return s
9306}
9307
9308// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
9309func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
9310	s.DeploymentConfiguration = v
9311	return s
9312}
9313
9314// SetDeploymentController sets the DeploymentController field's value.
9315func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
9316	s.DeploymentController = v
9317	return s
9318}
9319
9320// SetDesiredCount sets the DesiredCount field's value.
9321func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
9322	s.DesiredCount = &v
9323	return s
9324}
9325
9326// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
9327func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
9328	s.EnableECSManagedTags = &v
9329	return s
9330}
9331
9332// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
9333func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
9334	s.HealthCheckGracePeriodSeconds = &v
9335	return s
9336}
9337
9338// SetLaunchType sets the LaunchType field's value.
9339func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
9340	s.LaunchType = &v
9341	return s
9342}
9343
9344// SetLoadBalancers sets the LoadBalancers field's value.
9345func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
9346	s.LoadBalancers = v
9347	return s
9348}
9349
9350// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9351func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
9352	s.NetworkConfiguration = v
9353	return s
9354}
9355
9356// SetPlacementConstraints sets the PlacementConstraints field's value.
9357func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
9358	s.PlacementConstraints = v
9359	return s
9360}
9361
9362// SetPlacementStrategy sets the PlacementStrategy field's value.
9363func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
9364	s.PlacementStrategy = v
9365	return s
9366}
9367
9368// SetPlatformVersion sets the PlatformVersion field's value.
9369func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
9370	s.PlatformVersion = &v
9371	return s
9372}
9373
9374// SetPropagateTags sets the PropagateTags field's value.
9375func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
9376	s.PropagateTags = &v
9377	return s
9378}
9379
9380// SetRole sets the Role field's value.
9381func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
9382	s.Role = &v
9383	return s
9384}
9385
9386// SetSchedulingStrategy sets the SchedulingStrategy field's value.
9387func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
9388	s.SchedulingStrategy = &v
9389	return s
9390}
9391
9392// SetServiceName sets the ServiceName field's value.
9393func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
9394	s.ServiceName = &v
9395	return s
9396}
9397
9398// SetServiceRegistries sets the ServiceRegistries field's value.
9399func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
9400	s.ServiceRegistries = v
9401	return s
9402}
9403
9404// SetTags sets the Tags field's value.
9405func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
9406	s.Tags = v
9407	return s
9408}
9409
9410// SetTaskDefinition sets the TaskDefinition field's value.
9411func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
9412	s.TaskDefinition = &v
9413	return s
9414}
9415
9416type CreateServiceOutput struct {
9417	_ struct{} `type:"structure"`
9418
9419	// The full description of your service following the create call.
9420	//
9421	// If a service is using the ECS deployment controller, the deploymentController
9422	// and taskSets parameters will not be returned.
9423	//
9424	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
9425	// taskSets and deployments parameters will be returned, however the deployments
9426	// parameter will be an empty list.
9427	Service *Service `locationName:"service" type:"structure"`
9428}
9429
9430// String returns the string representation
9431func (s CreateServiceOutput) String() string {
9432	return awsutil.Prettify(s)
9433}
9434
9435// GoString returns the string representation
9436func (s CreateServiceOutput) GoString() string {
9437	return s.String()
9438}
9439
9440// SetService sets the Service field's value.
9441func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
9442	s.Service = v
9443	return s
9444}
9445
9446type CreateTaskSetInput struct {
9447	_ struct{} `type:"structure"`
9448
9449	// The capacity provider strategy to use for the task set.
9450	//
9451	// A capacity provider strategy consists of one or more capacity providers along
9452	// with the base and weight to assign to them. A capacity provider must be associated
9453	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
9454	// API is used to associate a capacity provider with a cluster. Only capacity
9455	// providers with an ACTIVE or UPDATING status can be used.
9456	//
9457	// If a capacityProviderStrategy is specified, the launchType parameter must
9458	// be omitted. If no capacityProviderStrategy or launchType is specified, the
9459	// defaultCapacityProviderStrategy for the cluster is used.
9460	//
9461	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
9462	// provider must already be created. New capacity providers can be created with
9463	// the CreateCapacityProvider API operation.
9464	//
9465	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
9466	// capacity providers. The AWS Fargate capacity providers are available to all
9467	// accounts and only need to be associated with a cluster to be used.
9468	//
9469	// The PutClusterCapacityProviders API operation is used to update the list
9470	// of available capacity providers for a cluster after the cluster is created.
9471	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9472
9473	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9474	// of the request. Up to 32 ASCII characters are allowed.
9475	ClientToken *string `locationName:"clientToken" type:"string"`
9476
9477	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9478	// the service to create the task set in.
9479	//
9480	// Cluster is a required field
9481	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9482
9483	// An optional non-unique tag that identifies this task set in external systems.
9484	// If the task set is associated with a service discovery registry, the tasks
9485	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute
9486	// set to the provided value.
9487	ExternalId *string `locationName:"externalId" type:"string"`
9488
9489	// The launch type that new tasks in the task set will use. For more information,
9490	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9491	// in the Amazon Elastic Container Service Developer Guide.
9492	//
9493	// If a launchType is specified, the capacityProviderStrategy parameter must
9494	// be omitted.
9495	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9496
9497	// A load balancer object representing the load balancer to use with the task
9498	// set. The supported load balancer types are either an Application Load Balancer
9499	// or a Network Load Balancer.
9500	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
9501
9502	// An object representing the network configuration for a task or service.
9503	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9504
9505	// The platform version that the tasks in the task set should use. A platform
9506	// version is specified only for tasks using the Fargate launch type. If one
9507	// isn't specified, the LATEST platform version is used by default.
9508	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9509
9510	// A floating-point percentage of the desired number of tasks to place and keep
9511	// running in the task set.
9512	Scale *Scale `locationName:"scale" type:"structure"`
9513
9514	// The short name or full Amazon Resource Name (ARN) of the service to create
9515	// the task set in.
9516	//
9517	// Service is a required field
9518	Service *string `locationName:"service" type:"string" required:"true"`
9519
9520	// The details of the service discovery registries to assign to this task set.
9521	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9522	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9523
9524	// The metadata that you apply to the task set to help you categorize and organize
9525	// them. Each tag consists of a key and an optional value, both of which you
9526	// define. When a service is deleted, the tags are deleted as well.
9527	//
9528	// The following basic restrictions apply to tags:
9529	//
9530	//    * Maximum number of tags per resource - 50
9531	//
9532	//    * For each resource, each tag key must be unique, and each tag key can
9533	//    have only one value.
9534	//
9535	//    * Maximum key length - 128 Unicode characters in UTF-8
9536	//
9537	//    * Maximum value length - 256 Unicode characters in UTF-8
9538	//
9539	//    * If your tagging schema is used across multiple services and resources,
9540	//    remember that other services may have restrictions on allowed characters.
9541	//    Generally allowed characters are: letters, numbers, and spaces representable
9542	//    in UTF-8, and the following characters: + - = . _ : / @.
9543	//
9544	//    * Tag keys and values are case-sensitive.
9545	//
9546	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9547	//    as a prefix for either keys or values as it is reserved for AWS use. You
9548	//    cannot edit or delete tag keys or values with this prefix. Tags with this
9549	//    prefix do not count against your tags per resource limit.
9550	Tags []*Tag `locationName:"tags" type:"list"`
9551
9552	// The task definition for the tasks in the task set to use.
9553	//
9554	// TaskDefinition is a required field
9555	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
9556}
9557
9558// String returns the string representation
9559func (s CreateTaskSetInput) String() string {
9560	return awsutil.Prettify(s)
9561}
9562
9563// GoString returns the string representation
9564func (s CreateTaskSetInput) GoString() string {
9565	return s.String()
9566}
9567
9568// Validate inspects the fields of the type to determine if they are valid.
9569func (s *CreateTaskSetInput) Validate() error {
9570	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
9571	if s.Cluster == nil {
9572		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9573	}
9574	if s.Service == nil {
9575		invalidParams.Add(request.NewErrParamRequired("Service"))
9576	}
9577	if s.TaskDefinition == nil {
9578		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
9579	}
9580	if s.CapacityProviderStrategy != nil {
9581		for i, v := range s.CapacityProviderStrategy {
9582			if v == nil {
9583				continue
9584			}
9585			if err := v.Validate(); err != nil {
9586				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9587			}
9588		}
9589	}
9590	if s.NetworkConfiguration != nil {
9591		if err := s.NetworkConfiguration.Validate(); err != nil {
9592			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9593		}
9594	}
9595	if s.Tags != nil {
9596		for i, v := range s.Tags {
9597			if v == nil {
9598				continue
9599			}
9600			if err := v.Validate(); err != nil {
9601				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9602			}
9603		}
9604	}
9605
9606	if invalidParams.Len() > 0 {
9607		return invalidParams
9608	}
9609	return nil
9610}
9611
9612// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9613func (s *CreateTaskSetInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateTaskSetInput {
9614	s.CapacityProviderStrategy = v
9615	return s
9616}
9617
9618// SetClientToken sets the ClientToken field's value.
9619func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
9620	s.ClientToken = &v
9621	return s
9622}
9623
9624// SetCluster sets the Cluster field's value.
9625func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
9626	s.Cluster = &v
9627	return s
9628}
9629
9630// SetExternalId sets the ExternalId field's value.
9631func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
9632	s.ExternalId = &v
9633	return s
9634}
9635
9636// SetLaunchType sets the LaunchType field's value.
9637func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
9638	s.LaunchType = &v
9639	return s
9640}
9641
9642// SetLoadBalancers sets the LoadBalancers field's value.
9643func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
9644	s.LoadBalancers = v
9645	return s
9646}
9647
9648// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9649func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
9650	s.NetworkConfiguration = v
9651	return s
9652}
9653
9654// SetPlatformVersion sets the PlatformVersion field's value.
9655func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
9656	s.PlatformVersion = &v
9657	return s
9658}
9659
9660// SetScale sets the Scale field's value.
9661func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
9662	s.Scale = v
9663	return s
9664}
9665
9666// SetService sets the Service field's value.
9667func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
9668	s.Service = &v
9669	return s
9670}
9671
9672// SetServiceRegistries sets the ServiceRegistries field's value.
9673func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
9674	s.ServiceRegistries = v
9675	return s
9676}
9677
9678// SetTags sets the Tags field's value.
9679func (s *CreateTaskSetInput) SetTags(v []*Tag) *CreateTaskSetInput {
9680	s.Tags = v
9681	return s
9682}
9683
9684// SetTaskDefinition sets the TaskDefinition field's value.
9685func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
9686	s.TaskDefinition = &v
9687	return s
9688}
9689
9690type CreateTaskSetOutput struct {
9691	_ struct{} `type:"structure"`
9692
9693	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9694	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9695	// desired number of tasks, how many tasks are running, and whether the task
9696	// set serves production traffic.
9697	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9698}
9699
9700// String returns the string representation
9701func (s CreateTaskSetOutput) String() string {
9702	return awsutil.Prettify(s)
9703}
9704
9705// GoString returns the string representation
9706func (s CreateTaskSetOutput) GoString() string {
9707	return s.String()
9708}
9709
9710// SetTaskSet sets the TaskSet field's value.
9711func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
9712	s.TaskSet = v
9713	return s
9714}
9715
9716type DeleteAccountSettingInput struct {
9717	_ struct{} `type:"structure"`
9718
9719	// The resource name for which to disable the account setting. If serviceLongArnFormat
9720	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
9721	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
9722	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
9723	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
9724	// the ENI limit for your Amazon ECS container instances is affected.
9725	//
9726	// Name is a required field
9727	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
9728
9729	// The ARN of the principal, which can be an IAM user, IAM role, or the root
9730	// user. If you specify the root user, it disables the account setting for all
9731	// IAM users, IAM roles, and the root user of the account unless an IAM user
9732	// or role explicitly overrides these settings. If this field is omitted, the
9733	// setting is changed only for the authenticated user.
9734	PrincipalArn *string `locationName:"principalArn" type:"string"`
9735}
9736
9737// String returns the string representation
9738func (s DeleteAccountSettingInput) String() string {
9739	return awsutil.Prettify(s)
9740}
9741
9742// GoString returns the string representation
9743func (s DeleteAccountSettingInput) GoString() string {
9744	return s.String()
9745}
9746
9747// Validate inspects the fields of the type to determine if they are valid.
9748func (s *DeleteAccountSettingInput) Validate() error {
9749	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
9750	if s.Name == nil {
9751		invalidParams.Add(request.NewErrParamRequired("Name"))
9752	}
9753
9754	if invalidParams.Len() > 0 {
9755		return invalidParams
9756	}
9757	return nil
9758}
9759
9760// SetName sets the Name field's value.
9761func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
9762	s.Name = &v
9763	return s
9764}
9765
9766// SetPrincipalArn sets the PrincipalArn field's value.
9767func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
9768	s.PrincipalArn = &v
9769	return s
9770}
9771
9772type DeleteAccountSettingOutput struct {
9773	_ struct{} `type:"structure"`
9774
9775	// The account setting for the specified principal ARN.
9776	Setting *Setting `locationName:"setting" type:"structure"`
9777}
9778
9779// String returns the string representation
9780func (s DeleteAccountSettingOutput) String() string {
9781	return awsutil.Prettify(s)
9782}
9783
9784// GoString returns the string representation
9785func (s DeleteAccountSettingOutput) GoString() string {
9786	return s.String()
9787}
9788
9789// SetSetting sets the Setting field's value.
9790func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
9791	s.Setting = v
9792	return s
9793}
9794
9795type DeleteAttributesInput struct {
9796	_ struct{} `type:"structure"`
9797
9798	// The attributes to delete from your resource. You can specify up to 10 attributes
9799	// per request. For custom attributes, specify the attribute name and target
9800	// ID, but do not specify the value. If you specify the target ID using the
9801	// short form, you must also specify the target type.
9802	//
9803	// Attributes is a required field
9804	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
9805
9806	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
9807	// the resource to delete attributes. If you do not specify a cluster, the default
9808	// cluster is assumed.
9809	Cluster *string `locationName:"cluster" type:"string"`
9810}
9811
9812// String returns the string representation
9813func (s DeleteAttributesInput) String() string {
9814	return awsutil.Prettify(s)
9815}
9816
9817// GoString returns the string representation
9818func (s DeleteAttributesInput) GoString() string {
9819	return s.String()
9820}
9821
9822// Validate inspects the fields of the type to determine if they are valid.
9823func (s *DeleteAttributesInput) Validate() error {
9824	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
9825	if s.Attributes == nil {
9826		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9827	}
9828	if s.Attributes != nil {
9829		for i, v := range s.Attributes {
9830			if v == nil {
9831				continue
9832			}
9833			if err := v.Validate(); err != nil {
9834				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9835			}
9836		}
9837	}
9838
9839	if invalidParams.Len() > 0 {
9840		return invalidParams
9841	}
9842	return nil
9843}
9844
9845// SetAttributes sets the Attributes field's value.
9846func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
9847	s.Attributes = v
9848	return s
9849}
9850
9851// SetCluster sets the Cluster field's value.
9852func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
9853	s.Cluster = &v
9854	return s
9855}
9856
9857type DeleteAttributesOutput struct {
9858	_ struct{} `type:"structure"`
9859
9860	// A list of attribute objects that were successfully deleted from your resource.
9861	Attributes []*Attribute `locationName:"attributes" type:"list"`
9862}
9863
9864// String returns the string representation
9865func (s DeleteAttributesOutput) String() string {
9866	return awsutil.Prettify(s)
9867}
9868
9869// GoString returns the string representation
9870func (s DeleteAttributesOutput) GoString() string {
9871	return s.String()
9872}
9873
9874// SetAttributes sets the Attributes field's value.
9875func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
9876	s.Attributes = v
9877	return s
9878}
9879
9880type DeleteCapacityProviderInput struct {
9881	_ struct{} `type:"structure"`
9882
9883	// The short name or full Amazon Resource Name (ARN) of the capacity provider
9884	// to delete.
9885	//
9886	// CapacityProvider is a required field
9887	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
9888}
9889
9890// String returns the string representation
9891func (s DeleteCapacityProviderInput) String() string {
9892	return awsutil.Prettify(s)
9893}
9894
9895// GoString returns the string representation
9896func (s DeleteCapacityProviderInput) GoString() string {
9897	return s.String()
9898}
9899
9900// Validate inspects the fields of the type to determine if they are valid.
9901func (s *DeleteCapacityProviderInput) Validate() error {
9902	invalidParams := request.ErrInvalidParams{Context: "DeleteCapacityProviderInput"}
9903	if s.CapacityProvider == nil {
9904		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
9905	}
9906
9907	if invalidParams.Len() > 0 {
9908		return invalidParams
9909	}
9910	return nil
9911}
9912
9913// SetCapacityProvider sets the CapacityProvider field's value.
9914func (s *DeleteCapacityProviderInput) SetCapacityProvider(v string) *DeleteCapacityProviderInput {
9915	s.CapacityProvider = &v
9916	return s
9917}
9918
9919type DeleteCapacityProviderOutput struct {
9920	_ struct{} `type:"structure"`
9921
9922	// The details of a capacity provider.
9923	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
9924}
9925
9926// String returns the string representation
9927func (s DeleteCapacityProviderOutput) String() string {
9928	return awsutil.Prettify(s)
9929}
9930
9931// GoString returns the string representation
9932func (s DeleteCapacityProviderOutput) GoString() string {
9933	return s.String()
9934}
9935
9936// SetCapacityProvider sets the CapacityProvider field's value.
9937func (s *DeleteCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *DeleteCapacityProviderOutput {
9938	s.CapacityProvider = v
9939	return s
9940}
9941
9942type DeleteClusterInput struct {
9943	_ struct{} `type:"structure"`
9944
9945	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
9946	//
9947	// Cluster is a required field
9948	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9949}
9950
9951// String returns the string representation
9952func (s DeleteClusterInput) String() string {
9953	return awsutil.Prettify(s)
9954}
9955
9956// GoString returns the string representation
9957func (s DeleteClusterInput) GoString() string {
9958	return s.String()
9959}
9960
9961// Validate inspects the fields of the type to determine if they are valid.
9962func (s *DeleteClusterInput) Validate() error {
9963	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
9964	if s.Cluster == nil {
9965		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9966	}
9967
9968	if invalidParams.Len() > 0 {
9969		return invalidParams
9970	}
9971	return nil
9972}
9973
9974// SetCluster sets the Cluster field's value.
9975func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
9976	s.Cluster = &v
9977	return s
9978}
9979
9980type DeleteClusterOutput struct {
9981	_ struct{} `type:"structure"`
9982
9983	// The full description of the deleted cluster.
9984	Cluster *Cluster `locationName:"cluster" type:"structure"`
9985}
9986
9987// String returns the string representation
9988func (s DeleteClusterOutput) String() string {
9989	return awsutil.Prettify(s)
9990}
9991
9992// GoString returns the string representation
9993func (s DeleteClusterOutput) GoString() string {
9994	return s.String()
9995}
9996
9997// SetCluster sets the Cluster field's value.
9998func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
9999	s.Cluster = v
10000	return s
10001}
10002
10003type DeleteServiceInput struct {
10004	_ struct{} `type:"structure"`
10005
10006	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10007	// the service to delete. If you do not specify a cluster, the default cluster
10008	// is assumed.
10009	Cluster *string `locationName:"cluster" type:"string"`
10010
10011	// If true, allows you to delete a service even if it has not been scaled down
10012	// to zero tasks. It is only necessary to use this if the service is using the
10013	// REPLICA scheduling strategy.
10014	Force *bool `locationName:"force" type:"boolean"`
10015
10016	// The name of the service to delete.
10017	//
10018	// Service is a required field
10019	Service *string `locationName:"service" type:"string" required:"true"`
10020}
10021
10022// String returns the string representation
10023func (s DeleteServiceInput) String() string {
10024	return awsutil.Prettify(s)
10025}
10026
10027// GoString returns the string representation
10028func (s DeleteServiceInput) GoString() string {
10029	return s.String()
10030}
10031
10032// Validate inspects the fields of the type to determine if they are valid.
10033func (s *DeleteServiceInput) Validate() error {
10034	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
10035	if s.Service == nil {
10036		invalidParams.Add(request.NewErrParamRequired("Service"))
10037	}
10038
10039	if invalidParams.Len() > 0 {
10040		return invalidParams
10041	}
10042	return nil
10043}
10044
10045// SetCluster sets the Cluster field's value.
10046func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
10047	s.Cluster = &v
10048	return s
10049}
10050
10051// SetForce sets the Force field's value.
10052func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
10053	s.Force = &v
10054	return s
10055}
10056
10057// SetService sets the Service field's value.
10058func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
10059	s.Service = &v
10060	return s
10061}
10062
10063type DeleteServiceOutput struct {
10064	_ struct{} `type:"structure"`
10065
10066	// The full description of the deleted service.
10067	Service *Service `locationName:"service" type:"structure"`
10068}
10069
10070// String returns the string representation
10071func (s DeleteServiceOutput) String() string {
10072	return awsutil.Prettify(s)
10073}
10074
10075// GoString returns the string representation
10076func (s DeleteServiceOutput) GoString() string {
10077	return s.String()
10078}
10079
10080// SetService sets the Service field's value.
10081func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
10082	s.Service = v
10083	return s
10084}
10085
10086type DeleteTaskSetInput struct {
10087	_ struct{} `type:"structure"`
10088
10089	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10090	// the service that the task set exists in to delete.
10091	//
10092	// Cluster is a required field
10093	Cluster *string `locationName:"cluster" type:"string" required:"true"`
10094
10095	// If true, this allows you to delete a task set even if it hasn't been scaled
10096	// down to zero.
10097	Force *bool `locationName:"force" type:"boolean"`
10098
10099	// The short name or full Amazon Resource Name (ARN) of the service that hosts
10100	// the task set to delete.
10101	//
10102	// Service is a required field
10103	Service *string `locationName:"service" type:"string" required:"true"`
10104
10105	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
10106	//
10107	// TaskSet is a required field
10108	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
10109}
10110
10111// String returns the string representation
10112func (s DeleteTaskSetInput) String() string {
10113	return awsutil.Prettify(s)
10114}
10115
10116// GoString returns the string representation
10117func (s DeleteTaskSetInput) GoString() string {
10118	return s.String()
10119}
10120
10121// Validate inspects the fields of the type to determine if they are valid.
10122func (s *DeleteTaskSetInput) Validate() error {
10123	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
10124	if s.Cluster == nil {
10125		invalidParams.Add(request.NewErrParamRequired("Cluster"))
10126	}
10127	if s.Service == nil {
10128		invalidParams.Add(request.NewErrParamRequired("Service"))
10129	}
10130	if s.TaskSet == nil {
10131		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
10132	}
10133
10134	if invalidParams.Len() > 0 {
10135		return invalidParams
10136	}
10137	return nil
10138}
10139
10140// SetCluster sets the Cluster field's value.
10141func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
10142	s.Cluster = &v
10143	return s
10144}
10145
10146// SetForce sets the Force field's value.
10147func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
10148	s.Force = &v
10149	return s
10150}
10151
10152// SetService sets the Service field's value.
10153func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
10154	s.Service = &v
10155	return s
10156}
10157
10158// SetTaskSet sets the TaskSet field's value.
10159func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
10160	s.TaskSet = &v
10161	return s
10162}
10163
10164type DeleteTaskSetOutput struct {
10165	_ struct{} `type:"structure"`
10166
10167	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
10168	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
10169	// desired number of tasks, how many tasks are running, and whether the task
10170	// set serves production traffic.
10171	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
10172}
10173
10174// String returns the string representation
10175func (s DeleteTaskSetOutput) String() string {
10176	return awsutil.Prettify(s)
10177}
10178
10179// GoString returns the string representation
10180func (s DeleteTaskSetOutput) GoString() string {
10181	return s.String()
10182}
10183
10184// SetTaskSet sets the TaskSet field's value.
10185func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
10186	s.TaskSet = v
10187	return s
10188}
10189
10190// The details of an Amazon ECS service deployment. This is used only when a
10191// service uses the ECS deployment controller type.
10192type Deployment struct {
10193	_ struct{} `type:"structure"`
10194
10195	// The capacity provider strategy that the deployment is using.
10196	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
10197
10198	// The Unix timestamp for when the service deployment was created.
10199	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
10200
10201	// The most recent desired count of tasks that was specified for the service
10202	// to deploy or maintain.
10203	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
10204
10205	// The number of consecutively failed tasks in the deployment. A task is considered
10206	// a failure if the service scheduler can't launch the task, the task doesn't
10207	// transition to a RUNNING state, or if it fails any of its defined health checks
10208	// and is stopped.
10209	//
10210	// Once a service deployment has one or more successfully running tasks, the
10211	// failed task count resets to zero and stops being evaluated.
10212	FailedTasks *int64 `locationName:"failedTasks" type:"integer"`
10213
10214	// The ID of the deployment.
10215	Id *string `locationName:"id" type:"string"`
10216
10217	// The launch type the tasks in the service are using. For more information,
10218	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
10219	// in the Amazon Elastic Container Service Developer Guide.
10220	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10221
10222	// The VPC subnet and security group configuration for tasks that receive their
10223	// own elastic network interface by using the awsvpc networking mode.
10224	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
10225
10226	// The number of tasks in the deployment that are in the PENDING status.
10227	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
10228
10229	// The platform version on which your tasks in the service are running. A platform
10230	// version is only specified for tasks using the Fargate launch type. If one
10231	// is not specified, the LATEST platform version is used by default. For more
10232	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
10233	// in the Amazon Elastic Container Service Developer Guide.
10234	PlatformVersion *string `locationName:"platformVersion" type:"string"`
10235
10236	//
10237	// The rolloutState of a service is only returned for services that use the
10238	// rolling update (ECS) deployment type that are not behind a Classic Load Balancer.
10239	//
10240	// The rollout state of the deployment. When a service deployment is started,
10241	// it begins in an IN_PROGRESS state. When the service reaches a steady state,
10242	// the deployment will transition to a COMPLETED state. If the service fails
10243	// to reach a steady state and circuit breaker is enabled, the deployment will
10244	// transition to a FAILED state. A deployment in FAILED state will launch no
10245	// new tasks. For more information, see DeploymentCircuitBreaker.
10246	RolloutState *string `locationName:"rolloutState" type:"string" enum:"DeploymentRolloutState"`
10247
10248	// A description of the rollout state of a deployment.
10249	RolloutStateReason *string `locationName:"rolloutStateReason" type:"string"`
10250
10251	// The number of tasks in the deployment that are in the RUNNING status.
10252	RunningCount *int64 `locationName:"runningCount" type:"integer"`
10253
10254	// The status of the deployment. The following describes each state:
10255	//
10256	// PRIMARY
10257	//
10258	// The most recent deployment of a service.
10259	//
10260	// ACTIVE
10261	//
10262	// A service deployment that still has running tasks, but are in the process
10263	// of being replaced with a new PRIMARY deployment.
10264	//
10265	// INACTIVE
10266	//
10267	// A deployment that has been completely replaced.
10268	Status *string `locationName:"status" type:"string"`
10269
10270	// The most recent task definition that was specified for the tasks in the service
10271	// to use.
10272	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
10273
10274	// The Unix timestamp for when the service deployment was last updated.
10275	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
10276}
10277
10278// String returns the string representation
10279func (s Deployment) String() string {
10280	return awsutil.Prettify(s)
10281}
10282
10283// GoString returns the string representation
10284func (s Deployment) GoString() string {
10285	return s.String()
10286}
10287
10288// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
10289func (s *Deployment) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Deployment {
10290	s.CapacityProviderStrategy = v
10291	return s
10292}
10293
10294// SetCreatedAt sets the CreatedAt field's value.
10295func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
10296	s.CreatedAt = &v
10297	return s
10298}
10299
10300// SetDesiredCount sets the DesiredCount field's value.
10301func (s *Deployment) SetDesiredCount(v int64) *Deployment {
10302	s.DesiredCount = &v
10303	return s
10304}
10305
10306// SetFailedTasks sets the FailedTasks field's value.
10307func (s *Deployment) SetFailedTasks(v int64) *Deployment {
10308	s.FailedTasks = &v
10309	return s
10310}
10311
10312// SetId sets the Id field's value.
10313func (s *Deployment) SetId(v string) *Deployment {
10314	s.Id = &v
10315	return s
10316}
10317
10318// SetLaunchType sets the LaunchType field's value.
10319func (s *Deployment) SetLaunchType(v string) *Deployment {
10320	s.LaunchType = &v
10321	return s
10322}
10323
10324// SetNetworkConfiguration sets the NetworkConfiguration field's value.
10325func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
10326	s.NetworkConfiguration = v
10327	return s
10328}
10329
10330// SetPendingCount sets the PendingCount field's value.
10331func (s *Deployment) SetPendingCount(v int64) *Deployment {
10332	s.PendingCount = &v
10333	return s
10334}
10335
10336// SetPlatformVersion sets the PlatformVersion field's value.
10337func (s *Deployment) SetPlatformVersion(v string) *Deployment {
10338	s.PlatformVersion = &v
10339	return s
10340}
10341
10342// SetRolloutState sets the RolloutState field's value.
10343func (s *Deployment) SetRolloutState(v string) *Deployment {
10344	s.RolloutState = &v
10345	return s
10346}
10347
10348// SetRolloutStateReason sets the RolloutStateReason field's value.
10349func (s *Deployment) SetRolloutStateReason(v string) *Deployment {
10350	s.RolloutStateReason = &v
10351	return s
10352}
10353
10354// SetRunningCount sets the RunningCount field's value.
10355func (s *Deployment) SetRunningCount(v int64) *Deployment {
10356	s.RunningCount = &v
10357	return s
10358}
10359
10360// SetStatus sets the Status field's value.
10361func (s *Deployment) SetStatus(v string) *Deployment {
10362	s.Status = &v
10363	return s
10364}
10365
10366// SetTaskDefinition sets the TaskDefinition field's value.
10367func (s *Deployment) SetTaskDefinition(v string) *Deployment {
10368	s.TaskDefinition = &v
10369	return s
10370}
10371
10372// SetUpdatedAt sets the UpdatedAt field's value.
10373func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
10374	s.UpdatedAt = &v
10375	return s
10376}
10377
10378//
10379// The deployment circuit breaker can only be used for services using the rolling
10380// update (ECS) deployment type that are not behind a Classic Load Balancer.
10381//
10382// The deployment circuit breaker determines whether a service deployment will
10383// fail if the service can't reach a steady state. If enabled, a service deployment
10384// will transition to a failed state and stop launching new tasks. You can also
10385// enable Amazon ECS to roll back your service to the last completed deployment
10386// after a failure. For more information, see Rolling update (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html)
10387// in the Amazon Elastic Container Service Developer Guide.
10388type DeploymentCircuitBreaker struct {
10389	_ struct{} `type:"structure"`
10390
10391	// Whether to enable the deployment circuit breaker logic for the service.
10392	//
10393	// Enable is a required field
10394	Enable *bool `locationName:"enable" type:"boolean" required:"true"`
10395
10396	// Whether to enable Amazon ECS to roll back the service if a service deployment
10397	// fails. If rollback is enabled, when a service deployment fails, the service
10398	// is rolled back to the last deployment that completed successfully.
10399	//
10400	// Rollback is a required field
10401	Rollback *bool `locationName:"rollback" type:"boolean" required:"true"`
10402}
10403
10404// String returns the string representation
10405func (s DeploymentCircuitBreaker) String() string {
10406	return awsutil.Prettify(s)
10407}
10408
10409// GoString returns the string representation
10410func (s DeploymentCircuitBreaker) GoString() string {
10411	return s.String()
10412}
10413
10414// Validate inspects the fields of the type to determine if they are valid.
10415func (s *DeploymentCircuitBreaker) Validate() error {
10416	invalidParams := request.ErrInvalidParams{Context: "DeploymentCircuitBreaker"}
10417	if s.Enable == nil {
10418		invalidParams.Add(request.NewErrParamRequired("Enable"))
10419	}
10420	if s.Rollback == nil {
10421		invalidParams.Add(request.NewErrParamRequired("Rollback"))
10422	}
10423
10424	if invalidParams.Len() > 0 {
10425		return invalidParams
10426	}
10427	return nil
10428}
10429
10430// SetEnable sets the Enable field's value.
10431func (s *DeploymentCircuitBreaker) SetEnable(v bool) *DeploymentCircuitBreaker {
10432	s.Enable = &v
10433	return s
10434}
10435
10436// SetRollback sets the Rollback field's value.
10437func (s *DeploymentCircuitBreaker) SetRollback(v bool) *DeploymentCircuitBreaker {
10438	s.Rollback = &v
10439	return s
10440}
10441
10442// Optional deployment parameters that control how many tasks run during a deployment
10443// and the ordering of stopping and starting tasks.
10444type DeploymentConfiguration struct {
10445	_ struct{} `type:"structure"`
10446
10447	//
10448	// The deployment circuit breaker can only be used for services using the rolling
10449	// update (ECS) deployment type.
10450	//
10451	// The deployment circuit breaker determines whether a service deployment will
10452	// fail if the service can't reach a steady state. If deployment circuit breaker
10453	// is enabled, a service deployment will transition to a failed state and stop
10454	// launching new tasks. If rollback is enabled, when a service deployment fails,
10455	// the service is rolled back to the last deployment that completed successfully.
10456	DeploymentCircuitBreaker *DeploymentCircuitBreaker `locationName:"deploymentCircuitBreaker" type:"structure"`
10457
10458	// If a service is using the rolling update (ECS) deployment type, the maximum
10459	// percent parameter represents an upper limit on the number of tasks in a service
10460	// that are allowed in the RUNNING or PENDING state during a deployment, as
10461	// a percentage of the desired number of tasks (rounded down to the nearest
10462	// integer), and while any container instances are in the DRAINING state if
10463	// the service contains tasks using the EC2 launch type. This parameter enables
10464	// you to define the deployment batch size. For example, if your service has
10465	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
10466	// may start four new tasks before stopping the four older tasks (provided that
10467	// the cluster resources required to do this are available). The default value
10468	// for maximum percent is 200%.
10469	//
10470	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10471	// types and tasks that use the EC2 launch type, the maximum percent value is
10472	// set to the default value and is used to define the upper limit on the number
10473	// of the tasks in the service that remain in the RUNNING state while the container
10474	// instances are in the DRAINING state. If the tasks in the service use the
10475	// Fargate launch type, the maximum percent value is not used, although it is
10476	// returned when describing your service.
10477	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
10478
10479	// If a service is using the rolling update (ECS) deployment type, the minimum
10480	// healthy percent represents a lower limit on the number of tasks in a service
10481	// that must remain in the RUNNING state during a deployment, as a percentage
10482	// of the desired number of tasks (rounded up to the nearest integer), and while
10483	// any container instances are in the DRAINING state if the service contains
10484	// tasks using the EC2 launch type. This parameter enables you to deploy without
10485	// using additional cluster capacity. For example, if your service has a desired
10486	// number of four tasks and a minimum healthy percent of 50%, the scheduler
10487	// may stop two existing tasks to free up cluster capacity before starting two
10488	// new tasks. Tasks for services that do not use a load balancer are considered
10489	// healthy if they are in the RUNNING state; tasks for services that do use
10490	// a load balancer are considered healthy if they are in the RUNNING state and
10491	// they are reported as healthy by the load balancer. The default value for
10492	// minimum healthy percent is 100%.
10493	//
10494	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10495	// types and tasks that use the EC2 launch type, the minimum healthy percent
10496	// value is set to the default value and is used to define the lower limit on
10497	// the number of the tasks in the service that remain in the RUNNING state while
10498	// the container instances are in the DRAINING state. If the tasks in the service
10499	// use the Fargate launch type, the minimum healthy percent value is not used,
10500	// although it is returned when describing your service.
10501	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
10502}
10503
10504// String returns the string representation
10505func (s DeploymentConfiguration) String() string {
10506	return awsutil.Prettify(s)
10507}
10508
10509// GoString returns the string representation
10510func (s DeploymentConfiguration) GoString() string {
10511	return s.String()
10512}
10513
10514// Validate inspects the fields of the type to determine if they are valid.
10515func (s *DeploymentConfiguration) Validate() error {
10516	invalidParams := request.ErrInvalidParams{Context: "DeploymentConfiguration"}
10517	if s.DeploymentCircuitBreaker != nil {
10518		if err := s.DeploymentCircuitBreaker.Validate(); err != nil {
10519			invalidParams.AddNested("DeploymentCircuitBreaker", err.(request.ErrInvalidParams))
10520		}
10521	}
10522
10523	if invalidParams.Len() > 0 {
10524		return invalidParams
10525	}
10526	return nil
10527}
10528
10529// SetDeploymentCircuitBreaker sets the DeploymentCircuitBreaker field's value.
10530func (s *DeploymentConfiguration) SetDeploymentCircuitBreaker(v *DeploymentCircuitBreaker) *DeploymentConfiguration {
10531	s.DeploymentCircuitBreaker = v
10532	return s
10533}
10534
10535// SetMaximumPercent sets the MaximumPercent field's value.
10536func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
10537	s.MaximumPercent = &v
10538	return s
10539}
10540
10541// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
10542func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
10543	s.MinimumHealthyPercent = &v
10544	return s
10545}
10546
10547// The deployment controller to use for the service. For more information, see
10548// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
10549// in the Amazon Elastic Container Service Developer Guide.
10550type DeploymentController struct {
10551	_ struct{} `type:"structure"`
10552
10553	// The deployment controller type to use.
10554	//
10555	// There are three deployment controller types available:
10556	//
10557	// ECS
10558	//
10559	// The rolling update (ECS) deployment type involves replacing the current running
10560	// version of the container with the latest version. The number of containers
10561	// Amazon ECS adds or removes from the service during a rolling update is controlled
10562	// by adjusting the minimum and maximum number of healthy tasks allowed during
10563	// a service deployment, as specified in the DeploymentConfiguration.
10564	//
10565	// CODE_DEPLOY
10566	//
10567	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
10568	// model powered by AWS CodeDeploy, which allows you to verify a new deployment
10569	// of a service before sending production traffic to it.
10570	//
10571	// EXTERNAL
10572	//
10573	// The external (EXTERNAL) deployment type enables you to use any third-party
10574	// deployment controller for full control over the deployment process for an
10575	// Amazon ECS service.
10576	//
10577	// Type is a required field
10578	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
10579}
10580
10581// String returns the string representation
10582func (s DeploymentController) String() string {
10583	return awsutil.Prettify(s)
10584}
10585
10586// GoString returns the string representation
10587func (s DeploymentController) GoString() string {
10588	return s.String()
10589}
10590
10591// Validate inspects the fields of the type to determine if they are valid.
10592func (s *DeploymentController) Validate() error {
10593	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
10594	if s.Type == nil {
10595		invalidParams.Add(request.NewErrParamRequired("Type"))
10596	}
10597
10598	if invalidParams.Len() > 0 {
10599		return invalidParams
10600	}
10601	return nil
10602}
10603
10604// SetType sets the Type field's value.
10605func (s *DeploymentController) SetType(v string) *DeploymentController {
10606	s.Type = &v
10607	return s
10608}
10609
10610type DeregisterContainerInstanceInput struct {
10611	_ struct{} `type:"structure"`
10612
10613	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10614	// the container instance to deregister. If you do not specify a cluster, the
10615	// default cluster is assumed.
10616	Cluster *string `locationName:"cluster" type:"string"`
10617
10618	// The container instance ID or full ARN of the container instance to deregister.
10619	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
10620	// container instance, the AWS account ID of the container instance owner, the
10621	// container-instance namespace, and then the container instance ID. For example,
10622	// arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
10623	//
10624	// ContainerInstance is a required field
10625	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
10626
10627	// Forces the deregistration of the container instance. If you have tasks running
10628	// on the container instance when you deregister it with the force option, these
10629	// tasks remain running until you terminate the instance or the tasks stop through
10630	// some other means, but they are orphaned (no longer monitored or accounted
10631	// for by Amazon ECS). If an orphaned task on your container instance is part
10632	// of an Amazon ECS service, then the service scheduler starts another copy
10633	// of that task, on a different container instance if possible.
10634	//
10635	// Any containers in orphaned service tasks that are registered with a Classic
10636	// Load Balancer or an Application Load Balancer target group are deregistered.
10637	// They begin connection draining according to the settings on the load balancer
10638	// or target group.
10639	Force *bool `locationName:"force" type:"boolean"`
10640}
10641
10642// String returns the string representation
10643func (s DeregisterContainerInstanceInput) String() string {
10644	return awsutil.Prettify(s)
10645}
10646
10647// GoString returns the string representation
10648func (s DeregisterContainerInstanceInput) GoString() string {
10649	return s.String()
10650}
10651
10652// Validate inspects the fields of the type to determine if they are valid.
10653func (s *DeregisterContainerInstanceInput) Validate() error {
10654	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
10655	if s.ContainerInstance == nil {
10656		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
10657	}
10658
10659	if invalidParams.Len() > 0 {
10660		return invalidParams
10661	}
10662	return nil
10663}
10664
10665// SetCluster sets the Cluster field's value.
10666func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
10667	s.Cluster = &v
10668	return s
10669}
10670
10671// SetContainerInstance sets the ContainerInstance field's value.
10672func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
10673	s.ContainerInstance = &v
10674	return s
10675}
10676
10677// SetForce sets the Force field's value.
10678func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
10679	s.Force = &v
10680	return s
10681}
10682
10683type DeregisterContainerInstanceOutput struct {
10684	_ struct{} `type:"structure"`
10685
10686	// The container instance that was deregistered.
10687	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
10688}
10689
10690// String returns the string representation
10691func (s DeregisterContainerInstanceOutput) String() string {
10692	return awsutil.Prettify(s)
10693}
10694
10695// GoString returns the string representation
10696func (s DeregisterContainerInstanceOutput) GoString() string {
10697	return s.String()
10698}
10699
10700// SetContainerInstance sets the ContainerInstance field's value.
10701func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
10702	s.ContainerInstance = v
10703	return s
10704}
10705
10706type DeregisterTaskDefinitionInput struct {
10707	_ struct{} `type:"structure"`
10708
10709	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
10710	// of the task definition to deregister. You must specify a revision.
10711	//
10712	// TaskDefinition is a required field
10713	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10714}
10715
10716// String returns the string representation
10717func (s DeregisterTaskDefinitionInput) String() string {
10718	return awsutil.Prettify(s)
10719}
10720
10721// GoString returns the string representation
10722func (s DeregisterTaskDefinitionInput) GoString() string {
10723	return s.String()
10724}
10725
10726// Validate inspects the fields of the type to determine if they are valid.
10727func (s *DeregisterTaskDefinitionInput) Validate() error {
10728	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
10729	if s.TaskDefinition == nil {
10730		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10731	}
10732
10733	if invalidParams.Len() > 0 {
10734		return invalidParams
10735	}
10736	return nil
10737}
10738
10739// SetTaskDefinition sets the TaskDefinition field's value.
10740func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
10741	s.TaskDefinition = &v
10742	return s
10743}
10744
10745type DeregisterTaskDefinitionOutput struct {
10746	_ struct{} `type:"structure"`
10747
10748	// The full description of the deregistered task.
10749	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10750}
10751
10752// String returns the string representation
10753func (s DeregisterTaskDefinitionOutput) String() string {
10754	return awsutil.Prettify(s)
10755}
10756
10757// GoString returns the string representation
10758func (s DeregisterTaskDefinitionOutput) GoString() string {
10759	return s.String()
10760}
10761
10762// SetTaskDefinition sets the TaskDefinition field's value.
10763func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
10764	s.TaskDefinition = v
10765	return s
10766}
10767
10768type DescribeCapacityProvidersInput struct {
10769	_ struct{} `type:"structure"`
10770
10771	// The short name or full Amazon Resource Name (ARN) of one or more capacity
10772	// providers. Up to 100 capacity providers can be described in an action.
10773	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
10774
10775	// Specifies whether or not you want to see the resource tags for the capacity
10776	// provider. If TAGS is specified, the tags are included in the response. If
10777	// this field is omitted, tags are not included in the response.
10778	Include []*string `locationName:"include" type:"list"`
10779
10780	// The maximum number of account setting results returned by DescribeCapacityProviders
10781	// in paginated output. When this parameter is used, DescribeCapacityProviders
10782	// only returns maxResults results in a single page along with a nextToken response
10783	// element. The remaining results of the initial request can be seen by sending
10784	// another DescribeCapacityProviders request with the returned nextToken value.
10785	// This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders
10786	// returns up to 10 results and a nextToken value if applicable.
10787	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10788
10789	// The nextToken value returned from a previous paginated DescribeCapacityProviders
10790	// request where maxResults was used and the results exceeded the value of that
10791	// parameter. Pagination continues from the end of the previous results that
10792	// returned the nextToken value.
10793	//
10794	// This token should be treated as an opaque identifier that is only used to
10795	// retrieve the next items in a list and not for other programmatic purposes.
10796	NextToken *string `locationName:"nextToken" type:"string"`
10797}
10798
10799// String returns the string representation
10800func (s DescribeCapacityProvidersInput) String() string {
10801	return awsutil.Prettify(s)
10802}
10803
10804// GoString returns the string representation
10805func (s DescribeCapacityProvidersInput) GoString() string {
10806	return s.String()
10807}
10808
10809// SetCapacityProviders sets the CapacityProviders field's value.
10810func (s *DescribeCapacityProvidersInput) SetCapacityProviders(v []*string) *DescribeCapacityProvidersInput {
10811	s.CapacityProviders = v
10812	return s
10813}
10814
10815// SetInclude sets the Include field's value.
10816func (s *DescribeCapacityProvidersInput) SetInclude(v []*string) *DescribeCapacityProvidersInput {
10817	s.Include = v
10818	return s
10819}
10820
10821// SetMaxResults sets the MaxResults field's value.
10822func (s *DescribeCapacityProvidersInput) SetMaxResults(v int64) *DescribeCapacityProvidersInput {
10823	s.MaxResults = &v
10824	return s
10825}
10826
10827// SetNextToken sets the NextToken field's value.
10828func (s *DescribeCapacityProvidersInput) SetNextToken(v string) *DescribeCapacityProvidersInput {
10829	s.NextToken = &v
10830	return s
10831}
10832
10833type DescribeCapacityProvidersOutput struct {
10834	_ struct{} `type:"structure"`
10835
10836	// The list of capacity providers.
10837	CapacityProviders []*CapacityProvider `locationName:"capacityProviders" type:"list"`
10838
10839	// Any failures associated with the call.
10840	Failures []*Failure `locationName:"failures" type:"list"`
10841
10842	// The nextToken value to include in a future DescribeCapacityProviders request.
10843	// When the results of a DescribeCapacityProviders request exceed maxResults,
10844	// this value can be used to retrieve the next page of results. This value is
10845	// null when there are no more results to return.
10846	NextToken *string `locationName:"nextToken" type:"string"`
10847}
10848
10849// String returns the string representation
10850func (s DescribeCapacityProvidersOutput) String() string {
10851	return awsutil.Prettify(s)
10852}
10853
10854// GoString returns the string representation
10855func (s DescribeCapacityProvidersOutput) GoString() string {
10856	return s.String()
10857}
10858
10859// SetCapacityProviders sets the CapacityProviders field's value.
10860func (s *DescribeCapacityProvidersOutput) SetCapacityProviders(v []*CapacityProvider) *DescribeCapacityProvidersOutput {
10861	s.CapacityProviders = v
10862	return s
10863}
10864
10865// SetFailures sets the Failures field's value.
10866func (s *DescribeCapacityProvidersOutput) SetFailures(v []*Failure) *DescribeCapacityProvidersOutput {
10867	s.Failures = v
10868	return s
10869}
10870
10871// SetNextToken sets the NextToken field's value.
10872func (s *DescribeCapacityProvidersOutput) SetNextToken(v string) *DescribeCapacityProvidersOutput {
10873	s.NextToken = &v
10874	return s
10875}
10876
10877type DescribeClustersInput struct {
10878	_ struct{} `type:"structure"`
10879
10880	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
10881	// entries. If you do not specify a cluster, the default cluster is assumed.
10882	Clusters []*string `locationName:"clusters" type:"list"`
10883
10884	// Whether to include additional information about your clusters in the response.
10885	// If this field is omitted, the attachments, statistics, and tags are not included.
10886	//
10887	// If ATTACHMENTS is specified, the attachments for the container instances
10888	// or tasks within the cluster are included.
10889	//
10890	// If SETTINGS is specified, the settings for the cluster are included.
10891	//
10892	// If STATISTICS is specified, the following additional information, separated
10893	// by launch type, is included:
10894	//
10895	//    * runningEC2TasksCount
10896	//
10897	//    * runningFargateTasksCount
10898	//
10899	//    * pendingEC2TasksCount
10900	//
10901	//    * pendingFargateTasksCount
10902	//
10903	//    * activeEC2ServiceCount
10904	//
10905	//    * activeFargateServiceCount
10906	//
10907	//    * drainingEC2ServiceCount
10908	//
10909	//    * drainingFargateServiceCount
10910	//
10911	// If TAGS is specified, the metadata tags associated with the cluster are included.
10912	Include []*string `locationName:"include" type:"list"`
10913}
10914
10915// String returns the string representation
10916func (s DescribeClustersInput) String() string {
10917	return awsutil.Prettify(s)
10918}
10919
10920// GoString returns the string representation
10921func (s DescribeClustersInput) GoString() string {
10922	return s.String()
10923}
10924
10925// SetClusters sets the Clusters field's value.
10926func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
10927	s.Clusters = v
10928	return s
10929}
10930
10931// SetInclude sets the Include field's value.
10932func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
10933	s.Include = v
10934	return s
10935}
10936
10937type DescribeClustersOutput struct {
10938	_ struct{} `type:"structure"`
10939
10940	// The list of clusters.
10941	Clusters []*Cluster `locationName:"clusters" type:"list"`
10942
10943	// Any failures associated with the call.
10944	Failures []*Failure `locationName:"failures" type:"list"`
10945}
10946
10947// String returns the string representation
10948func (s DescribeClustersOutput) String() string {
10949	return awsutil.Prettify(s)
10950}
10951
10952// GoString returns the string representation
10953func (s DescribeClustersOutput) GoString() string {
10954	return s.String()
10955}
10956
10957// SetClusters sets the Clusters field's value.
10958func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
10959	s.Clusters = v
10960	return s
10961}
10962
10963// SetFailures sets the Failures field's value.
10964func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
10965	s.Failures = v
10966	return s
10967}
10968
10969type DescribeContainerInstancesInput struct {
10970	_ struct{} `type:"structure"`
10971
10972	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10973	// the container instances to describe. If you do not specify a cluster, the
10974	// default cluster is assumed. This parameter is required if the container instance
10975	// or container instances you are describing were launched in any cluster other
10976	// than the default cluster.
10977	Cluster *string `locationName:"cluster" type:"string"`
10978
10979	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
10980	// entries.
10981	//
10982	// ContainerInstances is a required field
10983	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
10984
10985	// Specifies whether you want to see the resource tags for the container instance.
10986	// If TAGS is specified, the tags are included in the response. If this field
10987	// is omitted, tags are not included in the response.
10988	Include []*string `locationName:"include" type:"list"`
10989}
10990
10991// String returns the string representation
10992func (s DescribeContainerInstancesInput) String() string {
10993	return awsutil.Prettify(s)
10994}
10995
10996// GoString returns the string representation
10997func (s DescribeContainerInstancesInput) GoString() string {
10998	return s.String()
10999}
11000
11001// Validate inspects the fields of the type to determine if they are valid.
11002func (s *DescribeContainerInstancesInput) Validate() error {
11003	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
11004	if s.ContainerInstances == nil {
11005		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
11006	}
11007
11008	if invalidParams.Len() > 0 {
11009		return invalidParams
11010	}
11011	return nil
11012}
11013
11014// SetCluster sets the Cluster field's value.
11015func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
11016	s.Cluster = &v
11017	return s
11018}
11019
11020// SetContainerInstances sets the ContainerInstances field's value.
11021func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
11022	s.ContainerInstances = v
11023	return s
11024}
11025
11026// SetInclude sets the Include field's value.
11027func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
11028	s.Include = v
11029	return s
11030}
11031
11032type DescribeContainerInstancesOutput struct {
11033	_ struct{} `type:"structure"`
11034
11035	// The list of container instances.
11036	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
11037
11038	// Any failures associated with the call.
11039	Failures []*Failure `locationName:"failures" type:"list"`
11040}
11041
11042// String returns the string representation
11043func (s DescribeContainerInstancesOutput) String() string {
11044	return awsutil.Prettify(s)
11045}
11046
11047// GoString returns the string representation
11048func (s DescribeContainerInstancesOutput) GoString() string {
11049	return s.String()
11050}
11051
11052// SetContainerInstances sets the ContainerInstances field's value.
11053func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
11054	s.ContainerInstances = v
11055	return s
11056}
11057
11058// SetFailures sets the Failures field's value.
11059func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
11060	s.Failures = v
11061	return s
11062}
11063
11064type DescribeServicesInput struct {
11065	_ struct{} `type:"structure"`
11066
11067	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
11068	// service to describe. If you do not specify a cluster, the default cluster
11069	// is assumed. This parameter is required if the service or services you are
11070	// describing were launched in any cluster other than the default cluster.
11071	Cluster *string `locationName:"cluster" type:"string"`
11072
11073	// Specifies whether you want to see the resource tags for the service. If TAGS
11074	// is specified, the tags are included in the response. If this field is omitted,
11075	// tags are not included in the response.
11076	Include []*string `locationName:"include" type:"list"`
11077
11078	// A list of services to describe. You may specify up to 10 services to describe
11079	// in a single operation.
11080	//
11081	// Services is a required field
11082	Services []*string `locationName:"services" type:"list" required:"true"`
11083}
11084
11085// String returns the string representation
11086func (s DescribeServicesInput) String() string {
11087	return awsutil.Prettify(s)
11088}
11089
11090// GoString returns the string representation
11091func (s DescribeServicesInput) GoString() string {
11092	return s.String()
11093}
11094
11095// Validate inspects the fields of the type to determine if they are valid.
11096func (s *DescribeServicesInput) Validate() error {
11097	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
11098	if s.Services == nil {
11099		invalidParams.Add(request.NewErrParamRequired("Services"))
11100	}
11101
11102	if invalidParams.Len() > 0 {
11103		return invalidParams
11104	}
11105	return nil
11106}
11107
11108// SetCluster sets the Cluster field's value.
11109func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
11110	s.Cluster = &v
11111	return s
11112}
11113
11114// SetInclude sets the Include field's value.
11115func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
11116	s.Include = v
11117	return s
11118}
11119
11120// SetServices sets the Services field's value.
11121func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
11122	s.Services = v
11123	return s
11124}
11125
11126type DescribeServicesOutput struct {
11127	_ struct{} `type:"structure"`
11128
11129	// Any failures associated with the call.
11130	Failures []*Failure `locationName:"failures" type:"list"`
11131
11132	// The list of services described.
11133	Services []*Service `locationName:"services" type:"list"`
11134}
11135
11136// String returns the string representation
11137func (s DescribeServicesOutput) String() string {
11138	return awsutil.Prettify(s)
11139}
11140
11141// GoString returns the string representation
11142func (s DescribeServicesOutput) GoString() string {
11143	return s.String()
11144}
11145
11146// SetFailures sets the Failures field's value.
11147func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
11148	s.Failures = v
11149	return s
11150}
11151
11152// SetServices sets the Services field's value.
11153func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
11154	s.Services = v
11155	return s
11156}
11157
11158type DescribeTaskDefinitionInput struct {
11159	_ struct{} `type:"structure"`
11160
11161	// Specifies whether to see the resource tags for the task definition. If TAGS
11162	// is specified, the tags are included in the response. If this field is omitted,
11163	// tags are not included in the response.
11164	Include []*string `locationName:"include" type:"list"`
11165
11166	// The family for the latest ACTIVE revision, family and revision (family:revision)
11167	// for a specific revision in the family, or full Amazon Resource Name (ARN)
11168	// of the task definition to describe.
11169	//
11170	// TaskDefinition is a required field
11171	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
11172}
11173
11174// String returns the string representation
11175func (s DescribeTaskDefinitionInput) String() string {
11176	return awsutil.Prettify(s)
11177}
11178
11179// GoString returns the string representation
11180func (s DescribeTaskDefinitionInput) GoString() string {
11181	return s.String()
11182}
11183
11184// Validate inspects the fields of the type to determine if they are valid.
11185func (s *DescribeTaskDefinitionInput) Validate() error {
11186	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
11187	if s.TaskDefinition == nil {
11188		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
11189	}
11190
11191	if invalidParams.Len() > 0 {
11192		return invalidParams
11193	}
11194	return nil
11195}
11196
11197// SetInclude sets the Include field's value.
11198func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
11199	s.Include = v
11200	return s
11201}
11202
11203// SetTaskDefinition sets the TaskDefinition field's value.
11204func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
11205	s.TaskDefinition = &v
11206	return s
11207}
11208
11209type DescribeTaskDefinitionOutput struct {
11210	_ struct{} `type:"structure"`
11211
11212	// The metadata that is applied to the task definition to help you categorize
11213	// and organize them. Each tag consists of a key and an optional value, both
11214	// of which you define.
11215	//
11216	// The following basic restrictions apply to tags:
11217	//
11218	//    * Maximum number of tags per resource - 50
11219	//
11220	//    * For each resource, each tag key must be unique, and each tag key can
11221	//    have only one value.
11222	//
11223	//    * Maximum key length - 128 Unicode characters in UTF-8
11224	//
11225	//    * Maximum value length - 256 Unicode characters in UTF-8
11226	//
11227	//    * If your tagging schema is used across multiple services and resources,
11228	//    remember that other services may have restrictions on allowed characters.
11229	//    Generally allowed characters are: letters, numbers, and spaces representable
11230	//    in UTF-8, and the following characters: + - = . _ : / @.
11231	//
11232	//    * Tag keys and values are case-sensitive.
11233	//
11234	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
11235	//    as a prefix for either keys or values as it is reserved for AWS use. You
11236	//    cannot edit or delete tag keys or values with this prefix. Tags with this
11237	//    prefix do not count against your tags per resource limit.
11238	Tags []*Tag `locationName:"tags" type:"list"`
11239
11240	// The full task definition description.
11241	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
11242}
11243
11244// String returns the string representation
11245func (s DescribeTaskDefinitionOutput) String() string {
11246	return awsutil.Prettify(s)
11247}
11248
11249// GoString returns the string representation
11250func (s DescribeTaskDefinitionOutput) GoString() string {
11251	return s.String()
11252}
11253
11254// SetTags sets the Tags field's value.
11255func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
11256	s.Tags = v
11257	return s
11258}
11259
11260// SetTaskDefinition sets the TaskDefinition field's value.
11261func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
11262	s.TaskDefinition = v
11263	return s
11264}
11265
11266type DescribeTaskSetsInput struct {
11267	_ struct{} `type:"structure"`
11268
11269	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11270	// the service that the task sets exist in.
11271	//
11272	// Cluster is a required field
11273	Cluster *string `locationName:"cluster" type:"string" required:"true"`
11274
11275	// Specifies whether to see the resource tags for the task set. If TAGS is specified,
11276	// the tags are included in the response. If this field is omitted, tags are
11277	// not included in the response.
11278	Include []*string `locationName:"include" type:"list"`
11279
11280	// The short name or full Amazon Resource Name (ARN) of the service that the
11281	// task sets exist in.
11282	//
11283	// Service is a required field
11284	Service *string `locationName:"service" type:"string" required:"true"`
11285
11286	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
11287	TaskSets []*string `locationName:"taskSets" type:"list"`
11288}
11289
11290// String returns the string representation
11291func (s DescribeTaskSetsInput) String() string {
11292	return awsutil.Prettify(s)
11293}
11294
11295// GoString returns the string representation
11296func (s DescribeTaskSetsInput) GoString() string {
11297	return s.String()
11298}
11299
11300// Validate inspects the fields of the type to determine if they are valid.
11301func (s *DescribeTaskSetsInput) Validate() error {
11302	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
11303	if s.Cluster == nil {
11304		invalidParams.Add(request.NewErrParamRequired("Cluster"))
11305	}
11306	if s.Service == nil {
11307		invalidParams.Add(request.NewErrParamRequired("Service"))
11308	}
11309
11310	if invalidParams.Len() > 0 {
11311		return invalidParams
11312	}
11313	return nil
11314}
11315
11316// SetCluster sets the Cluster field's value.
11317func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
11318	s.Cluster = &v
11319	return s
11320}
11321
11322// SetInclude sets the Include field's value.
11323func (s *DescribeTaskSetsInput) SetInclude(v []*string) *DescribeTaskSetsInput {
11324	s.Include = v
11325	return s
11326}
11327
11328// SetService sets the Service field's value.
11329func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
11330	s.Service = &v
11331	return s
11332}
11333
11334// SetTaskSets sets the TaskSets field's value.
11335func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
11336	s.TaskSets = v
11337	return s
11338}
11339
11340type DescribeTaskSetsOutput struct {
11341	_ struct{} `type:"structure"`
11342
11343	// Any failures associated with the call.
11344	Failures []*Failure `locationName:"failures" type:"list"`
11345
11346	// The list of task sets described.
11347	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
11348}
11349
11350// String returns the string representation
11351func (s DescribeTaskSetsOutput) String() string {
11352	return awsutil.Prettify(s)
11353}
11354
11355// GoString returns the string representation
11356func (s DescribeTaskSetsOutput) GoString() string {
11357	return s.String()
11358}
11359
11360// SetFailures sets the Failures field's value.
11361func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
11362	s.Failures = v
11363	return s
11364}
11365
11366// SetTaskSets sets the TaskSets field's value.
11367func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
11368	s.TaskSets = v
11369	return s
11370}
11371
11372type DescribeTasksInput struct {
11373	_ struct{} `type:"structure"`
11374
11375	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11376	// the task or tasks to describe. If you do not specify a cluster, the default
11377	// cluster is assumed. This parameter is required if the task or tasks you are
11378	// describing were launched in any cluster other than the default cluster.
11379	Cluster *string `locationName:"cluster" type:"string"`
11380
11381	// Specifies whether you want to see the resource tags for the task. If TAGS
11382	// is specified, the tags are included in the response. If this field is omitted,
11383	// tags are not included in the response.
11384	Include []*string `locationName:"include" type:"list"`
11385
11386	// A list of up to 100 task IDs or full ARN entries.
11387	//
11388	// Tasks is a required field
11389	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
11390}
11391
11392// String returns the string representation
11393func (s DescribeTasksInput) String() string {
11394	return awsutil.Prettify(s)
11395}
11396
11397// GoString returns the string representation
11398func (s DescribeTasksInput) GoString() string {
11399	return s.String()
11400}
11401
11402// Validate inspects the fields of the type to determine if they are valid.
11403func (s *DescribeTasksInput) Validate() error {
11404	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
11405	if s.Tasks == nil {
11406		invalidParams.Add(request.NewErrParamRequired("Tasks"))
11407	}
11408
11409	if invalidParams.Len() > 0 {
11410		return invalidParams
11411	}
11412	return nil
11413}
11414
11415// SetCluster sets the Cluster field's value.
11416func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
11417	s.Cluster = &v
11418	return s
11419}
11420
11421// SetInclude sets the Include field's value.
11422func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
11423	s.Include = v
11424	return s
11425}
11426
11427// SetTasks sets the Tasks field's value.
11428func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
11429	s.Tasks = v
11430	return s
11431}
11432
11433type DescribeTasksOutput struct {
11434	_ struct{} `type:"structure"`
11435
11436	// Any failures associated with the call.
11437	Failures []*Failure `locationName:"failures" type:"list"`
11438
11439	// The list of tasks.
11440	Tasks []*Task `locationName:"tasks" type:"list"`
11441}
11442
11443// String returns the string representation
11444func (s DescribeTasksOutput) String() string {
11445	return awsutil.Prettify(s)
11446}
11447
11448// GoString returns the string representation
11449func (s DescribeTasksOutput) GoString() string {
11450	return s.String()
11451}
11452
11453// SetFailures sets the Failures field's value.
11454func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
11455	s.Failures = v
11456	return s
11457}
11458
11459// SetTasks sets the Tasks field's value.
11460func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
11461	s.Tasks = v
11462	return s
11463}
11464
11465// An object representing a container instance host device.
11466type Device struct {
11467	_ struct{} `type:"structure"`
11468
11469	// The path inside the container at which to expose the host device.
11470	ContainerPath *string `locationName:"containerPath" type:"string"`
11471
11472	// The path for the device on the host container instance.
11473	//
11474	// HostPath is a required field
11475	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
11476
11477	// The explicit permissions to provide to the container for the device. By default,
11478	// the container has permissions for read, write, and mknod for the device.
11479	Permissions []*string `locationName:"permissions" type:"list"`
11480}
11481
11482// String returns the string representation
11483func (s Device) String() string {
11484	return awsutil.Prettify(s)
11485}
11486
11487// GoString returns the string representation
11488func (s Device) GoString() string {
11489	return s.String()
11490}
11491
11492// Validate inspects the fields of the type to determine if they are valid.
11493func (s *Device) Validate() error {
11494	invalidParams := request.ErrInvalidParams{Context: "Device"}
11495	if s.HostPath == nil {
11496		invalidParams.Add(request.NewErrParamRequired("HostPath"))
11497	}
11498
11499	if invalidParams.Len() > 0 {
11500		return invalidParams
11501	}
11502	return nil
11503}
11504
11505// SetContainerPath sets the ContainerPath field's value.
11506func (s *Device) SetContainerPath(v string) *Device {
11507	s.ContainerPath = &v
11508	return s
11509}
11510
11511// SetHostPath sets the HostPath field's value.
11512func (s *Device) SetHostPath(v string) *Device {
11513	s.HostPath = &v
11514	return s
11515}
11516
11517// SetPermissions sets the Permissions field's value.
11518func (s *Device) SetPermissions(v []*string) *Device {
11519	s.Permissions = v
11520	return s
11521}
11522
11523type DiscoverPollEndpointInput struct {
11524	_ struct{} `type:"structure"`
11525
11526	// The short name or full Amazon Resource Name (ARN) of the cluster to which
11527	// the container instance belongs.
11528	Cluster *string `locationName:"cluster" type:"string"`
11529
11530	// The container instance ID or full ARN of the container instance. The ARN
11531	// contains the arn:aws:ecs namespace, followed by the Region of the container
11532	// instance, the AWS account ID of the container instance owner, the container-instance
11533	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
11534	ContainerInstance *string `locationName:"containerInstance" type:"string"`
11535}
11536
11537// String returns the string representation
11538func (s DiscoverPollEndpointInput) String() string {
11539	return awsutil.Prettify(s)
11540}
11541
11542// GoString returns the string representation
11543func (s DiscoverPollEndpointInput) GoString() string {
11544	return s.String()
11545}
11546
11547// SetCluster sets the Cluster field's value.
11548func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
11549	s.Cluster = &v
11550	return s
11551}
11552
11553// SetContainerInstance sets the ContainerInstance field's value.
11554func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
11555	s.ContainerInstance = &v
11556	return s
11557}
11558
11559type DiscoverPollEndpointOutput struct {
11560	_ struct{} `type:"structure"`
11561
11562	// The endpoint for the Amazon ECS agent to poll.
11563	Endpoint *string `locationName:"endpoint" type:"string"`
11564
11565	// The telemetry endpoint for the Amazon ECS agent.
11566	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
11567}
11568
11569// String returns the string representation
11570func (s DiscoverPollEndpointOutput) String() string {
11571	return awsutil.Prettify(s)
11572}
11573
11574// GoString returns the string representation
11575func (s DiscoverPollEndpointOutput) GoString() string {
11576	return s.String()
11577}
11578
11579// SetEndpoint sets the Endpoint field's value.
11580func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
11581	s.Endpoint = &v
11582	return s
11583}
11584
11585// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
11586func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
11587	s.TelemetryEndpoint = &v
11588	return s
11589}
11590
11591// This parameter is specified when you are using Docker volumes. Docker volumes
11592// are only supported when you are using the EC2 launch type. Windows containers
11593// only support the use of the local driver. To use bind mounts, specify a host
11594// instead.
11595type DockerVolumeConfiguration struct {
11596	_ struct{} `type:"structure"`
11597
11598	// If this value is true, the Docker volume is created if it does not already
11599	// exist.
11600	//
11601	// This field is only used if the scope is shared.
11602	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
11603
11604	// The Docker volume driver to use. The driver value must match the driver name
11605	// provided by Docker because it is used for task placement. If the driver was
11606	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
11607	// driver name from your container instance. If the driver was installed using
11608	// another method, use Docker plugin discovery to retrieve the driver name.
11609	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
11610	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11611	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11612	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11613	Driver *string `locationName:"driver" type:"string"`
11614
11615	// A map of Docker driver-specific options passed through. This parameter maps
11616	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11617	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11618	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11619	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
11620
11621	// Custom metadata to add to your Docker volume. This parameter maps to Labels
11622	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11623	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11624	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11625	Labels map[string]*string `locationName:"labels" type:"map"`
11626
11627	// The scope for the Docker volume that determines its lifecycle. Docker volumes
11628	// that are scoped to a task are automatically provisioned when the task starts
11629	// and destroyed when the task stops. Docker volumes that are scoped as shared
11630	// persist after the task stops.
11631	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
11632}
11633
11634// String returns the string representation
11635func (s DockerVolumeConfiguration) String() string {
11636	return awsutil.Prettify(s)
11637}
11638
11639// GoString returns the string representation
11640func (s DockerVolumeConfiguration) GoString() string {
11641	return s.String()
11642}
11643
11644// SetAutoprovision sets the Autoprovision field's value.
11645func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
11646	s.Autoprovision = &v
11647	return s
11648}
11649
11650// SetDriver sets the Driver field's value.
11651func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
11652	s.Driver = &v
11653	return s
11654}
11655
11656// SetDriverOpts sets the DriverOpts field's value.
11657func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
11658	s.DriverOpts = v
11659	return s
11660}
11661
11662// SetLabels sets the Labels field's value.
11663func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
11664	s.Labels = v
11665	return s
11666}
11667
11668// SetScope sets the Scope field's value.
11669func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
11670	s.Scope = &v
11671	return s
11672}
11673
11674// The authorization configuration details for the Amazon EFS file system.
11675type EFSAuthorizationConfig struct {
11676	_ struct{} `type:"structure"`
11677
11678	// The Amazon EFS access point ID to use. If an access point is specified, the
11679	// root directory value specified in the EFSVolumeConfiguration must either
11680	// be omitted or set to / which will enforce the path set on the EFS access
11681	// point. If an access point is used, transit encryption must be enabled in
11682	// the EFSVolumeConfiguration. For more information, see Working with Amazon
11683	// EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)
11684	// in the Amazon Elastic File System User Guide.
11685	AccessPointId *string `locationName:"accessPointId" type:"string"`
11686
11687	// Whether or not to use the Amazon ECS task IAM role defined in a task definition
11688	// when mounting the Amazon EFS file system. If enabled, transit encryption
11689	// must be enabled in the EFSVolumeConfiguration. If this parameter is omitted,
11690	// the default value of DISABLED is used. For more information, see Using Amazon
11691	// EFS Access Points (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints)
11692	// in the Amazon Elastic Container Service Developer Guide.
11693	Iam *string `locationName:"iam" type:"string" enum:"EFSAuthorizationConfigIAM"`
11694}
11695
11696// String returns the string representation
11697func (s EFSAuthorizationConfig) String() string {
11698	return awsutil.Prettify(s)
11699}
11700
11701// GoString returns the string representation
11702func (s EFSAuthorizationConfig) GoString() string {
11703	return s.String()
11704}
11705
11706// SetAccessPointId sets the AccessPointId field's value.
11707func (s *EFSAuthorizationConfig) SetAccessPointId(v string) *EFSAuthorizationConfig {
11708	s.AccessPointId = &v
11709	return s
11710}
11711
11712// SetIam sets the Iam field's value.
11713func (s *EFSAuthorizationConfig) SetIam(v string) *EFSAuthorizationConfig {
11714	s.Iam = &v
11715	return s
11716}
11717
11718// This parameter is specified when you are using an Amazon Elastic File System
11719// file system for task storage. For more information, see Amazon EFS Volumes
11720// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html)
11721// in the Amazon Elastic Container Service Developer Guide.
11722type EFSVolumeConfiguration struct {
11723	_ struct{} `type:"structure"`
11724
11725	// The authorization configuration details for the Amazon EFS file system.
11726	AuthorizationConfig *EFSAuthorizationConfig `locationName:"authorizationConfig" type:"structure"`
11727
11728	// The Amazon EFS file system ID to use.
11729	//
11730	// FileSystemId is a required field
11731	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
11732
11733	// The directory within the Amazon EFS file system to mount as the root directory
11734	// inside the host. If this parameter is omitted, the root of the Amazon EFS
11735	// volume will be used. Specifying / will have the same effect as omitting this
11736	// parameter.
11737	//
11738	// If an EFS access point is specified in the authorizationConfig, the root
11739	// directory parameter must either be omitted or set to / which will enforce
11740	// the path set on the EFS access point.
11741	RootDirectory *string `locationName:"rootDirectory" type:"string"`
11742
11743	// Whether or not to enable encryption for Amazon EFS data in transit between
11744	// the Amazon ECS host and the Amazon EFS server. Transit encryption must be
11745	// enabled if Amazon EFS IAM authorization is used. If this parameter is omitted,
11746	// the default value of DISABLED is used. For more information, see Encrypting
11747	// Data in Transit (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)
11748	// in the Amazon Elastic File System User Guide.
11749	TransitEncryption *string `locationName:"transitEncryption" type:"string" enum:"EFSTransitEncryption"`
11750
11751	// The port to use when sending encrypted data between the Amazon ECS host and
11752	// the Amazon EFS server. If you do not specify a transit encryption port, it
11753	// will use the port selection strategy that the Amazon EFS mount helper uses.
11754	// For more information, see EFS Mount Helper (https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html)
11755	// in the Amazon Elastic File System User Guide.
11756	TransitEncryptionPort *int64 `locationName:"transitEncryptionPort" type:"integer"`
11757}
11758
11759// String returns the string representation
11760func (s EFSVolumeConfiguration) String() string {
11761	return awsutil.Prettify(s)
11762}
11763
11764// GoString returns the string representation
11765func (s EFSVolumeConfiguration) GoString() string {
11766	return s.String()
11767}
11768
11769// Validate inspects the fields of the type to determine if they are valid.
11770func (s *EFSVolumeConfiguration) Validate() error {
11771	invalidParams := request.ErrInvalidParams{Context: "EFSVolumeConfiguration"}
11772	if s.FileSystemId == nil {
11773		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
11774	}
11775
11776	if invalidParams.Len() > 0 {
11777		return invalidParams
11778	}
11779	return nil
11780}
11781
11782// SetAuthorizationConfig sets the AuthorizationConfig field's value.
11783func (s *EFSVolumeConfiguration) SetAuthorizationConfig(v *EFSAuthorizationConfig) *EFSVolumeConfiguration {
11784	s.AuthorizationConfig = v
11785	return s
11786}
11787
11788// SetFileSystemId sets the FileSystemId field's value.
11789func (s *EFSVolumeConfiguration) SetFileSystemId(v string) *EFSVolumeConfiguration {
11790	s.FileSystemId = &v
11791	return s
11792}
11793
11794// SetRootDirectory sets the RootDirectory field's value.
11795func (s *EFSVolumeConfiguration) SetRootDirectory(v string) *EFSVolumeConfiguration {
11796	s.RootDirectory = &v
11797	return s
11798}
11799
11800// SetTransitEncryption sets the TransitEncryption field's value.
11801func (s *EFSVolumeConfiguration) SetTransitEncryption(v string) *EFSVolumeConfiguration {
11802	s.TransitEncryption = &v
11803	return s
11804}
11805
11806// SetTransitEncryptionPort sets the TransitEncryptionPort field's value.
11807func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeConfiguration {
11808	s.TransitEncryptionPort = &v
11809	return s
11810}
11811
11812// A list of files containing the environment variables to pass to a container.
11813// You can specify up to ten environment files. The file must have a .env file
11814// extension. Each line in an environment file should contain an environment
11815// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
11816// comments and are ignored. For more information on the environment variable
11817// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
11818//
11819// If there are environment variables specified using the environment parameter
11820// in a container definition, they take precedence over the variables contained
11821// within an environment file. If multiple environment files are specified that
11822// contain the same variable, they are processed from the top down. It is recommended
11823// to use unique variable names. For more information, see Specifying Environment
11824// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
11825// in the Amazon Elastic Container Service Developer Guide.
11826//
11827// This field is not valid for containers in tasks using the Fargate launch
11828// type.
11829type EnvironmentFile struct {
11830	_ struct{} `type:"structure"`
11831
11832	// The file type to use. The only supported value is s3.
11833	//
11834	// Type is a required field
11835	Type *string `locationName:"type" type:"string" required:"true" enum:"EnvironmentFileType"`
11836
11837	// The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment
11838	// variable file.
11839	//
11840	// Value is a required field
11841	Value *string `locationName:"value" type:"string" required:"true"`
11842}
11843
11844// String returns the string representation
11845func (s EnvironmentFile) String() string {
11846	return awsutil.Prettify(s)
11847}
11848
11849// GoString returns the string representation
11850func (s EnvironmentFile) GoString() string {
11851	return s.String()
11852}
11853
11854// Validate inspects the fields of the type to determine if they are valid.
11855func (s *EnvironmentFile) Validate() error {
11856	invalidParams := request.ErrInvalidParams{Context: "EnvironmentFile"}
11857	if s.Type == nil {
11858		invalidParams.Add(request.NewErrParamRequired("Type"))
11859	}
11860	if s.Value == nil {
11861		invalidParams.Add(request.NewErrParamRequired("Value"))
11862	}
11863
11864	if invalidParams.Len() > 0 {
11865		return invalidParams
11866	}
11867	return nil
11868}
11869
11870// SetType sets the Type field's value.
11871func (s *EnvironmentFile) SetType(v string) *EnvironmentFile {
11872	s.Type = &v
11873	return s
11874}
11875
11876// SetValue sets the Value field's value.
11877func (s *EnvironmentFile) SetValue(v string) *EnvironmentFile {
11878	s.Value = &v
11879	return s
11880}
11881
11882// The authorization configuration details for Amazon FSx for Windows File Server
11883// file system. See FSxWindowsFileServerVolumeConfiguration (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FSxWindowsFileServerVolumeConfiguration.html)
11884// in the Amazon Elastic Container Service API Reference.
11885//
11886// For more information and the input format, see Amazon FSx for Windows File
11887// Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html)
11888// in the Amazon Elastic Container Service Developer Guide.
11889type FSxWindowsFileServerAuthorizationConfig struct {
11890	_ struct{} `type:"structure"`
11891
11892	// The authorization credential option to use. The authorization credential
11893	// options can be provided using either the Amazon Resource Name (ARN) of an
11894	// AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter.
11895	// The ARNs refer to the stored credentials.
11896	//
11897	// CredentialsParameter is a required field
11898	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
11899
11900	// A fully qualified domain name hosted by an AWS Directory Service (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)
11901	// Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
11902	//
11903	// Domain is a required field
11904	Domain *string `locationName:"domain" type:"string" required:"true"`
11905}
11906
11907// String returns the string representation
11908func (s FSxWindowsFileServerAuthorizationConfig) String() string {
11909	return awsutil.Prettify(s)
11910}
11911
11912// GoString returns the string representation
11913func (s FSxWindowsFileServerAuthorizationConfig) GoString() string {
11914	return s.String()
11915}
11916
11917// Validate inspects the fields of the type to determine if they are valid.
11918func (s *FSxWindowsFileServerAuthorizationConfig) Validate() error {
11919	invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerAuthorizationConfig"}
11920	if s.CredentialsParameter == nil {
11921		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
11922	}
11923	if s.Domain == nil {
11924		invalidParams.Add(request.NewErrParamRequired("Domain"))
11925	}
11926
11927	if invalidParams.Len() > 0 {
11928		return invalidParams
11929	}
11930	return nil
11931}
11932
11933// SetCredentialsParameter sets the CredentialsParameter field's value.
11934func (s *FSxWindowsFileServerAuthorizationConfig) SetCredentialsParameter(v string) *FSxWindowsFileServerAuthorizationConfig {
11935	s.CredentialsParameter = &v
11936	return s
11937}
11938
11939// SetDomain sets the Domain field's value.
11940func (s *FSxWindowsFileServerAuthorizationConfig) SetDomain(v string) *FSxWindowsFileServerAuthorizationConfig {
11941	s.Domain = &v
11942	return s
11943}
11944
11945// This parameter is specified when you are using Amazon FSx for Windows File
11946// Server (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html)
11947// file system for task storage.
11948//
11949// For more information and the input format, see Amazon FSx for Windows File
11950// Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html)
11951// in the Amazon Elastic Container Service Developer Guide.
11952type FSxWindowsFileServerVolumeConfiguration struct {
11953	_ struct{} `type:"structure"`
11954
11955	// The authorization configuration details for the Amazon FSx for Windows File
11956	// Server file system.
11957	//
11958	// AuthorizationConfig is a required field
11959	AuthorizationConfig *FSxWindowsFileServerAuthorizationConfig `locationName:"authorizationConfig" type:"structure" required:"true"`
11960
11961	// The Amazon FSx for Windows File Server file system ID to use.
11962	//
11963	// FileSystemId is a required field
11964	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
11965
11966	// The directory within the Amazon FSx for Windows File Server file system to
11967	// mount as the root directory inside the host.
11968	//
11969	// RootDirectory is a required field
11970	RootDirectory *string `locationName:"rootDirectory" type:"string" required:"true"`
11971}
11972
11973// String returns the string representation
11974func (s FSxWindowsFileServerVolumeConfiguration) String() string {
11975	return awsutil.Prettify(s)
11976}
11977
11978// GoString returns the string representation
11979func (s FSxWindowsFileServerVolumeConfiguration) GoString() string {
11980	return s.String()
11981}
11982
11983// Validate inspects the fields of the type to determine if they are valid.
11984func (s *FSxWindowsFileServerVolumeConfiguration) Validate() error {
11985	invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerVolumeConfiguration"}
11986	if s.AuthorizationConfig == nil {
11987		invalidParams.Add(request.NewErrParamRequired("AuthorizationConfig"))
11988	}
11989	if s.FileSystemId == nil {
11990		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
11991	}
11992	if s.RootDirectory == nil {
11993		invalidParams.Add(request.NewErrParamRequired("RootDirectory"))
11994	}
11995	if s.AuthorizationConfig != nil {
11996		if err := s.AuthorizationConfig.Validate(); err != nil {
11997			invalidParams.AddNested("AuthorizationConfig", err.(request.ErrInvalidParams))
11998		}
11999	}
12000
12001	if invalidParams.Len() > 0 {
12002		return invalidParams
12003	}
12004	return nil
12005}
12006
12007// SetAuthorizationConfig sets the AuthorizationConfig field's value.
12008func (s *FSxWindowsFileServerVolumeConfiguration) SetAuthorizationConfig(v *FSxWindowsFileServerAuthorizationConfig) *FSxWindowsFileServerVolumeConfiguration {
12009	s.AuthorizationConfig = v
12010	return s
12011}
12012
12013// SetFileSystemId sets the FileSystemId field's value.
12014func (s *FSxWindowsFileServerVolumeConfiguration) SetFileSystemId(v string) *FSxWindowsFileServerVolumeConfiguration {
12015	s.FileSystemId = &v
12016	return s
12017}
12018
12019// SetRootDirectory sets the RootDirectory field's value.
12020func (s *FSxWindowsFileServerVolumeConfiguration) SetRootDirectory(v string) *FSxWindowsFileServerVolumeConfiguration {
12021	s.RootDirectory = &v
12022	return s
12023}
12024
12025// A failed resource. For a list of common causes, see API failure reasons (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html)
12026// in the Amazon Elastic Container Service Developer Guide.
12027type Failure struct {
12028	_ struct{} `type:"structure"`
12029
12030	// The Amazon Resource Name (ARN) of the failed resource.
12031	Arn *string `locationName:"arn" type:"string"`
12032
12033	// The details of the failure.
12034	Detail *string `locationName:"detail" type:"string"`
12035
12036	// The reason for the failure.
12037	Reason *string `locationName:"reason" type:"string"`
12038}
12039
12040// String returns the string representation
12041func (s Failure) String() string {
12042	return awsutil.Prettify(s)
12043}
12044
12045// GoString returns the string representation
12046func (s Failure) GoString() string {
12047	return s.String()
12048}
12049
12050// SetArn sets the Arn field's value.
12051func (s *Failure) SetArn(v string) *Failure {
12052	s.Arn = &v
12053	return s
12054}
12055
12056// SetDetail sets the Detail field's value.
12057func (s *Failure) SetDetail(v string) *Failure {
12058	s.Detail = &v
12059	return s
12060}
12061
12062// SetReason sets the Reason field's value.
12063func (s *Failure) SetReason(v string) *Failure {
12064	s.Reason = &v
12065	return s
12066}
12067
12068// The FireLens configuration for the container. This is used to specify and
12069// configure a log router for container logs. For more information, see Custom
12070// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
12071// in the Amazon Elastic Container Service Developer Guide.
12072type FirelensConfiguration struct {
12073	_ struct{} `type:"structure"`
12074
12075	// The options to use when configuring the log router. This field is optional
12076	// and can be used to specify a custom configuration file or to add additional
12077	// metadata, such as the task, task definition, cluster, and container instance
12078	// 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"}.
12079	// For more information, see Creating a Task Definition that Uses a FireLens
12080	// Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef)
12081	// in the Amazon Elastic Container Service Developer Guide.
12082	Options map[string]*string `locationName:"options" type:"map"`
12083
12084	// The log router to use. The valid values are fluentd or fluentbit.
12085	//
12086	// Type is a required field
12087	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
12088}
12089
12090// String returns the string representation
12091func (s FirelensConfiguration) String() string {
12092	return awsutil.Prettify(s)
12093}
12094
12095// GoString returns the string representation
12096func (s FirelensConfiguration) GoString() string {
12097	return s.String()
12098}
12099
12100// Validate inspects the fields of the type to determine if they are valid.
12101func (s *FirelensConfiguration) Validate() error {
12102	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
12103	if s.Type == nil {
12104		invalidParams.Add(request.NewErrParamRequired("Type"))
12105	}
12106
12107	if invalidParams.Len() > 0 {
12108		return invalidParams
12109	}
12110	return nil
12111}
12112
12113// SetOptions sets the Options field's value.
12114func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
12115	s.Options = v
12116	return s
12117}
12118
12119// SetType sets the Type field's value.
12120func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
12121	s.Type = &v
12122	return s
12123}
12124
12125// An object representing a container health check. Health check parameters
12126// that are specified in a container definition override any Docker health checks
12127// that exist in the container image (such as those specified in a parent image
12128// or from the image's Dockerfile).
12129//
12130// You can view the health status of both individual containers and a task with
12131// the DescribeTasks API operation or when viewing the task details in the console.
12132//
12133// The following describes the possible healthStatus values for a container:
12134//
12135//    * HEALTHY-The container health check has passed successfully.
12136//
12137//    * UNHEALTHY-The container health check has failed.
12138//
12139//    * UNKNOWN-The container health check is being evaluated or there is no
12140//    container health check defined.
12141//
12142// The following describes the possible healthStatus values for a task. The
12143// container health check status of nonessential containers do not have an effect
12144// on the health status of a task.
12145//
12146//    * HEALTHY-All essential containers within the task have passed their health
12147//    checks.
12148//
12149//    * UNHEALTHY-One or more essential containers have failed their health
12150//    check.
12151//
12152//    * UNKNOWN-The essential containers within the task are still having their
12153//    health checks evaluated or there are no container health checks defined.
12154//
12155// If a task is run manually, and not as part of a service, the task will continue
12156// its lifecycle regardless of its health status. For tasks that are part of
12157// a service, if the task reports as unhealthy then the task will be stopped
12158// and the service scheduler will replace it.
12159//
12160// The following are notes about container health check support:
12161//
12162//    * Container health checks require version 1.17.0 or greater of the Amazon
12163//    ECS container agent. For more information, see Updating the Amazon ECS
12164//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
12165//
12166//    * Container health checks are supported for Fargate tasks if you are using
12167//    platform version 1.1.0 or greater. For more information, see AWS Fargate
12168//    Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
12169//
12170//    * Container health checks are not supported for tasks that are part of
12171//    a service that is configured to use a Classic Load Balancer.
12172type HealthCheck struct {
12173	_ struct{} `type:"structure"`
12174
12175	// A string array representing the command that the container runs to determine
12176	// if it is healthy. The string array must start with CMD to execute the command
12177	// arguments directly, or CMD-SHELL to run the command with the container's
12178	// default shell. For example:
12179	//
12180	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
12181	//
12182	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
12183	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12184	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
12185	//
12186	// Command is a required field
12187	Command []*string `locationName:"command" type:"list" required:"true"`
12188
12189	// The time period in seconds between each health check execution. You may specify
12190	// between 5 and 300 seconds. The default value is 30 seconds.
12191	Interval *int64 `locationName:"interval" type:"integer"`
12192
12193	// The number of times to retry a failed health check before the container is
12194	// considered unhealthy. You may specify between 1 and 10 retries. The default
12195	// value is 3.
12196	Retries *int64 `locationName:"retries" type:"integer"`
12197
12198	// The optional grace period within which to provide containers time to bootstrap
12199	// before failed health checks count towards the maximum number of retries.
12200	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
12201	// default.
12202	//
12203	// If a health check succeeds within the startPeriod, then the container is
12204	// considered healthy and any subsequent failures count toward the maximum number
12205	// of retries.
12206	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
12207
12208	// The time period in seconds to wait for a health check to succeed before it
12209	// is considered a failure. You may specify between 2 and 60 seconds. The default
12210	// value is 5.
12211	Timeout *int64 `locationName:"timeout" type:"integer"`
12212}
12213
12214// String returns the string representation
12215func (s HealthCheck) String() string {
12216	return awsutil.Prettify(s)
12217}
12218
12219// GoString returns the string representation
12220func (s HealthCheck) GoString() string {
12221	return s.String()
12222}
12223
12224// Validate inspects the fields of the type to determine if they are valid.
12225func (s *HealthCheck) Validate() error {
12226	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
12227	if s.Command == nil {
12228		invalidParams.Add(request.NewErrParamRequired("Command"))
12229	}
12230
12231	if invalidParams.Len() > 0 {
12232		return invalidParams
12233	}
12234	return nil
12235}
12236
12237// SetCommand sets the Command field's value.
12238func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
12239	s.Command = v
12240	return s
12241}
12242
12243// SetInterval sets the Interval field's value.
12244func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
12245	s.Interval = &v
12246	return s
12247}
12248
12249// SetRetries sets the Retries field's value.
12250func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
12251	s.Retries = &v
12252	return s
12253}
12254
12255// SetStartPeriod sets the StartPeriod field's value.
12256func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
12257	s.StartPeriod = &v
12258	return s
12259}
12260
12261// SetTimeout sets the Timeout field's value.
12262func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
12263	s.Timeout = &v
12264	return s
12265}
12266
12267// Hostnames and IP address entries that are added to the /etc/hosts file of
12268// a container via the extraHosts parameter of its ContainerDefinition.
12269type HostEntry struct {
12270	_ struct{} `type:"structure"`
12271
12272	// The hostname to use in the /etc/hosts entry.
12273	//
12274	// Hostname is a required field
12275	Hostname *string `locationName:"hostname" type:"string" required:"true"`
12276
12277	// The IP address to use in the /etc/hosts entry.
12278	//
12279	// IpAddress is a required field
12280	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
12281}
12282
12283// String returns the string representation
12284func (s HostEntry) String() string {
12285	return awsutil.Prettify(s)
12286}
12287
12288// GoString returns the string representation
12289func (s HostEntry) GoString() string {
12290	return s.String()
12291}
12292
12293// Validate inspects the fields of the type to determine if they are valid.
12294func (s *HostEntry) Validate() error {
12295	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
12296	if s.Hostname == nil {
12297		invalidParams.Add(request.NewErrParamRequired("Hostname"))
12298	}
12299	if s.IpAddress == nil {
12300		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
12301	}
12302
12303	if invalidParams.Len() > 0 {
12304		return invalidParams
12305	}
12306	return nil
12307}
12308
12309// SetHostname sets the Hostname field's value.
12310func (s *HostEntry) SetHostname(v string) *HostEntry {
12311	s.Hostname = &v
12312	return s
12313}
12314
12315// SetIpAddress sets the IpAddress field's value.
12316func (s *HostEntry) SetIpAddress(v string) *HostEntry {
12317	s.IpAddress = &v
12318	return s
12319}
12320
12321// Details on a container instance bind mount host volume.
12322type HostVolumeProperties struct {
12323	_ struct{} `type:"structure"`
12324
12325	// When the host parameter is used, specify a sourcePath to declare the path
12326	// on the host container instance that is presented to the container. If this
12327	// parameter is empty, then the Docker daemon has assigned a host path for you.
12328	// If the host parameter contains a sourcePath file location, then the data
12329	// volume persists at the specified location on the host container instance
12330	// until you delete it manually. If the sourcePath value does not exist on the
12331	// host container instance, the Docker daemon creates it. If the location does
12332	// exist, the contents of the source path folder are exported.
12333	//
12334	// If you are using the Fargate launch type, the sourcePath parameter is not
12335	// supported.
12336	SourcePath *string `locationName:"sourcePath" type:"string"`
12337}
12338
12339// String returns the string representation
12340func (s HostVolumeProperties) String() string {
12341	return awsutil.Prettify(s)
12342}
12343
12344// GoString returns the string representation
12345func (s HostVolumeProperties) GoString() string {
12346	return s.String()
12347}
12348
12349// SetSourcePath sets the SourcePath field's value.
12350func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
12351	s.SourcePath = &v
12352	return s
12353}
12354
12355// Details on a Elastic Inference accelerator. For more information, see Working
12356// with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
12357// in the Amazon Elastic Container Service Developer Guide.
12358type InferenceAccelerator struct {
12359	_ struct{} `type:"structure"`
12360
12361	// The Elastic Inference accelerator device name. The deviceName must also be
12362	// referenced in a container definition as a ResourceRequirement.
12363	//
12364	// DeviceName is a required field
12365	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
12366
12367	// The Elastic Inference accelerator type to use.
12368	//
12369	// DeviceType is a required field
12370	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
12371}
12372
12373// String returns the string representation
12374func (s InferenceAccelerator) String() string {
12375	return awsutil.Prettify(s)
12376}
12377
12378// GoString returns the string representation
12379func (s InferenceAccelerator) GoString() string {
12380	return s.String()
12381}
12382
12383// Validate inspects the fields of the type to determine if they are valid.
12384func (s *InferenceAccelerator) Validate() error {
12385	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
12386	if s.DeviceName == nil {
12387		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
12388	}
12389	if s.DeviceType == nil {
12390		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
12391	}
12392
12393	if invalidParams.Len() > 0 {
12394		return invalidParams
12395	}
12396	return nil
12397}
12398
12399// SetDeviceName sets the DeviceName field's value.
12400func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
12401	s.DeviceName = &v
12402	return s
12403}
12404
12405// SetDeviceType sets the DeviceType field's value.
12406func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
12407	s.DeviceType = &v
12408	return s
12409}
12410
12411// Details on an Elastic Inference accelerator task override. This parameter
12412// is used to override the Elastic Inference accelerator specified in the task
12413// definition. For more information, see Working with Amazon Elastic Inference
12414// on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
12415// in the Amazon Elastic Container Service Developer Guide.
12416type InferenceAcceleratorOverride struct {
12417	_ struct{} `type:"structure"`
12418
12419	// The Elastic Inference accelerator device name to override for the task. This
12420	// parameter must match a deviceName specified in the task definition.
12421	DeviceName *string `locationName:"deviceName" type:"string"`
12422
12423	// The Elastic Inference accelerator type to use.
12424	DeviceType *string `locationName:"deviceType" type:"string"`
12425}
12426
12427// String returns the string representation
12428func (s InferenceAcceleratorOverride) String() string {
12429	return awsutil.Prettify(s)
12430}
12431
12432// GoString returns the string representation
12433func (s InferenceAcceleratorOverride) GoString() string {
12434	return s.String()
12435}
12436
12437// SetDeviceName sets the DeviceName field's value.
12438func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
12439	s.DeviceName = &v
12440	return s
12441}
12442
12443// SetDeviceType sets the DeviceType field's value.
12444func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
12445	s.DeviceType = &v
12446	return s
12447}
12448
12449// The specified parameter is invalid. Review the available parameters for the
12450// API request.
12451type InvalidParameterException struct {
12452	_            struct{}                  `type:"structure"`
12453	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12454
12455	Message_ *string `locationName:"message" type:"string"`
12456}
12457
12458// String returns the string representation
12459func (s InvalidParameterException) String() string {
12460	return awsutil.Prettify(s)
12461}
12462
12463// GoString returns the string representation
12464func (s InvalidParameterException) GoString() string {
12465	return s.String()
12466}
12467
12468func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
12469	return &InvalidParameterException{
12470		RespMetadata: v,
12471	}
12472}
12473
12474// Code returns the exception type name.
12475func (s *InvalidParameterException) Code() string {
12476	return "InvalidParameterException"
12477}
12478
12479// Message returns the exception's message.
12480func (s *InvalidParameterException) Message() string {
12481	if s.Message_ != nil {
12482		return *s.Message_
12483	}
12484	return ""
12485}
12486
12487// OrigErr always returns nil, satisfies awserr.Error interface.
12488func (s *InvalidParameterException) OrigErr() error {
12489	return nil
12490}
12491
12492func (s *InvalidParameterException) Error() string {
12493	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12494}
12495
12496// Status code returns the HTTP status code for the request's response error.
12497func (s *InvalidParameterException) StatusCode() int {
12498	return s.RespMetadata.StatusCode
12499}
12500
12501// RequestID returns the service's response RequestID for request.
12502func (s *InvalidParameterException) RequestID() string {
12503	return s.RespMetadata.RequestID
12504}
12505
12506// The Linux capabilities for the container that are added to or dropped from
12507// the default configuration provided by Docker. For more information on the
12508// default capabilities and the non-default available capabilities, see Runtime
12509// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
12510// in the Docker run reference. For more detailed information on these Linux
12511// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
12512// Linux manual page.
12513type KernelCapabilities struct {
12514	_ struct{} `type:"structure"`
12515
12516	// The Linux capabilities for the container that have been added to the default
12517	// configuration provided by Docker. This parameter maps to CapAdd in the Create
12518	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12519	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12520	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
12521	//
12522	// Tasks launched on AWS Fargate only support adding the SYS_PTRACE kernel capability.
12523	//
12524	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
12525	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
12526	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
12527	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
12528	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
12529	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
12530	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
12531	// "WAKE_ALARM"
12532	Add []*string `locationName:"add" type:"list"`
12533
12534	// The Linux capabilities for the container that have been removed from the
12535	// default configuration provided by Docker. This parameter maps to CapDrop
12536	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12537	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12538	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
12539	//
12540	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
12541	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
12542	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
12543	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
12544	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
12545	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
12546	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
12547	// "WAKE_ALARM"
12548	Drop []*string `locationName:"drop" type:"list"`
12549}
12550
12551// String returns the string representation
12552func (s KernelCapabilities) String() string {
12553	return awsutil.Prettify(s)
12554}
12555
12556// GoString returns the string representation
12557func (s KernelCapabilities) GoString() string {
12558	return s.String()
12559}
12560
12561// SetAdd sets the Add field's value.
12562func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
12563	s.Add = v
12564	return s
12565}
12566
12567// SetDrop sets the Drop field's value.
12568func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
12569	s.Drop = v
12570	return s
12571}
12572
12573// A key-value pair object.
12574type KeyValuePair struct {
12575	_ struct{} `type:"structure"`
12576
12577	// The name of the key-value pair. For environment variables, this is the name
12578	// of the environment variable.
12579	Name *string `locationName:"name" type:"string"`
12580
12581	// The value of the key-value pair. For environment variables, this is the value
12582	// of the environment variable.
12583	Value *string `locationName:"value" type:"string"`
12584}
12585
12586// String returns the string representation
12587func (s KeyValuePair) String() string {
12588	return awsutil.Prettify(s)
12589}
12590
12591// GoString returns the string representation
12592func (s KeyValuePair) GoString() string {
12593	return s.String()
12594}
12595
12596// SetName sets the Name field's value.
12597func (s *KeyValuePair) SetName(v string) *KeyValuePair {
12598	s.Name = &v
12599	return s
12600}
12601
12602// SetValue sets the Value field's value.
12603func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
12604	s.Value = &v
12605	return s
12606}
12607
12608// The limit for the resource has been exceeded.
12609type LimitExceededException struct {
12610	_            struct{}                  `type:"structure"`
12611	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12612
12613	Message_ *string `locationName:"message" type:"string"`
12614}
12615
12616// String returns the string representation
12617func (s LimitExceededException) String() string {
12618	return awsutil.Prettify(s)
12619}
12620
12621// GoString returns the string representation
12622func (s LimitExceededException) GoString() string {
12623	return s.String()
12624}
12625
12626func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
12627	return &LimitExceededException{
12628		RespMetadata: v,
12629	}
12630}
12631
12632// Code returns the exception type name.
12633func (s *LimitExceededException) Code() string {
12634	return "LimitExceededException"
12635}
12636
12637// Message returns the exception's message.
12638func (s *LimitExceededException) Message() string {
12639	if s.Message_ != nil {
12640		return *s.Message_
12641	}
12642	return ""
12643}
12644
12645// OrigErr always returns nil, satisfies awserr.Error interface.
12646func (s *LimitExceededException) OrigErr() error {
12647	return nil
12648}
12649
12650func (s *LimitExceededException) Error() string {
12651	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12652}
12653
12654// Status code returns the HTTP status code for the request's response error.
12655func (s *LimitExceededException) StatusCode() int {
12656	return s.RespMetadata.StatusCode
12657}
12658
12659// RequestID returns the service's response RequestID for request.
12660func (s *LimitExceededException) RequestID() string {
12661	return s.RespMetadata.RequestID
12662}
12663
12664// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
12665type LinuxParameters struct {
12666	_ struct{} `type:"structure"`
12667
12668	// The Linux capabilities for the container that are added to or dropped from
12669	// the default configuration provided by Docker.
12670	//
12671	// For tasks that use the Fargate launch type, capabilities is supported for
12672	// all platform versions but the add parameter is only supported if using platform
12673	// version 1.4.0 or later.
12674	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
12675
12676	// Any host devices to expose to the container. This parameter maps to Devices
12677	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12678	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12679	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
12680	//
12681	// If you are using tasks that use the Fargate launch type, the devices parameter
12682	// is not supported.
12683	Devices []*Device `locationName:"devices" type:"list"`
12684
12685	// Run an init process inside the container that forwards signals and reaps
12686	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
12687	// This parameter requires version 1.25 of the Docker Remote API or greater
12688	// on your container instance. To check the Docker Remote API version on your
12689	// container instance, log in to your container instance and run the following
12690	// command: sudo docker version --format '{{.Server.APIVersion}}'
12691	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
12692
12693	// The total amount of swap memory (in MiB) a container can use. This parameter
12694	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration)
12695	// where the value would be the sum of the container memory plus the maxSwap
12696	// value.
12697	//
12698	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
12699	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
12700	// the container will use the swap configuration for the container instance
12701	// it is running on. A maxSwap value must be set for the swappiness parameter
12702	// to be used.
12703	//
12704	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
12705	// is not supported.
12706	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
12707
12708	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
12709	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
12710	//
12711	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
12712	// parameter is not supported.
12713	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
12714
12715	// This allows you to tune a container's memory swappiness behavior. A swappiness
12716	// value of 0 will cause swapping to not happen unless absolutely necessary.
12717	// A swappiness value of 100 will cause pages to be swapped very aggressively.
12718	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
12719	// is not specified, a default value of 60 is used. If a value is not specified
12720	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
12721	// option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
12722	//
12723	// If you are using tasks that use the Fargate launch type, the swappiness parameter
12724	// is not supported.
12725	Swappiness *int64 `locationName:"swappiness" type:"integer"`
12726
12727	// The container path, mount options, and size (in MiB) of the tmpfs mount.
12728	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
12729	//
12730	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
12731	// is not supported.
12732	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
12733}
12734
12735// String returns the string representation
12736func (s LinuxParameters) String() string {
12737	return awsutil.Prettify(s)
12738}
12739
12740// GoString returns the string representation
12741func (s LinuxParameters) GoString() string {
12742	return s.String()
12743}
12744
12745// Validate inspects the fields of the type to determine if they are valid.
12746func (s *LinuxParameters) Validate() error {
12747	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
12748	if s.Devices != nil {
12749		for i, v := range s.Devices {
12750			if v == nil {
12751				continue
12752			}
12753			if err := v.Validate(); err != nil {
12754				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
12755			}
12756		}
12757	}
12758	if s.Tmpfs != nil {
12759		for i, v := range s.Tmpfs {
12760			if v == nil {
12761				continue
12762			}
12763			if err := v.Validate(); err != nil {
12764				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
12765			}
12766		}
12767	}
12768
12769	if invalidParams.Len() > 0 {
12770		return invalidParams
12771	}
12772	return nil
12773}
12774
12775// SetCapabilities sets the Capabilities field's value.
12776func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
12777	s.Capabilities = v
12778	return s
12779}
12780
12781// SetDevices sets the Devices field's value.
12782func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
12783	s.Devices = v
12784	return s
12785}
12786
12787// SetInitProcessEnabled sets the InitProcessEnabled field's value.
12788func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
12789	s.InitProcessEnabled = &v
12790	return s
12791}
12792
12793// SetMaxSwap sets the MaxSwap field's value.
12794func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
12795	s.MaxSwap = &v
12796	return s
12797}
12798
12799// SetSharedMemorySize sets the SharedMemorySize field's value.
12800func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
12801	s.SharedMemorySize = &v
12802	return s
12803}
12804
12805// SetSwappiness sets the Swappiness field's value.
12806func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
12807	s.Swappiness = &v
12808	return s
12809}
12810
12811// SetTmpfs sets the Tmpfs field's value.
12812func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
12813	s.Tmpfs = v
12814	return s
12815}
12816
12817type ListAccountSettingsInput struct {
12818	_ struct{} `type:"structure"`
12819
12820	// Specifies whether to return the effective settings. If true, the account
12821	// settings for the root user or the default setting for the principalArn are
12822	// returned. If false, the account settings for the principalArn are returned
12823	// if they are set. Otherwise, no account settings are returned.
12824	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
12825
12826	// The maximum number of account setting results returned by ListAccountSettings
12827	// in paginated output. When this parameter is used, ListAccountSettings only
12828	// returns maxResults results in a single page along with a nextToken response
12829	// element. The remaining results of the initial request can be seen by sending
12830	// another ListAccountSettings request with the returned nextToken value. This
12831	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
12832	// returns up to 10 results and a nextToken value if applicable.
12833	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12834
12835	// The name of the account setting you want to list the settings for.
12836	Name *string `locationName:"name" type:"string" enum:"SettingName"`
12837
12838	// The nextToken value returned from a ListAccountSettings request indicating
12839	// that more results are available to fulfill the request and further calls
12840	// will be needed. If maxResults was provided, it is possible the number of
12841	// results to be fewer than maxResults.
12842	//
12843	// This token should be treated as an opaque identifier that is only used to
12844	// retrieve the next items in a list and not for other programmatic purposes.
12845	NextToken *string `locationName:"nextToken" type:"string"`
12846
12847	// The ARN of the principal, which can be an IAM user, IAM role, or the root
12848	// user. If this field is omitted, the account settings are listed only for
12849	// the authenticated user.
12850	PrincipalArn *string `locationName:"principalArn" type:"string"`
12851
12852	// The value of the account settings with which to filter results. You must
12853	// also specify an account setting name to use this parameter.
12854	Value *string `locationName:"value" type:"string"`
12855}
12856
12857// String returns the string representation
12858func (s ListAccountSettingsInput) String() string {
12859	return awsutil.Prettify(s)
12860}
12861
12862// GoString returns the string representation
12863func (s ListAccountSettingsInput) GoString() string {
12864	return s.String()
12865}
12866
12867// SetEffectiveSettings sets the EffectiveSettings field's value.
12868func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
12869	s.EffectiveSettings = &v
12870	return s
12871}
12872
12873// SetMaxResults sets the MaxResults field's value.
12874func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
12875	s.MaxResults = &v
12876	return s
12877}
12878
12879// SetName sets the Name field's value.
12880func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
12881	s.Name = &v
12882	return s
12883}
12884
12885// SetNextToken sets the NextToken field's value.
12886func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
12887	s.NextToken = &v
12888	return s
12889}
12890
12891// SetPrincipalArn sets the PrincipalArn field's value.
12892func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
12893	s.PrincipalArn = &v
12894	return s
12895}
12896
12897// SetValue sets the Value field's value.
12898func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
12899	s.Value = &v
12900	return s
12901}
12902
12903type ListAccountSettingsOutput struct {
12904	_ struct{} `type:"structure"`
12905
12906	// The nextToken value to include in a future ListAccountSettings request. When
12907	// the results of a ListAccountSettings request exceed maxResults, this value
12908	// can be used to retrieve the next page of results. This value is null when
12909	// there are no more results to return.
12910	NextToken *string `locationName:"nextToken" type:"string"`
12911
12912	// The account settings for the resource.
12913	Settings []*Setting `locationName:"settings" type:"list"`
12914}
12915
12916// String returns the string representation
12917func (s ListAccountSettingsOutput) String() string {
12918	return awsutil.Prettify(s)
12919}
12920
12921// GoString returns the string representation
12922func (s ListAccountSettingsOutput) GoString() string {
12923	return s.String()
12924}
12925
12926// SetNextToken sets the NextToken field's value.
12927func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
12928	s.NextToken = &v
12929	return s
12930}
12931
12932// SetSettings sets the Settings field's value.
12933func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
12934	s.Settings = v
12935	return s
12936}
12937
12938type ListAttributesInput struct {
12939	_ struct{} `type:"structure"`
12940
12941	// The name of the attribute with which to filter the results.
12942	AttributeName *string `locationName:"attributeName" type:"string"`
12943
12944	// The value of the attribute with which to filter results. You must also specify
12945	// an attribute name to use this parameter.
12946	AttributeValue *string `locationName:"attributeValue" type:"string"`
12947
12948	// The short name or full Amazon Resource Name (ARN) of the cluster to list
12949	// attributes. If you do not specify a cluster, the default cluster is assumed.
12950	Cluster *string `locationName:"cluster" type:"string"`
12951
12952	// The maximum number of cluster results returned by ListAttributes in paginated
12953	// output. When this parameter is used, ListAttributes only returns maxResults
12954	// results in a single page along with a nextToken response element. The remaining
12955	// results of the initial request can be seen by sending another ListAttributes
12956	// request with the returned nextToken value. This value can be between 1 and
12957	// 100. If this parameter is not used, then ListAttributes returns up to 100
12958	// results and a nextToken value if applicable.
12959	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12960
12961	// The nextToken value returned from a ListAttributes request indicating that
12962	// more results are available to fulfill the request and further calls will
12963	// be needed. If maxResults was provided, it is possible the number of results
12964	// to be fewer than maxResults.
12965	//
12966	// This token should be treated as an opaque identifier that is only used to
12967	// retrieve the next items in a list and not for other programmatic purposes.
12968	NextToken *string `locationName:"nextToken" type:"string"`
12969
12970	// The type of the target with which to list attributes.
12971	//
12972	// TargetType is a required field
12973	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
12974}
12975
12976// String returns the string representation
12977func (s ListAttributesInput) String() string {
12978	return awsutil.Prettify(s)
12979}
12980
12981// GoString returns the string representation
12982func (s ListAttributesInput) GoString() string {
12983	return s.String()
12984}
12985
12986// Validate inspects the fields of the type to determine if they are valid.
12987func (s *ListAttributesInput) Validate() error {
12988	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
12989	if s.TargetType == nil {
12990		invalidParams.Add(request.NewErrParamRequired("TargetType"))
12991	}
12992
12993	if invalidParams.Len() > 0 {
12994		return invalidParams
12995	}
12996	return nil
12997}
12998
12999// SetAttributeName sets the AttributeName field's value.
13000func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
13001	s.AttributeName = &v
13002	return s
13003}
13004
13005// SetAttributeValue sets the AttributeValue field's value.
13006func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
13007	s.AttributeValue = &v
13008	return s
13009}
13010
13011// SetCluster sets the Cluster field's value.
13012func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
13013	s.Cluster = &v
13014	return s
13015}
13016
13017// SetMaxResults sets the MaxResults field's value.
13018func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
13019	s.MaxResults = &v
13020	return s
13021}
13022
13023// SetNextToken sets the NextToken field's value.
13024func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
13025	s.NextToken = &v
13026	return s
13027}
13028
13029// SetTargetType sets the TargetType field's value.
13030func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
13031	s.TargetType = &v
13032	return s
13033}
13034
13035type ListAttributesOutput struct {
13036	_ struct{} `type:"structure"`
13037
13038	// A list of attribute objects that meet the criteria of the request.
13039	Attributes []*Attribute `locationName:"attributes" type:"list"`
13040
13041	// The nextToken value to include in a future ListAttributes request. When the
13042	// results of a ListAttributes request exceed maxResults, this value can be
13043	// used to retrieve the next page of results. This value is null when there
13044	// are no more results to return.
13045	NextToken *string `locationName:"nextToken" type:"string"`
13046}
13047
13048// String returns the string representation
13049func (s ListAttributesOutput) String() string {
13050	return awsutil.Prettify(s)
13051}
13052
13053// GoString returns the string representation
13054func (s ListAttributesOutput) GoString() string {
13055	return s.String()
13056}
13057
13058// SetAttributes sets the Attributes field's value.
13059func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
13060	s.Attributes = v
13061	return s
13062}
13063
13064// SetNextToken sets the NextToken field's value.
13065func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
13066	s.NextToken = &v
13067	return s
13068}
13069
13070type ListClustersInput struct {
13071	_ struct{} `type:"structure"`
13072
13073	// The maximum number of cluster results returned by ListClusters in paginated
13074	// output. When this parameter is used, ListClusters only returns maxResults
13075	// results in a single page along with a nextToken response element. The remaining
13076	// results of the initial request can be seen by sending another ListClusters
13077	// request with the returned nextToken value. This value can be between 1 and
13078	// 100. If this parameter is not used, then ListClusters returns up to 100 results
13079	// and a nextToken value if applicable.
13080	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13081
13082	// The nextToken value returned from a ListClusters request indicating that
13083	// more results are available to fulfill the request and further calls will
13084	// be needed. If maxResults was provided, it is possible the number of results
13085	// to be fewer than maxResults.
13086	//
13087	// This token should be treated as an opaque identifier that is only used to
13088	// retrieve the next items in a list and not for other programmatic purposes.
13089	NextToken *string `locationName:"nextToken" type:"string"`
13090}
13091
13092// String returns the string representation
13093func (s ListClustersInput) String() string {
13094	return awsutil.Prettify(s)
13095}
13096
13097// GoString returns the string representation
13098func (s ListClustersInput) GoString() string {
13099	return s.String()
13100}
13101
13102// SetMaxResults sets the MaxResults field's value.
13103func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
13104	s.MaxResults = &v
13105	return s
13106}
13107
13108// SetNextToken sets the NextToken field's value.
13109func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
13110	s.NextToken = &v
13111	return s
13112}
13113
13114type ListClustersOutput struct {
13115	_ struct{} `type:"structure"`
13116
13117	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
13118	// with your account.
13119	ClusterArns []*string `locationName:"clusterArns" type:"list"`
13120
13121	// The nextToken value to include in a future ListClusters request. When the
13122	// results of a ListClusters request exceed maxResults, this value can be used
13123	// to retrieve the next page of results. This value is null when there are no
13124	// more results to return.
13125	NextToken *string `locationName:"nextToken" type:"string"`
13126}
13127
13128// String returns the string representation
13129func (s ListClustersOutput) String() string {
13130	return awsutil.Prettify(s)
13131}
13132
13133// GoString returns the string representation
13134func (s ListClustersOutput) GoString() string {
13135	return s.String()
13136}
13137
13138// SetClusterArns sets the ClusterArns field's value.
13139func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
13140	s.ClusterArns = v
13141	return s
13142}
13143
13144// SetNextToken sets the NextToken field's value.
13145func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
13146	s.NextToken = &v
13147	return s
13148}
13149
13150type ListContainerInstancesInput struct {
13151	_ struct{} `type:"structure"`
13152
13153	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13154	// the container instances to list. If you do not specify a cluster, the default
13155	// cluster is assumed.
13156	Cluster *string `locationName:"cluster" type:"string"`
13157
13158	// You can filter the results of a ListContainerInstances operation with cluster
13159	// query language statements. For more information, see Cluster Query Language
13160	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
13161	// in the Amazon Elastic Container Service Developer Guide.
13162	Filter *string `locationName:"filter" type:"string"`
13163
13164	// The maximum number of container instance results returned by ListContainerInstances
13165	// in paginated output. When this parameter is used, ListContainerInstances
13166	// only returns maxResults results in a single page along with a nextToken response
13167	// element. The remaining results of the initial request can be seen by sending
13168	// another ListContainerInstances request with the returned nextToken value.
13169	// This value can be between 1 and 100. If this parameter is not used, then
13170	// ListContainerInstances returns up to 100 results and a nextToken value if
13171	// applicable.
13172	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13173
13174	// The nextToken value returned from a ListContainerInstances request indicating
13175	// that more results are available to fulfill the request and further calls
13176	// will be needed. If maxResults was provided, it is possible the number of
13177	// results to be fewer than maxResults.
13178	//
13179	// This token should be treated as an opaque identifier that is only used to
13180	// retrieve the next items in a list and not for other programmatic purposes.
13181	NextToken *string `locationName:"nextToken" type:"string"`
13182
13183	// Filters the container instances by status. For example, if you specify the
13184	// DRAINING status, the results include only container instances that have been
13185	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
13186	// this parameter, the default is to include container instances set to all
13187	// states other than INACTIVE.
13188	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
13189}
13190
13191// String returns the string representation
13192func (s ListContainerInstancesInput) String() string {
13193	return awsutil.Prettify(s)
13194}
13195
13196// GoString returns the string representation
13197func (s ListContainerInstancesInput) GoString() string {
13198	return s.String()
13199}
13200
13201// SetCluster sets the Cluster field's value.
13202func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
13203	s.Cluster = &v
13204	return s
13205}
13206
13207// SetFilter sets the Filter field's value.
13208func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
13209	s.Filter = &v
13210	return s
13211}
13212
13213// SetMaxResults sets the MaxResults field's value.
13214func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
13215	s.MaxResults = &v
13216	return s
13217}
13218
13219// SetNextToken sets the NextToken field's value.
13220func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
13221	s.NextToken = &v
13222	return s
13223}
13224
13225// SetStatus sets the Status field's value.
13226func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
13227	s.Status = &v
13228	return s
13229}
13230
13231type ListContainerInstancesOutput struct {
13232	_ struct{} `type:"structure"`
13233
13234	// The list of container instances with full ARN entries for each container
13235	// instance associated with the specified cluster.
13236	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
13237
13238	// The nextToken value to include in a future ListContainerInstances request.
13239	// When the results of a ListContainerInstances request exceed maxResults, this
13240	// value can be used to retrieve the next page of results. This value is null
13241	// when there are no more results to return.
13242	NextToken *string `locationName:"nextToken" type:"string"`
13243}
13244
13245// String returns the string representation
13246func (s ListContainerInstancesOutput) String() string {
13247	return awsutil.Prettify(s)
13248}
13249
13250// GoString returns the string representation
13251func (s ListContainerInstancesOutput) GoString() string {
13252	return s.String()
13253}
13254
13255// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
13256func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
13257	s.ContainerInstanceArns = v
13258	return s
13259}
13260
13261// SetNextToken sets the NextToken field's value.
13262func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
13263	s.NextToken = &v
13264	return s
13265}
13266
13267type ListServicesInput struct {
13268	_ struct{} `type:"structure"`
13269
13270	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13271	// the services to list. If you do not specify a cluster, the default cluster
13272	// is assumed.
13273	Cluster *string `locationName:"cluster" type:"string"`
13274
13275	// The launch type for the services to list.
13276	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13277
13278	// The maximum number of service results returned by ListServices in paginated
13279	// output. When this parameter is used, ListServices only returns maxResults
13280	// results in a single page along with a nextToken response element. The remaining
13281	// results of the initial request can be seen by sending another ListServices
13282	// request with the returned nextToken value. This value can be between 1 and
13283	// 100. If this parameter is not used, then ListServices returns up to 10 results
13284	// and a nextToken value if applicable.
13285	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13286
13287	// The nextToken value returned from a ListServices request indicating that
13288	// more results are available to fulfill the request and further calls will
13289	// be needed. If maxResults was provided, it is possible the number of results
13290	// to be fewer than maxResults.
13291	//
13292	// This token should be treated as an opaque identifier that is only used to
13293	// retrieve the next items in a list and not for other programmatic purposes.
13294	NextToken *string `locationName:"nextToken" type:"string"`
13295
13296	// The scheduling strategy for services to list.
13297	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
13298}
13299
13300// String returns the string representation
13301func (s ListServicesInput) String() string {
13302	return awsutil.Prettify(s)
13303}
13304
13305// GoString returns the string representation
13306func (s ListServicesInput) GoString() string {
13307	return s.String()
13308}
13309
13310// SetCluster sets the Cluster field's value.
13311func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
13312	s.Cluster = &v
13313	return s
13314}
13315
13316// SetLaunchType sets the LaunchType field's value.
13317func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
13318	s.LaunchType = &v
13319	return s
13320}
13321
13322// SetMaxResults sets the MaxResults field's value.
13323func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
13324	s.MaxResults = &v
13325	return s
13326}
13327
13328// SetNextToken sets the NextToken field's value.
13329func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
13330	s.NextToken = &v
13331	return s
13332}
13333
13334// SetSchedulingStrategy sets the SchedulingStrategy field's value.
13335func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
13336	s.SchedulingStrategy = &v
13337	return s
13338}
13339
13340type ListServicesOutput struct {
13341	_ struct{} `type:"structure"`
13342
13343	// The nextToken value to include in a future ListServices request. When the
13344	// results of a ListServices request exceed maxResults, this value can be used
13345	// to retrieve the next page of results. This value is null when there are no
13346	// more results to return.
13347	NextToken *string `locationName:"nextToken" type:"string"`
13348
13349	// The list of full ARN entries for each service associated with the specified
13350	// cluster.
13351	ServiceArns []*string `locationName:"serviceArns" type:"list"`
13352}
13353
13354// String returns the string representation
13355func (s ListServicesOutput) String() string {
13356	return awsutil.Prettify(s)
13357}
13358
13359// GoString returns the string representation
13360func (s ListServicesOutput) GoString() string {
13361	return s.String()
13362}
13363
13364// SetNextToken sets the NextToken field's value.
13365func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
13366	s.NextToken = &v
13367	return s
13368}
13369
13370// SetServiceArns sets the ServiceArns field's value.
13371func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
13372	s.ServiceArns = v
13373	return s
13374}
13375
13376type ListTagsForResourceInput struct {
13377	_ struct{} `type:"structure"`
13378
13379	// The Amazon Resource Name (ARN) that identifies the resource for which to
13380	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
13381	// task definitions, clusters, and container instances.
13382	//
13383	// ResourceArn is a required field
13384	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
13385}
13386
13387// String returns the string representation
13388func (s ListTagsForResourceInput) String() string {
13389	return awsutil.Prettify(s)
13390}
13391
13392// GoString returns the string representation
13393func (s ListTagsForResourceInput) GoString() string {
13394	return s.String()
13395}
13396
13397// Validate inspects the fields of the type to determine if they are valid.
13398func (s *ListTagsForResourceInput) Validate() error {
13399	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
13400	if s.ResourceArn == nil {
13401		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
13402	}
13403
13404	if invalidParams.Len() > 0 {
13405		return invalidParams
13406	}
13407	return nil
13408}
13409
13410// SetResourceArn sets the ResourceArn field's value.
13411func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
13412	s.ResourceArn = &v
13413	return s
13414}
13415
13416type ListTagsForResourceOutput struct {
13417	_ struct{} `type:"structure"`
13418
13419	// The tags for the resource.
13420	Tags []*Tag `locationName:"tags" type:"list"`
13421}
13422
13423// String returns the string representation
13424func (s ListTagsForResourceOutput) String() string {
13425	return awsutil.Prettify(s)
13426}
13427
13428// GoString returns the string representation
13429func (s ListTagsForResourceOutput) GoString() string {
13430	return s.String()
13431}
13432
13433// SetTags sets the Tags field's value.
13434func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
13435	s.Tags = v
13436	return s
13437}
13438
13439type ListTaskDefinitionFamiliesInput struct {
13440	_ struct{} `type:"structure"`
13441
13442	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
13443	// If you specify a familyPrefix, only task definition family names that begin
13444	// with the familyPrefix string are returned.
13445	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
13446
13447	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
13448	// in paginated output. When this parameter is used, ListTaskDefinitions only
13449	// returns maxResults results in a single page along with a nextToken response
13450	// element. The remaining results of the initial request can be seen by sending
13451	// another ListTaskDefinitionFamilies request with the returned nextToken value.
13452	// This value can be between 1 and 100. If this parameter is not used, then
13453	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
13454	// if applicable.
13455	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13456
13457	// The nextToken value returned from a ListTaskDefinitionFamilies request indicating
13458	// that more results are available to fulfill the request and further calls
13459	// will be needed. If maxResults was provided, it is possible the number of
13460	// results to be fewer than maxResults.
13461	//
13462	// This token should be treated as an opaque identifier that is only used to
13463	// retrieve the next items in a list and not for other programmatic purposes.
13464	NextToken *string `locationName:"nextToken" type:"string"`
13465
13466	// The task definition family status with which to filter the ListTaskDefinitionFamilies
13467	// results. By default, both ACTIVE and INACTIVE task definition families are
13468	// listed. If this parameter is set to ACTIVE, only task definition families
13469	// that have an ACTIVE task definition revision are returned. If this parameter
13470	// is set to INACTIVE, only task definition families that do not have any ACTIVE
13471	// task definition revisions are returned. If you paginate the resulting output,
13472	// be sure to keep the status value constant in each subsequent request.
13473	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
13474}
13475
13476// String returns the string representation
13477func (s ListTaskDefinitionFamiliesInput) String() string {
13478	return awsutil.Prettify(s)
13479}
13480
13481// GoString returns the string representation
13482func (s ListTaskDefinitionFamiliesInput) GoString() string {
13483	return s.String()
13484}
13485
13486// SetFamilyPrefix sets the FamilyPrefix field's value.
13487func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
13488	s.FamilyPrefix = &v
13489	return s
13490}
13491
13492// SetMaxResults sets the MaxResults field's value.
13493func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
13494	s.MaxResults = &v
13495	return s
13496}
13497
13498// SetNextToken sets the NextToken field's value.
13499func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
13500	s.NextToken = &v
13501	return s
13502}
13503
13504// SetStatus sets the Status field's value.
13505func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
13506	s.Status = &v
13507	return s
13508}
13509
13510type ListTaskDefinitionFamiliesOutput struct {
13511	_ struct{} `type:"structure"`
13512
13513	// The list of task definition family names that match the ListTaskDefinitionFamilies
13514	// request.
13515	Families []*string `locationName:"families" type:"list"`
13516
13517	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
13518	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
13519	// this value can be used to retrieve the next page of results. This value is
13520	// null when there are no more results to return.
13521	NextToken *string `locationName:"nextToken" type:"string"`
13522}
13523
13524// String returns the string representation
13525func (s ListTaskDefinitionFamiliesOutput) String() string {
13526	return awsutil.Prettify(s)
13527}
13528
13529// GoString returns the string representation
13530func (s ListTaskDefinitionFamiliesOutput) GoString() string {
13531	return s.String()
13532}
13533
13534// SetFamilies sets the Families field's value.
13535func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
13536	s.Families = v
13537	return s
13538}
13539
13540// SetNextToken sets the NextToken field's value.
13541func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
13542	s.NextToken = &v
13543	return s
13544}
13545
13546type ListTaskDefinitionsInput struct {
13547	_ struct{} `type:"structure"`
13548
13549	// The full family name with which to filter the ListTaskDefinitions results.
13550	// Specifying a familyPrefix limits the listed task definitions to task definition
13551	// revisions that belong to that family.
13552	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
13553
13554	// The maximum number of task definition results returned by ListTaskDefinitions
13555	// in paginated output. When this parameter is used, ListTaskDefinitions only
13556	// returns maxResults results in a single page along with a nextToken response
13557	// element. The remaining results of the initial request can be seen by sending
13558	// another ListTaskDefinitions request with the returned nextToken value. This
13559	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
13560	// returns up to 100 results and a nextToken value if applicable.
13561	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13562
13563	// The nextToken value returned from a ListTaskDefinitions request indicating
13564	// that more results are available to fulfill the request and further calls
13565	// will be needed. If maxResults was provided, it is possible the number of
13566	// results to be fewer than maxResults.
13567	//
13568	// This token should be treated as an opaque identifier that is only used to
13569	// retrieve the next items in a list and not for other programmatic purposes.
13570	NextToken *string `locationName:"nextToken" type:"string"`
13571
13572	// The order in which to sort the results. Valid values are ASC and DESC. By
13573	// default (ASC), task definitions are listed lexicographically by family name
13574	// and in ascending numerical order by revision so that the newest task definitions
13575	// in a family are listed last. Setting this parameter to DESC reverses the
13576	// sort order on family name and revision so that the newest task definitions
13577	// in a family are listed first.
13578	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
13579
13580	// The task definition status with which to filter the ListTaskDefinitions results.
13581	// By default, only ACTIVE task definitions are listed. By setting this parameter
13582	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
13583	// active task or service still references them. If you paginate the resulting
13584	// output, be sure to keep the status value constant in each subsequent request.
13585	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
13586}
13587
13588// String returns the string representation
13589func (s ListTaskDefinitionsInput) String() string {
13590	return awsutil.Prettify(s)
13591}
13592
13593// GoString returns the string representation
13594func (s ListTaskDefinitionsInput) GoString() string {
13595	return s.String()
13596}
13597
13598// SetFamilyPrefix sets the FamilyPrefix field's value.
13599func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
13600	s.FamilyPrefix = &v
13601	return s
13602}
13603
13604// SetMaxResults sets the MaxResults field's value.
13605func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
13606	s.MaxResults = &v
13607	return s
13608}
13609
13610// SetNextToken sets the NextToken field's value.
13611func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
13612	s.NextToken = &v
13613	return s
13614}
13615
13616// SetSort sets the Sort field's value.
13617func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
13618	s.Sort = &v
13619	return s
13620}
13621
13622// SetStatus sets the Status field's value.
13623func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
13624	s.Status = &v
13625	return s
13626}
13627
13628type ListTaskDefinitionsOutput struct {
13629	_ struct{} `type:"structure"`
13630
13631	// The nextToken value to include in a future ListTaskDefinitions request. When
13632	// the results of a ListTaskDefinitions request exceed maxResults, this value
13633	// can be used to retrieve the next page of results. This value is null when
13634	// there are no more results to return.
13635	NextToken *string `locationName:"nextToken" type:"string"`
13636
13637	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
13638	// request.
13639	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
13640}
13641
13642// String returns the string representation
13643func (s ListTaskDefinitionsOutput) String() string {
13644	return awsutil.Prettify(s)
13645}
13646
13647// GoString returns the string representation
13648func (s ListTaskDefinitionsOutput) GoString() string {
13649	return s.String()
13650}
13651
13652// SetNextToken sets the NextToken field's value.
13653func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
13654	s.NextToken = &v
13655	return s
13656}
13657
13658// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
13659func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
13660	s.TaskDefinitionArns = v
13661	return s
13662}
13663
13664type ListTasksInput struct {
13665	_ struct{} `type:"structure"`
13666
13667	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13668	// the tasks to list. If you do not specify a cluster, the default cluster is
13669	// assumed.
13670	Cluster *string `locationName:"cluster" type:"string"`
13671
13672	// The container instance ID or full ARN of the container instance with which
13673	// to filter the ListTasks results. Specifying a containerInstance limits the
13674	// results to tasks that belong to that container instance.
13675	ContainerInstance *string `locationName:"containerInstance" type:"string"`
13676
13677	// The task desired status with which to filter the ListTasks results. Specifying
13678	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
13679	// set the desired status to STOPPED. This can be useful for debugging tasks
13680	// that are not starting properly or have died or finished. The default status
13681	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
13682	// status to RUNNING.
13683	//
13684	// Although you can filter results based on a desired status of PENDING, this
13685	// does not return any results. Amazon ECS never sets the desired status of
13686	// a task to that value (only a task's lastStatus may have a value of PENDING).
13687	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
13688
13689	// The name of the family with which to filter the ListTasks results. Specifying
13690	// a family limits the results to tasks that belong to that family.
13691	Family *string `locationName:"family" type:"string"`
13692
13693	// The launch type for services to list.
13694	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13695
13696	// The maximum number of task results returned by ListTasks in paginated output.
13697	// When this parameter is used, ListTasks only returns maxResults results in
13698	// a single page along with a nextToken response element. The remaining results
13699	// of the initial request can be seen by sending another ListTasks request with
13700	// the returned nextToken value. This value can be between 1 and 100. If this
13701	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
13702	// value if applicable.
13703	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13704
13705	// The nextToken value returned from a ListTasks request indicating that more
13706	// results are available to fulfill the request and further calls will be needed.
13707	// If maxResults was provided, it is possible the number of results to be fewer
13708	// than maxResults.
13709	//
13710	// This token should be treated as an opaque identifier that is only used to
13711	// retrieve the next items in a list and not for other programmatic purposes.
13712	NextToken *string `locationName:"nextToken" type:"string"`
13713
13714	// The name of the service with which to filter the ListTasks results. Specifying
13715	// a serviceName limits the results to tasks that belong to that service.
13716	ServiceName *string `locationName:"serviceName" type:"string"`
13717
13718	// The startedBy value with which to filter the task results. Specifying a startedBy
13719	// value limits the results to tasks that were started with that value.
13720	StartedBy *string `locationName:"startedBy" type:"string"`
13721}
13722
13723// String returns the string representation
13724func (s ListTasksInput) String() string {
13725	return awsutil.Prettify(s)
13726}
13727
13728// GoString returns the string representation
13729func (s ListTasksInput) GoString() string {
13730	return s.String()
13731}
13732
13733// SetCluster sets the Cluster field's value.
13734func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
13735	s.Cluster = &v
13736	return s
13737}
13738
13739// SetContainerInstance sets the ContainerInstance field's value.
13740func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
13741	s.ContainerInstance = &v
13742	return s
13743}
13744
13745// SetDesiredStatus sets the DesiredStatus field's value.
13746func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
13747	s.DesiredStatus = &v
13748	return s
13749}
13750
13751// SetFamily sets the Family field's value.
13752func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
13753	s.Family = &v
13754	return s
13755}
13756
13757// SetLaunchType sets the LaunchType field's value.
13758func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
13759	s.LaunchType = &v
13760	return s
13761}
13762
13763// SetMaxResults sets the MaxResults field's value.
13764func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
13765	s.MaxResults = &v
13766	return s
13767}
13768
13769// SetNextToken sets the NextToken field's value.
13770func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
13771	s.NextToken = &v
13772	return s
13773}
13774
13775// SetServiceName sets the ServiceName field's value.
13776func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
13777	s.ServiceName = &v
13778	return s
13779}
13780
13781// SetStartedBy sets the StartedBy field's value.
13782func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
13783	s.StartedBy = &v
13784	return s
13785}
13786
13787type ListTasksOutput struct {
13788	_ struct{} `type:"structure"`
13789
13790	// The nextToken value to include in a future ListTasks request. When the results
13791	// of a ListTasks request exceed maxResults, this value can be used to retrieve
13792	// the next page of results. This value is null when there are no more results
13793	// to return.
13794	NextToken *string `locationName:"nextToken" type:"string"`
13795
13796	// The list of task ARN entries for the ListTasks request.
13797	TaskArns []*string `locationName:"taskArns" type:"list"`
13798}
13799
13800// String returns the string representation
13801func (s ListTasksOutput) String() string {
13802	return awsutil.Prettify(s)
13803}
13804
13805// GoString returns the string representation
13806func (s ListTasksOutput) GoString() string {
13807	return s.String()
13808}
13809
13810// SetNextToken sets the NextToken field's value.
13811func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
13812	s.NextToken = &v
13813	return s
13814}
13815
13816// SetTaskArns sets the TaskArns field's value.
13817func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
13818	s.TaskArns = v
13819	return s
13820}
13821
13822// The load balancer configuration to use with a service or task set.
13823//
13824// For specific notes and restrictions regarding the use of load balancers with
13825// services and task sets, see the CreateService and CreateTaskSet actions.
13826type LoadBalancer struct {
13827	_ struct{} `type:"structure"`
13828
13829	// The name of the container (as it appears in a container definition) to associate
13830	// with the load balancer.
13831	ContainerName *string `locationName:"containerName" type:"string"`
13832
13833	// The port on the container to associate with the load balancer. This port
13834	// must correspond to a containerPort in the task definition the tasks in the
13835	// service are using. For tasks that use the EC2 launch type, the container
13836	// instance they are launched on must allow ingress traffic on the hostPort
13837	// of the port mapping.
13838	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13839
13840	// The name of the load balancer to associate with the Amazon ECS service or
13841	// task set.
13842	//
13843	// A load balancer name is only specified when using a Classic Load Balancer.
13844	// If you are using an Application Load Balancer or a Network Load Balancer
13845	// the load balancer name parameter should be omitted.
13846	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
13847
13848	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
13849	// group or groups associated with a service or task set.
13850	//
13851	// A target group ARN is only specified when using an Application Load Balancer
13852	// or Network Load Balancer. If you are using a Classic Load Balancer the target
13853	// group ARN should be omitted.
13854	//
13855	// For services using the ECS deployment controller, you can specify one or
13856	// multiple target groups. For more information, see Registering Multiple Target
13857	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
13858	// in the Amazon Elastic Container Service Developer Guide.
13859	//
13860	// For services using the CODE_DEPLOY deployment controller, you are required
13861	// to define two target groups for the load balancer. For more information,
13862	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
13863	// in the Amazon Elastic Container Service Developer Guide.
13864	//
13865	// If your service's task definition uses the awsvpc network mode (which is
13866	// required for the Fargate launch type), you must choose ip as the target type,
13867	// not instance, when creating your target groups because tasks that use the
13868	// awsvpc network mode are associated with an elastic network interface, not
13869	// an Amazon EC2 instance.
13870	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
13871}
13872
13873// String returns the string representation
13874func (s LoadBalancer) String() string {
13875	return awsutil.Prettify(s)
13876}
13877
13878// GoString returns the string representation
13879func (s LoadBalancer) GoString() string {
13880	return s.String()
13881}
13882
13883// SetContainerName sets the ContainerName field's value.
13884func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
13885	s.ContainerName = &v
13886	return s
13887}
13888
13889// SetContainerPort sets the ContainerPort field's value.
13890func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
13891	s.ContainerPort = &v
13892	return s
13893}
13894
13895// SetLoadBalancerName sets the LoadBalancerName field's value.
13896func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
13897	s.LoadBalancerName = &v
13898	return s
13899}
13900
13901// SetTargetGroupArn sets the TargetGroupArn field's value.
13902func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
13903	s.TargetGroupArn = &v
13904	return s
13905}
13906
13907// The log configuration for the container. This parameter maps to LogConfig
13908// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13909// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13910// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).
13911//
13912// By default, containers use the same logging driver that the Docker daemon
13913// uses; however the container may use a different logging driver than the Docker
13914// daemon by specifying a log driver configuration in the container definition.
13915// For more information on the options for different supported log drivers,
13916// see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
13917// in the Docker documentation.
13918//
13919// The following should be noted when specifying a log configuration for your
13920// containers:
13921//
13922//    * Amazon ECS currently supports a subset of the logging drivers available
13923//    to the Docker daemon (shown in the valid values below). Additional log
13924//    drivers may be available in future releases of the Amazon ECS container
13925//    agent.
13926//
13927//    * This parameter requires version 1.18 of the Docker Remote API or greater
13928//    on your container instance.
13929//
13930//    * For tasks hosted on Amazon EC2 instances, the Amazon ECS container agent
13931//    must register the available logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS
13932//    environment variable before containers placed on that instance can use
13933//    these log configuration options. For more information, see Amazon ECS
13934//    container agent configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
13935//    in the Amazon Elastic Container Service Developer Guide.
13936//
13937//    * For tasks on AWS Fargate, because you do not have access to the underlying
13938//    infrastructure your tasks are hosted on, any additional software needed
13939//    will have to be installed outside of the task. For example, the Fluentd
13940//    output aggregators or a remote host running Logstash to send Gelf logs
13941//    to.
13942type LogConfiguration struct {
13943	_ struct{} `type:"structure"`
13944
13945	// The log driver to use for the container.
13946	//
13947	// For tasks on AWS Fargate, the supported log drivers are awslogs, splunk,
13948	// and awsfirelens.
13949	//
13950	// For tasks hosted on Amazon EC2 instances, the supported log drivers are awslogs,
13951	// fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.
13952	//
13953	// For more information about using the awslogs log driver, see Using the awslogs
13954	// log driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
13955	// in the Amazon Elastic Container Service Developer Guide.
13956	//
13957	// For more information about using the awsfirelens log driver, see Custom log
13958	// routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
13959	// in the Amazon Elastic Container Service Developer Guide.
13960	//
13961	// If you have a custom driver that is not listed, you can fork the Amazon ECS
13962	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
13963	// and customize it to work with that driver. We encourage you to submit pull
13964	// requests for changes that you would like to have included. However, we do
13965	// not currently provide support for running modified copies of this software.
13966	//
13967	// LogDriver is a required field
13968	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
13969
13970	// The configuration options to send to the log driver. This parameter requires
13971	// version 1.19 of the Docker Remote API or greater on your container instance.
13972	// To check the Docker Remote API version on your container instance, log in
13973	// to your container instance and run the following command: sudo docker version
13974	// --format '{{.Server.APIVersion}}'
13975	Options map[string]*string `locationName:"options" type:"map"`
13976
13977	// The secrets to pass to the log configuration. For more information, see Specifying
13978	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
13979	// in the Amazon Elastic Container Service Developer Guide.
13980	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
13981}
13982
13983// String returns the string representation
13984func (s LogConfiguration) String() string {
13985	return awsutil.Prettify(s)
13986}
13987
13988// GoString returns the string representation
13989func (s LogConfiguration) GoString() string {
13990	return s.String()
13991}
13992
13993// Validate inspects the fields of the type to determine if they are valid.
13994func (s *LogConfiguration) Validate() error {
13995	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
13996	if s.LogDriver == nil {
13997		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
13998	}
13999	if s.SecretOptions != nil {
14000		for i, v := range s.SecretOptions {
14001			if v == nil {
14002				continue
14003			}
14004			if err := v.Validate(); err != nil {
14005				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
14006			}
14007		}
14008	}
14009
14010	if invalidParams.Len() > 0 {
14011		return invalidParams
14012	}
14013	return nil
14014}
14015
14016// SetLogDriver sets the LogDriver field's value.
14017func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
14018	s.LogDriver = &v
14019	return s
14020}
14021
14022// SetOptions sets the Options field's value.
14023func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
14024	s.Options = v
14025	return s
14026}
14027
14028// SetSecretOptions sets the SecretOptions field's value.
14029func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
14030	s.SecretOptions = v
14031	return s
14032}
14033
14034// The managed scaling settings for the Auto Scaling group capacity provider.
14035//
14036// When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
14037// actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
14038// policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
14039// value as the target value for the metric. For more information, see Using
14040// Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
14041// in the Amazon Elastic Container Service Developer Guide.
14042//
14043// If managed scaling is disabled, the user must manage the scaling of the Auto
14044// Scaling group.
14045type ManagedScaling struct {
14046	_ struct{} `type:"structure"`
14047
14048	// The period of time, in seconds, after a newly launched Amazon EC2 instance
14049	// can contribute to CloudWatch metrics for Auto Scaling group. If this parameter
14050	// is omitted, the default value of 300 seconds is used.
14051	InstanceWarmupPeriod *int64 `locationName:"instanceWarmupPeriod" type:"integer"`
14052
14053	// The maximum number of container instances that Amazon ECS will scale in or
14054	// scale out at one time. If this parameter is omitted, the default value of
14055	// 10000 is used.
14056	MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"`
14057
14058	// The minimum number of container instances that Amazon ECS will scale in or
14059	// scale out at one time. If this parameter is omitted, the default value of
14060	// 1 is used.
14061	MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"`
14062
14063	// Whether or not to enable managed scaling for the capacity provider.
14064	Status *string `locationName:"status" type:"string" enum:"ManagedScalingStatus"`
14065
14066	// The target capacity value for the capacity provider. The specified value
14067	// must be greater than 0 and less than or equal to 100. A value of 100 will
14068	// result in the Amazon EC2 instances in your Auto Scaling group being completely
14069	// utilized.
14070	TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"`
14071}
14072
14073// String returns the string representation
14074func (s ManagedScaling) String() string {
14075	return awsutil.Prettify(s)
14076}
14077
14078// GoString returns the string representation
14079func (s ManagedScaling) GoString() string {
14080	return s.String()
14081}
14082
14083// Validate inspects the fields of the type to determine if they are valid.
14084func (s *ManagedScaling) Validate() error {
14085	invalidParams := request.ErrInvalidParams{Context: "ManagedScaling"}
14086	if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 {
14087		invalidParams.Add(request.NewErrParamMinValue("MaximumScalingStepSize", 1))
14088	}
14089	if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 {
14090		invalidParams.Add(request.NewErrParamMinValue("MinimumScalingStepSize", 1))
14091	}
14092	if s.TargetCapacity != nil && *s.TargetCapacity < 1 {
14093		invalidParams.Add(request.NewErrParamMinValue("TargetCapacity", 1))
14094	}
14095
14096	if invalidParams.Len() > 0 {
14097		return invalidParams
14098	}
14099	return nil
14100}
14101
14102// SetInstanceWarmupPeriod sets the InstanceWarmupPeriod field's value.
14103func (s *ManagedScaling) SetInstanceWarmupPeriod(v int64) *ManagedScaling {
14104	s.InstanceWarmupPeriod = &v
14105	return s
14106}
14107
14108// SetMaximumScalingStepSize sets the MaximumScalingStepSize field's value.
14109func (s *ManagedScaling) SetMaximumScalingStepSize(v int64) *ManagedScaling {
14110	s.MaximumScalingStepSize = &v
14111	return s
14112}
14113
14114// SetMinimumScalingStepSize sets the MinimumScalingStepSize field's value.
14115func (s *ManagedScaling) SetMinimumScalingStepSize(v int64) *ManagedScaling {
14116	s.MinimumScalingStepSize = &v
14117	return s
14118}
14119
14120// SetStatus sets the Status field's value.
14121func (s *ManagedScaling) SetStatus(v string) *ManagedScaling {
14122	s.Status = &v
14123	return s
14124}
14125
14126// SetTargetCapacity sets the TargetCapacity field's value.
14127func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling {
14128	s.TargetCapacity = &v
14129	return s
14130}
14131
14132// Amazon ECS is unable to determine the current version of the Amazon ECS container
14133// agent on the container instance and does not have enough information to proceed
14134// with an update. This could be because the agent running on the container
14135// instance is an older or custom version that does not use our version information.
14136type MissingVersionException struct {
14137	_            struct{}                  `type:"structure"`
14138	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14139
14140	Message_ *string `locationName:"message" type:"string"`
14141}
14142
14143// String returns the string representation
14144func (s MissingVersionException) String() string {
14145	return awsutil.Prettify(s)
14146}
14147
14148// GoString returns the string representation
14149func (s MissingVersionException) GoString() string {
14150	return s.String()
14151}
14152
14153func newErrorMissingVersionException(v protocol.ResponseMetadata) error {
14154	return &MissingVersionException{
14155		RespMetadata: v,
14156	}
14157}
14158
14159// Code returns the exception type name.
14160func (s *MissingVersionException) Code() string {
14161	return "MissingVersionException"
14162}
14163
14164// Message returns the exception's message.
14165func (s *MissingVersionException) Message() string {
14166	if s.Message_ != nil {
14167		return *s.Message_
14168	}
14169	return ""
14170}
14171
14172// OrigErr always returns nil, satisfies awserr.Error interface.
14173func (s *MissingVersionException) OrigErr() error {
14174	return nil
14175}
14176
14177func (s *MissingVersionException) Error() string {
14178	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14179}
14180
14181// Status code returns the HTTP status code for the request's response error.
14182func (s *MissingVersionException) StatusCode() int {
14183	return s.RespMetadata.StatusCode
14184}
14185
14186// RequestID returns the service's response RequestID for request.
14187func (s *MissingVersionException) RequestID() string {
14188	return s.RespMetadata.RequestID
14189}
14190
14191// Details on a volume mount point that is used in a container definition.
14192type MountPoint struct {
14193	_ struct{} `type:"structure"`
14194
14195	// The path on the container to mount the host volume at.
14196	ContainerPath *string `locationName:"containerPath" type:"string"`
14197
14198	// If this value is true, the container has read-only access to the volume.
14199	// If this value is false, then the container can write to the volume. The default
14200	// value is false.
14201	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
14202
14203	// The name of the volume to mount. Must be a volume name referenced in the
14204	// name parameter of task definition volume.
14205	SourceVolume *string `locationName:"sourceVolume" type:"string"`
14206}
14207
14208// String returns the string representation
14209func (s MountPoint) String() string {
14210	return awsutil.Prettify(s)
14211}
14212
14213// GoString returns the string representation
14214func (s MountPoint) GoString() string {
14215	return s.String()
14216}
14217
14218// SetContainerPath sets the ContainerPath field's value.
14219func (s *MountPoint) SetContainerPath(v string) *MountPoint {
14220	s.ContainerPath = &v
14221	return s
14222}
14223
14224// SetReadOnly sets the ReadOnly field's value.
14225func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
14226	s.ReadOnly = &v
14227	return s
14228}
14229
14230// SetSourceVolume sets the SourceVolume field's value.
14231func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
14232	s.SourceVolume = &v
14233	return s
14234}
14235
14236// Details on the network bindings between a container and its host container
14237// instance. After a task reaches the RUNNING status, manual and automatic host
14238// and container port assignments are visible in the networkBindings section
14239// of DescribeTasks API responses.
14240type NetworkBinding struct {
14241	_ struct{} `type:"structure"`
14242
14243	// The IP address that the container is bound to on the container instance.
14244	BindIP *string `locationName:"bindIP" type:"string"`
14245
14246	// The port number on the container that is used with the network binding.
14247	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14248
14249	// The port number on the host that is used with the network binding.
14250	HostPort *int64 `locationName:"hostPort" type:"integer"`
14251
14252	// The protocol used for the network binding.
14253	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
14254}
14255
14256// String returns the string representation
14257func (s NetworkBinding) String() string {
14258	return awsutil.Prettify(s)
14259}
14260
14261// GoString returns the string representation
14262func (s NetworkBinding) GoString() string {
14263	return s.String()
14264}
14265
14266// SetBindIP sets the BindIP field's value.
14267func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
14268	s.BindIP = &v
14269	return s
14270}
14271
14272// SetContainerPort sets the ContainerPort field's value.
14273func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
14274	s.ContainerPort = &v
14275	return s
14276}
14277
14278// SetHostPort sets the HostPort field's value.
14279func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
14280	s.HostPort = &v
14281	return s
14282}
14283
14284// SetProtocol sets the Protocol field's value.
14285func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
14286	s.Protocol = &v
14287	return s
14288}
14289
14290// An object representing the network configuration for a task or service.
14291type NetworkConfiguration struct {
14292	_ struct{} `type:"structure"`
14293
14294	// The VPC subnets and security groups associated with a task.
14295	//
14296	// All specified subnets and security groups must be from the same VPC.
14297	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
14298}
14299
14300// String returns the string representation
14301func (s NetworkConfiguration) String() string {
14302	return awsutil.Prettify(s)
14303}
14304
14305// GoString returns the string representation
14306func (s NetworkConfiguration) GoString() string {
14307	return s.String()
14308}
14309
14310// Validate inspects the fields of the type to determine if they are valid.
14311func (s *NetworkConfiguration) Validate() error {
14312	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
14313	if s.AwsvpcConfiguration != nil {
14314		if err := s.AwsvpcConfiguration.Validate(); err != nil {
14315			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
14316		}
14317	}
14318
14319	if invalidParams.Len() > 0 {
14320		return invalidParams
14321	}
14322	return nil
14323}
14324
14325// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
14326func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
14327	s.AwsvpcConfiguration = v
14328	return s
14329}
14330
14331// An object representing the elastic network interface for tasks that use the
14332// awsvpc network mode.
14333type NetworkInterface struct {
14334	_ struct{} `type:"structure"`
14335
14336	// The attachment ID for the network interface.
14337	AttachmentId *string `locationName:"attachmentId" type:"string"`
14338
14339	// The private IPv6 address for the network interface.
14340	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
14341
14342	// The private IPv4 address for the network interface.
14343	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
14344}
14345
14346// String returns the string representation
14347func (s NetworkInterface) String() string {
14348	return awsutil.Prettify(s)
14349}
14350
14351// GoString returns the string representation
14352func (s NetworkInterface) GoString() string {
14353	return s.String()
14354}
14355
14356// SetAttachmentId sets the AttachmentId field's value.
14357func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
14358	s.AttachmentId = &v
14359	return s
14360}
14361
14362// SetIpv6Address sets the Ipv6Address field's value.
14363func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
14364	s.Ipv6Address = &v
14365	return s
14366}
14367
14368// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
14369func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
14370	s.PrivateIpv4Address = &v
14371	return s
14372}
14373
14374// There is no update available for this Amazon ECS container agent. This could
14375// be because the agent is already running the latest version, or it is so old
14376// that there is no update path to the current version.
14377type NoUpdateAvailableException struct {
14378	_            struct{}                  `type:"structure"`
14379	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14380
14381	Message_ *string `locationName:"message" type:"string"`
14382}
14383
14384// String returns the string representation
14385func (s NoUpdateAvailableException) String() string {
14386	return awsutil.Prettify(s)
14387}
14388
14389// GoString returns the string representation
14390func (s NoUpdateAvailableException) GoString() string {
14391	return s.String()
14392}
14393
14394func newErrorNoUpdateAvailableException(v protocol.ResponseMetadata) error {
14395	return &NoUpdateAvailableException{
14396		RespMetadata: v,
14397	}
14398}
14399
14400// Code returns the exception type name.
14401func (s *NoUpdateAvailableException) Code() string {
14402	return "NoUpdateAvailableException"
14403}
14404
14405// Message returns the exception's message.
14406func (s *NoUpdateAvailableException) Message() string {
14407	if s.Message_ != nil {
14408		return *s.Message_
14409	}
14410	return ""
14411}
14412
14413// OrigErr always returns nil, satisfies awserr.Error interface.
14414func (s *NoUpdateAvailableException) OrigErr() error {
14415	return nil
14416}
14417
14418func (s *NoUpdateAvailableException) Error() string {
14419	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14420}
14421
14422// Status code returns the HTTP status code for the request's response error.
14423func (s *NoUpdateAvailableException) StatusCode() int {
14424	return s.RespMetadata.StatusCode
14425}
14426
14427// RequestID returns the service's response RequestID for request.
14428func (s *NoUpdateAvailableException) RequestID() string {
14429	return s.RespMetadata.RequestID
14430}
14431
14432// An object representing a constraint on task placement. For more information,
14433// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
14434// in the Amazon Elastic Container Service Developer Guide.
14435//
14436// If you are using the Fargate launch type, task placement constraints are
14437// not supported.
14438type PlacementConstraint struct {
14439	_ struct{} `type:"structure"`
14440
14441	// A cluster query language expression to apply to the constraint. You cannot
14442	// specify an expression if the constraint type is distinctInstance. For more
14443	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
14444	// in the Amazon Elastic Container Service Developer Guide.
14445	Expression *string `locationName:"expression" type:"string"`
14446
14447	// The type of constraint. Use distinctInstance to ensure that each task in
14448	// a particular group is running on a different container instance. Use memberOf
14449	// to restrict the selection to a group of valid candidates.
14450	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
14451}
14452
14453// String returns the string representation
14454func (s PlacementConstraint) String() string {
14455	return awsutil.Prettify(s)
14456}
14457
14458// GoString returns the string representation
14459func (s PlacementConstraint) GoString() string {
14460	return s.String()
14461}
14462
14463// SetExpression sets the Expression field's value.
14464func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
14465	s.Expression = &v
14466	return s
14467}
14468
14469// SetType sets the Type field's value.
14470func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
14471	s.Type = &v
14472	return s
14473}
14474
14475// The task placement strategy for a task or service. For more information,
14476// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
14477// in the Amazon Elastic Container Service Developer Guide.
14478type PlacementStrategy struct {
14479	_ struct{} `type:"structure"`
14480
14481	// The field to apply the placement strategy against. For the spread placement
14482	// strategy, valid values are instanceId (or host, which has the same effect),
14483	// or any platform or custom attribute that is applied to a container instance,
14484	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
14485	// valid values are cpu and memory. For the random placement strategy, this
14486	// field is not used.
14487	Field *string `locationName:"field" type:"string"`
14488
14489	// The type of placement strategy. The random placement strategy randomly places
14490	// tasks on available candidates. The spread placement strategy spreads placement
14491	// across available candidates evenly based on the field parameter. The binpack
14492	// strategy places tasks on available candidates that have the least available
14493	// amount of the resource that is specified with the field parameter. For example,
14494	// if you binpack on memory, a task is placed on the instance with the least
14495	// amount of remaining memory (but still enough to run the task).
14496	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
14497}
14498
14499// String returns the string representation
14500func (s PlacementStrategy) String() string {
14501	return awsutil.Prettify(s)
14502}
14503
14504// GoString returns the string representation
14505func (s PlacementStrategy) GoString() string {
14506	return s.String()
14507}
14508
14509// SetField sets the Field field's value.
14510func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
14511	s.Field = &v
14512	return s
14513}
14514
14515// SetType sets the Type field's value.
14516func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
14517	s.Type = &v
14518	return s
14519}
14520
14521// The devices that are available on the container instance. The only supported
14522// device type is a GPU.
14523type PlatformDevice struct {
14524	_ struct{} `type:"structure"`
14525
14526	// The ID for the GPU(s) on the container instance. The available GPU IDs can
14527	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
14528	// file.
14529	//
14530	// Id is a required field
14531	Id *string `locationName:"id" type:"string" required:"true"`
14532
14533	// The type of device that is available on the container instance. The only
14534	// supported value is GPU.
14535	//
14536	// Type is a required field
14537	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
14538}
14539
14540// String returns the string representation
14541func (s PlatformDevice) String() string {
14542	return awsutil.Prettify(s)
14543}
14544
14545// GoString returns the string representation
14546func (s PlatformDevice) GoString() string {
14547	return s.String()
14548}
14549
14550// Validate inspects the fields of the type to determine if they are valid.
14551func (s *PlatformDevice) Validate() error {
14552	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
14553	if s.Id == nil {
14554		invalidParams.Add(request.NewErrParamRequired("Id"))
14555	}
14556	if s.Type == nil {
14557		invalidParams.Add(request.NewErrParamRequired("Type"))
14558	}
14559
14560	if invalidParams.Len() > 0 {
14561		return invalidParams
14562	}
14563	return nil
14564}
14565
14566// SetId sets the Id field's value.
14567func (s *PlatformDevice) SetId(v string) *PlatformDevice {
14568	s.Id = &v
14569	return s
14570}
14571
14572// SetType sets the Type field's value.
14573func (s *PlatformDevice) SetType(v string) *PlatformDevice {
14574	s.Type = &v
14575	return s
14576}
14577
14578// The specified platform version does not satisfy the task definition's required
14579// capabilities.
14580type PlatformTaskDefinitionIncompatibilityException struct {
14581	_            struct{}                  `type:"structure"`
14582	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14583
14584	Message_ *string `locationName:"message" type:"string"`
14585}
14586
14587// String returns the string representation
14588func (s PlatformTaskDefinitionIncompatibilityException) String() string {
14589	return awsutil.Prettify(s)
14590}
14591
14592// GoString returns the string representation
14593func (s PlatformTaskDefinitionIncompatibilityException) GoString() string {
14594	return s.String()
14595}
14596
14597func newErrorPlatformTaskDefinitionIncompatibilityException(v protocol.ResponseMetadata) error {
14598	return &PlatformTaskDefinitionIncompatibilityException{
14599		RespMetadata: v,
14600	}
14601}
14602
14603// Code returns the exception type name.
14604func (s *PlatformTaskDefinitionIncompatibilityException) Code() string {
14605	return "PlatformTaskDefinitionIncompatibilityException"
14606}
14607
14608// Message returns the exception's message.
14609func (s *PlatformTaskDefinitionIncompatibilityException) Message() string {
14610	if s.Message_ != nil {
14611		return *s.Message_
14612	}
14613	return ""
14614}
14615
14616// OrigErr always returns nil, satisfies awserr.Error interface.
14617func (s *PlatformTaskDefinitionIncompatibilityException) OrigErr() error {
14618	return nil
14619}
14620
14621func (s *PlatformTaskDefinitionIncompatibilityException) Error() string {
14622	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14623}
14624
14625// Status code returns the HTTP status code for the request's response error.
14626func (s *PlatformTaskDefinitionIncompatibilityException) StatusCode() int {
14627	return s.RespMetadata.StatusCode
14628}
14629
14630// RequestID returns the service's response RequestID for request.
14631func (s *PlatformTaskDefinitionIncompatibilityException) RequestID() string {
14632	return s.RespMetadata.RequestID
14633}
14634
14635// The specified platform version does not exist.
14636type PlatformUnknownException struct {
14637	_            struct{}                  `type:"structure"`
14638	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14639
14640	Message_ *string `locationName:"message" type:"string"`
14641}
14642
14643// String returns the string representation
14644func (s PlatformUnknownException) String() string {
14645	return awsutil.Prettify(s)
14646}
14647
14648// GoString returns the string representation
14649func (s PlatformUnknownException) GoString() string {
14650	return s.String()
14651}
14652
14653func newErrorPlatformUnknownException(v protocol.ResponseMetadata) error {
14654	return &PlatformUnknownException{
14655		RespMetadata: v,
14656	}
14657}
14658
14659// Code returns the exception type name.
14660func (s *PlatformUnknownException) Code() string {
14661	return "PlatformUnknownException"
14662}
14663
14664// Message returns the exception's message.
14665func (s *PlatformUnknownException) Message() string {
14666	if s.Message_ != nil {
14667		return *s.Message_
14668	}
14669	return ""
14670}
14671
14672// OrigErr always returns nil, satisfies awserr.Error interface.
14673func (s *PlatformUnknownException) OrigErr() error {
14674	return nil
14675}
14676
14677func (s *PlatformUnknownException) Error() string {
14678	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14679}
14680
14681// Status code returns the HTTP status code for the request's response error.
14682func (s *PlatformUnknownException) StatusCode() int {
14683	return s.RespMetadata.StatusCode
14684}
14685
14686// RequestID returns the service's response RequestID for request.
14687func (s *PlatformUnknownException) RequestID() string {
14688	return s.RespMetadata.RequestID
14689}
14690
14691// Port mappings allow containers to access ports on the host container instance
14692// to send or receive traffic. Port mappings are specified as part of the container
14693// definition.
14694//
14695// If you are using containers in a task with the awsvpc or host network mode,
14696// exposed ports should be specified using containerPort. The hostPort can be
14697// left blank or it must be the same value as the containerPort.
14698//
14699// After a task reaches the RUNNING status, manual and automatic host and container
14700// port assignments are visible in the networkBindings section of DescribeTasks
14701// API responses.
14702type PortMapping struct {
14703	_ struct{} `type:"structure"`
14704
14705	// The port number on the container that is bound to the user-specified or automatically
14706	// assigned host port.
14707	//
14708	// If you are using containers in a task with the awsvpc or host network mode,
14709	// exposed ports should be specified using containerPort.
14710	//
14711	// If you are using containers in a task with the bridge network mode and you
14712	// specify a container port and not a host port, your container automatically
14713	// receives a host port in the ephemeral port range. For more information, see
14714	// hostPort. Port mappings that are automatically assigned in this way do not
14715	// count toward the 100 reserved ports limit of a container instance.
14716	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14717
14718	// The port number on the container instance to reserve for your container.
14719	//
14720	// If you are using containers in a task with the awsvpc or host network mode,
14721	// the hostPort can either be left blank or set to the same value as the containerPort.
14722	//
14723	// If you are using containers in a task with the bridge network mode, you can
14724	// specify a non-reserved host port for your container port mapping, or you
14725	// can omit the hostPort (or set it to 0) while specifying a containerPort and
14726	// your container automatically receives a port in the ephemeral port range
14727	// for your container instance operating system and Docker version.
14728	//
14729	// The default ephemeral port range for Docker version 1.6.0 and later is listed
14730	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
14731	// parameter is unavailable, the default ephemeral port range from 49153 through
14732	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
14733	// range as these are reserved for automatic assignment. In general, ports below
14734	// 32768 are outside of the ephemeral port range.
14735	//
14736	// The default ephemeral port range from 49153 through 65535 is always used
14737	// for Docker versions before 1.6.0.
14738	//
14739	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
14740	// and the Amazon ECS container agent ports 51678-51680. Any host port that
14741	// was previously specified in a running task is also reserved while the task
14742	// is running (after a task stops, the host port is released). The current reserved
14743	// ports are displayed in the remainingResources of DescribeContainerInstances
14744	// output. A container instance can have up to 100 reserved ports at a time,
14745	// including the default reserved ports. Automatically assigned ports don't
14746	// count toward the 100 reserved ports limit.
14747	HostPort *int64 `locationName:"hostPort" type:"integer"`
14748
14749	// The protocol used for the port mapping. Valid values are tcp and udp. The
14750	// default is tcp.
14751	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
14752}
14753
14754// String returns the string representation
14755func (s PortMapping) String() string {
14756	return awsutil.Prettify(s)
14757}
14758
14759// GoString returns the string representation
14760func (s PortMapping) GoString() string {
14761	return s.String()
14762}
14763
14764// SetContainerPort sets the ContainerPort field's value.
14765func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
14766	s.ContainerPort = &v
14767	return s
14768}
14769
14770// SetHostPort sets the HostPort field's value.
14771func (s *PortMapping) SetHostPort(v int64) *PortMapping {
14772	s.HostPort = &v
14773	return s
14774}
14775
14776// SetProtocol sets the Protocol field's value.
14777func (s *PortMapping) SetProtocol(v string) *PortMapping {
14778	s.Protocol = &v
14779	return s
14780}
14781
14782// The configuration details for the App Mesh proxy.
14783//
14784// For tasks using the EC2 launch type, the container instances require at least
14785// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
14786// ecs-init package to enable a proxy configuration. If your container instances
14787// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
14788// then they contain the required versions of the container agent and ecs-init.
14789// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
14790type ProxyConfiguration struct {
14791	_ struct{} `type:"structure"`
14792
14793	// The name of the container that will serve as the App Mesh proxy.
14794	//
14795	// ContainerName is a required field
14796	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
14797
14798	// The set of network configuration parameters to provide the Container Network
14799	// Interface (CNI) plugin, specified as key-value pairs.
14800	//
14801	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
14802	//    defined by the user parameter in a container definition. This is used
14803	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
14804	//    this field can be empty.
14805	//
14806	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
14807	//    defined by the user parameter in a container definition. This is used
14808	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
14809	//    this field can be empty.
14810	//
14811	//    * AppPorts - (Required) The list of ports that the application uses. Network
14812	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
14813	//
14814	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
14815	//    to the AppPorts is directed to.
14816	//
14817	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
14818	//    from the AppPorts is directed to.
14819	//
14820	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
14821	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
14822	//    an empty list.
14823	//
14824	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
14825	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
14826	//    can be an empty list.
14827	Properties []*KeyValuePair `locationName:"properties" type:"list"`
14828
14829	// The proxy type. The only supported value is APPMESH.
14830	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
14831}
14832
14833// String returns the string representation
14834func (s ProxyConfiguration) String() string {
14835	return awsutil.Prettify(s)
14836}
14837
14838// GoString returns the string representation
14839func (s ProxyConfiguration) GoString() string {
14840	return s.String()
14841}
14842
14843// Validate inspects the fields of the type to determine if they are valid.
14844func (s *ProxyConfiguration) Validate() error {
14845	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
14846	if s.ContainerName == nil {
14847		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
14848	}
14849
14850	if invalidParams.Len() > 0 {
14851		return invalidParams
14852	}
14853	return nil
14854}
14855
14856// SetContainerName sets the ContainerName field's value.
14857func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
14858	s.ContainerName = &v
14859	return s
14860}
14861
14862// SetProperties sets the Properties field's value.
14863func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
14864	s.Properties = v
14865	return s
14866}
14867
14868// SetType sets the Type field's value.
14869func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
14870	s.Type = &v
14871	return s
14872}
14873
14874type PutAccountSettingDefaultInput struct {
14875	_ struct{} `type:"structure"`
14876
14877	// The resource name for which to modify the account setting. If serviceLongArnFormat
14878	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
14879	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
14880	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
14881	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
14882	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
14883	// is specified, the default setting for CloudWatch Container Insights for your
14884	// clusters is affected.
14885	//
14886	// Name is a required field
14887	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14888
14889	// The account setting value for the specified principal ARN. Accepted values
14890	// are enabled and disabled.
14891	//
14892	// Value is a required field
14893	Value *string `locationName:"value" type:"string" required:"true"`
14894}
14895
14896// String returns the string representation
14897func (s PutAccountSettingDefaultInput) String() string {
14898	return awsutil.Prettify(s)
14899}
14900
14901// GoString returns the string representation
14902func (s PutAccountSettingDefaultInput) GoString() string {
14903	return s.String()
14904}
14905
14906// Validate inspects the fields of the type to determine if they are valid.
14907func (s *PutAccountSettingDefaultInput) Validate() error {
14908	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
14909	if s.Name == nil {
14910		invalidParams.Add(request.NewErrParamRequired("Name"))
14911	}
14912	if s.Value == nil {
14913		invalidParams.Add(request.NewErrParamRequired("Value"))
14914	}
14915
14916	if invalidParams.Len() > 0 {
14917		return invalidParams
14918	}
14919	return nil
14920}
14921
14922// SetName sets the Name field's value.
14923func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
14924	s.Name = &v
14925	return s
14926}
14927
14928// SetValue sets the Value field's value.
14929func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
14930	s.Value = &v
14931	return s
14932}
14933
14934type PutAccountSettingDefaultOutput struct {
14935	_ struct{} `type:"structure"`
14936
14937	// The current account setting for a resource.
14938	Setting *Setting `locationName:"setting" type:"structure"`
14939}
14940
14941// String returns the string representation
14942func (s PutAccountSettingDefaultOutput) String() string {
14943	return awsutil.Prettify(s)
14944}
14945
14946// GoString returns the string representation
14947func (s PutAccountSettingDefaultOutput) GoString() string {
14948	return s.String()
14949}
14950
14951// SetSetting sets the Setting field's value.
14952func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
14953	s.Setting = v
14954	return s
14955}
14956
14957type PutAccountSettingInput struct {
14958	_ struct{} `type:"structure"`
14959
14960	// The Amazon ECS resource name for which to modify the account setting. If
14961	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
14962	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
14963	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
14964	// the ARN and resource ID for your Amazon ECS container instances is affected.
14965	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
14966	// for your Amazon ECS container instances is affected. If containerInsights
14967	// is specified, the default setting for CloudWatch Container Insights for your
14968	// clusters is affected.
14969	//
14970	// Name is a required field
14971	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14972
14973	// The ARN of the principal, which can be an IAM user, IAM role, or the root
14974	// user. If you specify the root user, it modifies the account setting for all
14975	// IAM users, IAM roles, and the root user of the account unless an IAM user
14976	// or role explicitly overrides these settings. If this field is omitted, the
14977	// setting is changed only for the authenticated user.
14978	PrincipalArn *string `locationName:"principalArn" type:"string"`
14979
14980	// The account setting value for the specified principal ARN. Accepted values
14981	// are enabled and disabled.
14982	//
14983	// Value is a required field
14984	Value *string `locationName:"value" type:"string" required:"true"`
14985}
14986
14987// String returns the string representation
14988func (s PutAccountSettingInput) String() string {
14989	return awsutil.Prettify(s)
14990}
14991
14992// GoString returns the string representation
14993func (s PutAccountSettingInput) GoString() string {
14994	return s.String()
14995}
14996
14997// Validate inspects the fields of the type to determine if they are valid.
14998func (s *PutAccountSettingInput) Validate() error {
14999	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
15000	if s.Name == nil {
15001		invalidParams.Add(request.NewErrParamRequired("Name"))
15002	}
15003	if s.Value == nil {
15004		invalidParams.Add(request.NewErrParamRequired("Value"))
15005	}
15006
15007	if invalidParams.Len() > 0 {
15008		return invalidParams
15009	}
15010	return nil
15011}
15012
15013// SetName sets the Name field's value.
15014func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
15015	s.Name = &v
15016	return s
15017}
15018
15019// SetPrincipalArn sets the PrincipalArn field's value.
15020func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
15021	s.PrincipalArn = &v
15022	return s
15023}
15024
15025// SetValue sets the Value field's value.
15026func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
15027	s.Value = &v
15028	return s
15029}
15030
15031type PutAccountSettingOutput struct {
15032	_ struct{} `type:"structure"`
15033
15034	// The current account setting for a resource.
15035	Setting *Setting `locationName:"setting" type:"structure"`
15036}
15037
15038// String returns the string representation
15039func (s PutAccountSettingOutput) String() string {
15040	return awsutil.Prettify(s)
15041}
15042
15043// GoString returns the string representation
15044func (s PutAccountSettingOutput) GoString() string {
15045	return s.String()
15046}
15047
15048// SetSetting sets the Setting field's value.
15049func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
15050	s.Setting = v
15051	return s
15052}
15053
15054type PutAttributesInput struct {
15055	_ struct{} `type:"structure"`
15056
15057	// The attributes to apply to your resource. You can specify up to 10 custom
15058	// attributes per resource. You can specify up to 10 attributes in a single
15059	// call.
15060	//
15061	// Attributes is a required field
15062	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
15063
15064	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
15065	// the resource to apply attributes. If you do not specify a cluster, the default
15066	// cluster is assumed.
15067	Cluster *string `locationName:"cluster" type:"string"`
15068}
15069
15070// String returns the string representation
15071func (s PutAttributesInput) String() string {
15072	return awsutil.Prettify(s)
15073}
15074
15075// GoString returns the string representation
15076func (s PutAttributesInput) GoString() string {
15077	return s.String()
15078}
15079
15080// Validate inspects the fields of the type to determine if they are valid.
15081func (s *PutAttributesInput) Validate() error {
15082	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
15083	if s.Attributes == nil {
15084		invalidParams.Add(request.NewErrParamRequired("Attributes"))
15085	}
15086	if s.Attributes != nil {
15087		for i, v := range s.Attributes {
15088			if v == nil {
15089				continue
15090			}
15091			if err := v.Validate(); err != nil {
15092				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
15093			}
15094		}
15095	}
15096
15097	if invalidParams.Len() > 0 {
15098		return invalidParams
15099	}
15100	return nil
15101}
15102
15103// SetAttributes sets the Attributes field's value.
15104func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
15105	s.Attributes = v
15106	return s
15107}
15108
15109// SetCluster sets the Cluster field's value.
15110func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
15111	s.Cluster = &v
15112	return s
15113}
15114
15115type PutAttributesOutput struct {
15116	_ struct{} `type:"structure"`
15117
15118	// The attributes applied to your resource.
15119	Attributes []*Attribute `locationName:"attributes" type:"list"`
15120}
15121
15122// String returns the string representation
15123func (s PutAttributesOutput) String() string {
15124	return awsutil.Prettify(s)
15125}
15126
15127// GoString returns the string representation
15128func (s PutAttributesOutput) GoString() string {
15129	return s.String()
15130}
15131
15132// SetAttributes sets the Attributes field's value.
15133func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
15134	s.Attributes = v
15135	return s
15136}
15137
15138type PutClusterCapacityProvidersInput struct {
15139	_ struct{} `type:"structure"`
15140
15141	// The name of one or more capacity providers to associate with the cluster.
15142	//
15143	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
15144	// provider must already be created. New capacity providers can be created with
15145	// the CreateCapacityProvider API operation.
15146	//
15147	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
15148	// capacity providers. The AWS Fargate capacity providers are available to all
15149	// accounts and only need to be associated with a cluster to be used.
15150	//
15151	// CapacityProviders is a required field
15152	CapacityProviders []*string `locationName:"capacityProviders" type:"list" required:"true"`
15153
15154	// The short name or full Amazon Resource Name (ARN) of the cluster to modify
15155	// the capacity provider settings for. If you do not specify a cluster, the
15156	// default cluster is assumed.
15157	//
15158	// Cluster is a required field
15159	Cluster *string `locationName:"cluster" type:"string" required:"true"`
15160
15161	// The capacity provider strategy to use by default for the cluster.
15162	//
15163	// When creating a service or running a task on a cluster, if no capacity provider
15164	// or launch type is specified then the default capacity provider strategy for
15165	// the cluster is used.
15166	//
15167	// A capacity provider strategy consists of one or more capacity providers along
15168	// with the base and weight to assign to them. A capacity provider must be associated
15169	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
15170	// API is used to associate a capacity provider with a cluster. Only capacity
15171	// providers with an ACTIVE or UPDATING status can be used.
15172	//
15173	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
15174	// provider must already be created. New capacity providers can be created with
15175	// the CreateCapacityProvider API operation.
15176	//
15177	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
15178	// capacity providers. The AWS Fargate capacity providers are available to all
15179	// accounts and only need to be associated with a cluster to be used.
15180	//
15181	// DefaultCapacityProviderStrategy is a required field
15182	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"`
15183}
15184
15185// String returns the string representation
15186func (s PutClusterCapacityProvidersInput) String() string {
15187	return awsutil.Prettify(s)
15188}
15189
15190// GoString returns the string representation
15191func (s PutClusterCapacityProvidersInput) GoString() string {
15192	return s.String()
15193}
15194
15195// Validate inspects the fields of the type to determine if they are valid.
15196func (s *PutClusterCapacityProvidersInput) Validate() error {
15197	invalidParams := request.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"}
15198	if s.CapacityProviders == nil {
15199		invalidParams.Add(request.NewErrParamRequired("CapacityProviders"))
15200	}
15201	if s.Cluster == nil {
15202		invalidParams.Add(request.NewErrParamRequired("Cluster"))
15203	}
15204	if s.DefaultCapacityProviderStrategy == nil {
15205		invalidParams.Add(request.NewErrParamRequired("DefaultCapacityProviderStrategy"))
15206	}
15207	if s.DefaultCapacityProviderStrategy != nil {
15208		for i, v := range s.DefaultCapacityProviderStrategy {
15209			if v == nil {
15210				continue
15211			}
15212			if err := v.Validate(); err != nil {
15213				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
15214			}
15215		}
15216	}
15217
15218	if invalidParams.Len() > 0 {
15219		return invalidParams
15220	}
15221	return nil
15222}
15223
15224// SetCapacityProviders sets the CapacityProviders field's value.
15225func (s *PutClusterCapacityProvidersInput) SetCapacityProviders(v []*string) *PutClusterCapacityProvidersInput {
15226	s.CapacityProviders = v
15227	return s
15228}
15229
15230// SetCluster sets the Cluster field's value.
15231func (s *PutClusterCapacityProvidersInput) SetCluster(v string) *PutClusterCapacityProvidersInput {
15232	s.Cluster = &v
15233	return s
15234}
15235
15236// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
15237func (s *PutClusterCapacityProvidersInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *PutClusterCapacityProvidersInput {
15238	s.DefaultCapacityProviderStrategy = v
15239	return s
15240}
15241
15242type PutClusterCapacityProvidersOutput struct {
15243	_ struct{} `type:"structure"`
15244
15245	// A regional grouping of one or more container instances on which you can run
15246	// task requests. Each account receives a default cluster the first time you
15247	// use the Amazon ECS service, but you may also create other clusters. Clusters
15248	// may contain more than one instance type simultaneously.
15249	Cluster *Cluster `locationName:"cluster" type:"structure"`
15250}
15251
15252// String returns the string representation
15253func (s PutClusterCapacityProvidersOutput) String() string {
15254	return awsutil.Prettify(s)
15255}
15256
15257// GoString returns the string representation
15258func (s PutClusterCapacityProvidersOutput) GoString() string {
15259	return s.String()
15260}
15261
15262// SetCluster sets the Cluster field's value.
15263func (s *PutClusterCapacityProvidersOutput) SetCluster(v *Cluster) *PutClusterCapacityProvidersOutput {
15264	s.Cluster = v
15265	return s
15266}
15267
15268type RegisterContainerInstanceInput struct {
15269	_ struct{} `type:"structure"`
15270
15271	// The container instance attributes that this container instance supports.
15272	Attributes []*Attribute `locationName:"attributes" type:"list"`
15273
15274	// The short name or full Amazon Resource Name (ARN) of the cluster with which
15275	// to register your container instance. If you do not specify a cluster, the
15276	// default cluster is assumed.
15277	Cluster *string `locationName:"cluster" type:"string"`
15278
15279	// The ARN of the container instance (if it was previously registered).
15280	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
15281
15282	// The instance identity document for the EC2 instance to register. This document
15283	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
15284	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
15285
15286	// The instance identity document signature for the EC2 instance to register.
15287	// This signature can be found by running the following command from the instance:
15288	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
15289	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
15290
15291	// The devices that are available on the container instance. The only supported
15292	// device type is a GPU.
15293	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
15294
15295	// The metadata that you apply to the container instance to help you categorize
15296	// and organize them. Each tag consists of a key and an optional value, both
15297	// of which you define.
15298	//
15299	// The following basic restrictions apply to tags:
15300	//
15301	//    * Maximum number of tags per resource - 50
15302	//
15303	//    * For each resource, each tag key must be unique, and each tag key can
15304	//    have only one value.
15305	//
15306	//    * Maximum key length - 128 Unicode characters in UTF-8
15307	//
15308	//    * Maximum value length - 256 Unicode characters in UTF-8
15309	//
15310	//    * If your tagging schema is used across multiple services and resources,
15311	//    remember that other services may have restrictions on allowed characters.
15312	//    Generally allowed characters are: letters, numbers, and spaces representable
15313	//    in UTF-8, and the following characters: + - = . _ : / @.
15314	//
15315	//    * Tag keys and values are case-sensitive.
15316	//
15317	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15318	//    as a prefix for either keys or values as it is reserved for AWS use. You
15319	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15320	//    prefix do not count against your tags per resource limit.
15321	Tags []*Tag `locationName:"tags" type:"list"`
15322
15323	// The resources available on the instance.
15324	TotalResources []*Resource `locationName:"totalResources" type:"list"`
15325
15326	// The version information for the Amazon ECS container agent and Docker daemon
15327	// running on the container instance.
15328	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
15329}
15330
15331// String returns the string representation
15332func (s RegisterContainerInstanceInput) String() string {
15333	return awsutil.Prettify(s)
15334}
15335
15336// GoString returns the string representation
15337func (s RegisterContainerInstanceInput) GoString() string {
15338	return s.String()
15339}
15340
15341// Validate inspects the fields of the type to determine if they are valid.
15342func (s *RegisterContainerInstanceInput) Validate() error {
15343	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
15344	if s.Attributes != nil {
15345		for i, v := range s.Attributes {
15346			if v == nil {
15347				continue
15348			}
15349			if err := v.Validate(); err != nil {
15350				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
15351			}
15352		}
15353	}
15354	if s.PlatformDevices != nil {
15355		for i, v := range s.PlatformDevices {
15356			if v == nil {
15357				continue
15358			}
15359			if err := v.Validate(); err != nil {
15360				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
15361			}
15362		}
15363	}
15364	if s.Tags != nil {
15365		for i, v := range s.Tags {
15366			if v == nil {
15367				continue
15368			}
15369			if err := v.Validate(); err != nil {
15370				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15371			}
15372		}
15373	}
15374
15375	if invalidParams.Len() > 0 {
15376		return invalidParams
15377	}
15378	return nil
15379}
15380
15381// SetAttributes sets the Attributes field's value.
15382func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
15383	s.Attributes = v
15384	return s
15385}
15386
15387// SetCluster sets the Cluster field's value.
15388func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
15389	s.Cluster = &v
15390	return s
15391}
15392
15393// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
15394func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
15395	s.ContainerInstanceArn = &v
15396	return s
15397}
15398
15399// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
15400func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
15401	s.InstanceIdentityDocument = &v
15402	return s
15403}
15404
15405// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
15406func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
15407	s.InstanceIdentityDocumentSignature = &v
15408	return s
15409}
15410
15411// SetPlatformDevices sets the PlatformDevices field's value.
15412func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
15413	s.PlatformDevices = v
15414	return s
15415}
15416
15417// SetTags sets the Tags field's value.
15418func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
15419	s.Tags = v
15420	return s
15421}
15422
15423// SetTotalResources sets the TotalResources field's value.
15424func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
15425	s.TotalResources = v
15426	return s
15427}
15428
15429// SetVersionInfo sets the VersionInfo field's value.
15430func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
15431	s.VersionInfo = v
15432	return s
15433}
15434
15435type RegisterContainerInstanceOutput struct {
15436	_ struct{} `type:"structure"`
15437
15438	// The container instance that was registered.
15439	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
15440}
15441
15442// String returns the string representation
15443func (s RegisterContainerInstanceOutput) String() string {
15444	return awsutil.Prettify(s)
15445}
15446
15447// GoString returns the string representation
15448func (s RegisterContainerInstanceOutput) GoString() string {
15449	return s.String()
15450}
15451
15452// SetContainerInstance sets the ContainerInstance field's value.
15453func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
15454	s.ContainerInstance = v
15455	return s
15456}
15457
15458type RegisterTaskDefinitionInput struct {
15459	_ struct{} `type:"structure"`
15460
15461	// A list of container definitions in JSON format that describe the different
15462	// containers that make up your task.
15463	//
15464	// ContainerDefinitions is a required field
15465	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
15466
15467	// The number of CPU units used by the task. It can be expressed as an integer
15468	// using CPU units, for example 1024, or as a string using vCPUs, for example
15469	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
15470	// integer indicating the CPU units when the task definition is registered.
15471	//
15472	// Task-level CPU and memory parameters are ignored for Windows containers.
15473	// We recommend specifying container-level resources for Windows containers.
15474	//
15475	// If you are using the EC2 launch type, this field is optional. Supported values
15476	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
15477	//
15478	// If you are using the Fargate launch type, this field is required and you
15479	// must use one of the following values, which determines your range of supported
15480	// values for the memory parameter:
15481	//
15482	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
15483	//    2048 (2 GB)
15484	//
15485	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
15486	//    (3 GB), 4096 (4 GB)
15487	//
15488	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
15489	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
15490	//
15491	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
15492	//    (16 GB) in increments of 1024 (1 GB)
15493	//
15494	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
15495	//    (30 GB) in increments of 1024 (1 GB)
15496	Cpu *string `locationName:"cpu" type:"string"`
15497
15498	// The Amazon Resource Name (ARN) of the task execution role that grants the
15499	// Amazon ECS container agent permission to make AWS API calls on your behalf.
15500	// The task execution IAM role is required depending on the requirements of
15501	// 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)
15502	// in the Amazon Elastic Container Service Developer Guide.
15503	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
15504
15505	// You must specify a family for a task definition, which allows you to track
15506	// multiple versions of the same task definition. The family is used as a name
15507	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
15508	// and hyphens are allowed.
15509	//
15510	// Family is a required field
15511	Family *string `locationName:"family" type:"string" required:"true"`
15512
15513	// The Elastic Inference accelerators to use for the containers in the task.
15514	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
15515
15516	// The IPC resource namespace to use for the containers in the task. The valid
15517	// values are host, task, or none. If host is specified, then all containers
15518	// within the tasks that specified the host IPC mode on the same container instance
15519	// share the same IPC resources with the host Amazon EC2 instance. If task is
15520	// specified, all containers within the specified task share the same IPC resources.
15521	// If none is specified, then IPC resources within the containers of a task
15522	// are private and not shared with other containers in a task or on the container
15523	// instance. If no value is specified, then the IPC resource namespace sharing
15524	// depends on the Docker daemon setting on the container instance. For more
15525	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
15526	// in the Docker run reference.
15527	//
15528	// If the host IPC mode is used, be aware that there is a heightened risk of
15529	// undesired IPC namespace expose. For more information, see Docker security
15530	// (https://docs.docker.com/engine/security/security/).
15531	//
15532	// If you are setting namespaced kernel parameters using systemControls for
15533	// the containers in the task, the following will apply to your IPC resource
15534	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
15535	// in the Amazon Elastic Container Service Developer Guide.
15536	//
15537	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
15538	//    are not supported.
15539	//
15540	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
15541	//    will apply to all containers within a task.
15542	//
15543	// This parameter is not supported for Windows containers or tasks using the
15544	// Fargate launch type.
15545	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
15546
15547	// The amount of memory (in MiB) used by the task. It can be expressed as an
15548	// integer using MiB, for example 1024, or as a string using GB, for example
15549	// 1GB or 1 GB, in a task definition. String values are converted to an integer
15550	// indicating the MiB when the task definition is registered.
15551	//
15552	// Task-level CPU and memory parameters are ignored for Windows containers.
15553	// We recommend specifying container-level resources for Windows containers.
15554	//
15555	// If using the EC2 launch type, this field is optional.
15556	//
15557	// If using the Fargate launch type, this field is required and you must use
15558	// one of the following values, which determines your range of supported values
15559	// for the cpu parameter:
15560	//
15561	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
15562	//    vCPU)
15563	//
15564	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
15565	//    512 (.5 vCPU)
15566	//
15567	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
15568	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
15569	//
15570	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
15571	//    Available cpu values: 2048 (2 vCPU)
15572	//
15573	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
15574	//    Available cpu values: 4096 (4 vCPU)
15575	Memory *string `locationName:"memory" type:"string"`
15576
15577	// The Docker networking mode to use for the containers in the task. The valid
15578	// values are none, bridge, awsvpc, and host. If no network mode is specified,
15579	// the default is bridge.
15580	//
15581	// For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For
15582	// Amazon ECS tasks on Amazon EC2 instances, any network mode can be used. If
15583	// the network mode is set to none, you cannot specify port mappings in your
15584	// container definitions, and the tasks containers do not have external connectivity.
15585	// The host and awsvpc network modes offer the highest networking performance
15586	// for containers because they use the EC2 network stack instead of the virtualized
15587	// network stack provided by the bridge mode.
15588	//
15589	// With the host and awsvpc network modes, exposed container ports are mapped
15590	// directly to the corresponding host port (for the host network mode) or the
15591	// attached elastic network interface port (for the awsvpc network mode), so
15592	// you cannot take advantage of dynamic host port mappings.
15593	//
15594	// When using the host network mode, you should not run containers using the
15595	// root user (UID 0). It is considered best practice to use a non-root user.
15596	//
15597	// If the network mode is awsvpc, the task is allocated an elastic network interface,
15598	// and you must specify a NetworkConfiguration value when you create a service
15599	// or run a task with the task definition. For more information, see Task Networking
15600	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15601	// in the Amazon Elastic Container Service Developer Guide.
15602	//
15603	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
15604	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
15605	// mode.
15606	//
15607	// If the network mode is host, you cannot run multiple instantiations of the
15608	// same task on a single container instance when port mappings are used.
15609	//
15610	// Docker for Windows uses different network modes than Docker for Linux. When
15611	// you register a task definition with Windows containers, you must not specify
15612	// a network mode. If you use the console to register a task definition with
15613	// Windows containers, you must choose the <default> network mode object.
15614	//
15615	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
15616	// in the Docker run reference.
15617	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
15618
15619	// The process namespace to use for the containers in the task. The valid values
15620	// are host or task. If host is specified, then all containers within the tasks
15621	// that specified the host PID mode on the same container instance share the
15622	// same process namespace with the host Amazon EC2 instance. If task is specified,
15623	// all containers within the specified task share the same process namespace.
15624	// If no value is specified, the default is a private namespace. For more information,
15625	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
15626	// in the Docker run reference.
15627	//
15628	// If the host PID mode is used, be aware that there is a heightened risk of
15629	// undesired process namespace expose. For more information, see Docker security
15630	// (https://docs.docker.com/engine/security/security/).
15631	//
15632	// This parameter is not supported for Windows containers or tasks using the
15633	// Fargate launch type.
15634	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
15635
15636	// An array of placement constraint objects to use for the task. You can specify
15637	// a maximum of 10 constraints per task (this limit includes constraints in
15638	// the task definition and those specified at runtime).
15639	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
15640
15641	// The configuration details for the App Mesh proxy.
15642	//
15643	// For tasks using the EC2 launch type, the container instances require at least
15644	// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
15645	// ecs-init package to enable a proxy configuration. If your container instances
15646	// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
15647	// then they contain the required versions of the container agent and ecs-init.
15648	// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
15649	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
15650
15651	// The task launch type that Amazon ECS should validate the task definition
15652	// against. This ensures that the task definition parameters are compatible
15653	// with the specified launch type. If no value is specified, it defaults to
15654	// EC2.
15655	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
15656
15657	// The metadata that you apply to the task definition to help you categorize
15658	// and organize them. Each tag consists of a key and an optional value, both
15659	// of which you define.
15660	//
15661	// The following basic restrictions apply to tags:
15662	//
15663	//    * Maximum number of tags per resource - 50
15664	//
15665	//    * For each resource, each tag key must be unique, and each tag key can
15666	//    have only one value.
15667	//
15668	//    * Maximum key length - 128 Unicode characters in UTF-8
15669	//
15670	//    * Maximum value length - 256 Unicode characters in UTF-8
15671	//
15672	//    * If your tagging schema is used across multiple services and resources,
15673	//    remember that other services may have restrictions on allowed characters.
15674	//    Generally allowed characters are: letters, numbers, and spaces representable
15675	//    in UTF-8, and the following characters: + - = . _ : / @.
15676	//
15677	//    * Tag keys and values are case-sensitive.
15678	//
15679	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15680	//    as a prefix for either keys or values as it is reserved for AWS use. You
15681	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15682	//    prefix do not count against your tags per resource limit.
15683	Tags []*Tag `locationName:"tags" type:"list"`
15684
15685	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
15686	// in this task can assume. All containers in this task are granted the permissions
15687	// that are specified in this role. For more information, see IAM Roles for
15688	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
15689	// in the Amazon Elastic Container Service Developer Guide.
15690	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
15691
15692	// A list of volume definitions in JSON format that containers in your task
15693	// may use.
15694	Volumes []*Volume `locationName:"volumes" type:"list"`
15695}
15696
15697// String returns the string representation
15698func (s RegisterTaskDefinitionInput) String() string {
15699	return awsutil.Prettify(s)
15700}
15701
15702// GoString returns the string representation
15703func (s RegisterTaskDefinitionInput) GoString() string {
15704	return s.String()
15705}
15706
15707// Validate inspects the fields of the type to determine if they are valid.
15708func (s *RegisterTaskDefinitionInput) Validate() error {
15709	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
15710	if s.ContainerDefinitions == nil {
15711		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
15712	}
15713	if s.Family == nil {
15714		invalidParams.Add(request.NewErrParamRequired("Family"))
15715	}
15716	if s.ContainerDefinitions != nil {
15717		for i, v := range s.ContainerDefinitions {
15718			if v == nil {
15719				continue
15720			}
15721			if err := v.Validate(); err != nil {
15722				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
15723			}
15724		}
15725	}
15726	if s.InferenceAccelerators != nil {
15727		for i, v := range s.InferenceAccelerators {
15728			if v == nil {
15729				continue
15730			}
15731			if err := v.Validate(); err != nil {
15732				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
15733			}
15734		}
15735	}
15736	if s.ProxyConfiguration != nil {
15737		if err := s.ProxyConfiguration.Validate(); err != nil {
15738			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
15739		}
15740	}
15741	if s.Tags != nil {
15742		for i, v := range s.Tags {
15743			if v == nil {
15744				continue
15745			}
15746			if err := v.Validate(); err != nil {
15747				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15748			}
15749		}
15750	}
15751	if s.Volumes != nil {
15752		for i, v := range s.Volumes {
15753			if v == nil {
15754				continue
15755			}
15756			if err := v.Validate(); err != nil {
15757				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
15758			}
15759		}
15760	}
15761
15762	if invalidParams.Len() > 0 {
15763		return invalidParams
15764	}
15765	return nil
15766}
15767
15768// SetContainerDefinitions sets the ContainerDefinitions field's value.
15769func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
15770	s.ContainerDefinitions = v
15771	return s
15772}
15773
15774// SetCpu sets the Cpu field's value.
15775func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
15776	s.Cpu = &v
15777	return s
15778}
15779
15780// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
15781func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
15782	s.ExecutionRoleArn = &v
15783	return s
15784}
15785
15786// SetFamily sets the Family field's value.
15787func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
15788	s.Family = &v
15789	return s
15790}
15791
15792// SetInferenceAccelerators sets the InferenceAccelerators field's value.
15793func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
15794	s.InferenceAccelerators = v
15795	return s
15796}
15797
15798// SetIpcMode sets the IpcMode field's value.
15799func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
15800	s.IpcMode = &v
15801	return s
15802}
15803
15804// SetMemory sets the Memory field's value.
15805func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
15806	s.Memory = &v
15807	return s
15808}
15809
15810// SetNetworkMode sets the NetworkMode field's value.
15811func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
15812	s.NetworkMode = &v
15813	return s
15814}
15815
15816// SetPidMode sets the PidMode field's value.
15817func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
15818	s.PidMode = &v
15819	return s
15820}
15821
15822// SetPlacementConstraints sets the PlacementConstraints field's value.
15823func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
15824	s.PlacementConstraints = v
15825	return s
15826}
15827
15828// SetProxyConfiguration sets the ProxyConfiguration field's value.
15829func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
15830	s.ProxyConfiguration = v
15831	return s
15832}
15833
15834// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
15835func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
15836	s.RequiresCompatibilities = v
15837	return s
15838}
15839
15840// SetTags sets the Tags field's value.
15841func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
15842	s.Tags = v
15843	return s
15844}
15845
15846// SetTaskRoleArn sets the TaskRoleArn field's value.
15847func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
15848	s.TaskRoleArn = &v
15849	return s
15850}
15851
15852// SetVolumes sets the Volumes field's value.
15853func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
15854	s.Volumes = v
15855	return s
15856}
15857
15858type RegisterTaskDefinitionOutput struct {
15859	_ struct{} `type:"structure"`
15860
15861	// The list of tags associated with the task definition.
15862	Tags []*Tag `locationName:"tags" type:"list"`
15863
15864	// The full description of the registered task definition.
15865	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
15866}
15867
15868// String returns the string representation
15869func (s RegisterTaskDefinitionOutput) String() string {
15870	return awsutil.Prettify(s)
15871}
15872
15873// GoString returns the string representation
15874func (s RegisterTaskDefinitionOutput) GoString() string {
15875	return s.String()
15876}
15877
15878// SetTags sets the Tags field's value.
15879func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
15880	s.Tags = v
15881	return s
15882}
15883
15884// SetTaskDefinition sets the TaskDefinition field's value.
15885func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
15886	s.TaskDefinition = v
15887	return s
15888}
15889
15890// The repository credentials for private registry authentication.
15891type RepositoryCredentials struct {
15892	_ struct{} `type:"structure"`
15893
15894	// The Amazon Resource Name (ARN) of the secret containing the private repository
15895	// credentials.
15896	//
15897	// When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret
15898	// exists in the same Region as the task that you are launching then you can
15899	// use either the full ARN or the name of the secret. When you are using the
15900	// AWS Management Console, you must specify the full ARN of the secret.
15901	//
15902	// CredentialsParameter is a required field
15903	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
15904}
15905
15906// String returns the string representation
15907func (s RepositoryCredentials) String() string {
15908	return awsutil.Prettify(s)
15909}
15910
15911// GoString returns the string representation
15912func (s RepositoryCredentials) GoString() string {
15913	return s.String()
15914}
15915
15916// Validate inspects the fields of the type to determine if they are valid.
15917func (s *RepositoryCredentials) Validate() error {
15918	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
15919	if s.CredentialsParameter == nil {
15920		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
15921	}
15922
15923	if invalidParams.Len() > 0 {
15924		return invalidParams
15925	}
15926	return nil
15927}
15928
15929// SetCredentialsParameter sets the CredentialsParameter field's value.
15930func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
15931	s.CredentialsParameter = &v
15932	return s
15933}
15934
15935// Describes the resources available for a container instance.
15936type Resource struct {
15937	_ struct{} `type:"structure"`
15938
15939	// When the doubleValue type is set, the value of the resource must be a double
15940	// precision floating-point type.
15941	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
15942
15943	// When the integerValue type is set, the value of the resource must be an integer.
15944	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
15945
15946	// When the longValue type is set, the value of the resource must be an extended
15947	// precision floating-point type.
15948	LongValue *int64 `locationName:"longValue" type:"long"`
15949
15950	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
15951	// resource.
15952	Name *string `locationName:"name" type:"string"`
15953
15954	// When the stringSetValue type is set, the value of the resource must be a
15955	// string type.
15956	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
15957
15958	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
15959	Type *string `locationName:"type" type:"string"`
15960}
15961
15962// String returns the string representation
15963func (s Resource) String() string {
15964	return awsutil.Prettify(s)
15965}
15966
15967// GoString returns the string representation
15968func (s Resource) GoString() string {
15969	return s.String()
15970}
15971
15972// SetDoubleValue sets the DoubleValue field's value.
15973func (s *Resource) SetDoubleValue(v float64) *Resource {
15974	s.DoubleValue = &v
15975	return s
15976}
15977
15978// SetIntegerValue sets the IntegerValue field's value.
15979func (s *Resource) SetIntegerValue(v int64) *Resource {
15980	s.IntegerValue = &v
15981	return s
15982}
15983
15984// SetLongValue sets the LongValue field's value.
15985func (s *Resource) SetLongValue(v int64) *Resource {
15986	s.LongValue = &v
15987	return s
15988}
15989
15990// SetName sets the Name field's value.
15991func (s *Resource) SetName(v string) *Resource {
15992	s.Name = &v
15993	return s
15994}
15995
15996// SetStringSetValue sets the StringSetValue field's value.
15997func (s *Resource) SetStringSetValue(v []*string) *Resource {
15998	s.StringSetValue = v
15999	return s
16000}
16001
16002// SetType sets the Type field's value.
16003func (s *Resource) SetType(v string) *Resource {
16004	s.Type = &v
16005	return s
16006}
16007
16008// The specified resource is in-use and cannot be removed.
16009type ResourceInUseException struct {
16010	_            struct{}                  `type:"structure"`
16011	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16012
16013	Message_ *string `locationName:"message" type:"string"`
16014}
16015
16016// String returns the string representation
16017func (s ResourceInUseException) String() string {
16018	return awsutil.Prettify(s)
16019}
16020
16021// GoString returns the string representation
16022func (s ResourceInUseException) GoString() string {
16023	return s.String()
16024}
16025
16026func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
16027	return &ResourceInUseException{
16028		RespMetadata: v,
16029	}
16030}
16031
16032// Code returns the exception type name.
16033func (s *ResourceInUseException) Code() string {
16034	return "ResourceInUseException"
16035}
16036
16037// Message returns the exception's message.
16038func (s *ResourceInUseException) Message() string {
16039	if s.Message_ != nil {
16040		return *s.Message_
16041	}
16042	return ""
16043}
16044
16045// OrigErr always returns nil, satisfies awserr.Error interface.
16046func (s *ResourceInUseException) OrigErr() error {
16047	return nil
16048}
16049
16050func (s *ResourceInUseException) Error() string {
16051	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16052}
16053
16054// Status code returns the HTTP status code for the request's response error.
16055func (s *ResourceInUseException) StatusCode() int {
16056	return s.RespMetadata.StatusCode
16057}
16058
16059// RequestID returns the service's response RequestID for request.
16060func (s *ResourceInUseException) RequestID() string {
16061	return s.RespMetadata.RequestID
16062}
16063
16064// The specified resource could not be found.
16065type ResourceNotFoundException struct {
16066	_            struct{}                  `type:"structure"`
16067	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16068
16069	Message_ *string `locationName:"message" type:"string"`
16070}
16071
16072// String returns the string representation
16073func (s ResourceNotFoundException) String() string {
16074	return awsutil.Prettify(s)
16075}
16076
16077// GoString returns the string representation
16078func (s ResourceNotFoundException) GoString() string {
16079	return s.String()
16080}
16081
16082func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
16083	return &ResourceNotFoundException{
16084		RespMetadata: v,
16085	}
16086}
16087
16088// Code returns the exception type name.
16089func (s *ResourceNotFoundException) Code() string {
16090	return "ResourceNotFoundException"
16091}
16092
16093// Message returns the exception's message.
16094func (s *ResourceNotFoundException) Message() string {
16095	if s.Message_ != nil {
16096		return *s.Message_
16097	}
16098	return ""
16099}
16100
16101// OrigErr always returns nil, satisfies awserr.Error interface.
16102func (s *ResourceNotFoundException) OrigErr() error {
16103	return nil
16104}
16105
16106func (s *ResourceNotFoundException) Error() string {
16107	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16108}
16109
16110// Status code returns the HTTP status code for the request's response error.
16111func (s *ResourceNotFoundException) StatusCode() int {
16112	return s.RespMetadata.StatusCode
16113}
16114
16115// RequestID returns the service's response RequestID for request.
16116func (s *ResourceNotFoundException) RequestID() string {
16117	return s.RespMetadata.RequestID
16118}
16119
16120// The type and amount of a resource to assign to a container. The supported
16121// resource types are GPUs and Elastic Inference accelerators. For more information,
16122// see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
16123// or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
16124// in the Amazon Elastic Container Service Developer Guide
16125type ResourceRequirement struct {
16126	_ struct{} `type:"structure"`
16127
16128	// The type of resource to assign to a container. The supported values are GPU
16129	// or InferenceAccelerator.
16130	//
16131	// Type is a required field
16132	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
16133
16134	// The value for the specified resource type.
16135	//
16136	// If the GPU type is used, the value is the number of physical GPUs the Amazon
16137	// ECS container agent will reserve for the container. The number of GPUs reserved
16138	// for all containers in a task should not exceed the number of available GPUs
16139	// on the container instance the task is launched on.
16140	//
16141	// If the InferenceAccelerator type is used, the value should match the deviceName
16142	// for an InferenceAccelerator specified in a task definition.
16143	//
16144	// Value is a required field
16145	Value *string `locationName:"value" type:"string" required:"true"`
16146}
16147
16148// String returns the string representation
16149func (s ResourceRequirement) String() string {
16150	return awsutil.Prettify(s)
16151}
16152
16153// GoString returns the string representation
16154func (s ResourceRequirement) GoString() string {
16155	return s.String()
16156}
16157
16158// Validate inspects the fields of the type to determine if they are valid.
16159func (s *ResourceRequirement) Validate() error {
16160	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
16161	if s.Type == nil {
16162		invalidParams.Add(request.NewErrParamRequired("Type"))
16163	}
16164	if s.Value == nil {
16165		invalidParams.Add(request.NewErrParamRequired("Value"))
16166	}
16167
16168	if invalidParams.Len() > 0 {
16169		return invalidParams
16170	}
16171	return nil
16172}
16173
16174// SetType sets the Type field's value.
16175func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
16176	s.Type = &v
16177	return s
16178}
16179
16180// SetValue sets the Value field's value.
16181func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
16182	s.Value = &v
16183	return s
16184}
16185
16186type RunTaskInput struct {
16187	_ struct{} `type:"structure"`
16188
16189	// The capacity provider strategy to use for the task.
16190	//
16191	// A capacity provider strategy consists of one or more capacity providers along
16192	// with the base and weight to assign to them. A capacity provider must be associated
16193	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
16194	// API is used to associate a capacity provider with a cluster. Only capacity
16195	// providers with an ACTIVE or UPDATING status can be used.
16196	//
16197	// If a capacityProviderStrategy is specified, the launchType parameter must
16198	// be omitted. If no capacityProviderStrategy or launchType is specified, the
16199	// defaultCapacityProviderStrategy for the cluster is used.
16200	//
16201	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
16202	// provider must already be created. New capacity providers can be created with
16203	// the CreateCapacityProvider API operation.
16204	//
16205	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
16206	// capacity providers. The AWS Fargate capacity providers are available to all
16207	// accounts and only need to be associated with a cluster to be used.
16208	//
16209	// The PutClusterCapacityProviders API operation is used to update the list
16210	// of available capacity providers for a cluster after the cluster is created.
16211	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
16212
16213	// The short name or full Amazon Resource Name (ARN) of the cluster on which
16214	// to run your task. If you do not specify a cluster, the default cluster is
16215	// assumed.
16216	Cluster *string `locationName:"cluster" type:"string"`
16217
16218	// The number of instantiations of the specified task to place on your cluster.
16219	// You can specify up to 10 tasks per call.
16220	Count *int64 `locationName:"count" type:"integer"`
16221
16222	// Specifies whether to enable Amazon ECS managed tags for the task. For more
16223	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16224	// in the Amazon Elastic Container Service Developer Guide.
16225	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16226
16227	// The name of the task group to associate with the task. The default value
16228	// is the family name of the task definition (for example, family:my-family-name).
16229	Group *string `locationName:"group" type:"string"`
16230
16231	// The launch type on which to run your task. For more information, see Amazon
16232	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16233	// in the Amazon Elastic Container Service Developer Guide.
16234	//
16235	// If a launchType is specified, the capacityProviderStrategy parameter must
16236	// be omitted.
16237	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
16238
16239	// The network configuration for the task. This parameter is required for task
16240	// definitions that use the awsvpc network mode to receive their own elastic
16241	// network interface, and it is not supported for other network modes. For more
16242	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
16243	// in the Amazon Elastic Container Service Developer Guide.
16244	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16245
16246	// A list of container overrides in JSON format that specify the name of a container
16247	// in the specified task definition and the overrides it should receive. You
16248	// can override the default command for a container (that is specified in the
16249	// task definition or Docker image) with a command override. You can also override
16250	// existing environment variables (that are specified in the task definition
16251	// or Docker image) on a container or add new environment variables to it with
16252	// an environment override.
16253	//
16254	// A total of 8192 characters are allowed for overrides. This limit includes
16255	// the JSON formatting characters of the override structure.
16256	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
16257
16258	// An array of placement constraint objects to use for the task. You can specify
16259	// up to 10 constraints per task (including constraints in the task definition
16260	// and those specified at runtime).
16261	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
16262
16263	// The placement strategy objects to use for the task. You can specify a maximum
16264	// of five strategy rules per task.
16265	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
16266
16267	// The platform version the task should run. A platform version is only specified
16268	// for tasks using the Fargate launch type. If one is not specified, the LATEST
16269	// platform version is used by default. For more information, see AWS Fargate
16270	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16271	// in the Amazon Elastic Container Service Developer Guide.
16272	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16273
16274	// Specifies whether to propagate the tags from the task definition to the task.
16275	// If no value is specified, the tags are not propagated. Tags can only be propagated
16276	// to the task during task creation. To add tags to a task after task creation,
16277	// use the TagResource API action.
16278	//
16279	// An error will be received if you specify the SERVICE option when running
16280	// a task.
16281	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16282
16283	// The reference ID to use for the task.
16284	ReferenceId *string `locationName:"referenceId" type:"string"`
16285
16286	// An optional tag specified when a task is started. For example, if you automatically
16287	// trigger a task to run a batch process job, you could apply a unique identifier
16288	// for that job to your task with the startedBy parameter. You can then identify
16289	// which tasks belong to that job by filtering the results of a ListTasks call
16290	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
16291	// hyphens, and underscores are allowed.
16292	//
16293	// If a task is started by an Amazon ECS service, then the startedBy parameter
16294	// contains the deployment ID of the service that starts it.
16295	StartedBy *string `locationName:"startedBy" type:"string"`
16296
16297	// The metadata that you apply to the task to help you categorize and organize
16298	// them. Each tag consists of a key and an optional value, both of which you
16299	// define.
16300	//
16301	// The following basic restrictions apply to tags:
16302	//
16303	//    * Maximum number of tags per resource - 50
16304	//
16305	//    * For each resource, each tag key must be unique, and each tag key can
16306	//    have only one value.
16307	//
16308	//    * Maximum key length - 128 Unicode characters in UTF-8
16309	//
16310	//    * Maximum value length - 256 Unicode characters in UTF-8
16311	//
16312	//    * If your tagging schema is used across multiple services and resources,
16313	//    remember that other services may have restrictions on allowed characters.
16314	//    Generally allowed characters are: letters, numbers, and spaces representable
16315	//    in UTF-8, and the following characters: + - = . _ : / @.
16316	//
16317	//    * Tag keys and values are case-sensitive.
16318	//
16319	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16320	//    as a prefix for either keys or values as it is reserved for AWS use. You
16321	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16322	//    prefix do not count against your tags per resource limit.
16323	Tags []*Tag `locationName:"tags" type:"list"`
16324
16325	// The family and revision (family:revision) or full ARN of the task definition
16326	// to run. If a revision is not specified, the latest ACTIVE revision is used.
16327	//
16328	// TaskDefinition is a required field
16329	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
16330}
16331
16332// String returns the string representation
16333func (s RunTaskInput) String() string {
16334	return awsutil.Prettify(s)
16335}
16336
16337// GoString returns the string representation
16338func (s RunTaskInput) GoString() string {
16339	return s.String()
16340}
16341
16342// Validate inspects the fields of the type to determine if they are valid.
16343func (s *RunTaskInput) Validate() error {
16344	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
16345	if s.TaskDefinition == nil {
16346		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
16347	}
16348	if s.CapacityProviderStrategy != nil {
16349		for i, v := range s.CapacityProviderStrategy {
16350			if v == nil {
16351				continue
16352			}
16353			if err := v.Validate(); err != nil {
16354				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
16355			}
16356		}
16357	}
16358	if s.NetworkConfiguration != nil {
16359		if err := s.NetworkConfiguration.Validate(); err != nil {
16360			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
16361		}
16362	}
16363	if s.Overrides != nil {
16364		if err := s.Overrides.Validate(); err != nil {
16365			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
16366		}
16367	}
16368	if s.Tags != nil {
16369		for i, v := range s.Tags {
16370			if v == nil {
16371				continue
16372			}
16373			if err := v.Validate(); err != nil {
16374				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16375			}
16376		}
16377	}
16378
16379	if invalidParams.Len() > 0 {
16380		return invalidParams
16381	}
16382	return nil
16383}
16384
16385// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
16386func (s *RunTaskInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *RunTaskInput {
16387	s.CapacityProviderStrategy = v
16388	return s
16389}
16390
16391// SetCluster sets the Cluster field's value.
16392func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
16393	s.Cluster = &v
16394	return s
16395}
16396
16397// SetCount sets the Count field's value.
16398func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
16399	s.Count = &v
16400	return s
16401}
16402
16403// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16404func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
16405	s.EnableECSManagedTags = &v
16406	return s
16407}
16408
16409// SetGroup sets the Group field's value.
16410func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
16411	s.Group = &v
16412	return s
16413}
16414
16415// SetLaunchType sets the LaunchType field's value.
16416func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
16417	s.LaunchType = &v
16418	return s
16419}
16420
16421// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16422func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
16423	s.NetworkConfiguration = v
16424	return s
16425}
16426
16427// SetOverrides sets the Overrides field's value.
16428func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
16429	s.Overrides = v
16430	return s
16431}
16432
16433// SetPlacementConstraints sets the PlacementConstraints field's value.
16434func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
16435	s.PlacementConstraints = v
16436	return s
16437}
16438
16439// SetPlacementStrategy sets the PlacementStrategy field's value.
16440func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
16441	s.PlacementStrategy = v
16442	return s
16443}
16444
16445// SetPlatformVersion sets the PlatformVersion field's value.
16446func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
16447	s.PlatformVersion = &v
16448	return s
16449}
16450
16451// SetPropagateTags sets the PropagateTags field's value.
16452func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
16453	s.PropagateTags = &v
16454	return s
16455}
16456
16457// SetReferenceId sets the ReferenceId field's value.
16458func (s *RunTaskInput) SetReferenceId(v string) *RunTaskInput {
16459	s.ReferenceId = &v
16460	return s
16461}
16462
16463// SetStartedBy sets the StartedBy field's value.
16464func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
16465	s.StartedBy = &v
16466	return s
16467}
16468
16469// SetTags sets the Tags field's value.
16470func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
16471	s.Tags = v
16472	return s
16473}
16474
16475// SetTaskDefinition sets the TaskDefinition field's value.
16476func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
16477	s.TaskDefinition = &v
16478	return s
16479}
16480
16481type RunTaskOutput struct {
16482	_ struct{} `type:"structure"`
16483
16484	// Any failures associated with the call.
16485	Failures []*Failure `locationName:"failures" type:"list"`
16486
16487	// A full description of the tasks that were run. The tasks that were successfully
16488	// placed on your cluster are described here.
16489	Tasks []*Task `locationName:"tasks" type:"list"`
16490}
16491
16492// String returns the string representation
16493func (s RunTaskOutput) String() string {
16494	return awsutil.Prettify(s)
16495}
16496
16497// GoString returns the string representation
16498func (s RunTaskOutput) GoString() string {
16499	return s.String()
16500}
16501
16502// SetFailures sets the Failures field's value.
16503func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
16504	s.Failures = v
16505	return s
16506}
16507
16508// SetTasks sets the Tasks field's value.
16509func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
16510	s.Tasks = v
16511	return s
16512}
16513
16514// A floating-point percentage of the desired number of tasks to place and keep
16515// running in the task set.
16516type Scale struct {
16517	_ struct{} `type:"structure"`
16518
16519	// The unit of measure for the scale value.
16520	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
16521
16522	// The value, specified as a percent total of a service's desiredCount, to scale
16523	// the task set. Accepted values are numbers between 0 and 100.
16524	Value *float64 `locationName:"value" type:"double"`
16525}
16526
16527// String returns the string representation
16528func (s Scale) String() string {
16529	return awsutil.Prettify(s)
16530}
16531
16532// GoString returns the string representation
16533func (s Scale) GoString() string {
16534	return s.String()
16535}
16536
16537// SetUnit sets the Unit field's value.
16538func (s *Scale) SetUnit(v string) *Scale {
16539	s.Unit = &v
16540	return s
16541}
16542
16543// SetValue sets the Value field's value.
16544func (s *Scale) SetValue(v float64) *Scale {
16545	s.Value = &v
16546	return s
16547}
16548
16549// An object representing the secret to expose to your container. Secrets can
16550// be exposed to a container in the following ways:
16551//
16552//    * To inject sensitive data into your containers as environment variables,
16553//    use the secrets container definition parameter.
16554//
16555//    * To reference sensitive information in the log configuration of a container,
16556//    use the secretOptions container definition parameter.
16557//
16558// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
16559// in the Amazon Elastic Container Service Developer Guide.
16560type Secret struct {
16561	_ struct{} `type:"structure"`
16562
16563	// The name of the secret.
16564	//
16565	// Name is a required field
16566	Name *string `locationName:"name" type:"string" required:"true"`
16567
16568	// The secret to expose to the container. The supported values are either the
16569	// full ARN of the AWS Secrets Manager secret or the full ARN of the parameter
16570	// in the AWS Systems Manager Parameter Store.
16571	//
16572	// If the AWS Systems Manager Parameter Store parameter exists in the same Region
16573	// as the task you are launching, then you can use either the full ARN or name
16574	// of the parameter. If the parameter exists in a different Region, then the
16575	// full ARN must be specified.
16576	//
16577	// ValueFrom is a required field
16578	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
16579}
16580
16581// String returns the string representation
16582func (s Secret) String() string {
16583	return awsutil.Prettify(s)
16584}
16585
16586// GoString returns the string representation
16587func (s Secret) GoString() string {
16588	return s.String()
16589}
16590
16591// Validate inspects the fields of the type to determine if they are valid.
16592func (s *Secret) Validate() error {
16593	invalidParams := request.ErrInvalidParams{Context: "Secret"}
16594	if s.Name == nil {
16595		invalidParams.Add(request.NewErrParamRequired("Name"))
16596	}
16597	if s.ValueFrom == nil {
16598		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
16599	}
16600
16601	if invalidParams.Len() > 0 {
16602		return invalidParams
16603	}
16604	return nil
16605}
16606
16607// SetName sets the Name field's value.
16608func (s *Secret) SetName(v string) *Secret {
16609	s.Name = &v
16610	return s
16611}
16612
16613// SetValueFrom sets the ValueFrom field's value.
16614func (s *Secret) SetValueFrom(v string) *Secret {
16615	s.ValueFrom = &v
16616	return s
16617}
16618
16619// These errors are usually caused by a server issue.
16620type ServerException struct {
16621	_            struct{}                  `type:"structure"`
16622	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16623
16624	Message_ *string `locationName:"message" type:"string"`
16625}
16626
16627// String returns the string representation
16628func (s ServerException) String() string {
16629	return awsutil.Prettify(s)
16630}
16631
16632// GoString returns the string representation
16633func (s ServerException) GoString() string {
16634	return s.String()
16635}
16636
16637func newErrorServerException(v protocol.ResponseMetadata) error {
16638	return &ServerException{
16639		RespMetadata: v,
16640	}
16641}
16642
16643// Code returns the exception type name.
16644func (s *ServerException) Code() string {
16645	return "ServerException"
16646}
16647
16648// Message returns the exception's message.
16649func (s *ServerException) Message() string {
16650	if s.Message_ != nil {
16651		return *s.Message_
16652	}
16653	return ""
16654}
16655
16656// OrigErr always returns nil, satisfies awserr.Error interface.
16657func (s *ServerException) OrigErr() error {
16658	return nil
16659}
16660
16661func (s *ServerException) Error() string {
16662	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16663}
16664
16665// Status code returns the HTTP status code for the request's response error.
16666func (s *ServerException) StatusCode() int {
16667	return s.RespMetadata.StatusCode
16668}
16669
16670// RequestID returns the service's response RequestID for request.
16671func (s *ServerException) RequestID() string {
16672	return s.RespMetadata.RequestID
16673}
16674
16675// Details on a service within a cluster
16676type Service struct {
16677	_ struct{} `type:"structure"`
16678
16679	// The capacity provider strategy associated with the service.
16680	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
16681
16682	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
16683	ClusterArn *string `locationName:"clusterArn" type:"string"`
16684
16685	// The Unix timestamp for when the service was created.
16686	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16687
16688	// The principal that created the service.
16689	CreatedBy *string `locationName:"createdBy" type:"string"`
16690
16691	// Optional deployment parameters that control how many tasks run during the
16692	// deployment and the ordering of stopping and starting tasks.
16693	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
16694
16695	// The deployment controller type the service is using. When using the DescribeServices
16696	// API, this field is omitted if the service is using the ECS deployment controller
16697	// type.
16698	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
16699
16700	// The current state of deployments for the service.
16701	Deployments []*Deployment `locationName:"deployments" type:"list"`
16702
16703	// The desired number of instantiations of the task definition to keep running
16704	// on the service. This value is specified when the service is created with
16705	// CreateService, and it can be modified with UpdateService.
16706	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
16707
16708	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
16709	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16710	// in the Amazon Elastic Container Service Developer Guide.
16711	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16712
16713	// The event stream for your service. A maximum of 100 of the latest events
16714	// are displayed.
16715	Events []*ServiceEvent `locationName:"events" type:"list"`
16716
16717	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
16718	// unhealthy Elastic Load Balancing target health checks after a task has first
16719	// started.
16720	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
16721
16722	// The launch type on which your service is running. If no value is specified,
16723	// it will default to EC2. Valid values include EC2 and FARGATE. For more information,
16724	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16725	// in the Amazon Elastic Container Service Developer Guide.
16726	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
16727
16728	// A list of Elastic Load Balancing load balancer objects, containing the load
16729	// balancer name, the container name (as it appears in a container definition),
16730	// and the container port to access from the load balancer.
16731	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
16732
16733	// The VPC subnet and security group configuration for tasks that receive their
16734	// own elastic network interface by using the awsvpc networking mode.
16735	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16736
16737	// The number of tasks in the cluster that are in the PENDING state.
16738	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
16739
16740	// The placement constraints for the tasks in the service.
16741	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
16742
16743	// The placement strategy that determines how tasks for the service are placed.
16744	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
16745
16746	// The platform version on which to run your service. A platform version is
16747	// only specified for tasks using the Fargate launch type. If one is not specified,
16748	// the LATEST platform version is used by default. For more information, see
16749	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16750	// in the Amazon Elastic Container Service Developer Guide.
16751	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16752
16753	// Specifies whether to propagate the tags from the task definition or the service
16754	// to the task. If no value is specified, the tags are not propagated.
16755	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16756
16757	// The ARN of the IAM role associated with the service that allows the Amazon
16758	// ECS container agent to register container instances with an Elastic Load
16759	// Balancing load balancer.
16760	RoleArn *string `locationName:"roleArn" type:"string"`
16761
16762	// The number of tasks in the cluster that are in the RUNNING state.
16763	RunningCount *int64 `locationName:"runningCount" type:"integer"`
16764
16765	// The scheduling strategy to use for the service. For more information, see
16766	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
16767	//
16768	// There are two service scheduler strategies available:
16769	//
16770	//    * REPLICA-The replica scheduling strategy places and maintains the desired
16771	//    number of tasks across your cluster. By default, the service scheduler
16772	//    spreads tasks across Availability Zones. You can use task placement strategies
16773	//    and constraints to customize task placement decisions.
16774	//
16775	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
16776	//    active container instance that meets all of the task placement constraints
16777	//    that you specify in your cluster. The service scheduler also evaluates
16778	//    the task placement constraints for running tasks and will stop tasks that
16779	//    do not meet the placement constraints. Fargate tasks do not support the
16780	//    DAEMON scheduling strategy.
16781	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
16782
16783	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
16784	// followed by the Region of the service, the AWS account ID of the service
16785	// owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.
16786	ServiceArn *string `locationName:"serviceArn" type:"string"`
16787
16788	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
16789	// and hyphens are allowed. Service names must be unique within a cluster, but
16790	// you can have similarly named services in multiple clusters within a Region
16791	// or across multiple Regions.
16792	ServiceName *string `locationName:"serviceName" type:"string"`
16793
16794	// The details of the service discovery registries to assign to this service.
16795	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
16796	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
16797
16798	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
16799	Status *string `locationName:"status" type:"string"`
16800
16801	// The metadata that you apply to the service to help you categorize and organize
16802	// them. Each tag consists of a key and an optional value, both of which you
16803	// define.
16804	//
16805	// The following basic restrictions apply to tags:
16806	//
16807	//    * Maximum number of tags per resource - 50
16808	//
16809	//    * For each resource, each tag key must be unique, and each tag key can
16810	//    have only one value.
16811	//
16812	//    * Maximum key length - 128 Unicode characters in UTF-8
16813	//
16814	//    * Maximum value length - 256 Unicode characters in UTF-8
16815	//
16816	//    * If your tagging schema is used across multiple services and resources,
16817	//    remember that other services may have restrictions on allowed characters.
16818	//    Generally allowed characters are: letters, numbers, and spaces representable
16819	//    in UTF-8, and the following characters: + - = . _ : / @.
16820	//
16821	//    * Tag keys and values are case-sensitive.
16822	//
16823	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16824	//    as a prefix for either keys or values as it is reserved for AWS use. You
16825	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16826	//    prefix do not count against your tags per resource limit.
16827	Tags []*Tag `locationName:"tags" type:"list"`
16828
16829	// The task definition to use for tasks in the service. This value is specified
16830	// when the service is created with CreateService, and it can be modified with
16831	// UpdateService.
16832	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
16833
16834	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
16835	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
16836	// desired number of tasks, how many tasks are running, and whether the task
16837	// set serves production traffic.
16838	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
16839}
16840
16841// String returns the string representation
16842func (s Service) String() string {
16843	return awsutil.Prettify(s)
16844}
16845
16846// GoString returns the string representation
16847func (s Service) GoString() string {
16848	return s.String()
16849}
16850
16851// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
16852func (s *Service) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Service {
16853	s.CapacityProviderStrategy = v
16854	return s
16855}
16856
16857// SetClusterArn sets the ClusterArn field's value.
16858func (s *Service) SetClusterArn(v string) *Service {
16859	s.ClusterArn = &v
16860	return s
16861}
16862
16863// SetCreatedAt sets the CreatedAt field's value.
16864func (s *Service) SetCreatedAt(v time.Time) *Service {
16865	s.CreatedAt = &v
16866	return s
16867}
16868
16869// SetCreatedBy sets the CreatedBy field's value.
16870func (s *Service) SetCreatedBy(v string) *Service {
16871	s.CreatedBy = &v
16872	return s
16873}
16874
16875// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
16876func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
16877	s.DeploymentConfiguration = v
16878	return s
16879}
16880
16881// SetDeploymentController sets the DeploymentController field's value.
16882func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
16883	s.DeploymentController = v
16884	return s
16885}
16886
16887// SetDeployments sets the Deployments field's value.
16888func (s *Service) SetDeployments(v []*Deployment) *Service {
16889	s.Deployments = v
16890	return s
16891}
16892
16893// SetDesiredCount sets the DesiredCount field's value.
16894func (s *Service) SetDesiredCount(v int64) *Service {
16895	s.DesiredCount = &v
16896	return s
16897}
16898
16899// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16900func (s *Service) SetEnableECSManagedTags(v bool) *Service {
16901	s.EnableECSManagedTags = &v
16902	return s
16903}
16904
16905// SetEvents sets the Events field's value.
16906func (s *Service) SetEvents(v []*ServiceEvent) *Service {
16907	s.Events = v
16908	return s
16909}
16910
16911// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
16912func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
16913	s.HealthCheckGracePeriodSeconds = &v
16914	return s
16915}
16916
16917// SetLaunchType sets the LaunchType field's value.
16918func (s *Service) SetLaunchType(v string) *Service {
16919	s.LaunchType = &v
16920	return s
16921}
16922
16923// SetLoadBalancers sets the LoadBalancers field's value.
16924func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
16925	s.LoadBalancers = v
16926	return s
16927}
16928
16929// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16930func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
16931	s.NetworkConfiguration = v
16932	return s
16933}
16934
16935// SetPendingCount sets the PendingCount field's value.
16936func (s *Service) SetPendingCount(v int64) *Service {
16937	s.PendingCount = &v
16938	return s
16939}
16940
16941// SetPlacementConstraints sets the PlacementConstraints field's value.
16942func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
16943	s.PlacementConstraints = v
16944	return s
16945}
16946
16947// SetPlacementStrategy sets the PlacementStrategy field's value.
16948func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
16949	s.PlacementStrategy = v
16950	return s
16951}
16952
16953// SetPlatformVersion sets the PlatformVersion field's value.
16954func (s *Service) SetPlatformVersion(v string) *Service {
16955	s.PlatformVersion = &v
16956	return s
16957}
16958
16959// SetPropagateTags sets the PropagateTags field's value.
16960func (s *Service) SetPropagateTags(v string) *Service {
16961	s.PropagateTags = &v
16962	return s
16963}
16964
16965// SetRoleArn sets the RoleArn field's value.
16966func (s *Service) SetRoleArn(v string) *Service {
16967	s.RoleArn = &v
16968	return s
16969}
16970
16971// SetRunningCount sets the RunningCount field's value.
16972func (s *Service) SetRunningCount(v int64) *Service {
16973	s.RunningCount = &v
16974	return s
16975}
16976
16977// SetSchedulingStrategy sets the SchedulingStrategy field's value.
16978func (s *Service) SetSchedulingStrategy(v string) *Service {
16979	s.SchedulingStrategy = &v
16980	return s
16981}
16982
16983// SetServiceArn sets the ServiceArn field's value.
16984func (s *Service) SetServiceArn(v string) *Service {
16985	s.ServiceArn = &v
16986	return s
16987}
16988
16989// SetServiceName sets the ServiceName field's value.
16990func (s *Service) SetServiceName(v string) *Service {
16991	s.ServiceName = &v
16992	return s
16993}
16994
16995// SetServiceRegistries sets the ServiceRegistries field's value.
16996func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
16997	s.ServiceRegistries = v
16998	return s
16999}
17000
17001// SetStatus sets the Status field's value.
17002func (s *Service) SetStatus(v string) *Service {
17003	s.Status = &v
17004	return s
17005}
17006
17007// SetTags sets the Tags field's value.
17008func (s *Service) SetTags(v []*Tag) *Service {
17009	s.Tags = v
17010	return s
17011}
17012
17013// SetTaskDefinition sets the TaskDefinition field's value.
17014func (s *Service) SetTaskDefinition(v string) *Service {
17015	s.TaskDefinition = &v
17016	return s
17017}
17018
17019// SetTaskSets sets the TaskSets field's value.
17020func (s *Service) SetTaskSets(v []*TaskSet) *Service {
17021	s.TaskSets = v
17022	return s
17023}
17024
17025// Details on an event associated with a service.
17026type ServiceEvent struct {
17027	_ struct{} `type:"structure"`
17028
17029	// The Unix timestamp for when the event was triggered.
17030	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
17031
17032	// The ID string of the event.
17033	Id *string `locationName:"id" type:"string"`
17034
17035	// The event message.
17036	Message *string `locationName:"message" type:"string"`
17037}
17038
17039// String returns the string representation
17040func (s ServiceEvent) String() string {
17041	return awsutil.Prettify(s)
17042}
17043
17044// GoString returns the string representation
17045func (s ServiceEvent) GoString() string {
17046	return s.String()
17047}
17048
17049// SetCreatedAt sets the CreatedAt field's value.
17050func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
17051	s.CreatedAt = &v
17052	return s
17053}
17054
17055// SetId sets the Id field's value.
17056func (s *ServiceEvent) SetId(v string) *ServiceEvent {
17057	s.Id = &v
17058	return s
17059}
17060
17061// SetMessage sets the Message field's value.
17062func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
17063	s.Message = &v
17064	return s
17065}
17066
17067// The specified service is not active. You can't update a service that is inactive.
17068// If you have previously deleted a service, you can re-create it with CreateService.
17069type ServiceNotActiveException struct {
17070	_            struct{}                  `type:"structure"`
17071	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17072
17073	Message_ *string `locationName:"message" type:"string"`
17074}
17075
17076// String returns the string representation
17077func (s ServiceNotActiveException) String() string {
17078	return awsutil.Prettify(s)
17079}
17080
17081// GoString returns the string representation
17082func (s ServiceNotActiveException) GoString() string {
17083	return s.String()
17084}
17085
17086func newErrorServiceNotActiveException(v protocol.ResponseMetadata) error {
17087	return &ServiceNotActiveException{
17088		RespMetadata: v,
17089	}
17090}
17091
17092// Code returns the exception type name.
17093func (s *ServiceNotActiveException) Code() string {
17094	return "ServiceNotActiveException"
17095}
17096
17097// Message returns the exception's message.
17098func (s *ServiceNotActiveException) Message() string {
17099	if s.Message_ != nil {
17100		return *s.Message_
17101	}
17102	return ""
17103}
17104
17105// OrigErr always returns nil, satisfies awserr.Error interface.
17106func (s *ServiceNotActiveException) OrigErr() error {
17107	return nil
17108}
17109
17110func (s *ServiceNotActiveException) Error() string {
17111	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17112}
17113
17114// Status code returns the HTTP status code for the request's response error.
17115func (s *ServiceNotActiveException) StatusCode() int {
17116	return s.RespMetadata.StatusCode
17117}
17118
17119// RequestID returns the service's response RequestID for request.
17120func (s *ServiceNotActiveException) RequestID() string {
17121	return s.RespMetadata.RequestID
17122}
17123
17124// The specified service could not be found. You can view your available services
17125// with ListServices. Amazon ECS services are cluster-specific and Region-specific.
17126type ServiceNotFoundException struct {
17127	_            struct{}                  `type:"structure"`
17128	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17129
17130	Message_ *string `locationName:"message" type:"string"`
17131}
17132
17133// String returns the string representation
17134func (s ServiceNotFoundException) String() string {
17135	return awsutil.Prettify(s)
17136}
17137
17138// GoString returns the string representation
17139func (s ServiceNotFoundException) GoString() string {
17140	return s.String()
17141}
17142
17143func newErrorServiceNotFoundException(v protocol.ResponseMetadata) error {
17144	return &ServiceNotFoundException{
17145		RespMetadata: v,
17146	}
17147}
17148
17149// Code returns the exception type name.
17150func (s *ServiceNotFoundException) Code() string {
17151	return "ServiceNotFoundException"
17152}
17153
17154// Message returns the exception's message.
17155func (s *ServiceNotFoundException) Message() string {
17156	if s.Message_ != nil {
17157		return *s.Message_
17158	}
17159	return ""
17160}
17161
17162// OrigErr always returns nil, satisfies awserr.Error interface.
17163func (s *ServiceNotFoundException) OrigErr() error {
17164	return nil
17165}
17166
17167func (s *ServiceNotFoundException) Error() string {
17168	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17169}
17170
17171// Status code returns the HTTP status code for the request's response error.
17172func (s *ServiceNotFoundException) StatusCode() int {
17173	return s.RespMetadata.StatusCode
17174}
17175
17176// RequestID returns the service's response RequestID for request.
17177func (s *ServiceNotFoundException) RequestID() string {
17178	return s.RespMetadata.RequestID
17179}
17180
17181// Details of the service registry.
17182type ServiceRegistry struct {
17183	_ struct{} `type:"structure"`
17184
17185	// The container name value, already specified in the task definition, to be
17186	// used for your service discovery service. If the task definition that your
17187	// service task specifies uses the bridge or host network mode, you must specify
17188	// a containerName and containerPort combination from the task definition. If
17189	// the task definition that your service task specifies uses the awsvpc network
17190	// mode and a type SRV DNS record is used, you must specify either a containerName
17191	// and containerPort combination or a port value, but not both.
17192	ContainerName *string `locationName:"containerName" type:"string"`
17193
17194	// The port value, already specified in the task definition, to be used for
17195	// your service discovery service. If the task definition your service task
17196	// specifies uses the bridge or host network mode, you must specify a containerName
17197	// and containerPort combination from the task definition. If the task definition
17198	// your service task specifies uses the awsvpc network mode and a type SRV DNS
17199	// record is used, you must specify either a containerName and containerPort
17200	// combination or a port value, but not both.
17201	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
17202
17203	// The port value used if your service discovery service specified an SRV record.
17204	// This field may be used if both the awsvpc network mode and SRV records are
17205	// used.
17206	Port *int64 `locationName:"port" type:"integer"`
17207
17208	// The Amazon Resource Name (ARN) of the service registry. The currently supported
17209	// service registry is AWS Cloud Map. For more information, see CreateService
17210	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
17211	RegistryArn *string `locationName:"registryArn" type:"string"`
17212}
17213
17214// String returns the string representation
17215func (s ServiceRegistry) String() string {
17216	return awsutil.Prettify(s)
17217}
17218
17219// GoString returns the string representation
17220func (s ServiceRegistry) GoString() string {
17221	return s.String()
17222}
17223
17224// SetContainerName sets the ContainerName field's value.
17225func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
17226	s.ContainerName = &v
17227	return s
17228}
17229
17230// SetContainerPort sets the ContainerPort field's value.
17231func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
17232	s.ContainerPort = &v
17233	return s
17234}
17235
17236// SetPort sets the Port field's value.
17237func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
17238	s.Port = &v
17239	return s
17240}
17241
17242// SetRegistryArn sets the RegistryArn field's value.
17243func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
17244	s.RegistryArn = &v
17245	return s
17246}
17247
17248// The current account setting for a resource.
17249type Setting struct {
17250	_ struct{} `type:"structure"`
17251
17252	// The Amazon ECS resource name.
17253	Name *string `locationName:"name" type:"string" enum:"SettingName"`
17254
17255	// The ARN of the principal, which can be an IAM user, IAM role, or the root
17256	// user. If this field is omitted, the authenticated user is assumed.
17257	PrincipalArn *string `locationName:"principalArn" type:"string"`
17258
17259	// Whether the account setting is enabled or disabled for the specified resource.
17260	Value *string `locationName:"value" type:"string"`
17261}
17262
17263// String returns the string representation
17264func (s Setting) String() string {
17265	return awsutil.Prettify(s)
17266}
17267
17268// GoString returns the string representation
17269func (s Setting) GoString() string {
17270	return s.String()
17271}
17272
17273// SetName sets the Name field's value.
17274func (s *Setting) SetName(v string) *Setting {
17275	s.Name = &v
17276	return s
17277}
17278
17279// SetPrincipalArn sets the PrincipalArn field's value.
17280func (s *Setting) SetPrincipalArn(v string) *Setting {
17281	s.PrincipalArn = &v
17282	return s
17283}
17284
17285// SetValue sets the Value field's value.
17286func (s *Setting) SetValue(v string) *Setting {
17287	s.Value = &v
17288	return s
17289}
17290
17291type StartTaskInput struct {
17292	_ struct{} `type:"structure"`
17293
17294	// The short name or full Amazon Resource Name (ARN) of the cluster on which
17295	// to start your task. If you do not specify a cluster, the default cluster
17296	// is assumed.
17297	Cluster *string `locationName:"cluster" type:"string"`
17298
17299	// The container instance IDs or full ARN entries for the container instances
17300	// on which you would like to place your task. You can specify up to 10 container
17301	// instances.
17302	//
17303	// ContainerInstances is a required field
17304	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
17305
17306	// Specifies whether to enable Amazon ECS managed tags for the task. For more
17307	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
17308	// in the Amazon Elastic Container Service Developer Guide.
17309	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
17310
17311	// The name of the task group to associate with the task. The default value
17312	// is the family name of the task definition (for example, family:my-family-name).
17313	Group *string `locationName:"group" type:"string"`
17314
17315	// The VPC subnet and security group configuration for tasks that receive their
17316	// own elastic network interface by using the awsvpc networking mode.
17317	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
17318
17319	// A list of container overrides in JSON format that specify the name of a container
17320	// in the specified task definition and the overrides it should receive. You
17321	// can override the default command for a container (that is specified in the
17322	// task definition or Docker image) with a command override. You can also override
17323	// existing environment variables (that are specified in the task definition
17324	// or Docker image) on a container or add new environment variables to it with
17325	// an environment override.
17326	//
17327	// A total of 8192 characters are allowed for overrides. This limit includes
17328	// the JSON formatting characters of the override structure.
17329	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
17330
17331	// Specifies whether to propagate the tags from the task definition or the service
17332	// to the task. If no value is specified, the tags are not propagated.
17333	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
17334
17335	// The reference ID to use for the task.
17336	ReferenceId *string `locationName:"referenceId" type:"string"`
17337
17338	// An optional tag specified when a task is started. For example, if you automatically
17339	// trigger a task to run a batch process job, you could apply a unique identifier
17340	// for that job to your task with the startedBy parameter. You can then identify
17341	// which tasks belong to that job by filtering the results of a ListTasks call
17342	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
17343	// hyphens, and underscores are allowed.
17344	//
17345	// If a task is started by an Amazon ECS service, then the startedBy parameter
17346	// contains the deployment ID of the service that starts it.
17347	StartedBy *string `locationName:"startedBy" type:"string"`
17348
17349	// The metadata that you apply to the task to help you categorize and organize
17350	// them. Each tag consists of a key and an optional value, both of which you
17351	// define.
17352	//
17353	// The following basic restrictions apply to tags:
17354	//
17355	//    * Maximum number of tags per resource - 50
17356	//
17357	//    * For each resource, each tag key must be unique, and each tag key can
17358	//    have only one value.
17359	//
17360	//    * Maximum key length - 128 Unicode characters in UTF-8
17361	//
17362	//    * Maximum value length - 256 Unicode characters in UTF-8
17363	//
17364	//    * If your tagging schema is used across multiple services and resources,
17365	//    remember that other services may have restrictions on allowed characters.
17366	//    Generally allowed characters are: letters, numbers, and spaces representable
17367	//    in UTF-8, and the following characters: + - = . _ : / @.
17368	//
17369	//    * Tag keys and values are case-sensitive.
17370	//
17371	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17372	//    as a prefix for either keys or values as it is reserved for AWS use. You
17373	//    cannot edit or delete tag keys or values with this prefix. Tags with this
17374	//    prefix do not count against your tags per resource limit.
17375	Tags []*Tag `locationName:"tags" type:"list"`
17376
17377	// The family and revision (family:revision) or full ARN of the task definition
17378	// to start. If a revision is not specified, the latest ACTIVE revision is used.
17379	//
17380	// TaskDefinition is a required field
17381	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
17382}
17383
17384// String returns the string representation
17385func (s StartTaskInput) String() string {
17386	return awsutil.Prettify(s)
17387}
17388
17389// GoString returns the string representation
17390func (s StartTaskInput) GoString() string {
17391	return s.String()
17392}
17393
17394// Validate inspects the fields of the type to determine if they are valid.
17395func (s *StartTaskInput) Validate() error {
17396	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
17397	if s.ContainerInstances == nil {
17398		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
17399	}
17400	if s.TaskDefinition == nil {
17401		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
17402	}
17403	if s.NetworkConfiguration != nil {
17404		if err := s.NetworkConfiguration.Validate(); err != nil {
17405			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
17406		}
17407	}
17408	if s.Overrides != nil {
17409		if err := s.Overrides.Validate(); err != nil {
17410			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
17411		}
17412	}
17413	if s.Tags != nil {
17414		for i, v := range s.Tags {
17415			if v == nil {
17416				continue
17417			}
17418			if err := v.Validate(); err != nil {
17419				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17420			}
17421		}
17422	}
17423
17424	if invalidParams.Len() > 0 {
17425		return invalidParams
17426	}
17427	return nil
17428}
17429
17430// SetCluster sets the Cluster field's value.
17431func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
17432	s.Cluster = &v
17433	return s
17434}
17435
17436// SetContainerInstances sets the ContainerInstances field's value.
17437func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
17438	s.ContainerInstances = v
17439	return s
17440}
17441
17442// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
17443func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
17444	s.EnableECSManagedTags = &v
17445	return s
17446}
17447
17448// SetGroup sets the Group field's value.
17449func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
17450	s.Group = &v
17451	return s
17452}
17453
17454// SetNetworkConfiguration sets the NetworkConfiguration field's value.
17455func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
17456	s.NetworkConfiguration = v
17457	return s
17458}
17459
17460// SetOverrides sets the Overrides field's value.
17461func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
17462	s.Overrides = v
17463	return s
17464}
17465
17466// SetPropagateTags sets the PropagateTags field's value.
17467func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
17468	s.PropagateTags = &v
17469	return s
17470}
17471
17472// SetReferenceId sets the ReferenceId field's value.
17473func (s *StartTaskInput) SetReferenceId(v string) *StartTaskInput {
17474	s.ReferenceId = &v
17475	return s
17476}
17477
17478// SetStartedBy sets the StartedBy field's value.
17479func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
17480	s.StartedBy = &v
17481	return s
17482}
17483
17484// SetTags sets the Tags field's value.
17485func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
17486	s.Tags = v
17487	return s
17488}
17489
17490// SetTaskDefinition sets the TaskDefinition field's value.
17491func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
17492	s.TaskDefinition = &v
17493	return s
17494}
17495
17496type StartTaskOutput struct {
17497	_ struct{} `type:"structure"`
17498
17499	// Any failures associated with the call.
17500	Failures []*Failure `locationName:"failures" type:"list"`
17501
17502	// A full description of the tasks that were started. Each task that was successfully
17503	// placed on your container instances is described.
17504	Tasks []*Task `locationName:"tasks" type:"list"`
17505}
17506
17507// String returns the string representation
17508func (s StartTaskOutput) String() string {
17509	return awsutil.Prettify(s)
17510}
17511
17512// GoString returns the string representation
17513func (s StartTaskOutput) GoString() string {
17514	return s.String()
17515}
17516
17517// SetFailures sets the Failures field's value.
17518func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
17519	s.Failures = v
17520	return s
17521}
17522
17523// SetTasks sets the Tasks field's value.
17524func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
17525	s.Tasks = v
17526	return s
17527}
17528
17529type StopTaskInput struct {
17530	_ struct{} `type:"structure"`
17531
17532	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17533	// the task to stop. If you do not specify a cluster, the default cluster is
17534	// assumed.
17535	Cluster *string `locationName:"cluster" type:"string"`
17536
17537	// An optional message specified when a task is stopped. For example, if you
17538	// are using a custom scheduler, you can use this parameter to specify the reason
17539	// for stopping the task here, and the message appears in subsequent DescribeTasks
17540	// API operations on this task. Up to 255 characters are allowed in this message.
17541	Reason *string `locationName:"reason" type:"string"`
17542
17543	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
17544	//
17545	// Task is a required field
17546	Task *string `locationName:"task" type:"string" required:"true"`
17547}
17548
17549// String returns the string representation
17550func (s StopTaskInput) String() string {
17551	return awsutil.Prettify(s)
17552}
17553
17554// GoString returns the string representation
17555func (s StopTaskInput) GoString() string {
17556	return s.String()
17557}
17558
17559// Validate inspects the fields of the type to determine if they are valid.
17560func (s *StopTaskInput) Validate() error {
17561	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
17562	if s.Task == nil {
17563		invalidParams.Add(request.NewErrParamRequired("Task"))
17564	}
17565
17566	if invalidParams.Len() > 0 {
17567		return invalidParams
17568	}
17569	return nil
17570}
17571
17572// SetCluster sets the Cluster field's value.
17573func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
17574	s.Cluster = &v
17575	return s
17576}
17577
17578// SetReason sets the Reason field's value.
17579func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
17580	s.Reason = &v
17581	return s
17582}
17583
17584// SetTask sets the Task field's value.
17585func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
17586	s.Task = &v
17587	return s
17588}
17589
17590type StopTaskOutput struct {
17591	_ struct{} `type:"structure"`
17592
17593	// The task that was stopped.
17594	Task *Task `locationName:"task" type:"structure"`
17595}
17596
17597// String returns the string representation
17598func (s StopTaskOutput) String() string {
17599	return awsutil.Prettify(s)
17600}
17601
17602// GoString returns the string representation
17603func (s StopTaskOutput) GoString() string {
17604	return s.String()
17605}
17606
17607// SetTask sets the Task field's value.
17608func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
17609	s.Task = v
17610	return s
17611}
17612
17613type SubmitAttachmentStateChangesInput struct {
17614	_ struct{} `type:"structure"`
17615
17616	// Any attachments associated with the state change request.
17617	//
17618	// Attachments is a required field
17619	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
17620
17621	// The short name or full ARN of the cluster that hosts the container instance
17622	// the attachment belongs to.
17623	Cluster *string `locationName:"cluster" type:"string"`
17624}
17625
17626// String returns the string representation
17627func (s SubmitAttachmentStateChangesInput) String() string {
17628	return awsutil.Prettify(s)
17629}
17630
17631// GoString returns the string representation
17632func (s SubmitAttachmentStateChangesInput) GoString() string {
17633	return s.String()
17634}
17635
17636// Validate inspects the fields of the type to determine if they are valid.
17637func (s *SubmitAttachmentStateChangesInput) Validate() error {
17638	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
17639	if s.Attachments == nil {
17640		invalidParams.Add(request.NewErrParamRequired("Attachments"))
17641	}
17642	if s.Attachments != nil {
17643		for i, v := range s.Attachments {
17644			if v == nil {
17645				continue
17646			}
17647			if err := v.Validate(); err != nil {
17648				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
17649			}
17650		}
17651	}
17652
17653	if invalidParams.Len() > 0 {
17654		return invalidParams
17655	}
17656	return nil
17657}
17658
17659// SetAttachments sets the Attachments field's value.
17660func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
17661	s.Attachments = v
17662	return s
17663}
17664
17665// SetCluster sets the Cluster field's value.
17666func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
17667	s.Cluster = &v
17668	return s
17669}
17670
17671type SubmitAttachmentStateChangesOutput struct {
17672	_ struct{} `type:"structure"`
17673
17674	// Acknowledgement of the state change.
17675	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17676}
17677
17678// String returns the string representation
17679func (s SubmitAttachmentStateChangesOutput) String() string {
17680	return awsutil.Prettify(s)
17681}
17682
17683// GoString returns the string representation
17684func (s SubmitAttachmentStateChangesOutput) GoString() string {
17685	return s.String()
17686}
17687
17688// SetAcknowledgment sets the Acknowledgment field's value.
17689func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
17690	s.Acknowledgment = &v
17691	return s
17692}
17693
17694type SubmitContainerStateChangeInput struct {
17695	_ struct{} `type:"structure"`
17696
17697	// The short name or full ARN of the cluster that hosts the container.
17698	Cluster *string `locationName:"cluster" type:"string"`
17699
17700	// The name of the container.
17701	ContainerName *string `locationName:"containerName" type:"string"`
17702
17703	// The exit code returned for the state change request.
17704	ExitCode *int64 `locationName:"exitCode" type:"integer"`
17705
17706	// The network bindings of the container.
17707	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
17708
17709	// The reason for the state change request.
17710	Reason *string `locationName:"reason" type:"string"`
17711
17712	// The ID of the Docker container.
17713	RuntimeId *string `locationName:"runtimeId" type:"string"`
17714
17715	// The status of the state change request.
17716	Status *string `locationName:"status" type:"string"`
17717
17718	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
17719	// container.
17720	Task *string `locationName:"task" type:"string"`
17721}
17722
17723// String returns the string representation
17724func (s SubmitContainerStateChangeInput) String() string {
17725	return awsutil.Prettify(s)
17726}
17727
17728// GoString returns the string representation
17729func (s SubmitContainerStateChangeInput) GoString() string {
17730	return s.String()
17731}
17732
17733// SetCluster sets the Cluster field's value.
17734func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
17735	s.Cluster = &v
17736	return s
17737}
17738
17739// SetContainerName sets the ContainerName field's value.
17740func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
17741	s.ContainerName = &v
17742	return s
17743}
17744
17745// SetExitCode sets the ExitCode field's value.
17746func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
17747	s.ExitCode = &v
17748	return s
17749}
17750
17751// SetNetworkBindings sets the NetworkBindings field's value.
17752func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
17753	s.NetworkBindings = v
17754	return s
17755}
17756
17757// SetReason sets the Reason field's value.
17758func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
17759	s.Reason = &v
17760	return s
17761}
17762
17763// SetRuntimeId sets the RuntimeId field's value.
17764func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
17765	s.RuntimeId = &v
17766	return s
17767}
17768
17769// SetStatus sets the Status field's value.
17770func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
17771	s.Status = &v
17772	return s
17773}
17774
17775// SetTask sets the Task field's value.
17776func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
17777	s.Task = &v
17778	return s
17779}
17780
17781type SubmitContainerStateChangeOutput struct {
17782	_ struct{} `type:"structure"`
17783
17784	// Acknowledgement of the state change.
17785	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17786}
17787
17788// String returns the string representation
17789func (s SubmitContainerStateChangeOutput) String() string {
17790	return awsutil.Prettify(s)
17791}
17792
17793// GoString returns the string representation
17794func (s SubmitContainerStateChangeOutput) GoString() string {
17795	return s.String()
17796}
17797
17798// SetAcknowledgment sets the Acknowledgment field's value.
17799func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
17800	s.Acknowledgment = &v
17801	return s
17802}
17803
17804type SubmitTaskStateChangeInput struct {
17805	_ struct{} `type:"structure"`
17806
17807	// Any attachments associated with the state change request.
17808	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
17809
17810	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17811	// the task.
17812	Cluster *string `locationName:"cluster" type:"string"`
17813
17814	// Any containers associated with the state change request.
17815	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
17816
17817	// The Unix timestamp for when the task execution stopped.
17818	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
17819
17820	// The Unix timestamp for when the container image pull began.
17821	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
17822
17823	// The Unix timestamp for when the container image pull completed.
17824	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
17825
17826	// The reason for the state change request.
17827	Reason *string `locationName:"reason" type:"string"`
17828
17829	// The status of the state change request.
17830	Status *string `locationName:"status" type:"string"`
17831
17832	// The task ID or full ARN of the task in the state change request.
17833	Task *string `locationName:"task" type:"string"`
17834}
17835
17836// String returns the string representation
17837func (s SubmitTaskStateChangeInput) String() string {
17838	return awsutil.Prettify(s)
17839}
17840
17841// GoString returns the string representation
17842func (s SubmitTaskStateChangeInput) GoString() string {
17843	return s.String()
17844}
17845
17846// Validate inspects the fields of the type to determine if they are valid.
17847func (s *SubmitTaskStateChangeInput) Validate() error {
17848	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
17849	if s.Attachments != nil {
17850		for i, v := range s.Attachments {
17851			if v == nil {
17852				continue
17853			}
17854			if err := v.Validate(); err != nil {
17855				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
17856			}
17857		}
17858	}
17859
17860	if invalidParams.Len() > 0 {
17861		return invalidParams
17862	}
17863	return nil
17864}
17865
17866// SetAttachments sets the Attachments field's value.
17867func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
17868	s.Attachments = v
17869	return s
17870}
17871
17872// SetCluster sets the Cluster field's value.
17873func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
17874	s.Cluster = &v
17875	return s
17876}
17877
17878// SetContainers sets the Containers field's value.
17879func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
17880	s.Containers = v
17881	return s
17882}
17883
17884// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
17885func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17886	s.ExecutionStoppedAt = &v
17887	return s
17888}
17889
17890// SetPullStartedAt sets the PullStartedAt field's value.
17891func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
17892	s.PullStartedAt = &v
17893	return s
17894}
17895
17896// SetPullStoppedAt sets the PullStoppedAt field's value.
17897func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17898	s.PullStoppedAt = &v
17899	return s
17900}
17901
17902// SetReason sets the Reason field's value.
17903func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
17904	s.Reason = &v
17905	return s
17906}
17907
17908// SetStatus sets the Status field's value.
17909func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
17910	s.Status = &v
17911	return s
17912}
17913
17914// SetTask sets the Task field's value.
17915func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
17916	s.Task = &v
17917	return s
17918}
17919
17920type SubmitTaskStateChangeOutput struct {
17921	_ struct{} `type:"structure"`
17922
17923	// Acknowledgement of the state change.
17924	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17925}
17926
17927// String returns the string representation
17928func (s SubmitTaskStateChangeOutput) String() string {
17929	return awsutil.Prettify(s)
17930}
17931
17932// GoString returns the string representation
17933func (s SubmitTaskStateChangeOutput) GoString() string {
17934	return s.String()
17935}
17936
17937// SetAcknowledgment sets the Acknowledgment field's value.
17938func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
17939	s.Acknowledgment = &v
17940	return s
17941}
17942
17943// A list of namespaced kernel parameters to set in the container. This parameter
17944// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
17945// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
17946// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
17947//
17948// It is not recommended that you specify network-related systemControls parameters
17949// for multiple containers in a single task that also uses either the awsvpc
17950// or host network mode for the following reasons:
17951//
17952//    * For tasks that use the awsvpc network mode, if you set systemControls
17953//    for any container, it applies to all containers in the task. If you set
17954//    different systemControls for multiple containers in a single task, the
17955//    container that is started last determines which systemControls take effect.
17956//
17957//    * For tasks that use the host network mode, the systemControls parameter
17958//    applies to the container instance's kernel parameter as well as that of
17959//    all containers of any tasks running on that container instance.
17960type SystemControl struct {
17961	_ struct{} `type:"structure"`
17962
17963	// The namespaced kernel parameter for which to set a value.
17964	Namespace *string `locationName:"namespace" type:"string"`
17965
17966	// The value for the namespaced kernel parameter specified in namespace.
17967	Value *string `locationName:"value" type:"string"`
17968}
17969
17970// String returns the string representation
17971func (s SystemControl) String() string {
17972	return awsutil.Prettify(s)
17973}
17974
17975// GoString returns the string representation
17976func (s SystemControl) GoString() string {
17977	return s.String()
17978}
17979
17980// SetNamespace sets the Namespace field's value.
17981func (s *SystemControl) SetNamespace(v string) *SystemControl {
17982	s.Namespace = &v
17983	return s
17984}
17985
17986// SetValue sets the Value field's value.
17987func (s *SystemControl) SetValue(v string) *SystemControl {
17988	s.Value = &v
17989	return s
17990}
17991
17992// The metadata that you apply to a resource to help you categorize and organize
17993// them. Each tag consists of a key and an optional value, both of which you
17994// define.
17995//
17996// The following basic restrictions apply to tags:
17997//
17998//    * Maximum number of tags per resource - 50
17999//
18000//    * For each resource, each tag key must be unique, and each tag key can
18001//    have only one value.
18002//
18003//    * Maximum key length - 128 Unicode characters in UTF-8
18004//
18005//    * Maximum value length - 256 Unicode characters in UTF-8
18006//
18007//    * If your tagging schema is used across multiple services and resources,
18008//    remember that other services may have restrictions on allowed characters.
18009//    Generally allowed characters are: letters, numbers, and spaces representable
18010//    in UTF-8, and the following characters: + - = . _ : / @.
18011//
18012//    * Tag keys and values are case-sensitive.
18013//
18014//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18015//    as a prefix for either keys or values as it is reserved for AWS use. You
18016//    cannot edit or delete tag keys or values with this prefix. Tags with this
18017//    prefix do not count against your tags per resource limit.
18018type Tag struct {
18019	_ struct{} `type:"structure"`
18020
18021	// One part of a key-value pair that make up a tag. A key is a general label
18022	// that acts like a category for more specific tag values.
18023	Key *string `locationName:"key" min:"1" type:"string"`
18024
18025	// The optional part of a key-value pair that make up a tag. A value acts as
18026	// a descriptor within a tag category (key).
18027	Value *string `locationName:"value" type:"string"`
18028}
18029
18030// String returns the string representation
18031func (s Tag) String() string {
18032	return awsutil.Prettify(s)
18033}
18034
18035// GoString returns the string representation
18036func (s Tag) GoString() string {
18037	return s.String()
18038}
18039
18040// Validate inspects the fields of the type to determine if they are valid.
18041func (s *Tag) Validate() error {
18042	invalidParams := request.ErrInvalidParams{Context: "Tag"}
18043	if s.Key != nil && len(*s.Key) < 1 {
18044		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
18045	}
18046
18047	if invalidParams.Len() > 0 {
18048		return invalidParams
18049	}
18050	return nil
18051}
18052
18053// SetKey sets the Key field's value.
18054func (s *Tag) SetKey(v string) *Tag {
18055	s.Key = &v
18056	return s
18057}
18058
18059// SetValue sets the Value field's value.
18060func (s *Tag) SetValue(v string) *Tag {
18061	s.Value = &v
18062	return s
18063}
18064
18065type TagResourceInput struct {
18066	_ struct{} `type:"structure"`
18067
18068	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
18069	// the supported resources are Amazon ECS capacity providers, tasks, services,
18070	// task definitions, clusters, and container instances.
18071	//
18072	// ResourceArn is a required field
18073	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
18074
18075	// The tags to add to the resource. A tag is an array of key-value pairs.
18076	//
18077	// The following basic restrictions apply to tags:
18078	//
18079	//    * Maximum number of tags per resource - 50
18080	//
18081	//    * For each resource, each tag key must be unique, and each tag key can
18082	//    have only one value.
18083	//
18084	//    * Maximum key length - 128 Unicode characters in UTF-8
18085	//
18086	//    * Maximum value length - 256 Unicode characters in UTF-8
18087	//
18088	//    * If your tagging schema is used across multiple services and resources,
18089	//    remember that other services may have restrictions on allowed characters.
18090	//    Generally allowed characters are: letters, numbers, and spaces representable
18091	//    in UTF-8, and the following characters: + - = . _ : / @.
18092	//
18093	//    * Tag keys and values are case-sensitive.
18094	//
18095	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18096	//    as a prefix for either keys or values as it is reserved for AWS use. You
18097	//    cannot edit or delete tag keys or values with this prefix. Tags with this
18098	//    prefix do not count against your tags per resource limit.
18099	//
18100	// Tags is a required field
18101	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
18102}
18103
18104// String returns the string representation
18105func (s TagResourceInput) String() string {
18106	return awsutil.Prettify(s)
18107}
18108
18109// GoString returns the string representation
18110func (s TagResourceInput) GoString() string {
18111	return s.String()
18112}
18113
18114// Validate inspects the fields of the type to determine if they are valid.
18115func (s *TagResourceInput) Validate() error {
18116	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
18117	if s.ResourceArn == nil {
18118		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
18119	}
18120	if s.Tags == nil {
18121		invalidParams.Add(request.NewErrParamRequired("Tags"))
18122	}
18123	if s.Tags != nil {
18124		for i, v := range s.Tags {
18125			if v == nil {
18126				continue
18127			}
18128			if err := v.Validate(); err != nil {
18129				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
18130			}
18131		}
18132	}
18133
18134	if invalidParams.Len() > 0 {
18135		return invalidParams
18136	}
18137	return nil
18138}
18139
18140// SetResourceArn sets the ResourceArn field's value.
18141func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
18142	s.ResourceArn = &v
18143	return s
18144}
18145
18146// SetTags sets the Tags field's value.
18147func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
18148	s.Tags = v
18149	return s
18150}
18151
18152type TagResourceOutput struct {
18153	_ struct{} `type:"structure"`
18154}
18155
18156// String returns the string representation
18157func (s TagResourceOutput) String() string {
18158	return awsutil.Prettify(s)
18159}
18160
18161// GoString returns the string representation
18162func (s TagResourceOutput) GoString() string {
18163	return s.String()
18164}
18165
18166// The specified target could not be found. You can view your available container
18167// instances with ListContainerInstances. Amazon ECS container instances are
18168// cluster-specific and Region-specific.
18169type TargetNotFoundException struct {
18170	_            struct{}                  `type:"structure"`
18171	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18172
18173	Message_ *string `locationName:"message" type:"string"`
18174}
18175
18176// String returns the string representation
18177func (s TargetNotFoundException) String() string {
18178	return awsutil.Prettify(s)
18179}
18180
18181// GoString returns the string representation
18182func (s TargetNotFoundException) GoString() string {
18183	return s.String()
18184}
18185
18186func newErrorTargetNotFoundException(v protocol.ResponseMetadata) error {
18187	return &TargetNotFoundException{
18188		RespMetadata: v,
18189	}
18190}
18191
18192// Code returns the exception type name.
18193func (s *TargetNotFoundException) Code() string {
18194	return "TargetNotFoundException"
18195}
18196
18197// Message returns the exception's message.
18198func (s *TargetNotFoundException) Message() string {
18199	if s.Message_ != nil {
18200		return *s.Message_
18201	}
18202	return ""
18203}
18204
18205// OrigErr always returns nil, satisfies awserr.Error interface.
18206func (s *TargetNotFoundException) OrigErr() error {
18207	return nil
18208}
18209
18210func (s *TargetNotFoundException) Error() string {
18211	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18212}
18213
18214// Status code returns the HTTP status code for the request's response error.
18215func (s *TargetNotFoundException) StatusCode() int {
18216	return s.RespMetadata.StatusCode
18217}
18218
18219// RequestID returns the service's response RequestID for request.
18220func (s *TargetNotFoundException) RequestID() string {
18221	return s.RespMetadata.RequestID
18222}
18223
18224// Details on a task in a cluster.
18225type Task struct {
18226	_ struct{} `type:"structure"`
18227
18228	// The Elastic Network Adapter associated with the task if the task uses the
18229	// awsvpc network mode.
18230	Attachments []*Attachment `locationName:"attachments" type:"list"`
18231
18232	// The attributes of the task
18233	Attributes []*Attribute `locationName:"attributes" type:"list"`
18234
18235	// The availability zone of the task.
18236	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
18237
18238	// The capacity provider associated with the task.
18239	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
18240
18241	// The ARN of the cluster that hosts the task.
18242	ClusterArn *string `locationName:"clusterArn" type:"string"`
18243
18244	// The connectivity status of a task.
18245	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
18246
18247	// The Unix timestamp for when the task last went into CONNECTED status.
18248	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
18249
18250	// The ARN of the container instances that host the task.
18251	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
18252
18253	// The containers associated with the task.
18254	Containers []*Container `locationName:"containers" type:"list"`
18255
18256	// The number of CPU units used by the task as expressed in a task definition.
18257	// It can be expressed as an integer using CPU units, for example 1024. It can
18258	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
18259	// String values are converted to an integer indicating the CPU units when the
18260	// task definition is registered.
18261	//
18262	// If you are using the EC2 launch type, this field is optional. Supported values
18263	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
18264	//
18265	// If you are using the Fargate launch type, this field is required and you
18266	// must use one of the following values, which determines your range of supported
18267	// values for the memory parameter:
18268	//
18269	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
18270	//    2048 (2 GB)
18271	//
18272	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
18273	//    (3 GB), 4096 (4 GB)
18274	//
18275	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
18276	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
18277	//
18278	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
18279	//    (16 GB) in increments of 1024 (1 GB)
18280	//
18281	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
18282	//    (30 GB) in increments of 1024 (1 GB)
18283	Cpu *string `locationName:"cpu" type:"string"`
18284
18285	// The Unix timestamp for when the task was created (the task entered the PENDING
18286	// state).
18287	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
18288
18289	// The desired status of the task. For more information, see Task Lifecycle
18290	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
18291	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
18292
18293	// The Unix timestamp for when the task execution stopped.
18294	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
18295
18296	// The name of the task group associated with the task.
18297	Group *string `locationName:"group" type:"string"`
18298
18299	// The health status for the task, which is determined by the health of the
18300	// essential containers in the task. If all essential containers in the task
18301	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
18302	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
18303	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
18304	//
18305	// The Amazon ECS container agent does not monitor or report on Docker health
18306	// checks that are embedded in a container image (such as those specified in
18307	// a parent image or from the image's Dockerfile) and not specified in the container
18308	// definition. Health check parameters that are specified in a container definition
18309	// override any Docker health checks that exist in the container image.
18310	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
18311
18312	// The Elastic Inference accelerator associated with the task.
18313	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
18314
18315	// The last known status of the task. For more information, see Task Lifecycle
18316	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
18317	LastStatus *string `locationName:"lastStatus" type:"string"`
18318
18319	// The launch type on which your task is running. For more information, see
18320	// Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
18321	// in the Amazon Elastic Container Service Developer Guide.
18322	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
18323
18324	// The amount of memory (in MiB) used by the task as expressed in a task definition.
18325	// It can be expressed as an integer using MiB, for example 1024. It can also
18326	// be expressed as a string using GB, for example 1GB or 1 GB. String values
18327	// are converted to an integer indicating the MiB when the task definition is
18328	// registered.
18329	//
18330	// If you are using the EC2 launch type, this field is optional.
18331	//
18332	// If you are using the Fargate launch type, this field is required and you
18333	// must use one of the following values, which determines your range of supported
18334	// values for the cpu parameter:
18335	//
18336	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
18337	//    vCPU)
18338	//
18339	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
18340	//    512 (.5 vCPU)
18341	//
18342	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
18343	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
18344	//
18345	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
18346	//    Available cpu values: 2048 (2 vCPU)
18347	//
18348	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
18349	//    Available cpu values: 4096 (4 vCPU)
18350	Memory *string `locationName:"memory" type:"string"`
18351
18352	// One or more container overrides.
18353	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
18354
18355	// The platform version on which your task is running. A platform version is
18356	// only specified for tasks using the Fargate launch type. If one is not specified,
18357	// the LATEST platform version is used by default. For more information, see
18358	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
18359	// in the Amazon Elastic Container Service Developer Guide.
18360	PlatformVersion *string `locationName:"platformVersion" type:"string"`
18361
18362	// The Unix timestamp for when the container image pull began.
18363	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
18364
18365	// The Unix timestamp for when the container image pull completed.
18366	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
18367
18368	// The Unix timestamp for when the task started (the task transitioned from
18369	// the PENDING state to the RUNNING state).
18370	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
18371
18372	// The tag specified when a task is started. If the task is started by an Amazon
18373	// ECS service, then the startedBy parameter contains the deployment ID of the
18374	// service that starts it.
18375	StartedBy *string `locationName:"startedBy" type:"string"`
18376
18377	// The stop code indicating why a task was stopped. The stoppedReason may contain
18378	// additional details.
18379	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
18380
18381	// The Unix timestamp for when the task was stopped (the task transitioned from
18382	// the RUNNING state to the STOPPED state).
18383	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
18384
18385	// The reason that the task was stopped.
18386	StoppedReason *string `locationName:"stoppedReason" type:"string"`
18387
18388	// The Unix timestamp for when the task stops (transitions from the RUNNING
18389	// state to STOPPED).
18390	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
18391
18392	// The metadata that you apply to the task to help you categorize and organize
18393	// them. Each tag consists of a key and an optional value, both of which you
18394	// define.
18395	//
18396	// The following basic restrictions apply to tags:
18397	//
18398	//    * Maximum number of tags per resource - 50
18399	//
18400	//    * For each resource, each tag key must be unique, and each tag key can
18401	//    have only one value.
18402	//
18403	//    * Maximum key length - 128 Unicode characters in UTF-8
18404	//
18405	//    * Maximum value length - 256 Unicode characters in UTF-8
18406	//
18407	//    * If your tagging schema is used across multiple services and resources,
18408	//    remember that other services may have restrictions on allowed characters.
18409	//    Generally allowed characters are: letters, numbers, and spaces representable
18410	//    in UTF-8, and the following characters: + - = . _ : / @.
18411	//
18412	//    * Tag keys and values are case-sensitive.
18413	//
18414	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18415	//    as a prefix for either keys or values as it is reserved for AWS use. You
18416	//    cannot edit or delete tag keys or values with this prefix. Tags with this
18417	//    prefix do not count against your tags per resource limit.
18418	Tags []*Tag `locationName:"tags" type:"list"`
18419
18420	// The Amazon Resource Name (ARN) of the task.
18421	TaskArn *string `locationName:"taskArn" type:"string"`
18422
18423	// The ARN of the task definition that creates the task.
18424	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
18425
18426	// The version counter for the task. Every time a task experiences a change
18427	// that triggers a CloudWatch event, the version counter is incremented. If
18428	// you are replicating your Amazon ECS task state with CloudWatch Events, you
18429	// can compare the version of a task reported by the Amazon ECS API actions
18430	// with the version reported in CloudWatch Events for the task (inside the detail
18431	// object) to verify that the version in your event stream is current.
18432	Version *int64 `locationName:"version" type:"long"`
18433}
18434
18435// String returns the string representation
18436func (s Task) String() string {
18437	return awsutil.Prettify(s)
18438}
18439
18440// GoString returns the string representation
18441func (s Task) GoString() string {
18442	return s.String()
18443}
18444
18445// SetAttachments sets the Attachments field's value.
18446func (s *Task) SetAttachments(v []*Attachment) *Task {
18447	s.Attachments = v
18448	return s
18449}
18450
18451// SetAttributes sets the Attributes field's value.
18452func (s *Task) SetAttributes(v []*Attribute) *Task {
18453	s.Attributes = v
18454	return s
18455}
18456
18457// SetAvailabilityZone sets the AvailabilityZone field's value.
18458func (s *Task) SetAvailabilityZone(v string) *Task {
18459	s.AvailabilityZone = &v
18460	return s
18461}
18462
18463// SetCapacityProviderName sets the CapacityProviderName field's value.
18464func (s *Task) SetCapacityProviderName(v string) *Task {
18465	s.CapacityProviderName = &v
18466	return s
18467}
18468
18469// SetClusterArn sets the ClusterArn field's value.
18470func (s *Task) SetClusterArn(v string) *Task {
18471	s.ClusterArn = &v
18472	return s
18473}
18474
18475// SetConnectivity sets the Connectivity field's value.
18476func (s *Task) SetConnectivity(v string) *Task {
18477	s.Connectivity = &v
18478	return s
18479}
18480
18481// SetConnectivityAt sets the ConnectivityAt field's value.
18482func (s *Task) SetConnectivityAt(v time.Time) *Task {
18483	s.ConnectivityAt = &v
18484	return s
18485}
18486
18487// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
18488func (s *Task) SetContainerInstanceArn(v string) *Task {
18489	s.ContainerInstanceArn = &v
18490	return s
18491}
18492
18493// SetContainers sets the Containers field's value.
18494func (s *Task) SetContainers(v []*Container) *Task {
18495	s.Containers = v
18496	return s
18497}
18498
18499// SetCpu sets the Cpu field's value.
18500func (s *Task) SetCpu(v string) *Task {
18501	s.Cpu = &v
18502	return s
18503}
18504
18505// SetCreatedAt sets the CreatedAt field's value.
18506func (s *Task) SetCreatedAt(v time.Time) *Task {
18507	s.CreatedAt = &v
18508	return s
18509}
18510
18511// SetDesiredStatus sets the DesiredStatus field's value.
18512func (s *Task) SetDesiredStatus(v string) *Task {
18513	s.DesiredStatus = &v
18514	return s
18515}
18516
18517// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
18518func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
18519	s.ExecutionStoppedAt = &v
18520	return s
18521}
18522
18523// SetGroup sets the Group field's value.
18524func (s *Task) SetGroup(v string) *Task {
18525	s.Group = &v
18526	return s
18527}
18528
18529// SetHealthStatus sets the HealthStatus field's value.
18530func (s *Task) SetHealthStatus(v string) *Task {
18531	s.HealthStatus = &v
18532	return s
18533}
18534
18535// SetInferenceAccelerators sets the InferenceAccelerators field's value.
18536func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
18537	s.InferenceAccelerators = v
18538	return s
18539}
18540
18541// SetLastStatus sets the LastStatus field's value.
18542func (s *Task) SetLastStatus(v string) *Task {
18543	s.LastStatus = &v
18544	return s
18545}
18546
18547// SetLaunchType sets the LaunchType field's value.
18548func (s *Task) SetLaunchType(v string) *Task {
18549	s.LaunchType = &v
18550	return s
18551}
18552
18553// SetMemory sets the Memory field's value.
18554func (s *Task) SetMemory(v string) *Task {
18555	s.Memory = &v
18556	return s
18557}
18558
18559// SetOverrides sets the Overrides field's value.
18560func (s *Task) SetOverrides(v *TaskOverride) *Task {
18561	s.Overrides = v
18562	return s
18563}
18564
18565// SetPlatformVersion sets the PlatformVersion field's value.
18566func (s *Task) SetPlatformVersion(v string) *Task {
18567	s.PlatformVersion = &v
18568	return s
18569}
18570
18571// SetPullStartedAt sets the PullStartedAt field's value.
18572func (s *Task) SetPullStartedAt(v time.Time) *Task {
18573	s.PullStartedAt = &v
18574	return s
18575}
18576
18577// SetPullStoppedAt sets the PullStoppedAt field's value.
18578func (s *Task) SetPullStoppedAt(v time.Time) *Task {
18579	s.PullStoppedAt = &v
18580	return s
18581}
18582
18583// SetStartedAt sets the StartedAt field's value.
18584func (s *Task) SetStartedAt(v time.Time) *Task {
18585	s.StartedAt = &v
18586	return s
18587}
18588
18589// SetStartedBy sets the StartedBy field's value.
18590func (s *Task) SetStartedBy(v string) *Task {
18591	s.StartedBy = &v
18592	return s
18593}
18594
18595// SetStopCode sets the StopCode field's value.
18596func (s *Task) SetStopCode(v string) *Task {
18597	s.StopCode = &v
18598	return s
18599}
18600
18601// SetStoppedAt sets the StoppedAt field's value.
18602func (s *Task) SetStoppedAt(v time.Time) *Task {
18603	s.StoppedAt = &v
18604	return s
18605}
18606
18607// SetStoppedReason sets the StoppedReason field's value.
18608func (s *Task) SetStoppedReason(v string) *Task {
18609	s.StoppedReason = &v
18610	return s
18611}
18612
18613// SetStoppingAt sets the StoppingAt field's value.
18614func (s *Task) SetStoppingAt(v time.Time) *Task {
18615	s.StoppingAt = &v
18616	return s
18617}
18618
18619// SetTags sets the Tags field's value.
18620func (s *Task) SetTags(v []*Tag) *Task {
18621	s.Tags = v
18622	return s
18623}
18624
18625// SetTaskArn sets the TaskArn field's value.
18626func (s *Task) SetTaskArn(v string) *Task {
18627	s.TaskArn = &v
18628	return s
18629}
18630
18631// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
18632func (s *Task) SetTaskDefinitionArn(v string) *Task {
18633	s.TaskDefinitionArn = &v
18634	return s
18635}
18636
18637// SetVersion sets the Version field's value.
18638func (s *Task) SetVersion(v int64) *Task {
18639	s.Version = &v
18640	return s
18641}
18642
18643// The details of a task definition which describes the container and volume
18644// definitions of an Amazon Elastic Container Service task. You can specify
18645// which Docker images to use, the required resources, and other configurations
18646// related to launching the task definition through an Amazon ECS service or
18647// task.
18648type TaskDefinition struct {
18649	_ struct{} `type:"structure"`
18650
18651	// The launch type to use with your task. For more information, see Amazon ECS
18652	// Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
18653	// in the Amazon Elastic Container Service Developer Guide.
18654	Compatibilities []*string `locationName:"compatibilities" type:"list"`
18655
18656	// A list of container definitions in JSON format that describe the different
18657	// containers that make up your task. For more information about container definition
18658	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
18659	// in the Amazon Elastic Container Service Developer Guide.
18660	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
18661
18662	// The number of cpu units used by the task. If you are using the EC2 launch
18663	// type, this field is optional and any value can be used. If you are using
18664	// the Fargate launch type, this field is required and you must use one of the
18665	// following values, which determines your range of valid values for the memory
18666	// parameter:
18667	//
18668	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
18669	//    2048 (2 GB)
18670	//
18671	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
18672	//    (3 GB), 4096 (4 GB)
18673	//
18674	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
18675	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
18676	//
18677	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
18678	//    (16 GB) in increments of 1024 (1 GB)
18679	//
18680	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
18681	//    (30 GB) in increments of 1024 (1 GB)
18682	Cpu *string `locationName:"cpu" type:"string"`
18683
18684	// The Unix timestamp for when the task definition was deregistered.
18685	DeregisteredAt *time.Time `locationName:"deregisteredAt" type:"timestamp"`
18686
18687	// The Amazon Resource Name (ARN) of the task execution role that grants the
18688	// Amazon ECS container agent permission to make AWS API calls on your behalf.
18689	// The task execution IAM role is required depending on the requirements of
18690	// 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)
18691	// in the Amazon Elastic Container Service Developer Guide.
18692	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
18693
18694	// The name of a family that this task definition is registered to. Up to 255
18695	// letters (uppercase and lowercase), numbers, hyphens, and underscores are
18696	// allowed.
18697	//
18698	// A family groups multiple versions of a task definition. Amazon ECS gives
18699	// the first task definition that you registered to a family a revision number
18700	// of 1. Amazon ECS gives sequential revision numbers to each task definition
18701	// that you add.
18702	Family *string `locationName:"family" type:"string"`
18703
18704	// The Elastic Inference accelerator associated with the task.
18705	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
18706
18707	// The IPC resource namespace to use for the containers in the task. The valid
18708	// values are host, task, or none. If host is specified, then all containers
18709	// within the tasks that specified the host IPC mode on the same container instance
18710	// share the same IPC resources with the host Amazon EC2 instance. If task is
18711	// specified, all containers within the specified task share the same IPC resources.
18712	// If none is specified, then IPC resources within the containers of a task
18713	// are private and not shared with other containers in a task or on the container
18714	// instance. If no value is specified, then the IPC resource namespace sharing
18715	// depends on the Docker daemon setting on the container instance. For more
18716	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
18717	// in the Docker run reference.
18718	//
18719	// If the host IPC mode is used, be aware that there is a heightened risk of
18720	// undesired IPC namespace expose. For more information, see Docker security
18721	// (https://docs.docker.com/engine/security/security/).
18722	//
18723	// If you are setting namespaced kernel parameters using systemControls for
18724	// the containers in the task, the following will apply to your IPC resource
18725	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
18726	// in the Amazon Elastic Container Service Developer Guide.
18727	//
18728	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
18729	//    are not supported.
18730	//
18731	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
18732	//    will apply to all containers within a task.
18733	//
18734	// This parameter is not supported for Windows containers or tasks using the
18735	// Fargate launch type.
18736	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
18737
18738	// The amount (in MiB) of memory used by the task.
18739	//
18740	// If using the EC2 launch type, you must specify either a task-level memory
18741	// value or a container-level memory value. This field is optional and any value
18742	// can be used. If a task-level memory value is specified then the container-level
18743	// memory value is optional. For more information regarding container-level
18744	// memory and memory reservation, see ContainerDefinition (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).
18745	//
18746	// If using the Fargate launch type, this field is required and you must use
18747	// one of the following values, which determines your range of valid values
18748	// for the cpu parameter:
18749	//
18750	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
18751	//    vCPU)
18752	//
18753	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
18754	//    512 (.5 vCPU)
18755	//
18756	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
18757	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
18758	//
18759	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
18760	//    Available cpu values: 2048 (2 vCPU)
18761	//
18762	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
18763	//    Available cpu values: 4096 (4 vCPU)
18764	Memory *string `locationName:"memory" type:"string"`
18765
18766	// The Docker networking mode to use for the containers in the task. The valid
18767	// values are none, bridge, awsvpc, and host. If no network mode is specified,
18768	// the default is bridge.
18769	//
18770	// For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For
18771	// Amazon ECS tasks on Amazon EC2 instances, any network mode can be used. If
18772	// the network mode is set to none, you cannot specify port mappings in your
18773	// container definitions, and the tasks containers do not have external connectivity.
18774	// The host and awsvpc network modes offer the highest networking performance
18775	// for containers because they use the EC2 network stack instead of the virtualized
18776	// network stack provided by the bridge mode.
18777	//
18778	// With the host and awsvpc network modes, exposed container ports are mapped
18779	// directly to the corresponding host port (for the host network mode) or the
18780	// attached elastic network interface port (for the awsvpc network mode), so
18781	// you cannot take advantage of dynamic host port mappings.
18782	//
18783	// When using the host network mode, you should not run containers using the
18784	// root user (UID 0). It is considered best practice to use a non-root user.
18785	//
18786	// If the network mode is awsvpc, the task is allocated an elastic network interface,
18787	// and you must specify a NetworkConfiguration value when you create a service
18788	// or run a task with the task definition. For more information, see Task Networking
18789	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
18790	// in the Amazon Elastic Container Service Developer Guide.
18791	//
18792	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
18793	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
18794	// mode.
18795	//
18796	// If the network mode is host, you cannot run multiple instantiations of the
18797	// same task on a single container instance when port mappings are used.
18798	//
18799	// Docker for Windows uses different network modes than Docker for Linux. When
18800	// you register a task definition with Windows containers, you must not specify
18801	// a network mode. If you use the console to register a task definition with
18802	// Windows containers, you must choose the <default> network mode object.
18803	//
18804	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
18805	// in the Docker run reference.
18806	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
18807
18808	// The process namespace to use for the containers in the task. The valid values
18809	// are host or task. If host is specified, then all containers within the tasks
18810	// that specified the host PID mode on the same container instance share the
18811	// same process namespace with the host Amazon EC2 instance. If task is specified,
18812	// all containers within the specified task share the same process namespace.
18813	// If no value is specified, the default is a private namespace. For more information,
18814	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
18815	// in the Docker run reference.
18816	//
18817	// If the host PID mode is used, be aware that there is a heightened risk of
18818	// undesired process namespace expose. For more information, see Docker security
18819	// (https://docs.docker.com/engine/security/security/).
18820	//
18821	// This parameter is not supported for Windows containers or tasks using the
18822	// Fargate launch type.
18823	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
18824
18825	// An array of placement constraint objects to use for tasks. This field is
18826	// not valid if you are using the Fargate launch type for your task.
18827	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
18828
18829	// The configuration details for the App Mesh proxy.
18830	//
18831	// Your Amazon ECS container instances require at least version 1.26.0 of the
18832	// container agent and at least version 1.26.0-1 of the ecs-init package to
18833	// enable a proxy configuration. If your container instances are launched from
18834	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
18835	// the required versions of the container agent and ecs-init. For more information,
18836	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
18837	// in the Amazon Elastic Container Service Developer Guide.
18838	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
18839
18840	// The Unix timestamp for when the task definition was registered.
18841	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
18842
18843	// The principal that registered the task definition.
18844	RegisteredBy *string `locationName:"registeredBy" type:"string"`
18845
18846	// The container instance attributes required by your task. This field is not
18847	// valid if you are using the Fargate launch type for your task.
18848	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
18849
18850	// The launch type the task requires. If no value is specified, it will default
18851	// to EC2. Valid values include EC2 and FARGATE.
18852	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
18853
18854	// The revision of the task in a particular family. The revision is a version
18855	// number of a task definition in a family. When you register a task definition
18856	// for the first time, the revision is 1. Each time that you register a new
18857	// revision of a task definition in the same family, the revision value always
18858	// increases by one, even if you have deregistered previous revisions in this
18859	// family.
18860	Revision *int64 `locationName:"revision" type:"integer"`
18861
18862	// The status of the task definition.
18863	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
18864
18865	// The full Amazon Resource Name (ARN) of the task definition.
18866	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
18867
18868	// The short name or full Amazon Resource Name (ARN) of the AWS Identity and
18869	// Access Management (IAM) role that grants containers in the task permission
18870	// to call AWS APIs on your behalf. For more information, see Amazon ECS Task
18871	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
18872	// in the Amazon Elastic Container Service Developer Guide.
18873	//
18874	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
18875	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
18876	// must also run some configuration code in order to take advantage of the feature.
18877	// For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
18878	// in the Amazon Elastic Container Service Developer Guide.
18879	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
18880
18881	// The list of volume definitions for the task.
18882	//
18883	// If your tasks are using the Fargate launch type, the host and sourcePath
18884	// parameters are not supported.
18885	//
18886	// For more information about volume definition parameters and defaults, see
18887	// Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
18888	// in the Amazon Elastic Container Service Developer Guide.
18889	Volumes []*Volume `locationName:"volumes" type:"list"`
18890}
18891
18892// String returns the string representation
18893func (s TaskDefinition) String() string {
18894	return awsutil.Prettify(s)
18895}
18896
18897// GoString returns the string representation
18898func (s TaskDefinition) GoString() string {
18899	return s.String()
18900}
18901
18902// SetCompatibilities sets the Compatibilities field's value.
18903func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
18904	s.Compatibilities = v
18905	return s
18906}
18907
18908// SetContainerDefinitions sets the ContainerDefinitions field's value.
18909func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
18910	s.ContainerDefinitions = v
18911	return s
18912}
18913
18914// SetCpu sets the Cpu field's value.
18915func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
18916	s.Cpu = &v
18917	return s
18918}
18919
18920// SetDeregisteredAt sets the DeregisteredAt field's value.
18921func (s *TaskDefinition) SetDeregisteredAt(v time.Time) *TaskDefinition {
18922	s.DeregisteredAt = &v
18923	return s
18924}
18925
18926// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
18927func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
18928	s.ExecutionRoleArn = &v
18929	return s
18930}
18931
18932// SetFamily sets the Family field's value.
18933func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
18934	s.Family = &v
18935	return s
18936}
18937
18938// SetInferenceAccelerators sets the InferenceAccelerators field's value.
18939func (s *TaskDefinition) SetInferenceAccelerators(v []*InferenceAccelerator) *TaskDefinition {
18940	s.InferenceAccelerators = v
18941	return s
18942}
18943
18944// SetIpcMode sets the IpcMode field's value.
18945func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
18946	s.IpcMode = &v
18947	return s
18948}
18949
18950// SetMemory sets the Memory field's value.
18951func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
18952	s.Memory = &v
18953	return s
18954}
18955
18956// SetNetworkMode sets the NetworkMode field's value.
18957func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
18958	s.NetworkMode = &v
18959	return s
18960}
18961
18962// SetPidMode sets the PidMode field's value.
18963func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
18964	s.PidMode = &v
18965	return s
18966}
18967
18968// SetPlacementConstraints sets the PlacementConstraints field's value.
18969func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
18970	s.PlacementConstraints = v
18971	return s
18972}
18973
18974// SetProxyConfiguration sets the ProxyConfiguration field's value.
18975func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
18976	s.ProxyConfiguration = v
18977	return s
18978}
18979
18980// SetRegisteredAt sets the RegisteredAt field's value.
18981func (s *TaskDefinition) SetRegisteredAt(v time.Time) *TaskDefinition {
18982	s.RegisteredAt = &v
18983	return s
18984}
18985
18986// SetRegisteredBy sets the RegisteredBy field's value.
18987func (s *TaskDefinition) SetRegisteredBy(v string) *TaskDefinition {
18988	s.RegisteredBy = &v
18989	return s
18990}
18991
18992// SetRequiresAttributes sets the RequiresAttributes field's value.
18993func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
18994	s.RequiresAttributes = v
18995	return s
18996}
18997
18998// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
18999func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
19000	s.RequiresCompatibilities = v
19001	return s
19002}
19003
19004// SetRevision sets the Revision field's value.
19005func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
19006	s.Revision = &v
19007	return s
19008}
19009
19010// SetStatus sets the Status field's value.
19011func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
19012	s.Status = &v
19013	return s
19014}
19015
19016// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
19017func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
19018	s.TaskDefinitionArn = &v
19019	return s
19020}
19021
19022// SetTaskRoleArn sets the TaskRoleArn field's value.
19023func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
19024	s.TaskRoleArn = &v
19025	return s
19026}
19027
19028// SetVolumes sets the Volumes field's value.
19029func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
19030	s.Volumes = v
19031	return s
19032}
19033
19034// An object representing a constraint on task placement in the task definition.
19035// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
19036// in the Amazon Elastic Container Service Developer Guide.
19037//
19038// If you are using the Fargate launch type, task placement constraints are
19039// not supported.
19040type TaskDefinitionPlacementConstraint struct {
19041	_ struct{} `type:"structure"`
19042
19043	// A cluster query language expression to apply to the constraint. For more
19044	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
19045	// in the Amazon Elastic Container Service Developer Guide.
19046	Expression *string `locationName:"expression" type:"string"`
19047
19048	// The type of constraint. The MemberOf constraint restricts selection to be
19049	// from a group of valid candidates.
19050	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
19051}
19052
19053// String returns the string representation
19054func (s TaskDefinitionPlacementConstraint) String() string {
19055	return awsutil.Prettify(s)
19056}
19057
19058// GoString returns the string representation
19059func (s TaskDefinitionPlacementConstraint) GoString() string {
19060	return s.String()
19061}
19062
19063// SetExpression sets the Expression field's value.
19064func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
19065	s.Expression = &v
19066	return s
19067}
19068
19069// SetType sets the Type field's value.
19070func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
19071	s.Type = &v
19072	return s
19073}
19074
19075// The overrides associated with a task.
19076type TaskOverride struct {
19077	_ struct{} `type:"structure"`
19078
19079	// One or more container overrides sent to a task.
19080	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
19081
19082	// The cpu override for the task.
19083	Cpu *string `locationName:"cpu" type:"string"`
19084
19085	// The Amazon Resource Name (ARN) of the task execution IAM role override for
19086	// the task.
19087	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
19088
19089	// The Elastic Inference accelerator override for the task.
19090	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
19091
19092	// The memory override for the task.
19093	Memory *string `locationName:"memory" type:"string"`
19094
19095	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
19096	// can assume. All containers in this task are granted the permissions that
19097	// are specified in this role.
19098	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
19099}
19100
19101// String returns the string representation
19102func (s TaskOverride) String() string {
19103	return awsutil.Prettify(s)
19104}
19105
19106// GoString returns the string representation
19107func (s TaskOverride) GoString() string {
19108	return s.String()
19109}
19110
19111// Validate inspects the fields of the type to determine if they are valid.
19112func (s *TaskOverride) Validate() error {
19113	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
19114	if s.ContainerOverrides != nil {
19115		for i, v := range s.ContainerOverrides {
19116			if v == nil {
19117				continue
19118			}
19119			if err := v.Validate(); err != nil {
19120				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
19121			}
19122		}
19123	}
19124
19125	if invalidParams.Len() > 0 {
19126		return invalidParams
19127	}
19128	return nil
19129}
19130
19131// SetContainerOverrides sets the ContainerOverrides field's value.
19132func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
19133	s.ContainerOverrides = v
19134	return s
19135}
19136
19137// SetCpu sets the Cpu field's value.
19138func (s *TaskOverride) SetCpu(v string) *TaskOverride {
19139	s.Cpu = &v
19140	return s
19141}
19142
19143// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
19144func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
19145	s.ExecutionRoleArn = &v
19146	return s
19147}
19148
19149// SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
19150func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
19151	s.InferenceAcceleratorOverrides = v
19152	return s
19153}
19154
19155// SetMemory sets the Memory field's value.
19156func (s *TaskOverride) SetMemory(v string) *TaskOverride {
19157	s.Memory = &v
19158	return s
19159}
19160
19161// SetTaskRoleArn sets the TaskRoleArn field's value.
19162func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
19163	s.TaskRoleArn = &v
19164	return s
19165}
19166
19167// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
19168// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
19169// desired number of tasks, how many tasks are running, and whether the task
19170// set serves production traffic.
19171type TaskSet struct {
19172	_ struct{} `type:"structure"`
19173
19174	// The capacity provider strategy associated with the task set.
19175	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
19176
19177	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
19178	// the task set exists in.
19179	ClusterArn *string `locationName:"clusterArn" type:"string"`
19180
19181	// The computed desired count for the task set. This is calculated by multiplying
19182	// the service's desiredCount by the task set's scale percentage. The result
19183	// is always rounded up. For example, if the computed desired count is 1.2,
19184	// it rounds up to 2 tasks.
19185	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
19186
19187	// The Unix timestamp for when the task set was created.
19188	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
19189
19190	// The external ID associated with the task set.
19191	//
19192	// If a task set is created by an AWS CodeDeploy deployment, the externalId
19193	// parameter contains the AWS CodeDeploy deployment ID.
19194	//
19195	// If a task set is created for an external deployment and is associated with
19196	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
19197	// AWS Cloud Map attribute.
19198	ExternalId *string `locationName:"externalId" type:"string"`
19199
19200	// The ID of the task set.
19201	Id *string `locationName:"id" type:"string"`
19202
19203	// The launch type the tasks in the task set are using. For more information,
19204	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
19205	// in the Amazon Elastic Container Service Developer Guide.
19206	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
19207
19208	// Details on a load balancer that is used with a task set.
19209	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
19210
19211	// The network configuration for the task set.
19212	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
19213
19214	// The number of tasks in the task set that are in the PENDING status during
19215	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
19216	// state. A task set enters the PENDING status when it launches for the first
19217	// time or when it is restarted after being in the STOPPED state.
19218	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
19219
19220	// The platform version on which the tasks in the task set are running. A platform
19221	// version is only specified for tasks using the Fargate launch type. If one
19222	// is not specified, the LATEST platform version is used by default. For more
19223	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
19224	// in the Amazon Elastic Container Service Developer Guide.
19225	PlatformVersion *string `locationName:"platformVersion" type:"string"`
19226
19227	// The number of tasks in the task set that are in the RUNNING status during
19228	// a deployment. A task in the RUNNING state is running and ready for use.
19229	RunningCount *int64 `locationName:"runningCount" type:"integer"`
19230
19231	// A floating-point percentage of the desired number of tasks to place and keep
19232	// running in the task set.
19233	Scale *Scale `locationName:"scale" type:"structure"`
19234
19235	// The Amazon Resource Name (ARN) of the service the task set exists in.
19236	ServiceArn *string `locationName:"serviceArn" type:"string"`
19237
19238	// The details of the service discovery registries to assign to this task set.
19239	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
19240	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
19241
19242	// The stability status, which indicates whether the task set has reached a
19243	// steady state. If the following conditions are met, the task set will be in
19244	// STEADY_STATE:
19245	//
19246	//    * The task runningCount is equal to the computedDesiredCount.
19247	//
19248	//    * The pendingCount is 0.
19249	//
19250	//    * There are no tasks running on container instances in the DRAINING status.
19251	//
19252	//    * All tasks are reporting a healthy status from the load balancers, service
19253	//    discovery, and container health checks.
19254	//
19255	// If any of those conditions are not met, the stability status returns STABILIZING.
19256	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
19257
19258	// The Unix timestamp for when the task set stability status was retrieved.
19259	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
19260
19261	// The tag specified when a task set is started. If the task set is created
19262	// by an AWS CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY.
19263	// For a task set created for an external deployment, the startedBy field isn't
19264	// used.
19265	StartedBy *string `locationName:"startedBy" type:"string"`
19266
19267	// The status of the task set. The following describes each state:
19268	//
19269	// PRIMARY
19270	//
19271	// The task set is serving production traffic.
19272	//
19273	// ACTIVE
19274	//
19275	// The task set is not serving production traffic.
19276	//
19277	// DRAINING
19278	//
19279	// The tasks in the task set are being stopped and their corresponding targets
19280	// are being deregistered from their target group.
19281	Status *string `locationName:"status" type:"string"`
19282
19283	// The metadata that you apply to the task set to help you categorize and organize
19284	// them. Each tag consists of a key and an optional value, both of which you
19285	// define.
19286	//
19287	// The following basic restrictions apply to tags:
19288	//
19289	//    * Maximum number of tags per resource - 50
19290	//
19291	//    * For each resource, each tag key must be unique, and each tag key can
19292	//    have only one value.
19293	//
19294	//    * Maximum key length - 128 Unicode characters in UTF-8
19295	//
19296	//    * Maximum value length - 256 Unicode characters in UTF-8
19297	//
19298	//    * If your tagging schema is used across multiple services and resources,
19299	//    remember that other services may have restrictions on allowed characters.
19300	//    Generally allowed characters are: letters, numbers, and spaces representable
19301	//    in UTF-8, and the following characters: + - = . _ : / @.
19302	//
19303	//    * Tag keys and values are case-sensitive.
19304	//
19305	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
19306	//    as a prefix for either keys or values as it is reserved for AWS use. You
19307	//    cannot edit or delete tag keys or values with this prefix. Tags with this
19308	//    prefix do not count against your tags per resource limit.
19309	Tags []*Tag `locationName:"tags" type:"list"`
19310
19311	// The task definition the task set is using.
19312	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
19313
19314	// The Amazon Resource Name (ARN) of the task set.
19315	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
19316
19317	// The Unix timestamp for when the task set was last updated.
19318	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
19319}
19320
19321// String returns the string representation
19322func (s TaskSet) String() string {
19323	return awsutil.Prettify(s)
19324}
19325
19326// GoString returns the string representation
19327func (s TaskSet) GoString() string {
19328	return s.String()
19329}
19330
19331// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
19332func (s *TaskSet) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *TaskSet {
19333	s.CapacityProviderStrategy = v
19334	return s
19335}
19336
19337// SetClusterArn sets the ClusterArn field's value.
19338func (s *TaskSet) SetClusterArn(v string) *TaskSet {
19339	s.ClusterArn = &v
19340	return s
19341}
19342
19343// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
19344func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
19345	s.ComputedDesiredCount = &v
19346	return s
19347}
19348
19349// SetCreatedAt sets the CreatedAt field's value.
19350func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
19351	s.CreatedAt = &v
19352	return s
19353}
19354
19355// SetExternalId sets the ExternalId field's value.
19356func (s *TaskSet) SetExternalId(v string) *TaskSet {
19357	s.ExternalId = &v
19358	return s
19359}
19360
19361// SetId sets the Id field's value.
19362func (s *TaskSet) SetId(v string) *TaskSet {
19363	s.Id = &v
19364	return s
19365}
19366
19367// SetLaunchType sets the LaunchType field's value.
19368func (s *TaskSet) SetLaunchType(v string) *TaskSet {
19369	s.LaunchType = &v
19370	return s
19371}
19372
19373// SetLoadBalancers sets the LoadBalancers field's value.
19374func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
19375	s.LoadBalancers = v
19376	return s
19377}
19378
19379// SetNetworkConfiguration sets the NetworkConfiguration field's value.
19380func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
19381	s.NetworkConfiguration = v
19382	return s
19383}
19384
19385// SetPendingCount sets the PendingCount field's value.
19386func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
19387	s.PendingCount = &v
19388	return s
19389}
19390
19391// SetPlatformVersion sets the PlatformVersion field's value.
19392func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
19393	s.PlatformVersion = &v
19394	return s
19395}
19396
19397// SetRunningCount sets the RunningCount field's value.
19398func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
19399	s.RunningCount = &v
19400	return s
19401}
19402
19403// SetScale sets the Scale field's value.
19404func (s *TaskSet) SetScale(v *Scale) *TaskSet {
19405	s.Scale = v
19406	return s
19407}
19408
19409// SetServiceArn sets the ServiceArn field's value.
19410func (s *TaskSet) SetServiceArn(v string) *TaskSet {
19411	s.ServiceArn = &v
19412	return s
19413}
19414
19415// SetServiceRegistries sets the ServiceRegistries field's value.
19416func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
19417	s.ServiceRegistries = v
19418	return s
19419}
19420
19421// SetStabilityStatus sets the StabilityStatus field's value.
19422func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
19423	s.StabilityStatus = &v
19424	return s
19425}
19426
19427// SetStabilityStatusAt sets the StabilityStatusAt field's value.
19428func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
19429	s.StabilityStatusAt = &v
19430	return s
19431}
19432
19433// SetStartedBy sets the StartedBy field's value.
19434func (s *TaskSet) SetStartedBy(v string) *TaskSet {
19435	s.StartedBy = &v
19436	return s
19437}
19438
19439// SetStatus sets the Status field's value.
19440func (s *TaskSet) SetStatus(v string) *TaskSet {
19441	s.Status = &v
19442	return s
19443}
19444
19445// SetTags sets the Tags field's value.
19446func (s *TaskSet) SetTags(v []*Tag) *TaskSet {
19447	s.Tags = v
19448	return s
19449}
19450
19451// SetTaskDefinition sets the TaskDefinition field's value.
19452func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
19453	s.TaskDefinition = &v
19454	return s
19455}
19456
19457// SetTaskSetArn sets the TaskSetArn field's value.
19458func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
19459	s.TaskSetArn = &v
19460	return s
19461}
19462
19463// SetUpdatedAt sets the UpdatedAt field's value.
19464func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
19465	s.UpdatedAt = &v
19466	return s
19467}
19468
19469// The specified task set could not be found. You can view your available task
19470// sets with DescribeTaskSets. Task sets are specific to each cluster, service
19471// and Region.
19472type TaskSetNotFoundException struct {
19473	_            struct{}                  `type:"structure"`
19474	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19475
19476	Message_ *string `locationName:"message" type:"string"`
19477}
19478
19479// String returns the string representation
19480func (s TaskSetNotFoundException) String() string {
19481	return awsutil.Prettify(s)
19482}
19483
19484// GoString returns the string representation
19485func (s TaskSetNotFoundException) GoString() string {
19486	return s.String()
19487}
19488
19489func newErrorTaskSetNotFoundException(v protocol.ResponseMetadata) error {
19490	return &TaskSetNotFoundException{
19491		RespMetadata: v,
19492	}
19493}
19494
19495// Code returns the exception type name.
19496func (s *TaskSetNotFoundException) Code() string {
19497	return "TaskSetNotFoundException"
19498}
19499
19500// Message returns the exception's message.
19501func (s *TaskSetNotFoundException) Message() string {
19502	if s.Message_ != nil {
19503		return *s.Message_
19504	}
19505	return ""
19506}
19507
19508// OrigErr always returns nil, satisfies awserr.Error interface.
19509func (s *TaskSetNotFoundException) OrigErr() error {
19510	return nil
19511}
19512
19513func (s *TaskSetNotFoundException) Error() string {
19514	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19515}
19516
19517// Status code returns the HTTP status code for the request's response error.
19518func (s *TaskSetNotFoundException) StatusCode() int {
19519	return s.RespMetadata.StatusCode
19520}
19521
19522// RequestID returns the service's response RequestID for request.
19523func (s *TaskSetNotFoundException) RequestID() string {
19524	return s.RespMetadata.RequestID
19525}
19526
19527// The container path, mount options, and size of the tmpfs mount.
19528type Tmpfs struct {
19529	_ struct{} `type:"structure"`
19530
19531	// The absolute file path where the tmpfs volume is to be mounted.
19532	//
19533	// ContainerPath is a required field
19534	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
19535
19536	// The list of tmpfs volume mount options.
19537	//
19538	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
19539	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
19540	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
19541	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
19542	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
19543	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
19544	MountOptions []*string `locationName:"mountOptions" type:"list"`
19545
19546	// The maximum size (in MiB) of the tmpfs volume.
19547	//
19548	// Size is a required field
19549	Size *int64 `locationName:"size" type:"integer" required:"true"`
19550}
19551
19552// String returns the string representation
19553func (s Tmpfs) String() string {
19554	return awsutil.Prettify(s)
19555}
19556
19557// GoString returns the string representation
19558func (s Tmpfs) GoString() string {
19559	return s.String()
19560}
19561
19562// Validate inspects the fields of the type to determine if they are valid.
19563func (s *Tmpfs) Validate() error {
19564	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
19565	if s.ContainerPath == nil {
19566		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
19567	}
19568	if s.Size == nil {
19569		invalidParams.Add(request.NewErrParamRequired("Size"))
19570	}
19571
19572	if invalidParams.Len() > 0 {
19573		return invalidParams
19574	}
19575	return nil
19576}
19577
19578// SetContainerPath sets the ContainerPath field's value.
19579func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
19580	s.ContainerPath = &v
19581	return s
19582}
19583
19584// SetMountOptions sets the MountOptions field's value.
19585func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
19586	s.MountOptions = v
19587	return s
19588}
19589
19590// SetSize sets the Size field's value.
19591func (s *Tmpfs) SetSize(v int64) *Tmpfs {
19592	s.Size = &v
19593	return s
19594}
19595
19596// The ulimit settings to pass to the container.
19597type Ulimit struct {
19598	_ struct{} `type:"structure"`
19599
19600	// The hard limit for the ulimit type.
19601	//
19602	// HardLimit is a required field
19603	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
19604
19605	// The type of the ulimit.
19606	//
19607	// Name is a required field
19608	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
19609
19610	// The soft limit for the ulimit type.
19611	//
19612	// SoftLimit is a required field
19613	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
19614}
19615
19616// String returns the string representation
19617func (s Ulimit) String() string {
19618	return awsutil.Prettify(s)
19619}
19620
19621// GoString returns the string representation
19622func (s Ulimit) GoString() string {
19623	return s.String()
19624}
19625
19626// Validate inspects the fields of the type to determine if they are valid.
19627func (s *Ulimit) Validate() error {
19628	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
19629	if s.HardLimit == nil {
19630		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
19631	}
19632	if s.Name == nil {
19633		invalidParams.Add(request.NewErrParamRequired("Name"))
19634	}
19635	if s.SoftLimit == nil {
19636		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
19637	}
19638
19639	if invalidParams.Len() > 0 {
19640		return invalidParams
19641	}
19642	return nil
19643}
19644
19645// SetHardLimit sets the HardLimit field's value.
19646func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
19647	s.HardLimit = &v
19648	return s
19649}
19650
19651// SetName sets the Name field's value.
19652func (s *Ulimit) SetName(v string) *Ulimit {
19653	s.Name = &v
19654	return s
19655}
19656
19657// SetSoftLimit sets the SoftLimit field's value.
19658func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
19659	s.SoftLimit = &v
19660	return s
19661}
19662
19663// The specified task is not supported in this Region.
19664type UnsupportedFeatureException struct {
19665	_            struct{}                  `type:"structure"`
19666	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19667
19668	Message_ *string `locationName:"message" type:"string"`
19669}
19670
19671// String returns the string representation
19672func (s UnsupportedFeatureException) String() string {
19673	return awsutil.Prettify(s)
19674}
19675
19676// GoString returns the string representation
19677func (s UnsupportedFeatureException) GoString() string {
19678	return s.String()
19679}
19680
19681func newErrorUnsupportedFeatureException(v protocol.ResponseMetadata) error {
19682	return &UnsupportedFeatureException{
19683		RespMetadata: v,
19684	}
19685}
19686
19687// Code returns the exception type name.
19688func (s *UnsupportedFeatureException) Code() string {
19689	return "UnsupportedFeatureException"
19690}
19691
19692// Message returns the exception's message.
19693func (s *UnsupportedFeatureException) Message() string {
19694	if s.Message_ != nil {
19695		return *s.Message_
19696	}
19697	return ""
19698}
19699
19700// OrigErr always returns nil, satisfies awserr.Error interface.
19701func (s *UnsupportedFeatureException) OrigErr() error {
19702	return nil
19703}
19704
19705func (s *UnsupportedFeatureException) Error() string {
19706	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19707}
19708
19709// Status code returns the HTTP status code for the request's response error.
19710func (s *UnsupportedFeatureException) StatusCode() int {
19711	return s.RespMetadata.StatusCode
19712}
19713
19714// RequestID returns the service's response RequestID for request.
19715func (s *UnsupportedFeatureException) RequestID() string {
19716	return s.RespMetadata.RequestID
19717}
19718
19719type UntagResourceInput struct {
19720	_ struct{} `type:"structure"`
19721
19722	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
19723	// Currently, the supported resources are Amazon ECS capacity providers, tasks,
19724	// services, task definitions, clusters, and container instances.
19725	//
19726	// ResourceArn is a required field
19727	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
19728
19729	// The keys of the tags to be removed.
19730	//
19731	// TagKeys is a required field
19732	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
19733}
19734
19735// String returns the string representation
19736func (s UntagResourceInput) String() string {
19737	return awsutil.Prettify(s)
19738}
19739
19740// GoString returns the string representation
19741func (s UntagResourceInput) GoString() string {
19742	return s.String()
19743}
19744
19745// Validate inspects the fields of the type to determine if they are valid.
19746func (s *UntagResourceInput) Validate() error {
19747	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
19748	if s.ResourceArn == nil {
19749		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
19750	}
19751	if s.TagKeys == nil {
19752		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
19753	}
19754
19755	if invalidParams.Len() > 0 {
19756		return invalidParams
19757	}
19758	return nil
19759}
19760
19761// SetResourceArn sets the ResourceArn field's value.
19762func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
19763	s.ResourceArn = &v
19764	return s
19765}
19766
19767// SetTagKeys sets the TagKeys field's value.
19768func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
19769	s.TagKeys = v
19770	return s
19771}
19772
19773type UntagResourceOutput struct {
19774	_ struct{} `type:"structure"`
19775}
19776
19777// String returns the string representation
19778func (s UntagResourceOutput) String() string {
19779	return awsutil.Prettify(s)
19780}
19781
19782// GoString returns the string representation
19783func (s UntagResourceOutput) GoString() string {
19784	return s.String()
19785}
19786
19787type UpdateCapacityProviderInput struct {
19788	_ struct{} `type:"structure"`
19789
19790	// An object representing the parameters to update for the Auto Scaling group
19791	// capacity provider.
19792	//
19793	// AutoScalingGroupProvider is a required field
19794	AutoScalingGroupProvider *AutoScalingGroupProviderUpdate `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
19795
19796	// The name of the capacity provider to update.
19797	//
19798	// Name is a required field
19799	Name *string `locationName:"name" type:"string" required:"true"`
19800}
19801
19802// String returns the string representation
19803func (s UpdateCapacityProviderInput) String() string {
19804	return awsutil.Prettify(s)
19805}
19806
19807// GoString returns the string representation
19808func (s UpdateCapacityProviderInput) GoString() string {
19809	return s.String()
19810}
19811
19812// Validate inspects the fields of the type to determine if they are valid.
19813func (s *UpdateCapacityProviderInput) Validate() error {
19814	invalidParams := request.ErrInvalidParams{Context: "UpdateCapacityProviderInput"}
19815	if s.AutoScalingGroupProvider == nil {
19816		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
19817	}
19818	if s.Name == nil {
19819		invalidParams.Add(request.NewErrParamRequired("Name"))
19820	}
19821	if s.AutoScalingGroupProvider != nil {
19822		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
19823			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
19824		}
19825	}
19826
19827	if invalidParams.Len() > 0 {
19828		return invalidParams
19829	}
19830	return nil
19831}
19832
19833// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
19834func (s *UpdateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProviderUpdate) *UpdateCapacityProviderInput {
19835	s.AutoScalingGroupProvider = v
19836	return s
19837}
19838
19839// SetName sets the Name field's value.
19840func (s *UpdateCapacityProviderInput) SetName(v string) *UpdateCapacityProviderInput {
19841	s.Name = &v
19842	return s
19843}
19844
19845type UpdateCapacityProviderOutput struct {
19846	_ struct{} `type:"structure"`
19847
19848	// The details of a capacity provider.
19849	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
19850}
19851
19852// String returns the string representation
19853func (s UpdateCapacityProviderOutput) String() string {
19854	return awsutil.Prettify(s)
19855}
19856
19857// GoString returns the string representation
19858func (s UpdateCapacityProviderOutput) GoString() string {
19859	return s.String()
19860}
19861
19862// SetCapacityProvider sets the CapacityProvider field's value.
19863func (s *UpdateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *UpdateCapacityProviderOutput {
19864	s.CapacityProvider = v
19865	return s
19866}
19867
19868type UpdateClusterSettingsInput struct {
19869	_ struct{} `type:"structure"`
19870
19871	// The name of the cluster to modify the settings for.
19872	//
19873	// Cluster is a required field
19874	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19875
19876	// The setting to use by default for a cluster. This parameter is used to enable
19877	// CloudWatch Container Insights for a cluster. If this value is specified,
19878	// it will override the containerInsights value set with PutAccountSetting or
19879	// PutAccountSettingDefault.
19880	//
19881	// Settings is a required field
19882	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
19883}
19884
19885// String returns the string representation
19886func (s UpdateClusterSettingsInput) String() string {
19887	return awsutil.Prettify(s)
19888}
19889
19890// GoString returns the string representation
19891func (s UpdateClusterSettingsInput) GoString() string {
19892	return s.String()
19893}
19894
19895// Validate inspects the fields of the type to determine if they are valid.
19896func (s *UpdateClusterSettingsInput) Validate() error {
19897	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
19898	if s.Cluster == nil {
19899		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19900	}
19901	if s.Settings == nil {
19902		invalidParams.Add(request.NewErrParamRequired("Settings"))
19903	}
19904
19905	if invalidParams.Len() > 0 {
19906		return invalidParams
19907	}
19908	return nil
19909}
19910
19911// SetCluster sets the Cluster field's value.
19912func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
19913	s.Cluster = &v
19914	return s
19915}
19916
19917// SetSettings sets the Settings field's value.
19918func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
19919	s.Settings = v
19920	return s
19921}
19922
19923type UpdateClusterSettingsOutput struct {
19924	_ struct{} `type:"structure"`
19925
19926	// A regional grouping of one or more container instances on which you can run
19927	// task requests. Each account receives a default cluster the first time you
19928	// use the Amazon ECS service, but you may also create other clusters. Clusters
19929	// may contain more than one instance type simultaneously.
19930	Cluster *Cluster `locationName:"cluster" type:"structure"`
19931}
19932
19933// String returns the string representation
19934func (s UpdateClusterSettingsOutput) String() string {
19935	return awsutil.Prettify(s)
19936}
19937
19938// GoString returns the string representation
19939func (s UpdateClusterSettingsOutput) GoString() string {
19940	return s.String()
19941}
19942
19943// SetCluster sets the Cluster field's value.
19944func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
19945	s.Cluster = v
19946	return s
19947}
19948
19949type UpdateContainerAgentInput struct {
19950	_ struct{} `type:"structure"`
19951
19952	// The short name or full Amazon Resource Name (ARN) of the cluster that your
19953	// container instance is running on. If you do not specify a cluster, the default
19954	// cluster is assumed.
19955	Cluster *string `locationName:"cluster" type:"string"`
19956
19957	// The container instance ID or full ARN entries for the container instance
19958	// on which you would like to update the Amazon ECS container agent.
19959	//
19960	// ContainerInstance is a required field
19961	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
19962}
19963
19964// String returns the string representation
19965func (s UpdateContainerAgentInput) String() string {
19966	return awsutil.Prettify(s)
19967}
19968
19969// GoString returns the string representation
19970func (s UpdateContainerAgentInput) GoString() string {
19971	return s.String()
19972}
19973
19974// Validate inspects the fields of the type to determine if they are valid.
19975func (s *UpdateContainerAgentInput) Validate() error {
19976	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
19977	if s.ContainerInstance == nil {
19978		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
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 *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
19989	s.Cluster = &v
19990	return s
19991}
19992
19993// SetContainerInstance sets the ContainerInstance field's value.
19994func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
19995	s.ContainerInstance = &v
19996	return s
19997}
19998
19999type UpdateContainerAgentOutput struct {
20000	_ struct{} `type:"structure"`
20001
20002	// The container instance for which the container agent was updated.
20003	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
20004}
20005
20006// String returns the string representation
20007func (s UpdateContainerAgentOutput) String() string {
20008	return awsutil.Prettify(s)
20009}
20010
20011// GoString returns the string representation
20012func (s UpdateContainerAgentOutput) GoString() string {
20013	return s.String()
20014}
20015
20016// SetContainerInstance sets the ContainerInstance field's value.
20017func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
20018	s.ContainerInstance = v
20019	return s
20020}
20021
20022type UpdateContainerInstancesStateInput struct {
20023	_ struct{} `type:"structure"`
20024
20025	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
20026	// the container instance to update. If you do not specify a cluster, the default
20027	// cluster is assumed.
20028	Cluster *string `locationName:"cluster" type:"string"`
20029
20030	// A list of container instance IDs or full ARN entries.
20031	//
20032	// ContainerInstances is a required field
20033	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
20034
20035	// The container instance state with which to update the container instance.
20036	// The only valid values for this action are ACTIVE and DRAINING. A container
20037	// instance can only be updated to DRAINING status once it has reached an ACTIVE
20038	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
20039	// state you can describe the container instance but will be unable to update
20040	// the container instance state.
20041	//
20042	// Status is a required field
20043	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
20044}
20045
20046// String returns the string representation
20047func (s UpdateContainerInstancesStateInput) String() string {
20048	return awsutil.Prettify(s)
20049}
20050
20051// GoString returns the string representation
20052func (s UpdateContainerInstancesStateInput) GoString() string {
20053	return s.String()
20054}
20055
20056// Validate inspects the fields of the type to determine if they are valid.
20057func (s *UpdateContainerInstancesStateInput) Validate() error {
20058	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
20059	if s.ContainerInstances == nil {
20060		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
20061	}
20062	if s.Status == nil {
20063		invalidParams.Add(request.NewErrParamRequired("Status"))
20064	}
20065
20066	if invalidParams.Len() > 0 {
20067		return invalidParams
20068	}
20069	return nil
20070}
20071
20072// SetCluster sets the Cluster field's value.
20073func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
20074	s.Cluster = &v
20075	return s
20076}
20077
20078// SetContainerInstances sets the ContainerInstances field's value.
20079func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
20080	s.ContainerInstances = v
20081	return s
20082}
20083
20084// SetStatus sets the Status field's value.
20085func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
20086	s.Status = &v
20087	return s
20088}
20089
20090type UpdateContainerInstancesStateOutput struct {
20091	_ struct{} `type:"structure"`
20092
20093	// The list of container instances.
20094	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
20095
20096	// Any failures associated with the call.
20097	Failures []*Failure `locationName:"failures" type:"list"`
20098}
20099
20100// String returns the string representation
20101func (s UpdateContainerInstancesStateOutput) String() string {
20102	return awsutil.Prettify(s)
20103}
20104
20105// GoString returns the string representation
20106func (s UpdateContainerInstancesStateOutput) GoString() string {
20107	return s.String()
20108}
20109
20110// SetContainerInstances sets the ContainerInstances field's value.
20111func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
20112	s.ContainerInstances = v
20113	return s
20114}
20115
20116// SetFailures sets the Failures field's value.
20117func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
20118	s.Failures = v
20119	return s
20120}
20121
20122// There is already a current Amazon ECS container agent update in progress
20123// on the specified container instance. If the container agent becomes disconnected
20124// while it is in a transitional stage, such as PENDING or STAGING, the update
20125// process can get stuck in that state. However, when the agent reconnects,
20126// it resumes where it stopped previously.
20127type UpdateInProgressException struct {
20128	_            struct{}                  `type:"structure"`
20129	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20130
20131	Message_ *string `locationName:"message" type:"string"`
20132}
20133
20134// String returns the string representation
20135func (s UpdateInProgressException) String() string {
20136	return awsutil.Prettify(s)
20137}
20138
20139// GoString returns the string representation
20140func (s UpdateInProgressException) GoString() string {
20141	return s.String()
20142}
20143
20144func newErrorUpdateInProgressException(v protocol.ResponseMetadata) error {
20145	return &UpdateInProgressException{
20146		RespMetadata: v,
20147	}
20148}
20149
20150// Code returns the exception type name.
20151func (s *UpdateInProgressException) Code() string {
20152	return "UpdateInProgressException"
20153}
20154
20155// Message returns the exception's message.
20156func (s *UpdateInProgressException) Message() string {
20157	if s.Message_ != nil {
20158		return *s.Message_
20159	}
20160	return ""
20161}
20162
20163// OrigErr always returns nil, satisfies awserr.Error interface.
20164func (s *UpdateInProgressException) OrigErr() error {
20165	return nil
20166}
20167
20168func (s *UpdateInProgressException) Error() string {
20169	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20170}
20171
20172// Status code returns the HTTP status code for the request's response error.
20173func (s *UpdateInProgressException) StatusCode() int {
20174	return s.RespMetadata.StatusCode
20175}
20176
20177// RequestID returns the service's response RequestID for request.
20178func (s *UpdateInProgressException) RequestID() string {
20179	return s.RespMetadata.RequestID
20180}
20181
20182type UpdateServiceInput struct {
20183	_ struct{} `type:"structure"`
20184
20185	// The capacity provider strategy to update the service to use.
20186	//
20187	// If the service is using the default capacity provider strategy for the cluster,
20188	// the service can be updated to use one or more capacity providers as opposed
20189	// to the default capacity provider strategy. However, when a service is using
20190	// a capacity provider strategy that is not the default capacity provider strategy,
20191	// the service cannot be updated to use the cluster's default capacity provider
20192	// strategy.
20193	//
20194	// A capacity provider strategy consists of one or more capacity providers along
20195	// with the base and weight to assign to them. A capacity provider must be associated
20196	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
20197	// API is used to associate a capacity provider with a cluster. Only capacity
20198	// providers with an ACTIVE or UPDATING status can be used.
20199	//
20200	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
20201	// provider must already be created. New capacity providers can be created with
20202	// the CreateCapacityProvider API operation.
20203	//
20204	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
20205	// capacity providers. The AWS Fargate capacity providers are available to all
20206	// accounts and only need to be associated with a cluster to be used.
20207	//
20208	// The PutClusterCapacityProviders API operation is used to update the list
20209	// of available capacity providers for a cluster after the cluster is created.
20210	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
20211
20212	// The short name or full Amazon Resource Name (ARN) of the cluster that your
20213	// service is running on. If you do not specify a cluster, the default cluster
20214	// is assumed.
20215	Cluster *string `locationName:"cluster" type:"string"`
20216
20217	// Optional deployment parameters that control how many tasks run during the
20218	// deployment and the ordering of stopping and starting tasks.
20219	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
20220
20221	// The number of instantiations of the task to place and keep running in your
20222	// service.
20223	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
20224
20225	// Whether to force a new deployment of the service. Deployments are not forced
20226	// by default. You can use this option to trigger a new deployment with no service
20227	// definition changes. For example, you can update a service's tasks to use
20228	// a newer Docker image with the same image/tag combination (my_image:latest)
20229	// or to roll Fargate tasks onto a newer platform version.
20230	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
20231
20232	// The period of time, in seconds, that the Amazon ECS service scheduler should
20233	// ignore unhealthy Elastic Load Balancing target health checks after a task
20234	// has first started. This is only valid if your service is configured to use
20235	// a load balancer. If your service's tasks take a while to start and respond
20236	// to Elastic Load Balancing health checks, you can specify a health check grace
20237	// period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service
20238	// scheduler ignores the Elastic Load Balancing health check status. This grace
20239	// period can prevent the ECS service scheduler from marking tasks as unhealthy
20240	// and stopping them before they have time to come up.
20241	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
20242
20243	// An object representing the network configuration for a task or service.
20244	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
20245
20246	// An array of task placement constraint objects to update the service to use.
20247	// If no value is specified, the existing placement constraints for the service
20248	// will remain unchanged. If this value is specified, it will override any existing
20249	// placement constraints defined for the service. To remove all existing placement
20250	// constraints, specify an empty array.
20251	//
20252	// You can specify a maximum of 10 constraints per task (this limit includes
20253	// constraints in the task definition and those specified at runtime).
20254	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
20255
20256	// The task placement strategy objects to update the service to use. If no value
20257	// is specified, the existing placement strategy for the service will remain
20258	// unchanged. If this value is specified, it will override the existing placement
20259	// strategy defined for the service. To remove an existing placement strategy,
20260	// specify an empty object.
20261	//
20262	// You can specify a maximum of five strategy rules per service.
20263	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
20264
20265	// The platform version on which your tasks in the service are running. A platform
20266	// version is only specified for tasks using the Fargate launch type. If a platform
20267	// version is not specified, the LATEST platform version is used by default.
20268	// For more information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
20269	// in the Amazon Elastic Container Service Developer Guide.
20270	PlatformVersion *string `locationName:"platformVersion" type:"string"`
20271
20272	// The name of the service to update.
20273	//
20274	// Service is a required field
20275	Service *string `locationName:"service" type:"string" required:"true"`
20276
20277	// The family and revision (family:revision) or full ARN of the task definition
20278	// to run in your service. If a revision is not specified, the latest ACTIVE
20279	// revision is used. If you modify the task definition with UpdateService, Amazon
20280	// ECS spawns a task with the new version of the task definition and then stops
20281	// an old task after the new version is running.
20282	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
20283}
20284
20285// String returns the string representation
20286func (s UpdateServiceInput) String() string {
20287	return awsutil.Prettify(s)
20288}
20289
20290// GoString returns the string representation
20291func (s UpdateServiceInput) GoString() string {
20292	return s.String()
20293}
20294
20295// Validate inspects the fields of the type to determine if they are valid.
20296func (s *UpdateServiceInput) Validate() error {
20297	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
20298	if s.Service == nil {
20299		invalidParams.Add(request.NewErrParamRequired("Service"))
20300	}
20301	if s.CapacityProviderStrategy != nil {
20302		for i, v := range s.CapacityProviderStrategy {
20303			if v == nil {
20304				continue
20305			}
20306			if err := v.Validate(); err != nil {
20307				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
20308			}
20309		}
20310	}
20311	if s.DeploymentConfiguration != nil {
20312		if err := s.DeploymentConfiguration.Validate(); err != nil {
20313			invalidParams.AddNested("DeploymentConfiguration", err.(request.ErrInvalidParams))
20314		}
20315	}
20316	if s.NetworkConfiguration != nil {
20317		if err := s.NetworkConfiguration.Validate(); err != nil {
20318			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
20319		}
20320	}
20321
20322	if invalidParams.Len() > 0 {
20323		return invalidParams
20324	}
20325	return nil
20326}
20327
20328// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
20329func (s *UpdateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *UpdateServiceInput {
20330	s.CapacityProviderStrategy = v
20331	return s
20332}
20333
20334// SetCluster sets the Cluster field's value.
20335func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
20336	s.Cluster = &v
20337	return s
20338}
20339
20340// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
20341func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
20342	s.DeploymentConfiguration = v
20343	return s
20344}
20345
20346// SetDesiredCount sets the DesiredCount field's value.
20347func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
20348	s.DesiredCount = &v
20349	return s
20350}
20351
20352// SetForceNewDeployment sets the ForceNewDeployment field's value.
20353func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
20354	s.ForceNewDeployment = &v
20355	return s
20356}
20357
20358// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
20359func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
20360	s.HealthCheckGracePeriodSeconds = &v
20361	return s
20362}
20363
20364// SetNetworkConfiguration sets the NetworkConfiguration field's value.
20365func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
20366	s.NetworkConfiguration = v
20367	return s
20368}
20369
20370// SetPlacementConstraints sets the PlacementConstraints field's value.
20371func (s *UpdateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *UpdateServiceInput {
20372	s.PlacementConstraints = v
20373	return s
20374}
20375
20376// SetPlacementStrategy sets the PlacementStrategy field's value.
20377func (s *UpdateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *UpdateServiceInput {
20378	s.PlacementStrategy = v
20379	return s
20380}
20381
20382// SetPlatformVersion sets the PlatformVersion field's value.
20383func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
20384	s.PlatformVersion = &v
20385	return s
20386}
20387
20388// SetService sets the Service field's value.
20389func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
20390	s.Service = &v
20391	return s
20392}
20393
20394// SetTaskDefinition sets the TaskDefinition field's value.
20395func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
20396	s.TaskDefinition = &v
20397	return s
20398}
20399
20400type UpdateServiceOutput struct {
20401	_ struct{} `type:"structure"`
20402
20403	// The full description of your service following the update call.
20404	Service *Service `locationName:"service" type:"structure"`
20405}
20406
20407// String returns the string representation
20408func (s UpdateServiceOutput) String() string {
20409	return awsutil.Prettify(s)
20410}
20411
20412// GoString returns the string representation
20413func (s UpdateServiceOutput) GoString() string {
20414	return s.String()
20415}
20416
20417// SetService sets the Service field's value.
20418func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
20419	s.Service = v
20420	return s
20421}
20422
20423type UpdateServicePrimaryTaskSetInput struct {
20424	_ struct{} `type:"structure"`
20425
20426	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
20427	// the service that the task set exists in.
20428	//
20429	// Cluster is a required field
20430	Cluster *string `locationName:"cluster" type:"string" required:"true"`
20431
20432	// The short name or full Amazon Resource Name (ARN) of the task set to set
20433	// as the primary task set in the deployment.
20434	//
20435	// PrimaryTaskSet is a required field
20436	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
20437
20438	// The short name or full Amazon Resource Name (ARN) of the service that the
20439	// task set exists in.
20440	//
20441	// Service is a required field
20442	Service *string `locationName:"service" type:"string" required:"true"`
20443}
20444
20445// String returns the string representation
20446func (s UpdateServicePrimaryTaskSetInput) String() string {
20447	return awsutil.Prettify(s)
20448}
20449
20450// GoString returns the string representation
20451func (s UpdateServicePrimaryTaskSetInput) GoString() string {
20452	return s.String()
20453}
20454
20455// Validate inspects the fields of the type to determine if they are valid.
20456func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
20457	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
20458	if s.Cluster == nil {
20459		invalidParams.Add(request.NewErrParamRequired("Cluster"))
20460	}
20461	if s.PrimaryTaskSet == nil {
20462		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
20463	}
20464	if s.Service == nil {
20465		invalidParams.Add(request.NewErrParamRequired("Service"))
20466	}
20467
20468	if invalidParams.Len() > 0 {
20469		return invalidParams
20470	}
20471	return nil
20472}
20473
20474// SetCluster sets the Cluster field's value.
20475func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
20476	s.Cluster = &v
20477	return s
20478}
20479
20480// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
20481func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
20482	s.PrimaryTaskSet = &v
20483	return s
20484}
20485
20486// SetService sets the Service field's value.
20487func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
20488	s.Service = &v
20489	return s
20490}
20491
20492type UpdateServicePrimaryTaskSetOutput struct {
20493	_ struct{} `type:"structure"`
20494
20495	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
20496	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
20497	// desired number of tasks, how many tasks are running, and whether the task
20498	// set serves production traffic.
20499	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
20500}
20501
20502// String returns the string representation
20503func (s UpdateServicePrimaryTaskSetOutput) String() string {
20504	return awsutil.Prettify(s)
20505}
20506
20507// GoString returns the string representation
20508func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
20509	return s.String()
20510}
20511
20512// SetTaskSet sets the TaskSet field's value.
20513func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
20514	s.TaskSet = v
20515	return s
20516}
20517
20518type UpdateTaskSetInput struct {
20519	_ struct{} `type:"structure"`
20520
20521	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
20522	// the service that the task set exists in.
20523	//
20524	// Cluster is a required field
20525	Cluster *string `locationName:"cluster" type:"string" required:"true"`
20526
20527	// A floating-point percentage of the desired number of tasks to place and keep
20528	// running in the task set.
20529	//
20530	// Scale is a required field
20531	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
20532
20533	// The short name or full Amazon Resource Name (ARN) of the service that the
20534	// task set exists in.
20535	//
20536	// Service is a required field
20537	Service *string `locationName:"service" type:"string" required:"true"`
20538
20539	// The short name or full Amazon Resource Name (ARN) of the task set to update.
20540	//
20541	// TaskSet is a required field
20542	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
20543}
20544
20545// String returns the string representation
20546func (s UpdateTaskSetInput) String() string {
20547	return awsutil.Prettify(s)
20548}
20549
20550// GoString returns the string representation
20551func (s UpdateTaskSetInput) GoString() string {
20552	return s.String()
20553}
20554
20555// Validate inspects the fields of the type to determine if they are valid.
20556func (s *UpdateTaskSetInput) Validate() error {
20557	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
20558	if s.Cluster == nil {
20559		invalidParams.Add(request.NewErrParamRequired("Cluster"))
20560	}
20561	if s.Scale == nil {
20562		invalidParams.Add(request.NewErrParamRequired("Scale"))
20563	}
20564	if s.Service == nil {
20565		invalidParams.Add(request.NewErrParamRequired("Service"))
20566	}
20567	if s.TaskSet == nil {
20568		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
20569	}
20570
20571	if invalidParams.Len() > 0 {
20572		return invalidParams
20573	}
20574	return nil
20575}
20576
20577// SetCluster sets the Cluster field's value.
20578func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
20579	s.Cluster = &v
20580	return s
20581}
20582
20583// SetScale sets the Scale field's value.
20584func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
20585	s.Scale = v
20586	return s
20587}
20588
20589// SetService sets the Service field's value.
20590func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
20591	s.Service = &v
20592	return s
20593}
20594
20595// SetTaskSet sets the TaskSet field's value.
20596func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
20597	s.TaskSet = &v
20598	return s
20599}
20600
20601type UpdateTaskSetOutput struct {
20602	_ struct{} `type:"structure"`
20603
20604	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
20605	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
20606	// desired number of tasks, how many tasks are running, and whether the task
20607	// set serves production traffic.
20608	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
20609}
20610
20611// String returns the string representation
20612func (s UpdateTaskSetOutput) String() string {
20613	return awsutil.Prettify(s)
20614}
20615
20616// GoString returns the string representation
20617func (s UpdateTaskSetOutput) GoString() string {
20618	return s.String()
20619}
20620
20621// SetTaskSet sets the TaskSet field's value.
20622func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
20623	s.TaskSet = v
20624	return s
20625}
20626
20627// The Docker and Amazon ECS container agent version information about a container
20628// instance.
20629type VersionInfo struct {
20630	_ struct{} `type:"structure"`
20631
20632	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
20633	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
20634	AgentHash *string `locationName:"agentHash" type:"string"`
20635
20636	// The version number of the Amazon ECS container agent.
20637	AgentVersion *string `locationName:"agentVersion" type:"string"`
20638
20639	// The Docker version running on the container instance.
20640	DockerVersion *string `locationName:"dockerVersion" type:"string"`
20641}
20642
20643// String returns the string representation
20644func (s VersionInfo) String() string {
20645	return awsutil.Prettify(s)
20646}
20647
20648// GoString returns the string representation
20649func (s VersionInfo) GoString() string {
20650	return s.String()
20651}
20652
20653// SetAgentHash sets the AgentHash field's value.
20654func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
20655	s.AgentHash = &v
20656	return s
20657}
20658
20659// SetAgentVersion sets the AgentVersion field's value.
20660func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
20661	s.AgentVersion = &v
20662	return s
20663}
20664
20665// SetDockerVersion sets the DockerVersion field's value.
20666func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
20667	s.DockerVersion = &v
20668	return s
20669}
20670
20671// A data volume used in a task definition. For tasks that use the Amazon Elastic
20672// File System (Amazon EFS), specify an efsVolumeConfiguration. For Windows
20673// tasks that use Amazon FSx for Windows File Server file system, specify a
20674// fsxWindowsFileServerVolumeConfiguration. For tasks that use a Docker volume,
20675// specify a DockerVolumeConfiguration. For tasks that use a bind mount host
20676// volume, specify a host and optional sourcePath. For more information, see
20677// Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
20678type Volume struct {
20679	_ struct{} `type:"structure"`
20680
20681	// This parameter is specified when you are using Docker volumes. Docker volumes
20682	// are only supported when you are using the EC2 launch type. Windows containers
20683	// only support the use of the local driver. To use bind mounts, specify the
20684	// host parameter instead.
20685	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
20686
20687	// This parameter is specified when you are using an Amazon Elastic File System
20688	// file system for task storage.
20689	EfsVolumeConfiguration *EFSVolumeConfiguration `locationName:"efsVolumeConfiguration" type:"structure"`
20690
20691	// This parameter is specified when you are using Amazon FSx for Windows File
20692	// Server file system for task storage.
20693	FsxWindowsFileServerVolumeConfiguration *FSxWindowsFileServerVolumeConfiguration `locationName:"fsxWindowsFileServerVolumeConfiguration" type:"structure"`
20694
20695	// This parameter is specified when you are using bind mount host volumes. The
20696	// contents of the host parameter determine whether your bind mount host volume
20697	// persists on the host container instance and where it is stored. If the host
20698	// parameter is empty, then the Docker daemon assigns a host path for your data
20699	// volume. However, the data is not guaranteed to persist after the containers
20700	// associated with it stop running.
20701	//
20702	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
20703	// Windows containers cannot mount directories on a different drive, and mount
20704	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
20705	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
20706	Host *HostVolumeProperties `locationName:"host" type:"structure"`
20707
20708	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
20709	// and hyphens are allowed. This name is referenced in the sourceVolume parameter
20710	// of container definition mountPoints.
20711	Name *string `locationName:"name" type:"string"`
20712}
20713
20714// String returns the string representation
20715func (s Volume) String() string {
20716	return awsutil.Prettify(s)
20717}
20718
20719// GoString returns the string representation
20720func (s Volume) GoString() string {
20721	return s.String()
20722}
20723
20724// Validate inspects the fields of the type to determine if they are valid.
20725func (s *Volume) Validate() error {
20726	invalidParams := request.ErrInvalidParams{Context: "Volume"}
20727	if s.EfsVolumeConfiguration != nil {
20728		if err := s.EfsVolumeConfiguration.Validate(); err != nil {
20729			invalidParams.AddNested("EfsVolumeConfiguration", err.(request.ErrInvalidParams))
20730		}
20731	}
20732	if s.FsxWindowsFileServerVolumeConfiguration != nil {
20733		if err := s.FsxWindowsFileServerVolumeConfiguration.Validate(); err != nil {
20734			invalidParams.AddNested("FsxWindowsFileServerVolumeConfiguration", err.(request.ErrInvalidParams))
20735		}
20736	}
20737
20738	if invalidParams.Len() > 0 {
20739		return invalidParams
20740	}
20741	return nil
20742}
20743
20744// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
20745func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
20746	s.DockerVolumeConfiguration = v
20747	return s
20748}
20749
20750// SetEfsVolumeConfiguration sets the EfsVolumeConfiguration field's value.
20751func (s *Volume) SetEfsVolumeConfiguration(v *EFSVolumeConfiguration) *Volume {
20752	s.EfsVolumeConfiguration = v
20753	return s
20754}
20755
20756// SetFsxWindowsFileServerVolumeConfiguration sets the FsxWindowsFileServerVolumeConfiguration field's value.
20757func (s *Volume) SetFsxWindowsFileServerVolumeConfiguration(v *FSxWindowsFileServerVolumeConfiguration) *Volume {
20758	s.FsxWindowsFileServerVolumeConfiguration = v
20759	return s
20760}
20761
20762// SetHost sets the Host field's value.
20763func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
20764	s.Host = v
20765	return s
20766}
20767
20768// SetName sets the Name field's value.
20769func (s *Volume) SetName(v string) *Volume {
20770	s.Name = &v
20771	return s
20772}
20773
20774// Details on a data volume from another container in the same task definition.
20775type VolumeFrom struct {
20776	_ struct{} `type:"structure"`
20777
20778	// If this value is true, the container has read-only access to the volume.
20779	// If this value is false, then the container can write to the volume. The default
20780	// value is false.
20781	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
20782
20783	// The name of another container within the same task definition from which
20784	// to mount volumes.
20785	SourceContainer *string `locationName:"sourceContainer" type:"string"`
20786}
20787
20788// String returns the string representation
20789func (s VolumeFrom) String() string {
20790	return awsutil.Prettify(s)
20791}
20792
20793// GoString returns the string representation
20794func (s VolumeFrom) GoString() string {
20795	return s.String()
20796}
20797
20798// SetReadOnly sets the ReadOnly field's value.
20799func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
20800	s.ReadOnly = &v
20801	return s
20802}
20803
20804// SetSourceContainer sets the SourceContainer field's value.
20805func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
20806	s.SourceContainer = &v
20807	return s
20808}
20809
20810const (
20811	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
20812	AgentUpdateStatusPending = "PENDING"
20813
20814	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
20815	AgentUpdateStatusStaging = "STAGING"
20816
20817	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
20818	AgentUpdateStatusStaged = "STAGED"
20819
20820	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
20821	AgentUpdateStatusUpdating = "UPDATING"
20822
20823	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
20824	AgentUpdateStatusUpdated = "UPDATED"
20825
20826	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
20827	AgentUpdateStatusFailed = "FAILED"
20828)
20829
20830// AgentUpdateStatus_Values returns all elements of the AgentUpdateStatus enum
20831func AgentUpdateStatus_Values() []string {
20832	return []string{
20833		AgentUpdateStatusPending,
20834		AgentUpdateStatusStaging,
20835		AgentUpdateStatusStaged,
20836		AgentUpdateStatusUpdating,
20837		AgentUpdateStatusUpdated,
20838		AgentUpdateStatusFailed,
20839	}
20840}
20841
20842const (
20843	// AssignPublicIpEnabled is a AssignPublicIp enum value
20844	AssignPublicIpEnabled = "ENABLED"
20845
20846	// AssignPublicIpDisabled is a AssignPublicIp enum value
20847	AssignPublicIpDisabled = "DISABLED"
20848)
20849
20850// AssignPublicIp_Values returns all elements of the AssignPublicIp enum
20851func AssignPublicIp_Values() []string {
20852	return []string{
20853		AssignPublicIpEnabled,
20854		AssignPublicIpDisabled,
20855	}
20856}
20857
20858const (
20859	// CapacityProviderFieldTags is a CapacityProviderField enum value
20860	CapacityProviderFieldTags = "TAGS"
20861)
20862
20863// CapacityProviderField_Values returns all elements of the CapacityProviderField enum
20864func CapacityProviderField_Values() []string {
20865	return []string{
20866		CapacityProviderFieldTags,
20867	}
20868}
20869
20870const (
20871	// CapacityProviderStatusActive is a CapacityProviderStatus enum value
20872	CapacityProviderStatusActive = "ACTIVE"
20873
20874	// CapacityProviderStatusInactive is a CapacityProviderStatus enum value
20875	CapacityProviderStatusInactive = "INACTIVE"
20876)
20877
20878// CapacityProviderStatus_Values returns all elements of the CapacityProviderStatus enum
20879func CapacityProviderStatus_Values() []string {
20880	return []string{
20881		CapacityProviderStatusActive,
20882		CapacityProviderStatusInactive,
20883	}
20884}
20885
20886const (
20887	// CapacityProviderUpdateStatusDeleteInProgress is a CapacityProviderUpdateStatus enum value
20888	CapacityProviderUpdateStatusDeleteInProgress = "DELETE_IN_PROGRESS"
20889
20890	// CapacityProviderUpdateStatusDeleteComplete is a CapacityProviderUpdateStatus enum value
20891	CapacityProviderUpdateStatusDeleteComplete = "DELETE_COMPLETE"
20892
20893	// CapacityProviderUpdateStatusDeleteFailed is a CapacityProviderUpdateStatus enum value
20894	CapacityProviderUpdateStatusDeleteFailed = "DELETE_FAILED"
20895
20896	// CapacityProviderUpdateStatusUpdateInProgress is a CapacityProviderUpdateStatus enum value
20897	CapacityProviderUpdateStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
20898
20899	// CapacityProviderUpdateStatusUpdateComplete is a CapacityProviderUpdateStatus enum value
20900	CapacityProviderUpdateStatusUpdateComplete = "UPDATE_COMPLETE"
20901
20902	// CapacityProviderUpdateStatusUpdateFailed is a CapacityProviderUpdateStatus enum value
20903	CapacityProviderUpdateStatusUpdateFailed = "UPDATE_FAILED"
20904)
20905
20906// CapacityProviderUpdateStatus_Values returns all elements of the CapacityProviderUpdateStatus enum
20907func CapacityProviderUpdateStatus_Values() []string {
20908	return []string{
20909		CapacityProviderUpdateStatusDeleteInProgress,
20910		CapacityProviderUpdateStatusDeleteComplete,
20911		CapacityProviderUpdateStatusDeleteFailed,
20912		CapacityProviderUpdateStatusUpdateInProgress,
20913		CapacityProviderUpdateStatusUpdateComplete,
20914		CapacityProviderUpdateStatusUpdateFailed,
20915	}
20916}
20917
20918const (
20919	// ClusterFieldAttachments is a ClusterField enum value
20920	ClusterFieldAttachments = "ATTACHMENTS"
20921
20922	// ClusterFieldSettings is a ClusterField enum value
20923	ClusterFieldSettings = "SETTINGS"
20924
20925	// ClusterFieldStatistics is a ClusterField enum value
20926	ClusterFieldStatistics = "STATISTICS"
20927
20928	// ClusterFieldTags is a ClusterField enum value
20929	ClusterFieldTags = "TAGS"
20930)
20931
20932// ClusterField_Values returns all elements of the ClusterField enum
20933func ClusterField_Values() []string {
20934	return []string{
20935		ClusterFieldAttachments,
20936		ClusterFieldSettings,
20937		ClusterFieldStatistics,
20938		ClusterFieldTags,
20939	}
20940}
20941
20942const (
20943	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
20944	ClusterSettingNameContainerInsights = "containerInsights"
20945)
20946
20947// ClusterSettingName_Values returns all elements of the ClusterSettingName enum
20948func ClusterSettingName_Values() []string {
20949	return []string{
20950		ClusterSettingNameContainerInsights,
20951	}
20952}
20953
20954const (
20955	// CompatibilityEc2 is a Compatibility enum value
20956	CompatibilityEc2 = "EC2"
20957
20958	// CompatibilityFargate is a Compatibility enum value
20959	CompatibilityFargate = "FARGATE"
20960)
20961
20962// Compatibility_Values returns all elements of the Compatibility enum
20963func Compatibility_Values() []string {
20964	return []string{
20965		CompatibilityEc2,
20966		CompatibilityFargate,
20967	}
20968}
20969
20970const (
20971	// ConnectivityConnected is a Connectivity enum value
20972	ConnectivityConnected = "CONNECTED"
20973
20974	// ConnectivityDisconnected is a Connectivity enum value
20975	ConnectivityDisconnected = "DISCONNECTED"
20976)
20977
20978// Connectivity_Values returns all elements of the Connectivity enum
20979func Connectivity_Values() []string {
20980	return []string{
20981		ConnectivityConnected,
20982		ConnectivityDisconnected,
20983	}
20984}
20985
20986const (
20987	// ContainerConditionStart is a ContainerCondition enum value
20988	ContainerConditionStart = "START"
20989
20990	// ContainerConditionComplete is a ContainerCondition enum value
20991	ContainerConditionComplete = "COMPLETE"
20992
20993	// ContainerConditionSuccess is a ContainerCondition enum value
20994	ContainerConditionSuccess = "SUCCESS"
20995
20996	// ContainerConditionHealthy is a ContainerCondition enum value
20997	ContainerConditionHealthy = "HEALTHY"
20998)
20999
21000// ContainerCondition_Values returns all elements of the ContainerCondition enum
21001func ContainerCondition_Values() []string {
21002	return []string{
21003		ContainerConditionStart,
21004		ContainerConditionComplete,
21005		ContainerConditionSuccess,
21006		ContainerConditionHealthy,
21007	}
21008}
21009
21010const (
21011	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
21012	ContainerInstanceFieldTags = "TAGS"
21013)
21014
21015// ContainerInstanceField_Values returns all elements of the ContainerInstanceField enum
21016func ContainerInstanceField_Values() []string {
21017	return []string{
21018		ContainerInstanceFieldTags,
21019	}
21020}
21021
21022const (
21023	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
21024	ContainerInstanceStatusActive = "ACTIVE"
21025
21026	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
21027	ContainerInstanceStatusDraining = "DRAINING"
21028
21029	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
21030	ContainerInstanceStatusRegistering = "REGISTERING"
21031
21032	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
21033	ContainerInstanceStatusDeregistering = "DEREGISTERING"
21034
21035	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
21036	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
21037)
21038
21039// ContainerInstanceStatus_Values returns all elements of the ContainerInstanceStatus enum
21040func ContainerInstanceStatus_Values() []string {
21041	return []string{
21042		ContainerInstanceStatusActive,
21043		ContainerInstanceStatusDraining,
21044		ContainerInstanceStatusRegistering,
21045		ContainerInstanceStatusDeregistering,
21046		ContainerInstanceStatusRegistrationFailed,
21047	}
21048}
21049
21050const (
21051	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
21052	DeploymentControllerTypeEcs = "ECS"
21053
21054	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
21055	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
21056
21057	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
21058	DeploymentControllerTypeExternal = "EXTERNAL"
21059)
21060
21061// DeploymentControllerType_Values returns all elements of the DeploymentControllerType enum
21062func DeploymentControllerType_Values() []string {
21063	return []string{
21064		DeploymentControllerTypeEcs,
21065		DeploymentControllerTypeCodeDeploy,
21066		DeploymentControllerTypeExternal,
21067	}
21068}
21069
21070const (
21071	// DeploymentRolloutStateCompleted is a DeploymentRolloutState enum value
21072	DeploymentRolloutStateCompleted = "COMPLETED"
21073
21074	// DeploymentRolloutStateFailed is a DeploymentRolloutState enum value
21075	DeploymentRolloutStateFailed = "FAILED"
21076
21077	// DeploymentRolloutStateInProgress is a DeploymentRolloutState enum value
21078	DeploymentRolloutStateInProgress = "IN_PROGRESS"
21079)
21080
21081// DeploymentRolloutState_Values returns all elements of the DeploymentRolloutState enum
21082func DeploymentRolloutState_Values() []string {
21083	return []string{
21084		DeploymentRolloutStateCompleted,
21085		DeploymentRolloutStateFailed,
21086		DeploymentRolloutStateInProgress,
21087	}
21088}
21089
21090const (
21091	// DesiredStatusRunning is a DesiredStatus enum value
21092	DesiredStatusRunning = "RUNNING"
21093
21094	// DesiredStatusPending is a DesiredStatus enum value
21095	DesiredStatusPending = "PENDING"
21096
21097	// DesiredStatusStopped is a DesiredStatus enum value
21098	DesiredStatusStopped = "STOPPED"
21099)
21100
21101// DesiredStatus_Values returns all elements of the DesiredStatus enum
21102func DesiredStatus_Values() []string {
21103	return []string{
21104		DesiredStatusRunning,
21105		DesiredStatusPending,
21106		DesiredStatusStopped,
21107	}
21108}
21109
21110const (
21111	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
21112	DeviceCgroupPermissionRead = "read"
21113
21114	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
21115	DeviceCgroupPermissionWrite = "write"
21116
21117	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
21118	DeviceCgroupPermissionMknod = "mknod"
21119)
21120
21121// DeviceCgroupPermission_Values returns all elements of the DeviceCgroupPermission enum
21122func DeviceCgroupPermission_Values() []string {
21123	return []string{
21124		DeviceCgroupPermissionRead,
21125		DeviceCgroupPermissionWrite,
21126		DeviceCgroupPermissionMknod,
21127	}
21128}
21129
21130const (
21131	// EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value
21132	EFSAuthorizationConfigIAMEnabled = "ENABLED"
21133
21134	// EFSAuthorizationConfigIAMDisabled is a EFSAuthorizationConfigIAM enum value
21135	EFSAuthorizationConfigIAMDisabled = "DISABLED"
21136)
21137
21138// EFSAuthorizationConfigIAM_Values returns all elements of the EFSAuthorizationConfigIAM enum
21139func EFSAuthorizationConfigIAM_Values() []string {
21140	return []string{
21141		EFSAuthorizationConfigIAMEnabled,
21142		EFSAuthorizationConfigIAMDisabled,
21143	}
21144}
21145
21146const (
21147	// EFSTransitEncryptionEnabled is a EFSTransitEncryption enum value
21148	EFSTransitEncryptionEnabled = "ENABLED"
21149
21150	// EFSTransitEncryptionDisabled is a EFSTransitEncryption enum value
21151	EFSTransitEncryptionDisabled = "DISABLED"
21152)
21153
21154// EFSTransitEncryption_Values returns all elements of the EFSTransitEncryption enum
21155func EFSTransitEncryption_Values() []string {
21156	return []string{
21157		EFSTransitEncryptionEnabled,
21158		EFSTransitEncryptionDisabled,
21159	}
21160}
21161
21162const (
21163	// EnvironmentFileTypeS3 is a EnvironmentFileType enum value
21164	EnvironmentFileTypeS3 = "s3"
21165)
21166
21167// EnvironmentFileType_Values returns all elements of the EnvironmentFileType enum
21168func EnvironmentFileType_Values() []string {
21169	return []string{
21170		EnvironmentFileTypeS3,
21171	}
21172}
21173
21174const (
21175	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
21176	FirelensConfigurationTypeFluentd = "fluentd"
21177
21178	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
21179	FirelensConfigurationTypeFluentbit = "fluentbit"
21180)
21181
21182// FirelensConfigurationType_Values returns all elements of the FirelensConfigurationType enum
21183func FirelensConfigurationType_Values() []string {
21184	return []string{
21185		FirelensConfigurationTypeFluentd,
21186		FirelensConfigurationTypeFluentbit,
21187	}
21188}
21189
21190const (
21191	// HealthStatusHealthy is a HealthStatus enum value
21192	HealthStatusHealthy = "HEALTHY"
21193
21194	// HealthStatusUnhealthy is a HealthStatus enum value
21195	HealthStatusUnhealthy = "UNHEALTHY"
21196
21197	// HealthStatusUnknown is a HealthStatus enum value
21198	HealthStatusUnknown = "UNKNOWN"
21199)
21200
21201// HealthStatus_Values returns all elements of the HealthStatus enum
21202func HealthStatus_Values() []string {
21203	return []string{
21204		HealthStatusHealthy,
21205		HealthStatusUnhealthy,
21206		HealthStatusUnknown,
21207	}
21208}
21209
21210const (
21211	// IpcModeHost is a IpcMode enum value
21212	IpcModeHost = "host"
21213
21214	// IpcModeTask is a IpcMode enum value
21215	IpcModeTask = "task"
21216
21217	// IpcModeNone is a IpcMode enum value
21218	IpcModeNone = "none"
21219)
21220
21221// IpcMode_Values returns all elements of the IpcMode enum
21222func IpcMode_Values() []string {
21223	return []string{
21224		IpcModeHost,
21225		IpcModeTask,
21226		IpcModeNone,
21227	}
21228}
21229
21230const (
21231	// LaunchTypeEc2 is a LaunchType enum value
21232	LaunchTypeEc2 = "EC2"
21233
21234	// LaunchTypeFargate is a LaunchType enum value
21235	LaunchTypeFargate = "FARGATE"
21236)
21237
21238// LaunchType_Values returns all elements of the LaunchType enum
21239func LaunchType_Values() []string {
21240	return []string{
21241		LaunchTypeEc2,
21242		LaunchTypeFargate,
21243	}
21244}
21245
21246const (
21247	// LogDriverJsonFile is a LogDriver enum value
21248	LogDriverJsonFile = "json-file"
21249
21250	// LogDriverSyslog is a LogDriver enum value
21251	LogDriverSyslog = "syslog"
21252
21253	// LogDriverJournald is a LogDriver enum value
21254	LogDriverJournald = "journald"
21255
21256	// LogDriverGelf is a LogDriver enum value
21257	LogDriverGelf = "gelf"
21258
21259	// LogDriverFluentd is a LogDriver enum value
21260	LogDriverFluentd = "fluentd"
21261
21262	// LogDriverAwslogs is a LogDriver enum value
21263	LogDriverAwslogs = "awslogs"
21264
21265	// LogDriverSplunk is a LogDriver enum value
21266	LogDriverSplunk = "splunk"
21267
21268	// LogDriverAwsfirelens is a LogDriver enum value
21269	LogDriverAwsfirelens = "awsfirelens"
21270)
21271
21272// LogDriver_Values returns all elements of the LogDriver enum
21273func LogDriver_Values() []string {
21274	return []string{
21275		LogDriverJsonFile,
21276		LogDriverSyslog,
21277		LogDriverJournald,
21278		LogDriverGelf,
21279		LogDriverFluentd,
21280		LogDriverAwslogs,
21281		LogDriverSplunk,
21282		LogDriverAwsfirelens,
21283	}
21284}
21285
21286const (
21287	// ManagedScalingStatusEnabled is a ManagedScalingStatus enum value
21288	ManagedScalingStatusEnabled = "ENABLED"
21289
21290	// ManagedScalingStatusDisabled is a ManagedScalingStatus enum value
21291	ManagedScalingStatusDisabled = "DISABLED"
21292)
21293
21294// ManagedScalingStatus_Values returns all elements of the ManagedScalingStatus enum
21295func ManagedScalingStatus_Values() []string {
21296	return []string{
21297		ManagedScalingStatusEnabled,
21298		ManagedScalingStatusDisabled,
21299	}
21300}
21301
21302const (
21303	// ManagedTerminationProtectionEnabled is a ManagedTerminationProtection enum value
21304	ManagedTerminationProtectionEnabled = "ENABLED"
21305
21306	// ManagedTerminationProtectionDisabled is a ManagedTerminationProtection enum value
21307	ManagedTerminationProtectionDisabled = "DISABLED"
21308)
21309
21310// ManagedTerminationProtection_Values returns all elements of the ManagedTerminationProtection enum
21311func ManagedTerminationProtection_Values() []string {
21312	return []string{
21313		ManagedTerminationProtectionEnabled,
21314		ManagedTerminationProtectionDisabled,
21315	}
21316}
21317
21318const (
21319	// NetworkModeBridge is a NetworkMode enum value
21320	NetworkModeBridge = "bridge"
21321
21322	// NetworkModeHost is a NetworkMode enum value
21323	NetworkModeHost = "host"
21324
21325	// NetworkModeAwsvpc is a NetworkMode enum value
21326	NetworkModeAwsvpc = "awsvpc"
21327
21328	// NetworkModeNone is a NetworkMode enum value
21329	NetworkModeNone = "none"
21330)
21331
21332// NetworkMode_Values returns all elements of the NetworkMode enum
21333func NetworkMode_Values() []string {
21334	return []string{
21335		NetworkModeBridge,
21336		NetworkModeHost,
21337		NetworkModeAwsvpc,
21338		NetworkModeNone,
21339	}
21340}
21341
21342const (
21343	// PidModeHost is a PidMode enum value
21344	PidModeHost = "host"
21345
21346	// PidModeTask is a PidMode enum value
21347	PidModeTask = "task"
21348)
21349
21350// PidMode_Values returns all elements of the PidMode enum
21351func PidMode_Values() []string {
21352	return []string{
21353		PidModeHost,
21354		PidModeTask,
21355	}
21356}
21357
21358const (
21359	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
21360	PlacementConstraintTypeDistinctInstance = "distinctInstance"
21361
21362	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
21363	PlacementConstraintTypeMemberOf = "memberOf"
21364)
21365
21366// PlacementConstraintType_Values returns all elements of the PlacementConstraintType enum
21367func PlacementConstraintType_Values() []string {
21368	return []string{
21369		PlacementConstraintTypeDistinctInstance,
21370		PlacementConstraintTypeMemberOf,
21371	}
21372}
21373
21374const (
21375	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
21376	PlacementStrategyTypeRandom = "random"
21377
21378	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
21379	PlacementStrategyTypeSpread = "spread"
21380
21381	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
21382	PlacementStrategyTypeBinpack = "binpack"
21383)
21384
21385// PlacementStrategyType_Values returns all elements of the PlacementStrategyType enum
21386func PlacementStrategyType_Values() []string {
21387	return []string{
21388		PlacementStrategyTypeRandom,
21389		PlacementStrategyTypeSpread,
21390		PlacementStrategyTypeBinpack,
21391	}
21392}
21393
21394const (
21395	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
21396	PlatformDeviceTypeGpu = "GPU"
21397)
21398
21399// PlatformDeviceType_Values returns all elements of the PlatformDeviceType enum
21400func PlatformDeviceType_Values() []string {
21401	return []string{
21402		PlatformDeviceTypeGpu,
21403	}
21404}
21405
21406const (
21407	// PropagateTagsTaskDefinition is a PropagateTags enum value
21408	PropagateTagsTaskDefinition = "TASK_DEFINITION"
21409
21410	// PropagateTagsService is a PropagateTags enum value
21411	PropagateTagsService = "SERVICE"
21412)
21413
21414// PropagateTags_Values returns all elements of the PropagateTags enum
21415func PropagateTags_Values() []string {
21416	return []string{
21417		PropagateTagsTaskDefinition,
21418		PropagateTagsService,
21419	}
21420}
21421
21422const (
21423	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
21424	ProxyConfigurationTypeAppmesh = "APPMESH"
21425)
21426
21427// ProxyConfigurationType_Values returns all elements of the ProxyConfigurationType enum
21428func ProxyConfigurationType_Values() []string {
21429	return []string{
21430		ProxyConfigurationTypeAppmesh,
21431	}
21432}
21433
21434const (
21435	// ResourceTypeGpu is a ResourceType enum value
21436	ResourceTypeGpu = "GPU"
21437
21438	// ResourceTypeInferenceAccelerator is a ResourceType enum value
21439	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
21440)
21441
21442// ResourceType_Values returns all elements of the ResourceType enum
21443func ResourceType_Values() []string {
21444	return []string{
21445		ResourceTypeGpu,
21446		ResourceTypeInferenceAccelerator,
21447	}
21448}
21449
21450const (
21451	// ScaleUnitPercent is a ScaleUnit enum value
21452	ScaleUnitPercent = "PERCENT"
21453)
21454
21455// ScaleUnit_Values returns all elements of the ScaleUnit enum
21456func ScaleUnit_Values() []string {
21457	return []string{
21458		ScaleUnitPercent,
21459	}
21460}
21461
21462const (
21463	// SchedulingStrategyReplica is a SchedulingStrategy enum value
21464	SchedulingStrategyReplica = "REPLICA"
21465
21466	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
21467	SchedulingStrategyDaemon = "DAEMON"
21468)
21469
21470// SchedulingStrategy_Values returns all elements of the SchedulingStrategy enum
21471func SchedulingStrategy_Values() []string {
21472	return []string{
21473		SchedulingStrategyReplica,
21474		SchedulingStrategyDaemon,
21475	}
21476}
21477
21478const (
21479	// ScopeTask is a Scope enum value
21480	ScopeTask = "task"
21481
21482	// ScopeShared is a Scope enum value
21483	ScopeShared = "shared"
21484)
21485
21486// Scope_Values returns all elements of the Scope enum
21487func Scope_Values() []string {
21488	return []string{
21489		ScopeTask,
21490		ScopeShared,
21491	}
21492}
21493
21494const (
21495	// ServiceFieldTags is a ServiceField enum value
21496	ServiceFieldTags = "TAGS"
21497)
21498
21499// ServiceField_Values returns all elements of the ServiceField enum
21500func ServiceField_Values() []string {
21501	return []string{
21502		ServiceFieldTags,
21503	}
21504}
21505
21506const (
21507	// SettingNameServiceLongArnFormat is a SettingName enum value
21508	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
21509
21510	// SettingNameTaskLongArnFormat is a SettingName enum value
21511	SettingNameTaskLongArnFormat = "taskLongArnFormat"
21512
21513	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
21514	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
21515
21516	// SettingNameAwsvpcTrunking is a SettingName enum value
21517	SettingNameAwsvpcTrunking = "awsvpcTrunking"
21518
21519	// SettingNameContainerInsights is a SettingName enum value
21520	SettingNameContainerInsights = "containerInsights"
21521)
21522
21523// SettingName_Values returns all elements of the SettingName enum
21524func SettingName_Values() []string {
21525	return []string{
21526		SettingNameServiceLongArnFormat,
21527		SettingNameTaskLongArnFormat,
21528		SettingNameContainerInstanceLongArnFormat,
21529		SettingNameAwsvpcTrunking,
21530		SettingNameContainerInsights,
21531	}
21532}
21533
21534const (
21535	// SortOrderAsc is a SortOrder enum value
21536	SortOrderAsc = "ASC"
21537
21538	// SortOrderDesc is a SortOrder enum value
21539	SortOrderDesc = "DESC"
21540)
21541
21542// SortOrder_Values returns all elements of the SortOrder enum
21543func SortOrder_Values() []string {
21544	return []string{
21545		SortOrderAsc,
21546		SortOrderDesc,
21547	}
21548}
21549
21550const (
21551	// StabilityStatusSteadyState is a StabilityStatus enum value
21552	StabilityStatusSteadyState = "STEADY_STATE"
21553
21554	// StabilityStatusStabilizing is a StabilityStatus enum value
21555	StabilityStatusStabilizing = "STABILIZING"
21556)
21557
21558// StabilityStatus_Values returns all elements of the StabilityStatus enum
21559func StabilityStatus_Values() []string {
21560	return []string{
21561		StabilityStatusSteadyState,
21562		StabilityStatusStabilizing,
21563	}
21564}
21565
21566const (
21567	// TargetTypeContainerInstance is a TargetType enum value
21568	TargetTypeContainerInstance = "container-instance"
21569)
21570
21571// TargetType_Values returns all elements of the TargetType enum
21572func TargetType_Values() []string {
21573	return []string{
21574		TargetTypeContainerInstance,
21575	}
21576}
21577
21578const (
21579	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
21580	TaskDefinitionFamilyStatusActive = "ACTIVE"
21581
21582	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
21583	TaskDefinitionFamilyStatusInactive = "INACTIVE"
21584
21585	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
21586	TaskDefinitionFamilyStatusAll = "ALL"
21587)
21588
21589// TaskDefinitionFamilyStatus_Values returns all elements of the TaskDefinitionFamilyStatus enum
21590func TaskDefinitionFamilyStatus_Values() []string {
21591	return []string{
21592		TaskDefinitionFamilyStatusActive,
21593		TaskDefinitionFamilyStatusInactive,
21594		TaskDefinitionFamilyStatusAll,
21595	}
21596}
21597
21598const (
21599	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
21600	TaskDefinitionFieldTags = "TAGS"
21601)
21602
21603// TaskDefinitionField_Values returns all elements of the TaskDefinitionField enum
21604func TaskDefinitionField_Values() []string {
21605	return []string{
21606		TaskDefinitionFieldTags,
21607	}
21608}
21609
21610const (
21611	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
21612	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
21613)
21614
21615// TaskDefinitionPlacementConstraintType_Values returns all elements of the TaskDefinitionPlacementConstraintType enum
21616func TaskDefinitionPlacementConstraintType_Values() []string {
21617	return []string{
21618		TaskDefinitionPlacementConstraintTypeMemberOf,
21619	}
21620}
21621
21622const (
21623	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
21624	TaskDefinitionStatusActive = "ACTIVE"
21625
21626	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
21627	TaskDefinitionStatusInactive = "INACTIVE"
21628)
21629
21630// TaskDefinitionStatus_Values returns all elements of the TaskDefinitionStatus enum
21631func TaskDefinitionStatus_Values() []string {
21632	return []string{
21633		TaskDefinitionStatusActive,
21634		TaskDefinitionStatusInactive,
21635	}
21636}
21637
21638const (
21639	// TaskFieldTags is a TaskField enum value
21640	TaskFieldTags = "TAGS"
21641)
21642
21643// TaskField_Values returns all elements of the TaskField enum
21644func TaskField_Values() []string {
21645	return []string{
21646		TaskFieldTags,
21647	}
21648}
21649
21650const (
21651	// TaskSetFieldTags is a TaskSetField enum value
21652	TaskSetFieldTags = "TAGS"
21653)
21654
21655// TaskSetField_Values returns all elements of the TaskSetField enum
21656func TaskSetField_Values() []string {
21657	return []string{
21658		TaskSetFieldTags,
21659	}
21660}
21661
21662const (
21663	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
21664	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
21665
21666	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
21667	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
21668
21669	// TaskStopCodeUserInitiated is a TaskStopCode enum value
21670	TaskStopCodeUserInitiated = "UserInitiated"
21671)
21672
21673// TaskStopCode_Values returns all elements of the TaskStopCode enum
21674func TaskStopCode_Values() []string {
21675	return []string{
21676		TaskStopCodeTaskFailedToStart,
21677		TaskStopCodeEssentialContainerExited,
21678		TaskStopCodeUserInitiated,
21679	}
21680}
21681
21682const (
21683	// TransportProtocolTcp is a TransportProtocol enum value
21684	TransportProtocolTcp = "tcp"
21685
21686	// TransportProtocolUdp is a TransportProtocol enum value
21687	TransportProtocolUdp = "udp"
21688)
21689
21690// TransportProtocol_Values returns all elements of the TransportProtocol enum
21691func TransportProtocol_Values() []string {
21692	return []string{
21693		TransportProtocolTcp,
21694		TransportProtocolUdp,
21695	}
21696}
21697
21698const (
21699	// UlimitNameCore is a UlimitName enum value
21700	UlimitNameCore = "core"
21701
21702	// UlimitNameCpu is a UlimitName enum value
21703	UlimitNameCpu = "cpu"
21704
21705	// UlimitNameData is a UlimitName enum value
21706	UlimitNameData = "data"
21707
21708	// UlimitNameFsize is a UlimitName enum value
21709	UlimitNameFsize = "fsize"
21710
21711	// UlimitNameLocks is a UlimitName enum value
21712	UlimitNameLocks = "locks"
21713
21714	// UlimitNameMemlock is a UlimitName enum value
21715	UlimitNameMemlock = "memlock"
21716
21717	// UlimitNameMsgqueue is a UlimitName enum value
21718	UlimitNameMsgqueue = "msgqueue"
21719
21720	// UlimitNameNice is a UlimitName enum value
21721	UlimitNameNice = "nice"
21722
21723	// UlimitNameNofile is a UlimitName enum value
21724	UlimitNameNofile = "nofile"
21725
21726	// UlimitNameNproc is a UlimitName enum value
21727	UlimitNameNproc = "nproc"
21728
21729	// UlimitNameRss is a UlimitName enum value
21730	UlimitNameRss = "rss"
21731
21732	// UlimitNameRtprio is a UlimitName enum value
21733	UlimitNameRtprio = "rtprio"
21734
21735	// UlimitNameRttime is a UlimitName enum value
21736	UlimitNameRttime = "rttime"
21737
21738	// UlimitNameSigpending is a UlimitName enum value
21739	UlimitNameSigpending = "sigpending"
21740
21741	// UlimitNameStack is a UlimitName enum value
21742	UlimitNameStack = "stack"
21743)
21744
21745// UlimitName_Values returns all elements of the UlimitName enum
21746func UlimitName_Values() []string {
21747	return []string{
21748		UlimitNameCore,
21749		UlimitNameCpu,
21750		UlimitNameData,
21751		UlimitNameFsize,
21752		UlimitNameLocks,
21753		UlimitNameMemlock,
21754		UlimitNameMsgqueue,
21755		UlimitNameNice,
21756		UlimitNameNofile,
21757		UlimitNameNproc,
21758		UlimitNameRss,
21759		UlimitNameRtprio,
21760		UlimitNameRttime,
21761		UlimitNameSigpending,
21762		UlimitNameStack,
21763	}
21764}
21765