1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package ecs
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opCreateCapacityProvider = "CreateCapacityProvider"
17
18// CreateCapacityProviderRequest generates a "aws/request.Request" representing the
19// client's request for the CreateCapacityProvider operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateCapacityProvider for more information on using the CreateCapacityProvider
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateCapacityProviderRequest method.
34//    req, resp := client.CreateCapacityProviderRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider
42func (c *ECS) CreateCapacityProviderRequest(input *CreateCapacityProviderInput) (req *request.Request, output *CreateCapacityProviderOutput) {
43	op := &request.Operation{
44		Name:       opCreateCapacityProvider,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateCapacityProviderInput{}
51	}
52
53	output = &CreateCapacityProviderOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateCapacityProvider API operation for Amazon EC2 Container Service.
59//
60// Creates a new capacity provider. Capacity providers are associated with an
61// Amazon ECS cluster and are used in capacity provider strategies to facilitate
62// cluster auto scaling.
63//
64// Only capacity providers using an Auto Scaling group can be created. Amazon
65// ECS tasks on AWS Fargate use the FARGATE and FARGATE_SPOT capacity providers
66// which are already created and available to all accounts in Regions supported
67// by AWS Fargate.
68//
69// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
70// with awserr.Error's Code and Message methods to get detailed information about
71// the error.
72//
73// See the AWS API reference guide for Amazon EC2 Container Service's
74// API operation CreateCapacityProvider for usage and error information.
75//
76// Returned Error Types:
77//   * ServerException
78//   These errors are usually caused by a server issue.
79//
80//   * ClientException
81//   These errors are usually caused by a client action, such as using an action
82//   or resource on behalf of a user that doesn't have permissions to use the
83//   action or resource, or specifying an identifier that is not valid.
84//
85//   * InvalidParameterException
86//   The specified parameter is invalid. Review the available parameters for the
87//   API request.
88//
89//   * LimitExceededException
90//   The limit for the resource has been exceeded.
91//
92//   * UpdateInProgressException
93//   There is already a current Amazon ECS container agent update in progress
94//   on the specified container instance. If the container agent becomes disconnected
95//   while it is in a transitional stage, such as PENDING or STAGING, the update
96//   process can get stuck in that state. However, when the agent reconnects,
97//   it resumes where it stopped previously.
98//
99// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider
100func (c *ECS) CreateCapacityProvider(input *CreateCapacityProviderInput) (*CreateCapacityProviderOutput, error) {
101	req, out := c.CreateCapacityProviderRequest(input)
102	return out, req.Send()
103}
104
105// CreateCapacityProviderWithContext is the same as CreateCapacityProvider with the addition of
106// the ability to pass a context and additional request options.
107//
108// See CreateCapacityProvider for details on how to use this API operation.
109//
110// The context must be non-nil and will be used for request cancellation. If
111// the context is nil a panic will occur. In the future the SDK may create
112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
113// for more information on using Contexts.
114func (c *ECS) CreateCapacityProviderWithContext(ctx aws.Context, input *CreateCapacityProviderInput, opts ...request.Option) (*CreateCapacityProviderOutput, error) {
115	req, out := c.CreateCapacityProviderRequest(input)
116	req.SetContext(ctx)
117	req.ApplyOptions(opts...)
118	return out, req.Send()
119}
120
121const opCreateCluster = "CreateCluster"
122
123// CreateClusterRequest generates a "aws/request.Request" representing the
124// client's request for the CreateCluster operation. The "output" return
125// value will be populated with the request's response once the request completes
126// successfully.
127//
128// Use "Send" method on the returned Request to send the API call to the service.
129// the "output" return value is not valid until after Send returns without error.
130//
131// See CreateCluster for more information on using the CreateCluster
132// API call, and error handling.
133//
134// This method is useful when you want to inject custom logic or configuration
135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
136//
137//
138//    // Example sending a request using the CreateClusterRequest method.
139//    req, resp := client.CreateClusterRequest(params)
140//
141//    err := req.Send()
142//    if err == nil { // resp is now filled
143//        fmt.Println(resp)
144//    }
145//
146// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
147func (c *ECS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
148	op := &request.Operation{
149		Name:       opCreateCluster,
150		HTTPMethod: "POST",
151		HTTPPath:   "/",
152	}
153
154	if input == nil {
155		input = &CreateClusterInput{}
156	}
157
158	output = &CreateClusterOutput{}
159	req = c.newRequest(op, input, output)
160	return
161}
162
163// CreateCluster API operation for Amazon EC2 Container Service.
164//
165// Creates a new Amazon ECS cluster. By default, your account receives a default
166// cluster when you launch your first container instance. However, you can create
167// your own cluster with a unique name with the CreateCluster action.
168//
169// When you call the CreateCluster API operation, Amazon ECS attempts to create
170// the Amazon ECS service-linked role for your account so that required resources
171// in other AWS services can be managed on your behalf. However, if the IAM
172// user that makes the call does not have permissions to create the service-linked
173// role, it is not created. For more information, see Using Service-Linked Roles
174// for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
175// in the Amazon Elastic Container Service Developer Guide.
176//
177// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
178// with awserr.Error's Code and Message methods to get detailed information about
179// the error.
180//
181// See the AWS API reference guide for Amazon EC2 Container Service's
182// API operation CreateCluster for usage and error information.
183//
184// Returned Error Types:
185//   * ServerException
186//   These errors are usually caused by a server issue.
187//
188//   * ClientException
189//   These errors are usually caused by a client action, such as using an action
190//   or resource on behalf of a user that doesn't have permissions to use the
191//   action or resource, or specifying an identifier that is not valid.
192//
193//   * InvalidParameterException
194//   The specified parameter is invalid. Review the available parameters for the
195//   API request.
196//
197// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
198func (c *ECS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
199	req, out := c.CreateClusterRequest(input)
200	return out, req.Send()
201}
202
203// CreateClusterWithContext is the same as CreateCluster with the addition of
204// the ability to pass a context and additional request options.
205//
206// See CreateCluster for details on how to use this API operation.
207//
208// The context must be non-nil and will be used for request cancellation. If
209// the context is nil a panic will occur. In the future the SDK may create
210// sub-contexts for http.Requests. See https://golang.org/pkg/context/
211// for more information on using Contexts.
212func (c *ECS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
213	req, out := c.CreateClusterRequest(input)
214	req.SetContext(ctx)
215	req.ApplyOptions(opts...)
216	return out, req.Send()
217}
218
219const opCreateService = "CreateService"
220
221// CreateServiceRequest generates a "aws/request.Request" representing the
222// client's request for the CreateService operation. The "output" return
223// value will be populated with the request's response once the request completes
224// successfully.
225//
226// Use "Send" method on the returned Request to send the API call to the service.
227// the "output" return value is not valid until after Send returns without error.
228//
229// See CreateService for more information on using the CreateService
230// API call, and error handling.
231//
232// This method is useful when you want to inject custom logic or configuration
233// into the SDK's request lifecycle. Such as custom headers, or retry logic.
234//
235//
236//    // Example sending a request using the CreateServiceRequest method.
237//    req, resp := client.CreateServiceRequest(params)
238//
239//    err := req.Send()
240//    if err == nil { // resp is now filled
241//        fmt.Println(resp)
242//    }
243//
244// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
245func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
246	op := &request.Operation{
247		Name:       opCreateService,
248		HTTPMethod: "POST",
249		HTTPPath:   "/",
250	}
251
252	if input == nil {
253		input = &CreateServiceInput{}
254	}
255
256	output = &CreateServiceOutput{}
257	req = c.newRequest(op, input, output)
258	return
259}
260
261// CreateService API operation for Amazon EC2 Container Service.
262//
263// Runs and maintains a desired number of tasks from a specified task definition.
264// If the number of tasks running in a service drops below the desiredCount,
265// Amazon ECS runs another copy of the task in the specified cluster. To update
266// an existing service, see the UpdateService action.
267//
268// In addition to maintaining the desired count of tasks in your service, you
269// can optionally run your service behind one or more load balancers. The load
270// balancers distribute traffic across the tasks that are associated with the
271// service. For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
272// in the Amazon Elastic Container Service Developer Guide.
273//
274// Tasks for services that do not use a load balancer are considered healthy
275// if they're in the RUNNING state. Tasks for services that do use a load balancer
276// are considered healthy if they're in the RUNNING state and the container
277// instance that they're hosted on is reported as healthy by the load balancer.
278//
279// There are two service scheduler strategies available:
280//
281//    * REPLICA - The replica scheduling strategy places and maintains the desired
282//    number of tasks across your cluster. By default, the service scheduler
283//    spreads tasks across Availability Zones. You can use task placement strategies
284//    and constraints to customize task placement decisions. For more information,
285//    see Service Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
286//    in the Amazon Elastic Container Service Developer Guide.
287//
288//    * DAEMON - The daemon scheduling strategy deploys exactly one task on
289//    each active container instance that meets all of the task placement constraints
290//    that you specify in your cluster. The service scheduler also evaluates
291//    the task placement constraints for running tasks and will stop tasks that
292//    do not meet the placement constraints. When using this strategy, you don't
293//    need to specify a desired number of tasks, a task placement strategy,
294//    or use Service Auto Scaling policies. For more information, see Service
295//    Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
296//    in the Amazon Elastic Container Service Developer Guide.
297//
298// You can optionally specify a deployment configuration for your service. The
299// deployment is triggered by changing properties, such as the task definition
300// or the desired count of a service, with an UpdateService operation. The default
301// value for a replica service for minimumHealthyPercent is 100%. The default
302// value for a daemon service for minimumHealthyPercent is 0%.
303//
304// If a service is using the ECS deployment controller, the minimum healthy
305// percent represents a lower limit on the number of tasks in a service that
306// must remain in the RUNNING state during a deployment, as a percentage of
307// the desired number of tasks (rounded up to the nearest integer), and while
308// any container instances are in the DRAINING state if the service contains
309// tasks using the EC2 launch type. This parameter enables you to deploy without
310// using additional cluster capacity. For example, if your service has a desired
311// number of four tasks and a minimum healthy percent of 50%, the scheduler
312// might stop two existing tasks to free up cluster capacity before starting
313// two new tasks. Tasks for services that do not use a load balancer are considered
314// healthy if they're in the RUNNING state. Tasks for services that do use a
315// load balancer are considered healthy if they're in the RUNNING state and
316// they're reported as healthy by the load balancer. The default value for minimum
317// healthy percent is 100%.
318//
319// If a service is using the ECS deployment controller, the maximum percent
320// parameter represents an upper limit on the number of tasks in a service that
321// are allowed in the RUNNING or PENDING state during a deployment, as a percentage
322// of the desired number of tasks (rounded down to the nearest integer), and
323// while any container instances are in the DRAINING state if the service contains
324// tasks using the EC2 launch type. This parameter enables you to define the
325// deployment batch size. For example, if your service has a desired number
326// of four tasks and a maximum percent value of 200%, the scheduler may start
327// four new tasks before stopping the four older tasks (provided that the cluster
328// resources required to do this are available). The default value for maximum
329// percent is 200%.
330//
331// If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller
332// types and tasks that use the EC2 launch type, the minimum healthy percent
333// and maximum percent values are used only to define the lower and upper limit
334// on the number of the tasks in the service that remain in the RUNNING state
335// while the container instances are in the DRAINING state. If the tasks in
336// the service use the Fargate launch type, the minimum healthy percent and
337// maximum percent values aren't used, although they're currently visible when
338// describing your service.
339//
340// When creating a service that uses the EXTERNAL deployment controller, you
341// can specify only parameters that aren't controlled at the task set level.
342// The only required parameter is the service name. You control your services
343// using the CreateTaskSet operation. For more information, see Amazon ECS Deployment
344// Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
345// in the Amazon Elastic Container Service Developer Guide.
346//
347// When the service scheduler launches new tasks, it determines task placement
348// in your cluster using the following logic:
349//
350//    * Determine which of the container instances in your cluster can support
351//    your service's task definition (for example, they have the required CPU,
352//    memory, ports, and container instance attributes).
353//
354//    * By default, the service scheduler attempts to balance tasks across Availability
355//    Zones in this manner (although you can choose a different placement strategy)
356//    with the placementStrategy parameter): Sort the valid container instances,
357//    giving priority to instances that have the fewest number of running tasks
358//    for this service in their respective Availability Zone. For example, if
359//    zone A has one running service task and zones B and C each have zero,
360//    valid container instances in either zone B or C are considered optimal
361//    for placement. Place the new service task on a valid container instance
362//    in an optimal Availability Zone (based on the previous steps), favoring
363//    container instances with the fewest number of running tasks for this service.
364//
365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
366// with awserr.Error's Code and Message methods to get detailed information about
367// the error.
368//
369// See the AWS API reference guide for Amazon EC2 Container Service's
370// API operation CreateService for usage and error information.
371//
372// Returned Error Types:
373//   * ServerException
374//   These errors are usually caused by a server issue.
375//
376//   * ClientException
377//   These errors are usually caused by a client action, such as using an action
378//   or resource on behalf of a user that doesn't have permissions to use the
379//   action or resource, or specifying an identifier that is not valid.
380//
381//   * InvalidParameterException
382//   The specified parameter is invalid. Review the available parameters for the
383//   API request.
384//
385//   * ClusterNotFoundException
386//   The specified cluster could not be found. You can view your available clusters
387//   with ListClusters. Amazon ECS clusters are Region-specific.
388//
389//   * UnsupportedFeatureException
390//   The specified task is not supported in this Region.
391//
392//   * PlatformUnknownException
393//   The specified platform version does not exist.
394//
395//   * PlatformTaskDefinitionIncompatibilityException
396//   The specified platform version does not satisfy the task definition's required
397//   capabilities.
398//
399//   * AccessDeniedException
400//   You do not have authorization to perform the requested action.
401//
402// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
403func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
404	req, out := c.CreateServiceRequest(input)
405	return out, req.Send()
406}
407
408// CreateServiceWithContext is the same as CreateService with the addition of
409// the ability to pass a context and additional request options.
410//
411// See CreateService for details on how to use this API operation.
412//
413// The context must be non-nil and will be used for request cancellation. If
414// the context is nil a panic will occur. In the future the SDK may create
415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
416// for more information on using Contexts.
417func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
418	req, out := c.CreateServiceRequest(input)
419	req.SetContext(ctx)
420	req.ApplyOptions(opts...)
421	return out, req.Send()
422}
423
424const opCreateTaskSet = "CreateTaskSet"
425
426// CreateTaskSetRequest generates a "aws/request.Request" representing the
427// client's request for the CreateTaskSet operation. The "output" return
428// value will be populated with the request's response once the request completes
429// successfully.
430//
431// Use "Send" method on the returned Request to send the API call to the service.
432// the "output" return value is not valid until after Send returns without error.
433//
434// See CreateTaskSet for more information on using the CreateTaskSet
435// API call, and error handling.
436//
437// This method is useful when you want to inject custom logic or configuration
438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
439//
440//
441//    // Example sending a request using the CreateTaskSetRequest method.
442//    req, resp := client.CreateTaskSetRequest(params)
443//
444//    err := req.Send()
445//    if err == nil { // resp is now filled
446//        fmt.Println(resp)
447//    }
448//
449// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
450func (c *ECS) CreateTaskSetRequest(input *CreateTaskSetInput) (req *request.Request, output *CreateTaskSetOutput) {
451	op := &request.Operation{
452		Name:       opCreateTaskSet,
453		HTTPMethod: "POST",
454		HTTPPath:   "/",
455	}
456
457	if input == nil {
458		input = &CreateTaskSetInput{}
459	}
460
461	output = &CreateTaskSetOutput{}
462	req = c.newRequest(op, input, output)
463	return
464}
465
466// CreateTaskSet API operation for Amazon EC2 Container Service.
467//
468// Create a task set in the specified cluster and service. This is used when
469// a service uses the EXTERNAL deployment controller type. For more information,
470// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
471// in the Amazon Elastic Container Service Developer Guide.
472//
473// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
474// with awserr.Error's Code and Message methods to get detailed information about
475// the error.
476//
477// See the AWS API reference guide for Amazon EC2 Container Service's
478// API operation CreateTaskSet for usage and error information.
479//
480// Returned Error Types:
481//   * ServerException
482//   These errors are usually caused by a server issue.
483//
484//   * ClientException
485//   These errors are usually caused by a client action, such as using an action
486//   or resource on behalf of a user that doesn't have permissions to use the
487//   action or resource, or specifying an identifier that is not valid.
488//
489//   * InvalidParameterException
490//   The specified parameter is invalid. Review the available parameters for the
491//   API request.
492//
493//   * ClusterNotFoundException
494//   The specified cluster could not be found. You can view your available clusters
495//   with ListClusters. Amazon ECS clusters are Region-specific.
496//
497//   * UnsupportedFeatureException
498//   The specified task is not supported in this Region.
499//
500//   * PlatformUnknownException
501//   The specified platform version does not exist.
502//
503//   * PlatformTaskDefinitionIncompatibilityException
504//   The specified platform version does not satisfy the task definition's required
505//   capabilities.
506//
507//   * AccessDeniedException
508//   You do not have authorization to perform the requested action.
509//
510//   * ServiceNotFoundException
511//   The specified service could not be found. You can view your available services
512//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
513//
514//   * ServiceNotActiveException
515//   The specified service is not active. You can't update a service that is inactive.
516//   If you have previously deleted a service, you can re-create it with CreateService.
517//
518// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
519func (c *ECS) CreateTaskSet(input *CreateTaskSetInput) (*CreateTaskSetOutput, error) {
520	req, out := c.CreateTaskSetRequest(input)
521	return out, req.Send()
522}
523
524// CreateTaskSetWithContext is the same as CreateTaskSet with the addition of
525// the ability to pass a context and additional request options.
526//
527// See CreateTaskSet for details on how to use this API operation.
528//
529// The context must be non-nil and will be used for request cancellation. If
530// the context is nil a panic will occur. In the future the SDK may create
531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
532// for more information on using Contexts.
533func (c *ECS) CreateTaskSetWithContext(ctx aws.Context, input *CreateTaskSetInput, opts ...request.Option) (*CreateTaskSetOutput, error) {
534	req, out := c.CreateTaskSetRequest(input)
535	req.SetContext(ctx)
536	req.ApplyOptions(opts...)
537	return out, req.Send()
538}
539
540const opDeleteAccountSetting = "DeleteAccountSetting"
541
542// DeleteAccountSettingRequest generates a "aws/request.Request" representing the
543// client's request for the DeleteAccountSetting operation. The "output" return
544// value will be populated with the request's response once the request completes
545// successfully.
546//
547// Use "Send" method on the returned Request to send the API call to the service.
548// the "output" return value is not valid until after Send returns without error.
549//
550// See DeleteAccountSetting for more information on using the DeleteAccountSetting
551// API call, and error handling.
552//
553// This method is useful when you want to inject custom logic or configuration
554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
555//
556//
557//    // Example sending a request using the DeleteAccountSettingRequest method.
558//    req, resp := client.DeleteAccountSettingRequest(params)
559//
560//    err := req.Send()
561//    if err == nil { // resp is now filled
562//        fmt.Println(resp)
563//    }
564//
565// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
566func (c *ECS) DeleteAccountSettingRequest(input *DeleteAccountSettingInput) (req *request.Request, output *DeleteAccountSettingOutput) {
567	op := &request.Operation{
568		Name:       opDeleteAccountSetting,
569		HTTPMethod: "POST",
570		HTTPPath:   "/",
571	}
572
573	if input == nil {
574		input = &DeleteAccountSettingInput{}
575	}
576
577	output = &DeleteAccountSettingOutput{}
578	req = c.newRequest(op, input, output)
579	return
580}
581
582// DeleteAccountSetting API operation for Amazon EC2 Container Service.
583//
584// Disables an account setting for a specified IAM user, IAM role, or the root
585// user for an account.
586//
587// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
588// with awserr.Error's Code and Message methods to get detailed information about
589// the error.
590//
591// See the AWS API reference guide for Amazon EC2 Container Service's
592// API operation DeleteAccountSetting for usage and error information.
593//
594// Returned Error Types:
595//   * ServerException
596//   These errors are usually caused by a server issue.
597//
598//   * ClientException
599//   These errors are usually caused by a client action, such as using an action
600//   or resource on behalf of a user that doesn't have permissions to use the
601//   action or resource, or specifying an identifier that is not valid.
602//
603//   * InvalidParameterException
604//   The specified parameter is invalid. Review the available parameters for the
605//   API request.
606//
607// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
608func (c *ECS) DeleteAccountSetting(input *DeleteAccountSettingInput) (*DeleteAccountSettingOutput, error) {
609	req, out := c.DeleteAccountSettingRequest(input)
610	return out, req.Send()
611}
612
613// DeleteAccountSettingWithContext is the same as DeleteAccountSetting with the addition of
614// the ability to pass a context and additional request options.
615//
616// See DeleteAccountSetting for details on how to use this API operation.
617//
618// The context must be non-nil and will be used for request cancellation. If
619// the context is nil a panic will occur. In the future the SDK may create
620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
621// for more information on using Contexts.
622func (c *ECS) DeleteAccountSettingWithContext(ctx aws.Context, input *DeleteAccountSettingInput, opts ...request.Option) (*DeleteAccountSettingOutput, error) {
623	req, out := c.DeleteAccountSettingRequest(input)
624	req.SetContext(ctx)
625	req.ApplyOptions(opts...)
626	return out, req.Send()
627}
628
629const opDeleteAttributes = "DeleteAttributes"
630
631// DeleteAttributesRequest generates a "aws/request.Request" representing the
632// client's request for the DeleteAttributes operation. The "output" return
633// value will be populated with the request's response once the request completes
634// successfully.
635//
636// Use "Send" method on the returned Request to send the API call to the service.
637// the "output" return value is not valid until after Send returns without error.
638//
639// See DeleteAttributes for more information on using the DeleteAttributes
640// API call, and error handling.
641//
642// This method is useful when you want to inject custom logic or configuration
643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
644//
645//
646//    // Example sending a request using the DeleteAttributesRequest method.
647//    req, resp := client.DeleteAttributesRequest(params)
648//
649//    err := req.Send()
650//    if err == nil { // resp is now filled
651//        fmt.Println(resp)
652//    }
653//
654// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
655func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
656	op := &request.Operation{
657		Name:       opDeleteAttributes,
658		HTTPMethod: "POST",
659		HTTPPath:   "/",
660	}
661
662	if input == nil {
663		input = &DeleteAttributesInput{}
664	}
665
666	output = &DeleteAttributesOutput{}
667	req = c.newRequest(op, input, output)
668	return
669}
670
671// DeleteAttributes API operation for Amazon EC2 Container Service.
672//
673// Deletes one or more custom attributes from an Amazon ECS resource.
674//
675// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
676// with awserr.Error's Code and Message methods to get detailed information about
677// the error.
678//
679// See the AWS API reference guide for Amazon EC2 Container Service's
680// API operation DeleteAttributes for usage and error information.
681//
682// Returned Error Types:
683//   * ClusterNotFoundException
684//   The specified cluster could not be found. You can view your available clusters
685//   with ListClusters. Amazon ECS clusters are Region-specific.
686//
687//   * TargetNotFoundException
688//   The specified target could not be found. You can view your available container
689//   instances with ListContainerInstances. Amazon ECS container instances are
690//   cluster-specific and Region-specific.
691//
692//   * InvalidParameterException
693//   The specified parameter is invalid. Review the available parameters for the
694//   API request.
695//
696// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
697func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
698	req, out := c.DeleteAttributesRequest(input)
699	return out, req.Send()
700}
701
702// DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
703// the ability to pass a context and additional request options.
704//
705// See DeleteAttributes for details on how to use this API operation.
706//
707// The context must be non-nil and will be used for request cancellation. If
708// the context is nil a panic will occur. In the future the SDK may create
709// sub-contexts for http.Requests. See https://golang.org/pkg/context/
710// for more information on using Contexts.
711func (c *ECS) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
712	req, out := c.DeleteAttributesRequest(input)
713	req.SetContext(ctx)
714	req.ApplyOptions(opts...)
715	return out, req.Send()
716}
717
718const opDeleteCapacityProvider = "DeleteCapacityProvider"
719
720// DeleteCapacityProviderRequest generates a "aws/request.Request" representing the
721// client's request for the DeleteCapacityProvider operation. The "output" return
722// value will be populated with the request's response once the request completes
723// successfully.
724//
725// Use "Send" method on the returned Request to send the API call to the service.
726// the "output" return value is not valid until after Send returns without error.
727//
728// See DeleteCapacityProvider for more information on using the DeleteCapacityProvider
729// API call, and error handling.
730//
731// This method is useful when you want to inject custom logic or configuration
732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
733//
734//
735//    // Example sending a request using the DeleteCapacityProviderRequest method.
736//    req, resp := client.DeleteCapacityProviderRequest(params)
737//
738//    err := req.Send()
739//    if err == nil { // resp is now filled
740//        fmt.Println(resp)
741//    }
742//
743// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProvider
744func (c *ECS) DeleteCapacityProviderRequest(input *DeleteCapacityProviderInput) (req *request.Request, output *DeleteCapacityProviderOutput) {
745	op := &request.Operation{
746		Name:       opDeleteCapacityProvider,
747		HTTPMethod: "POST",
748		HTTPPath:   "/",
749	}
750
751	if input == nil {
752		input = &DeleteCapacityProviderInput{}
753	}
754
755	output = &DeleteCapacityProviderOutput{}
756	req = c.newRequest(op, input, output)
757	return
758}
759
760// DeleteCapacityProvider API operation for Amazon EC2 Container Service.
761//
762// Deletes the specified capacity provider.
763//
764// The FARGATE and FARGATE_SPOT capacity providers are reserved and cannot be
765// deleted. You can disassociate them from a cluster using either the PutClusterCapacityProviders
766// API or by deleting the cluster.
767//
768// Prior to a capacity provider being deleted, the capacity provider must be
769// removed from the capacity provider strategy from all services. The UpdateService
770// API can be used to remove a capacity provider from a service's capacity provider
771// strategy. When updating a service, the forceNewDeployment option can be used
772// to ensure that any tasks using the Amazon EC2 instance capacity provided
773// by the capacity provider are transitioned to use the capacity from the remaining
774// capacity providers. Only capacity providers that are not associated with
775// a cluster can be deleted. To remove a capacity provider from a cluster, you
776// can either use PutClusterCapacityProviders or delete the cluster.
777//
778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
779// with awserr.Error's Code and Message methods to get detailed information about
780// the error.
781//
782// See the AWS API reference guide for Amazon EC2 Container Service's
783// API operation DeleteCapacityProvider for usage and error information.
784//
785// Returned Error Types:
786//   * ServerException
787//   These errors are usually caused by a server issue.
788//
789//   * ClientException
790//   These errors are usually caused by a client action, such as using an action
791//   or resource on behalf of a user that doesn't have permissions to use the
792//   action or resource, or specifying an identifier that is not valid.
793//
794//   * InvalidParameterException
795//   The specified parameter is invalid. Review the available parameters for the
796//   API request.
797//
798// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProvider
799func (c *ECS) DeleteCapacityProvider(input *DeleteCapacityProviderInput) (*DeleteCapacityProviderOutput, error) {
800	req, out := c.DeleteCapacityProviderRequest(input)
801	return out, req.Send()
802}
803
804// DeleteCapacityProviderWithContext is the same as DeleteCapacityProvider with the addition of
805// the ability to pass a context and additional request options.
806//
807// See DeleteCapacityProvider for details on how to use this API operation.
808//
809// The context must be non-nil and will be used for request cancellation. If
810// the context is nil a panic will occur. In the future the SDK may create
811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
812// for more information on using Contexts.
813func (c *ECS) DeleteCapacityProviderWithContext(ctx aws.Context, input *DeleteCapacityProviderInput, opts ...request.Option) (*DeleteCapacityProviderOutput, error) {
814	req, out := c.DeleteCapacityProviderRequest(input)
815	req.SetContext(ctx)
816	req.ApplyOptions(opts...)
817	return out, req.Send()
818}
819
820const opDeleteCluster = "DeleteCluster"
821
822// DeleteClusterRequest generates a "aws/request.Request" representing the
823// client's request for the DeleteCluster operation. The "output" return
824// value will be populated with the request's response once the request completes
825// successfully.
826//
827// Use "Send" method on the returned Request to send the API call to the service.
828// the "output" return value is not valid until after Send returns without error.
829//
830// See DeleteCluster for more information on using the DeleteCluster
831// API call, and error handling.
832//
833// This method is useful when you want to inject custom logic or configuration
834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
835//
836//
837//    // Example sending a request using the DeleteClusterRequest method.
838//    req, resp := client.DeleteClusterRequest(params)
839//
840//    err := req.Send()
841//    if err == nil { // resp is now filled
842//        fmt.Println(resp)
843//    }
844//
845// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
846func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
847	op := &request.Operation{
848		Name:       opDeleteCluster,
849		HTTPMethod: "POST",
850		HTTPPath:   "/",
851	}
852
853	if input == nil {
854		input = &DeleteClusterInput{}
855	}
856
857	output = &DeleteClusterOutput{}
858	req = c.newRequest(op, input, output)
859	return
860}
861
862// DeleteCluster API operation for Amazon EC2 Container Service.
863//
864// Deletes the specified cluster. The cluster will transition to the INACTIVE
865// state. Clusters with an INACTIVE status may remain discoverable in your account
866// for a period of time. However, this behavior is subject to change in the
867// future, so you should not rely on INACTIVE clusters persisting.
868//
869// You must deregister all container instances from this cluster before you
870// may delete it. You can list the container instances in a cluster with ListContainerInstances
871// and deregister them with DeregisterContainerInstance.
872//
873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
874// with awserr.Error's Code and Message methods to get detailed information about
875// the error.
876//
877// See the AWS API reference guide for Amazon EC2 Container Service's
878// API operation DeleteCluster for usage and error information.
879//
880// Returned Error Types:
881//   * ServerException
882//   These errors are usually caused by a server issue.
883//
884//   * ClientException
885//   These errors are usually caused by a client action, such as using an action
886//   or resource on behalf of a user that doesn't have permissions to use the
887//   action or resource, or specifying an identifier that is not valid.
888//
889//   * InvalidParameterException
890//   The specified parameter is invalid. Review the available parameters for the
891//   API request.
892//
893//   * ClusterNotFoundException
894//   The specified cluster could not be found. You can view your available clusters
895//   with ListClusters. Amazon ECS clusters are Region-specific.
896//
897//   * ClusterContainsContainerInstancesException
898//   You cannot delete a cluster that has registered container instances. First,
899//   deregister the container instances before you can delete the cluster. For
900//   more information, see DeregisterContainerInstance.
901//
902//   * ClusterContainsServicesException
903//   You cannot delete a cluster that contains services. First, update the service
904//   to reduce its desired task count to 0 and then delete the service. For more
905//   information, see UpdateService and DeleteService.
906//
907//   * ClusterContainsTasksException
908//   You cannot delete a cluster that has active tasks.
909//
910//   * UpdateInProgressException
911//   There is already a current Amazon ECS container agent update in progress
912//   on the specified container instance. If the container agent becomes disconnected
913//   while it is in a transitional stage, such as PENDING or STAGING, the update
914//   process can get stuck in that state. However, when the agent reconnects,
915//   it resumes where it stopped previously.
916//
917// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
918func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
919	req, out := c.DeleteClusterRequest(input)
920	return out, req.Send()
921}
922
923// DeleteClusterWithContext is the same as DeleteCluster with the addition of
924// the ability to pass a context and additional request options.
925//
926// See DeleteCluster for details on how to use this API operation.
927//
928// The context must be non-nil and will be used for request cancellation. If
929// the context is nil a panic will occur. In the future the SDK may create
930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
931// for more information on using Contexts.
932func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
933	req, out := c.DeleteClusterRequest(input)
934	req.SetContext(ctx)
935	req.ApplyOptions(opts...)
936	return out, req.Send()
937}
938
939const opDeleteService = "DeleteService"
940
941// DeleteServiceRequest generates a "aws/request.Request" representing the
942// client's request for the DeleteService operation. The "output" return
943// value will be populated with the request's response once the request completes
944// successfully.
945//
946// Use "Send" method on the returned Request to send the API call to the service.
947// the "output" return value is not valid until after Send returns without error.
948//
949// See DeleteService for more information on using the DeleteService
950// API call, and error handling.
951//
952// This method is useful when you want to inject custom logic or configuration
953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
954//
955//
956//    // Example sending a request using the DeleteServiceRequest method.
957//    req, resp := client.DeleteServiceRequest(params)
958//
959//    err := req.Send()
960//    if err == nil { // resp is now filled
961//        fmt.Println(resp)
962//    }
963//
964// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
965func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
966	op := &request.Operation{
967		Name:       opDeleteService,
968		HTTPMethod: "POST",
969		HTTPPath:   "/",
970	}
971
972	if input == nil {
973		input = &DeleteServiceInput{}
974	}
975
976	output = &DeleteServiceOutput{}
977	req = c.newRequest(op, input, output)
978	return
979}
980
981// DeleteService API operation for Amazon EC2 Container Service.
982//
983// Deletes a specified service within a cluster. You can delete a service if
984// you have no running tasks in it and the desired task count is zero. If the
985// service is actively maintaining tasks, you cannot delete it, and you must
986// update the service to a desired task count of zero. For more information,
987// see UpdateService.
988//
989// When you delete a service, if there are still running tasks that require
990// cleanup, the service status moves from ACTIVE to DRAINING, and the service
991// is no longer visible in the console or in the ListServices API operation.
992// After all tasks have transitioned to either STOPPING or STOPPED status, the
993// service status moves from DRAINING to INACTIVE. Services in the DRAINING
994// or INACTIVE status can still be viewed with the DescribeServices API operation.
995// However, in the future, INACTIVE services may be cleaned up and purged from
996// Amazon ECS record keeping, and DescribeServices calls on those services return
997// a ServiceNotFoundException error.
998//
999// If you attempt to create a new service with the same name as an existing
1000// service in either ACTIVE or DRAINING status, you receive an error.
1001//
1002// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1003// with awserr.Error's Code and Message methods to get detailed information about
1004// the error.
1005//
1006// See the AWS API reference guide for Amazon EC2 Container Service's
1007// API operation DeleteService for usage and error information.
1008//
1009// Returned Error Types:
1010//   * ServerException
1011//   These errors are usually caused by a server issue.
1012//
1013//   * ClientException
1014//   These errors are usually caused by a client action, such as using an action
1015//   or resource on behalf of a user that doesn't have permissions to use the
1016//   action or resource, or specifying an identifier that is not valid.
1017//
1018//   * InvalidParameterException
1019//   The specified parameter is invalid. Review the available parameters for the
1020//   API request.
1021//
1022//   * ClusterNotFoundException
1023//   The specified cluster could not be found. You can view your available clusters
1024//   with ListClusters. Amazon ECS clusters are Region-specific.
1025//
1026//   * ServiceNotFoundException
1027//   The specified service could not be found. You can view your available services
1028//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1029//
1030// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
1031func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
1032	req, out := c.DeleteServiceRequest(input)
1033	return out, req.Send()
1034}
1035
1036// DeleteServiceWithContext is the same as DeleteService with the addition of
1037// the ability to pass a context and additional request options.
1038//
1039// See DeleteService for details on how to use this API operation.
1040//
1041// The context must be non-nil and will be used for request cancellation. If
1042// the context is nil a panic will occur. In the future the SDK may create
1043// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1044// for more information on using Contexts.
1045func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
1046	req, out := c.DeleteServiceRequest(input)
1047	req.SetContext(ctx)
1048	req.ApplyOptions(opts...)
1049	return out, req.Send()
1050}
1051
1052const opDeleteTaskSet = "DeleteTaskSet"
1053
1054// DeleteTaskSetRequest generates a "aws/request.Request" representing the
1055// client's request for the DeleteTaskSet operation. The "output" return
1056// value will be populated with the request's response once the request completes
1057// successfully.
1058//
1059// Use "Send" method on the returned Request to send the API call to the service.
1060// the "output" return value is not valid until after Send returns without error.
1061//
1062// See DeleteTaskSet for more information on using the DeleteTaskSet
1063// API call, and error handling.
1064//
1065// This method is useful when you want to inject custom logic or configuration
1066// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1067//
1068//
1069//    // Example sending a request using the DeleteTaskSetRequest method.
1070//    req, resp := client.DeleteTaskSetRequest(params)
1071//
1072//    err := req.Send()
1073//    if err == nil { // resp is now filled
1074//        fmt.Println(resp)
1075//    }
1076//
1077// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
1078func (c *ECS) DeleteTaskSetRequest(input *DeleteTaskSetInput) (req *request.Request, output *DeleteTaskSetOutput) {
1079	op := &request.Operation{
1080		Name:       opDeleteTaskSet,
1081		HTTPMethod: "POST",
1082		HTTPPath:   "/",
1083	}
1084
1085	if input == nil {
1086		input = &DeleteTaskSetInput{}
1087	}
1088
1089	output = &DeleteTaskSetOutput{}
1090	req = c.newRequest(op, input, output)
1091	return
1092}
1093
1094// DeleteTaskSet API operation for Amazon EC2 Container Service.
1095//
1096// Deletes a specified task set within a service. This is used when a service
1097// uses the EXTERNAL deployment controller type. For more information, see Amazon
1098// ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1099// in the Amazon Elastic Container Service Developer Guide.
1100//
1101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1102// with awserr.Error's Code and Message methods to get detailed information about
1103// the error.
1104//
1105// See the AWS API reference guide for Amazon EC2 Container Service's
1106// API operation DeleteTaskSet for usage and error information.
1107//
1108// Returned Error Types:
1109//   * ServerException
1110//   These errors are usually caused by a server issue.
1111//
1112//   * ClientException
1113//   These errors are usually caused by a client action, such as using an action
1114//   or resource on behalf of a user that doesn't have permissions to use the
1115//   action or resource, or specifying an identifier that is not valid.
1116//
1117//   * InvalidParameterException
1118//   The specified parameter is invalid. Review the available parameters for the
1119//   API request.
1120//
1121//   * ClusterNotFoundException
1122//   The specified cluster could not be found. You can view your available clusters
1123//   with ListClusters. Amazon ECS clusters are Region-specific.
1124//
1125//   * UnsupportedFeatureException
1126//   The specified task is not supported in this Region.
1127//
1128//   * AccessDeniedException
1129//   You do not have authorization to perform the requested action.
1130//
1131//   * ServiceNotFoundException
1132//   The specified service could not be found. You can view your available services
1133//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1134//
1135//   * ServiceNotActiveException
1136//   The specified service is not active. You can't update a service that is inactive.
1137//   If you have previously deleted a service, you can re-create it with CreateService.
1138//
1139//   * TaskSetNotFoundException
1140//   The specified task set could not be found. You can view your available task
1141//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
1142//   and Region.
1143//
1144// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
1145func (c *ECS) DeleteTaskSet(input *DeleteTaskSetInput) (*DeleteTaskSetOutput, error) {
1146	req, out := c.DeleteTaskSetRequest(input)
1147	return out, req.Send()
1148}
1149
1150// DeleteTaskSetWithContext is the same as DeleteTaskSet with the addition of
1151// the ability to pass a context and additional request options.
1152//
1153// See DeleteTaskSet for details on how to use this API operation.
1154//
1155// The context must be non-nil and will be used for request cancellation. If
1156// the context is nil a panic will occur. In the future the SDK may create
1157// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1158// for more information on using Contexts.
1159func (c *ECS) DeleteTaskSetWithContext(ctx aws.Context, input *DeleteTaskSetInput, opts ...request.Option) (*DeleteTaskSetOutput, error) {
1160	req, out := c.DeleteTaskSetRequest(input)
1161	req.SetContext(ctx)
1162	req.ApplyOptions(opts...)
1163	return out, req.Send()
1164}
1165
1166const opDeregisterContainerInstance = "DeregisterContainerInstance"
1167
1168// DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
1169// client's request for the DeregisterContainerInstance operation. The "output" return
1170// value will be populated with the request's response once the request completes
1171// successfully.
1172//
1173// Use "Send" method on the returned Request to send the API call to the service.
1174// the "output" return value is not valid until after Send returns without error.
1175//
1176// See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
1177// API call, and error handling.
1178//
1179// This method is useful when you want to inject custom logic or configuration
1180// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1181//
1182//
1183//    // Example sending a request using the DeregisterContainerInstanceRequest method.
1184//    req, resp := client.DeregisterContainerInstanceRequest(params)
1185//
1186//    err := req.Send()
1187//    if err == nil { // resp is now filled
1188//        fmt.Println(resp)
1189//    }
1190//
1191// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1192func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
1193	op := &request.Operation{
1194		Name:       opDeregisterContainerInstance,
1195		HTTPMethod: "POST",
1196		HTTPPath:   "/",
1197	}
1198
1199	if input == nil {
1200		input = &DeregisterContainerInstanceInput{}
1201	}
1202
1203	output = &DeregisterContainerInstanceOutput{}
1204	req = c.newRequest(op, input, output)
1205	return
1206}
1207
1208// DeregisterContainerInstance API operation for Amazon EC2 Container Service.
1209//
1210// Deregisters an Amazon ECS container instance from the specified cluster.
1211// This instance is no longer available to run tasks.
1212//
1213// If you intend to use the container instance for some other purpose after
1214// deregistration, you should stop all of the tasks running on the container
1215// instance before deregistration. That prevents any orphaned tasks from consuming
1216// resources.
1217//
1218// Deregistering a container instance removes the instance from a cluster, but
1219// it does not terminate the EC2 instance. If you are finished using the instance,
1220// be sure to terminate it in the Amazon EC2 console to stop billing.
1221//
1222// If you terminate a running container instance, Amazon ECS automatically deregisters
1223// the instance from your cluster (stopped container instances or instances
1224// with disconnected agents are not automatically deregistered when terminated).
1225//
1226// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1227// with awserr.Error's Code and Message methods to get detailed information about
1228// the error.
1229//
1230// See the AWS API reference guide for Amazon EC2 Container Service's
1231// API operation DeregisterContainerInstance for usage and error information.
1232//
1233// Returned Error Types:
1234//   * ServerException
1235//   These errors are usually caused by a server issue.
1236//
1237//   * ClientException
1238//   These errors are usually caused by a client action, such as using an action
1239//   or resource on behalf of a user that doesn't have permissions to use the
1240//   action or resource, or specifying an identifier that is not valid.
1241//
1242//   * InvalidParameterException
1243//   The specified parameter is invalid. Review the available parameters for the
1244//   API request.
1245//
1246//   * ClusterNotFoundException
1247//   The specified cluster could not be found. You can view your available clusters
1248//   with ListClusters. Amazon ECS clusters are Region-specific.
1249//
1250// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1251func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
1252	req, out := c.DeregisterContainerInstanceRequest(input)
1253	return out, req.Send()
1254}
1255
1256// DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
1257// the ability to pass a context and additional request options.
1258//
1259// See DeregisterContainerInstance for details on how to use this API operation.
1260//
1261// The context must be non-nil and will be used for request cancellation. If
1262// the context is nil a panic will occur. In the future the SDK may create
1263// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1264// for more information on using Contexts.
1265func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
1266	req, out := c.DeregisterContainerInstanceRequest(input)
1267	req.SetContext(ctx)
1268	req.ApplyOptions(opts...)
1269	return out, req.Send()
1270}
1271
1272const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
1273
1274// DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
1275// client's request for the DeregisterTaskDefinition operation. The "output" return
1276// value will be populated with the request's response once the request completes
1277// successfully.
1278//
1279// Use "Send" method on the returned Request to send the API call to the service.
1280// the "output" return value is not valid until after Send returns without error.
1281//
1282// See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
1283// API call, and error handling.
1284//
1285// This method is useful when you want to inject custom logic or configuration
1286// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1287//
1288//
1289//    // Example sending a request using the DeregisterTaskDefinitionRequest method.
1290//    req, resp := client.DeregisterTaskDefinitionRequest(params)
1291//
1292//    err := req.Send()
1293//    if err == nil { // resp is now filled
1294//        fmt.Println(resp)
1295//    }
1296//
1297// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1298func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
1299	op := &request.Operation{
1300		Name:       opDeregisterTaskDefinition,
1301		HTTPMethod: "POST",
1302		HTTPPath:   "/",
1303	}
1304
1305	if input == nil {
1306		input = &DeregisterTaskDefinitionInput{}
1307	}
1308
1309	output = &DeregisterTaskDefinitionOutput{}
1310	req = c.newRequest(op, input, output)
1311	return
1312}
1313
1314// DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
1315//
1316// Deregisters the specified task definition by family and revision. Upon deregistration,
1317// the task definition is marked as INACTIVE. Existing tasks and services that
1318// reference an INACTIVE task definition continue to run without disruption.
1319// Existing services that reference an INACTIVE task definition can still scale
1320// up or down by modifying the service's desired count.
1321//
1322// You cannot use an INACTIVE task definition to run new tasks or create new
1323// services, and you cannot update an existing service to reference an INACTIVE
1324// task definition. However, there may be up to a 10-minute window following
1325// deregistration where these restrictions have not yet taken effect.
1326//
1327// At this time, INACTIVE task definitions remain discoverable in your account
1328// indefinitely. However, this behavior is subject to change in the future,
1329// so you should not rely on INACTIVE task definitions persisting beyond the
1330// lifecycle of any associated tasks and services.
1331//
1332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1333// with awserr.Error's Code and Message methods to get detailed information about
1334// the error.
1335//
1336// See the AWS API reference guide for Amazon EC2 Container Service's
1337// API operation DeregisterTaskDefinition for usage and error information.
1338//
1339// Returned Error Types:
1340//   * ServerException
1341//   These errors are usually caused by a server issue.
1342//
1343//   * ClientException
1344//   These errors are usually caused by a client action, such as using an action
1345//   or resource on behalf of a user that doesn't have permissions to use the
1346//   action or resource, or specifying an identifier that is not valid.
1347//
1348//   * InvalidParameterException
1349//   The specified parameter is invalid. Review the available parameters for the
1350//   API request.
1351//
1352// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1353func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
1354	req, out := c.DeregisterTaskDefinitionRequest(input)
1355	return out, req.Send()
1356}
1357
1358// DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
1359// the ability to pass a context and additional request options.
1360//
1361// See DeregisterTaskDefinition for details on how to use this API operation.
1362//
1363// The context must be non-nil and will be used for request cancellation. If
1364// the context is nil a panic will occur. In the future the SDK may create
1365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1366// for more information on using Contexts.
1367func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
1368	req, out := c.DeregisterTaskDefinitionRequest(input)
1369	req.SetContext(ctx)
1370	req.ApplyOptions(opts...)
1371	return out, req.Send()
1372}
1373
1374const opDescribeCapacityProviders = "DescribeCapacityProviders"
1375
1376// DescribeCapacityProvidersRequest generates a "aws/request.Request" representing the
1377// client's request for the DescribeCapacityProviders operation. The "output" return
1378// value will be populated with the request's response once the request completes
1379// successfully.
1380//
1381// Use "Send" method on the returned Request to send the API call to the service.
1382// the "output" return value is not valid until after Send returns without error.
1383//
1384// See DescribeCapacityProviders for more information on using the DescribeCapacityProviders
1385// API call, and error handling.
1386//
1387// This method is useful when you want to inject custom logic or configuration
1388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1389//
1390//
1391//    // Example sending a request using the DescribeCapacityProvidersRequest method.
1392//    req, resp := client.DescribeCapacityProvidersRequest(params)
1393//
1394//    err := req.Send()
1395//    if err == nil { // resp is now filled
1396//        fmt.Println(resp)
1397//    }
1398//
1399// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1400func (c *ECS) DescribeCapacityProvidersRequest(input *DescribeCapacityProvidersInput) (req *request.Request, output *DescribeCapacityProvidersOutput) {
1401	op := &request.Operation{
1402		Name:       opDescribeCapacityProviders,
1403		HTTPMethod: "POST",
1404		HTTPPath:   "/",
1405	}
1406
1407	if input == nil {
1408		input = &DescribeCapacityProvidersInput{}
1409	}
1410
1411	output = &DescribeCapacityProvidersOutput{}
1412	req = c.newRequest(op, input, output)
1413	return
1414}
1415
1416// DescribeCapacityProviders API operation for Amazon EC2 Container Service.
1417//
1418// Describes one or more of your capacity providers.
1419//
1420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1421// with awserr.Error's Code and Message methods to get detailed information about
1422// the error.
1423//
1424// See the AWS API reference guide for Amazon EC2 Container Service's
1425// API operation DescribeCapacityProviders for usage and error information.
1426//
1427// Returned Error Types:
1428//   * ServerException
1429//   These errors are usually caused by a server issue.
1430//
1431//   * ClientException
1432//   These errors are usually caused by a client action, such as using an action
1433//   or resource on behalf of a user that doesn't have permissions to use the
1434//   action or resource, or specifying an identifier that is not valid.
1435//
1436//   * InvalidParameterException
1437//   The specified parameter is invalid. Review the available parameters for the
1438//   API request.
1439//
1440// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1441func (c *ECS) DescribeCapacityProviders(input *DescribeCapacityProvidersInput) (*DescribeCapacityProvidersOutput, error) {
1442	req, out := c.DescribeCapacityProvidersRequest(input)
1443	return out, req.Send()
1444}
1445
1446// DescribeCapacityProvidersWithContext is the same as DescribeCapacityProviders with the addition of
1447// the ability to pass a context and additional request options.
1448//
1449// See DescribeCapacityProviders for details on how to use this API operation.
1450//
1451// The context must be non-nil and will be used for request cancellation. If
1452// the context is nil a panic will occur. In the future the SDK may create
1453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1454// for more information on using Contexts.
1455func (c *ECS) DescribeCapacityProvidersWithContext(ctx aws.Context, input *DescribeCapacityProvidersInput, opts ...request.Option) (*DescribeCapacityProvidersOutput, error) {
1456	req, out := c.DescribeCapacityProvidersRequest(input)
1457	req.SetContext(ctx)
1458	req.ApplyOptions(opts...)
1459	return out, req.Send()
1460}
1461
1462const opDescribeClusters = "DescribeClusters"
1463
1464// DescribeClustersRequest generates a "aws/request.Request" representing the
1465// client's request for the DescribeClusters operation. The "output" return
1466// value will be populated with the request's response once the request completes
1467// successfully.
1468//
1469// Use "Send" method on the returned Request to send the API call to the service.
1470// the "output" return value is not valid until after Send returns without error.
1471//
1472// See DescribeClusters for more information on using the DescribeClusters
1473// API call, and error handling.
1474//
1475// This method is useful when you want to inject custom logic or configuration
1476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1477//
1478//
1479//    // Example sending a request using the DescribeClustersRequest method.
1480//    req, resp := client.DescribeClustersRequest(params)
1481//
1482//    err := req.Send()
1483//    if err == nil { // resp is now filled
1484//        fmt.Println(resp)
1485//    }
1486//
1487// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1488func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
1489	op := &request.Operation{
1490		Name:       opDescribeClusters,
1491		HTTPMethod: "POST",
1492		HTTPPath:   "/",
1493	}
1494
1495	if input == nil {
1496		input = &DescribeClustersInput{}
1497	}
1498
1499	output = &DescribeClustersOutput{}
1500	req = c.newRequest(op, input, output)
1501	return
1502}
1503
1504// DescribeClusters API operation for Amazon EC2 Container Service.
1505//
1506// Describes one or more of your clusters.
1507//
1508// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1509// with awserr.Error's Code and Message methods to get detailed information about
1510// the error.
1511//
1512// See the AWS API reference guide for Amazon EC2 Container Service's
1513// API operation DescribeClusters for usage and error information.
1514//
1515// Returned Error Types:
1516//   * ServerException
1517//   These errors are usually caused by a server issue.
1518//
1519//   * ClientException
1520//   These errors are usually caused by a client action, such as using an action
1521//   or resource on behalf of a user that doesn't have permissions to use the
1522//   action or resource, or specifying an identifier that is not valid.
1523//
1524//   * InvalidParameterException
1525//   The specified parameter is invalid. Review the available parameters for the
1526//   API request.
1527//
1528// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1529func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
1530	req, out := c.DescribeClustersRequest(input)
1531	return out, req.Send()
1532}
1533
1534// DescribeClustersWithContext is the same as DescribeClusters with the addition of
1535// the ability to pass a context and additional request options.
1536//
1537// See DescribeClusters for details on how to use this API operation.
1538//
1539// The context must be non-nil and will be used for request cancellation. If
1540// the context is nil a panic will occur. In the future the SDK may create
1541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1542// for more information on using Contexts.
1543func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
1544	req, out := c.DescribeClustersRequest(input)
1545	req.SetContext(ctx)
1546	req.ApplyOptions(opts...)
1547	return out, req.Send()
1548}
1549
1550const opDescribeContainerInstances = "DescribeContainerInstances"
1551
1552// DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
1553// client's request for the DescribeContainerInstances operation. The "output" return
1554// value will be populated with the request's response once the request completes
1555// successfully.
1556//
1557// Use "Send" method on the returned Request to send the API call to the service.
1558// the "output" return value is not valid until after Send returns without error.
1559//
1560// See DescribeContainerInstances for more information on using the DescribeContainerInstances
1561// API call, and error handling.
1562//
1563// This method is useful when you want to inject custom logic or configuration
1564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1565//
1566//
1567//    // Example sending a request using the DescribeContainerInstancesRequest method.
1568//    req, resp := client.DescribeContainerInstancesRequest(params)
1569//
1570//    err := req.Send()
1571//    if err == nil { // resp is now filled
1572//        fmt.Println(resp)
1573//    }
1574//
1575// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1576func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
1577	op := &request.Operation{
1578		Name:       opDescribeContainerInstances,
1579		HTTPMethod: "POST",
1580		HTTPPath:   "/",
1581	}
1582
1583	if input == nil {
1584		input = &DescribeContainerInstancesInput{}
1585	}
1586
1587	output = &DescribeContainerInstancesOutput{}
1588	req = c.newRequest(op, input, output)
1589	return
1590}
1591
1592// DescribeContainerInstances API operation for Amazon EC2 Container Service.
1593//
1594// Describes Amazon Elastic Container Service container instances. Returns metadata
1595// about registered and remaining resources on each container instance requested.
1596//
1597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1598// with awserr.Error's Code and Message methods to get detailed information about
1599// the error.
1600//
1601// See the AWS API reference guide for Amazon EC2 Container Service's
1602// API operation DescribeContainerInstances for usage and error information.
1603//
1604// Returned Error Types:
1605//   * ServerException
1606//   These errors are usually caused by a server issue.
1607//
1608//   * ClientException
1609//   These errors are usually caused by a client action, such as using an action
1610//   or resource on behalf of a user that doesn't have permissions to use the
1611//   action or resource, or specifying an identifier that is not valid.
1612//
1613//   * InvalidParameterException
1614//   The specified parameter is invalid. Review the available parameters for the
1615//   API request.
1616//
1617//   * ClusterNotFoundException
1618//   The specified cluster could not be found. You can view your available clusters
1619//   with ListClusters. Amazon ECS clusters are Region-specific.
1620//
1621// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1622func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
1623	req, out := c.DescribeContainerInstancesRequest(input)
1624	return out, req.Send()
1625}
1626
1627// DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
1628// the ability to pass a context and additional request options.
1629//
1630// See DescribeContainerInstances for details on how to use this API operation.
1631//
1632// The context must be non-nil and will be used for request cancellation. If
1633// the context is nil a panic will occur. In the future the SDK may create
1634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1635// for more information on using Contexts.
1636func (c *ECS) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
1637	req, out := c.DescribeContainerInstancesRequest(input)
1638	req.SetContext(ctx)
1639	req.ApplyOptions(opts...)
1640	return out, req.Send()
1641}
1642
1643const opDescribeServices = "DescribeServices"
1644
1645// DescribeServicesRequest generates a "aws/request.Request" representing the
1646// client's request for the DescribeServices operation. The "output" return
1647// value will be populated with the request's response once the request completes
1648// successfully.
1649//
1650// Use "Send" method on the returned Request to send the API call to the service.
1651// the "output" return value is not valid until after Send returns without error.
1652//
1653// See DescribeServices for more information on using the DescribeServices
1654// API call, and error handling.
1655//
1656// This method is useful when you want to inject custom logic or configuration
1657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1658//
1659//
1660//    // Example sending a request using the DescribeServicesRequest method.
1661//    req, resp := client.DescribeServicesRequest(params)
1662//
1663//    err := req.Send()
1664//    if err == nil { // resp is now filled
1665//        fmt.Println(resp)
1666//    }
1667//
1668// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1669func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
1670	op := &request.Operation{
1671		Name:       opDescribeServices,
1672		HTTPMethod: "POST",
1673		HTTPPath:   "/",
1674	}
1675
1676	if input == nil {
1677		input = &DescribeServicesInput{}
1678	}
1679
1680	output = &DescribeServicesOutput{}
1681	req = c.newRequest(op, input, output)
1682	return
1683}
1684
1685// DescribeServices API operation for Amazon EC2 Container Service.
1686//
1687// Describes the specified services running in your cluster.
1688//
1689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1690// with awserr.Error's Code and Message methods to get detailed information about
1691// the error.
1692//
1693// See the AWS API reference guide for Amazon EC2 Container Service's
1694// API operation DescribeServices for usage and error information.
1695//
1696// Returned Error Types:
1697//   * ServerException
1698//   These errors are usually caused by a server issue.
1699//
1700//   * ClientException
1701//   These errors are usually caused by a client action, such as using an action
1702//   or resource on behalf of a user that doesn't have permissions to use the
1703//   action or resource, or specifying an identifier that is not valid.
1704//
1705//   * InvalidParameterException
1706//   The specified parameter is invalid. Review the available parameters for the
1707//   API request.
1708//
1709//   * ClusterNotFoundException
1710//   The specified cluster could not be found. You can view your available clusters
1711//   with ListClusters. Amazon ECS clusters are Region-specific.
1712//
1713// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1714func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
1715	req, out := c.DescribeServicesRequest(input)
1716	return out, req.Send()
1717}
1718
1719// DescribeServicesWithContext is the same as DescribeServices with the addition of
1720// the ability to pass a context and additional request options.
1721//
1722// See DescribeServices for details on how to use this API operation.
1723//
1724// The context must be non-nil and will be used for request cancellation. If
1725// the context is nil a panic will occur. In the future the SDK may create
1726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1727// for more information on using Contexts.
1728func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
1729	req, out := c.DescribeServicesRequest(input)
1730	req.SetContext(ctx)
1731	req.ApplyOptions(opts...)
1732	return out, req.Send()
1733}
1734
1735const opDescribeTaskDefinition = "DescribeTaskDefinition"
1736
1737// DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
1738// client's request for the DescribeTaskDefinition operation. The "output" return
1739// value will be populated with the request's response once the request completes
1740// successfully.
1741//
1742// Use "Send" method on the returned Request to send the API call to the service.
1743// the "output" return value is not valid until after Send returns without error.
1744//
1745// See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
1746// API call, and error handling.
1747//
1748// This method is useful when you want to inject custom logic or configuration
1749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1750//
1751//
1752//    // Example sending a request using the DescribeTaskDefinitionRequest method.
1753//    req, resp := client.DescribeTaskDefinitionRequest(params)
1754//
1755//    err := req.Send()
1756//    if err == nil { // resp is now filled
1757//        fmt.Println(resp)
1758//    }
1759//
1760// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1761func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
1762	op := &request.Operation{
1763		Name:       opDescribeTaskDefinition,
1764		HTTPMethod: "POST",
1765		HTTPPath:   "/",
1766	}
1767
1768	if input == nil {
1769		input = &DescribeTaskDefinitionInput{}
1770	}
1771
1772	output = &DescribeTaskDefinitionOutput{}
1773	req = c.newRequest(op, input, output)
1774	return
1775}
1776
1777// DescribeTaskDefinition API operation for Amazon EC2 Container Service.
1778//
1779// Describes a task definition. You can specify a family and revision to find
1780// information about a specific task definition, or you can simply specify the
1781// family to find the latest ACTIVE revision in that family.
1782//
1783// You can only describe INACTIVE task definitions while an active task or service
1784// references them.
1785//
1786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1787// with awserr.Error's Code and Message methods to get detailed information about
1788// the error.
1789//
1790// See the AWS API reference guide for Amazon EC2 Container Service's
1791// API operation DescribeTaskDefinition for usage and error information.
1792//
1793// Returned Error Types:
1794//   * ServerException
1795//   These errors are usually caused by a server issue.
1796//
1797//   * ClientException
1798//   These errors are usually caused by a client action, such as using an action
1799//   or resource on behalf of a user that doesn't have permissions to use the
1800//   action or resource, or specifying an identifier that is not valid.
1801//
1802//   * InvalidParameterException
1803//   The specified parameter is invalid. Review the available parameters for the
1804//   API request.
1805//
1806// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1807func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
1808	req, out := c.DescribeTaskDefinitionRequest(input)
1809	return out, req.Send()
1810}
1811
1812// DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
1813// the ability to pass a context and additional request options.
1814//
1815// See DescribeTaskDefinition for details on how to use this API operation.
1816//
1817// The context must be non-nil and will be used for request cancellation. If
1818// the context is nil a panic will occur. In the future the SDK may create
1819// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1820// for more information on using Contexts.
1821func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
1822	req, out := c.DescribeTaskDefinitionRequest(input)
1823	req.SetContext(ctx)
1824	req.ApplyOptions(opts...)
1825	return out, req.Send()
1826}
1827
1828const opDescribeTaskSets = "DescribeTaskSets"
1829
1830// DescribeTaskSetsRequest generates a "aws/request.Request" representing the
1831// client's request for the DescribeTaskSets operation. The "output" return
1832// value will be populated with the request's response once the request completes
1833// successfully.
1834//
1835// Use "Send" method on the returned Request to send the API call to the service.
1836// the "output" return value is not valid until after Send returns without error.
1837//
1838// See DescribeTaskSets for more information on using the DescribeTaskSets
1839// API call, and error handling.
1840//
1841// This method is useful when you want to inject custom logic or configuration
1842// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1843//
1844//
1845//    // Example sending a request using the DescribeTaskSetsRequest method.
1846//    req, resp := client.DescribeTaskSetsRequest(params)
1847//
1848//    err := req.Send()
1849//    if err == nil { // resp is now filled
1850//        fmt.Println(resp)
1851//    }
1852//
1853// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1854func (c *ECS) DescribeTaskSetsRequest(input *DescribeTaskSetsInput) (req *request.Request, output *DescribeTaskSetsOutput) {
1855	op := &request.Operation{
1856		Name:       opDescribeTaskSets,
1857		HTTPMethod: "POST",
1858		HTTPPath:   "/",
1859	}
1860
1861	if input == nil {
1862		input = &DescribeTaskSetsInput{}
1863	}
1864
1865	output = &DescribeTaskSetsOutput{}
1866	req = c.newRequest(op, input, output)
1867	return
1868}
1869
1870// DescribeTaskSets API operation for Amazon EC2 Container Service.
1871//
1872// Describes the task sets in the specified cluster and service. This is used
1873// when a service uses the EXTERNAL deployment controller type. For more information,
1874// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1875// in the Amazon Elastic Container Service Developer Guide.
1876//
1877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1878// with awserr.Error's Code and Message methods to get detailed information about
1879// the error.
1880//
1881// See the AWS API reference guide for Amazon EC2 Container Service's
1882// API operation DescribeTaskSets for usage and error information.
1883//
1884// Returned Error Types:
1885//   * ServerException
1886//   These errors are usually caused by a server issue.
1887//
1888//   * ClientException
1889//   These errors are usually caused by a client action, such as using an action
1890//   or resource on behalf of a user that doesn't have permissions to use the
1891//   action or resource, or specifying an identifier that is not valid.
1892//
1893//   * InvalidParameterException
1894//   The specified parameter is invalid. Review the available parameters for the
1895//   API request.
1896//
1897//   * ClusterNotFoundException
1898//   The specified cluster could not be found. You can view your available clusters
1899//   with ListClusters. Amazon ECS clusters are Region-specific.
1900//
1901//   * UnsupportedFeatureException
1902//   The specified task is not supported in this Region.
1903//
1904//   * AccessDeniedException
1905//   You do not have authorization to perform the requested action.
1906//
1907//   * ServiceNotFoundException
1908//   The specified service could not be found. You can view your available services
1909//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1910//
1911//   * ServiceNotActiveException
1912//   The specified service is not active. You can't update a service that is inactive.
1913//   If you have previously deleted a service, you can re-create it with CreateService.
1914//
1915// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1916func (c *ECS) DescribeTaskSets(input *DescribeTaskSetsInput) (*DescribeTaskSetsOutput, error) {
1917	req, out := c.DescribeTaskSetsRequest(input)
1918	return out, req.Send()
1919}
1920
1921// DescribeTaskSetsWithContext is the same as DescribeTaskSets with the addition of
1922// the ability to pass a context and additional request options.
1923//
1924// See DescribeTaskSets for details on how to use this API operation.
1925//
1926// The context must be non-nil and will be used for request cancellation. If
1927// the context is nil a panic will occur. In the future the SDK may create
1928// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1929// for more information on using Contexts.
1930func (c *ECS) DescribeTaskSetsWithContext(ctx aws.Context, input *DescribeTaskSetsInput, opts ...request.Option) (*DescribeTaskSetsOutput, error) {
1931	req, out := c.DescribeTaskSetsRequest(input)
1932	req.SetContext(ctx)
1933	req.ApplyOptions(opts...)
1934	return out, req.Send()
1935}
1936
1937const opDescribeTasks = "DescribeTasks"
1938
1939// DescribeTasksRequest generates a "aws/request.Request" representing the
1940// client's request for the DescribeTasks operation. The "output" return
1941// value will be populated with the request's response once the request completes
1942// successfully.
1943//
1944// Use "Send" method on the returned Request to send the API call to the service.
1945// the "output" return value is not valid until after Send returns without error.
1946//
1947// See DescribeTasks for more information on using the DescribeTasks
1948// API call, and error handling.
1949//
1950// This method is useful when you want to inject custom logic or configuration
1951// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1952//
1953//
1954//    // Example sending a request using the DescribeTasksRequest method.
1955//    req, resp := client.DescribeTasksRequest(params)
1956//
1957//    err := req.Send()
1958//    if err == nil { // resp is now filled
1959//        fmt.Println(resp)
1960//    }
1961//
1962// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1963func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
1964	op := &request.Operation{
1965		Name:       opDescribeTasks,
1966		HTTPMethod: "POST",
1967		HTTPPath:   "/",
1968	}
1969
1970	if input == nil {
1971		input = &DescribeTasksInput{}
1972	}
1973
1974	output = &DescribeTasksOutput{}
1975	req = c.newRequest(op, input, output)
1976	return
1977}
1978
1979// DescribeTasks API operation for Amazon EC2 Container Service.
1980//
1981// Describes a specified task or tasks.
1982//
1983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1984// with awserr.Error's Code and Message methods to get detailed information about
1985// the error.
1986//
1987// See the AWS API reference guide for Amazon EC2 Container Service's
1988// API operation DescribeTasks for usage and error information.
1989//
1990// Returned Error Types:
1991//   * ServerException
1992//   These errors are usually caused by a server issue.
1993//
1994//   * ClientException
1995//   These errors are usually caused by a client action, such as using an action
1996//   or resource on behalf of a user that doesn't have permissions to use the
1997//   action or resource, or specifying an identifier that is not valid.
1998//
1999//   * InvalidParameterException
2000//   The specified parameter is invalid. Review the available parameters for the
2001//   API request.
2002//
2003//   * ClusterNotFoundException
2004//   The specified cluster could not be found. You can view your available clusters
2005//   with ListClusters. Amazon ECS clusters are Region-specific.
2006//
2007// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
2008func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
2009	req, out := c.DescribeTasksRequest(input)
2010	return out, req.Send()
2011}
2012
2013// DescribeTasksWithContext is the same as DescribeTasks with the addition of
2014// the ability to pass a context and additional request options.
2015//
2016// See DescribeTasks for details on how to use this API operation.
2017//
2018// The context must be non-nil and will be used for request cancellation. If
2019// the context is nil a panic will occur. In the future the SDK may create
2020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2021// for more information on using Contexts.
2022func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
2023	req, out := c.DescribeTasksRequest(input)
2024	req.SetContext(ctx)
2025	req.ApplyOptions(opts...)
2026	return out, req.Send()
2027}
2028
2029const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
2030
2031// DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
2032// client's request for the DiscoverPollEndpoint operation. The "output" return
2033// value will be populated with the request's response once the request completes
2034// successfully.
2035//
2036// Use "Send" method on the returned Request to send the API call to the service.
2037// the "output" return value is not valid until after Send returns without error.
2038//
2039// See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
2040// API call, and error handling.
2041//
2042// This method is useful when you want to inject custom logic or configuration
2043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2044//
2045//
2046//    // Example sending a request using the DiscoverPollEndpointRequest method.
2047//    req, resp := client.DiscoverPollEndpointRequest(params)
2048//
2049//    err := req.Send()
2050//    if err == nil { // resp is now filled
2051//        fmt.Println(resp)
2052//    }
2053//
2054// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
2055func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
2056	op := &request.Operation{
2057		Name:       opDiscoverPollEndpoint,
2058		HTTPMethod: "POST",
2059		HTTPPath:   "/",
2060	}
2061
2062	if input == nil {
2063		input = &DiscoverPollEndpointInput{}
2064	}
2065
2066	output = &DiscoverPollEndpointOutput{}
2067	req = c.newRequest(op, input, output)
2068	return
2069}
2070
2071// DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
2072//
2073//
2074// This action is only used by the Amazon ECS agent, and it is not intended
2075// for use outside of the agent.
2076//
2077// Returns an endpoint for the Amazon ECS agent to poll for updates.
2078//
2079// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2080// with awserr.Error's Code and Message methods to get detailed information about
2081// the error.
2082//
2083// See the AWS API reference guide for Amazon EC2 Container Service's
2084// API operation DiscoverPollEndpoint for usage and error information.
2085//
2086// Returned Error Types:
2087//   * ServerException
2088//   These errors are usually caused by a server issue.
2089//
2090//   * ClientException
2091//   These errors are usually caused by a client action, such as using an action
2092//   or resource on behalf of a user that doesn't have permissions to use the
2093//   action or resource, or specifying an identifier that is not valid.
2094//
2095// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
2096func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
2097	req, out := c.DiscoverPollEndpointRequest(input)
2098	return out, req.Send()
2099}
2100
2101// DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
2102// the ability to pass a context and additional request options.
2103//
2104// See DiscoverPollEndpoint for details on how to use this API operation.
2105//
2106// The context must be non-nil and will be used for request cancellation. If
2107// the context is nil a panic will occur. In the future the SDK may create
2108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2109// for more information on using Contexts.
2110func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
2111	req, out := c.DiscoverPollEndpointRequest(input)
2112	req.SetContext(ctx)
2113	req.ApplyOptions(opts...)
2114	return out, req.Send()
2115}
2116
2117const opListAccountSettings = "ListAccountSettings"
2118
2119// ListAccountSettingsRequest generates a "aws/request.Request" representing the
2120// client's request for the ListAccountSettings operation. The "output" return
2121// value will be populated with the request's response once the request completes
2122// successfully.
2123//
2124// Use "Send" method on the returned Request to send the API call to the service.
2125// the "output" return value is not valid until after Send returns without error.
2126//
2127// See ListAccountSettings for more information on using the ListAccountSettings
2128// API call, and error handling.
2129//
2130// This method is useful when you want to inject custom logic or configuration
2131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2132//
2133//
2134//    // Example sending a request using the ListAccountSettingsRequest method.
2135//    req, resp := client.ListAccountSettingsRequest(params)
2136//
2137//    err := req.Send()
2138//    if err == nil { // resp is now filled
2139//        fmt.Println(resp)
2140//    }
2141//
2142// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2143func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
2144	op := &request.Operation{
2145		Name:       opListAccountSettings,
2146		HTTPMethod: "POST",
2147		HTTPPath:   "/",
2148		Paginator: &request.Paginator{
2149			InputTokens:     []string{"nextToken"},
2150			OutputTokens:    []string{"nextToken"},
2151			LimitToken:      "maxResults",
2152			TruncationToken: "",
2153		},
2154	}
2155
2156	if input == nil {
2157		input = &ListAccountSettingsInput{}
2158	}
2159
2160	output = &ListAccountSettingsOutput{}
2161	req = c.newRequest(op, input, output)
2162	return
2163}
2164
2165// ListAccountSettings API operation for Amazon EC2 Container Service.
2166//
2167// Lists the account settings for a specified principal.
2168//
2169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2170// with awserr.Error's Code and Message methods to get detailed information about
2171// the error.
2172//
2173// See the AWS API reference guide for Amazon EC2 Container Service's
2174// API operation ListAccountSettings for usage and error information.
2175//
2176// Returned Error Types:
2177//   * ServerException
2178//   These errors are usually caused by a server issue.
2179//
2180//   * ClientException
2181//   These errors are usually caused by a client action, such as using an action
2182//   or resource on behalf of a user that doesn't have permissions to use the
2183//   action or resource, or specifying an identifier that is not valid.
2184//
2185//   * InvalidParameterException
2186//   The specified parameter is invalid. Review the available parameters for the
2187//   API request.
2188//
2189// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2190func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
2191	req, out := c.ListAccountSettingsRequest(input)
2192	return out, req.Send()
2193}
2194
2195// ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
2196// the ability to pass a context and additional request options.
2197//
2198// See ListAccountSettings for details on how to use this API operation.
2199//
2200// The context must be non-nil and will be used for request cancellation. If
2201// the context is nil a panic will occur. In the future the SDK may create
2202// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2203// for more information on using Contexts.
2204func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
2205	req, out := c.ListAccountSettingsRequest(input)
2206	req.SetContext(ctx)
2207	req.ApplyOptions(opts...)
2208	return out, req.Send()
2209}
2210
2211// ListAccountSettingsPages iterates over the pages of a ListAccountSettings operation,
2212// calling the "fn" function with the response data for each page. To stop
2213// iterating, return false from the fn function.
2214//
2215// See ListAccountSettings method for more information on how to use this operation.
2216//
2217// Note: This operation can generate multiple requests to a service.
2218//
2219//    // Example iterating over at most 3 pages of a ListAccountSettings operation.
2220//    pageNum := 0
2221//    err := client.ListAccountSettingsPages(params,
2222//        func(page *ecs.ListAccountSettingsOutput, lastPage bool) bool {
2223//            pageNum++
2224//            fmt.Println(page)
2225//            return pageNum <= 3
2226//        })
2227//
2228func (c *ECS) ListAccountSettingsPages(input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool) error {
2229	return c.ListAccountSettingsPagesWithContext(aws.BackgroundContext(), input, fn)
2230}
2231
2232// ListAccountSettingsPagesWithContext same as ListAccountSettingsPages except
2233// it takes a Context and allows setting request options on the pages.
2234//
2235// The context must be non-nil and will be used for request cancellation. If
2236// the context is nil a panic will occur. In the future the SDK may create
2237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2238// for more information on using Contexts.
2239func (c *ECS) ListAccountSettingsPagesWithContext(ctx aws.Context, input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool, opts ...request.Option) error {
2240	p := request.Pagination{
2241		NewRequest: func() (*request.Request, error) {
2242			var inCpy *ListAccountSettingsInput
2243			if input != nil {
2244				tmp := *input
2245				inCpy = &tmp
2246			}
2247			req, _ := c.ListAccountSettingsRequest(inCpy)
2248			req.SetContext(ctx)
2249			req.ApplyOptions(opts...)
2250			return req, nil
2251		},
2252	}
2253
2254	for p.Next() {
2255		if !fn(p.Page().(*ListAccountSettingsOutput), !p.HasNextPage()) {
2256			break
2257		}
2258	}
2259
2260	return p.Err()
2261}
2262
2263const opListAttributes = "ListAttributes"
2264
2265// ListAttributesRequest generates a "aws/request.Request" representing the
2266// client's request for the ListAttributes operation. The "output" return
2267// value will be populated with the request's response once the request completes
2268// successfully.
2269//
2270// Use "Send" method on the returned Request to send the API call to the service.
2271// the "output" return value is not valid until after Send returns without error.
2272//
2273// See ListAttributes for more information on using the ListAttributes
2274// API call, and error handling.
2275//
2276// This method is useful when you want to inject custom logic or configuration
2277// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2278//
2279//
2280//    // Example sending a request using the ListAttributesRequest method.
2281//    req, resp := client.ListAttributesRequest(params)
2282//
2283//    err := req.Send()
2284//    if err == nil { // resp is now filled
2285//        fmt.Println(resp)
2286//    }
2287//
2288// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2289func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
2290	op := &request.Operation{
2291		Name:       opListAttributes,
2292		HTTPMethod: "POST",
2293		HTTPPath:   "/",
2294		Paginator: &request.Paginator{
2295			InputTokens:     []string{"nextToken"},
2296			OutputTokens:    []string{"nextToken"},
2297			LimitToken:      "maxResults",
2298			TruncationToken: "",
2299		},
2300	}
2301
2302	if input == nil {
2303		input = &ListAttributesInput{}
2304	}
2305
2306	output = &ListAttributesOutput{}
2307	req = c.newRequest(op, input, output)
2308	return
2309}
2310
2311// ListAttributes API operation for Amazon EC2 Container Service.
2312//
2313// Lists the attributes for Amazon ECS resources within a specified target type
2314// and cluster. When you specify a target type and cluster, ListAttributes returns
2315// a list of attribute objects, one for each attribute on each resource. You
2316// can filter the list of results to a single attribute name to only return
2317// results that have that name. You can also filter the results by attribute
2318// name and value, for example, to see which container instances in a cluster
2319// are running a Linux AMI (ecs.os-type=linux).
2320//
2321// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2322// with awserr.Error's Code and Message methods to get detailed information about
2323// the error.
2324//
2325// See the AWS API reference guide for Amazon EC2 Container Service's
2326// API operation ListAttributes for usage and error information.
2327//
2328// Returned Error Types:
2329//   * ClusterNotFoundException
2330//   The specified cluster could not be found. You can view your available clusters
2331//   with ListClusters. Amazon ECS clusters are Region-specific.
2332//
2333//   * InvalidParameterException
2334//   The specified parameter is invalid. Review the available parameters for the
2335//   API request.
2336//
2337// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2338func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
2339	req, out := c.ListAttributesRequest(input)
2340	return out, req.Send()
2341}
2342
2343// ListAttributesWithContext is the same as ListAttributes with the addition of
2344// the ability to pass a context and additional request options.
2345//
2346// See ListAttributes for details on how to use this API operation.
2347//
2348// The context must be non-nil and will be used for request cancellation. If
2349// the context is nil a panic will occur. In the future the SDK may create
2350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2351// for more information on using Contexts.
2352func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
2353	req, out := c.ListAttributesRequest(input)
2354	req.SetContext(ctx)
2355	req.ApplyOptions(opts...)
2356	return out, req.Send()
2357}
2358
2359// ListAttributesPages iterates over the pages of a ListAttributes operation,
2360// calling the "fn" function with the response data for each page. To stop
2361// iterating, return false from the fn function.
2362//
2363// See ListAttributes method for more information on how to use this operation.
2364//
2365// Note: This operation can generate multiple requests to a service.
2366//
2367//    // Example iterating over at most 3 pages of a ListAttributes operation.
2368//    pageNum := 0
2369//    err := client.ListAttributesPages(params,
2370//        func(page *ecs.ListAttributesOutput, lastPage bool) bool {
2371//            pageNum++
2372//            fmt.Println(page)
2373//            return pageNum <= 3
2374//        })
2375//
2376func (c *ECS) ListAttributesPages(input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool) error {
2377	return c.ListAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
2378}
2379
2380// ListAttributesPagesWithContext same as ListAttributesPages except
2381// it takes a Context and allows setting request options on the pages.
2382//
2383// The context must be non-nil and will be used for request cancellation. If
2384// the context is nil a panic will occur. In the future the SDK may create
2385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2386// for more information on using Contexts.
2387func (c *ECS) ListAttributesPagesWithContext(ctx aws.Context, input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool, opts ...request.Option) error {
2388	p := request.Pagination{
2389		NewRequest: func() (*request.Request, error) {
2390			var inCpy *ListAttributesInput
2391			if input != nil {
2392				tmp := *input
2393				inCpy = &tmp
2394			}
2395			req, _ := c.ListAttributesRequest(inCpy)
2396			req.SetContext(ctx)
2397			req.ApplyOptions(opts...)
2398			return req, nil
2399		},
2400	}
2401
2402	for p.Next() {
2403		if !fn(p.Page().(*ListAttributesOutput), !p.HasNextPage()) {
2404			break
2405		}
2406	}
2407
2408	return p.Err()
2409}
2410
2411const opListClusters = "ListClusters"
2412
2413// ListClustersRequest generates a "aws/request.Request" representing the
2414// client's request for the ListClusters operation. The "output" return
2415// value will be populated with the request's response once the request completes
2416// successfully.
2417//
2418// Use "Send" method on the returned Request to send the API call to the service.
2419// the "output" return value is not valid until after Send returns without error.
2420//
2421// See ListClusters for more information on using the ListClusters
2422// API call, and error handling.
2423//
2424// This method is useful when you want to inject custom logic or configuration
2425// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2426//
2427//
2428//    // Example sending a request using the ListClustersRequest method.
2429//    req, resp := client.ListClustersRequest(params)
2430//
2431//    err := req.Send()
2432//    if err == nil { // resp is now filled
2433//        fmt.Println(resp)
2434//    }
2435//
2436// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2437func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2438	op := &request.Operation{
2439		Name:       opListClusters,
2440		HTTPMethod: "POST",
2441		HTTPPath:   "/",
2442		Paginator: &request.Paginator{
2443			InputTokens:     []string{"nextToken"},
2444			OutputTokens:    []string{"nextToken"},
2445			LimitToken:      "maxResults",
2446			TruncationToken: "",
2447		},
2448	}
2449
2450	if input == nil {
2451		input = &ListClustersInput{}
2452	}
2453
2454	output = &ListClustersOutput{}
2455	req = c.newRequest(op, input, output)
2456	return
2457}
2458
2459// ListClusters API operation for Amazon EC2 Container Service.
2460//
2461// Returns a list of existing clusters.
2462//
2463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2464// with awserr.Error's Code and Message methods to get detailed information about
2465// the error.
2466//
2467// See the AWS API reference guide for Amazon EC2 Container Service's
2468// API operation ListClusters for usage and error information.
2469//
2470// Returned Error Types:
2471//   * ServerException
2472//   These errors are usually caused by a server issue.
2473//
2474//   * ClientException
2475//   These errors are usually caused by a client action, such as using an action
2476//   or resource on behalf of a user that doesn't have permissions to use the
2477//   action or resource, or specifying an identifier that is not valid.
2478//
2479//   * InvalidParameterException
2480//   The specified parameter is invalid. Review the available parameters for the
2481//   API request.
2482//
2483// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2484func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2485	req, out := c.ListClustersRequest(input)
2486	return out, req.Send()
2487}
2488
2489// ListClustersWithContext is the same as ListClusters with the addition of
2490// the ability to pass a context and additional request options.
2491//
2492// See ListClusters for details on how to use this API operation.
2493//
2494// The context must be non-nil and will be used for request cancellation. If
2495// the context is nil a panic will occur. In the future the SDK may create
2496// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2497// for more information on using Contexts.
2498func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2499	req, out := c.ListClustersRequest(input)
2500	req.SetContext(ctx)
2501	req.ApplyOptions(opts...)
2502	return out, req.Send()
2503}
2504
2505// ListClustersPages iterates over the pages of a ListClusters operation,
2506// calling the "fn" function with the response data for each page. To stop
2507// iterating, return false from the fn function.
2508//
2509// See ListClusters method for more information on how to use this operation.
2510//
2511// Note: This operation can generate multiple requests to a service.
2512//
2513//    // Example iterating over at most 3 pages of a ListClusters operation.
2514//    pageNum := 0
2515//    err := client.ListClustersPages(params,
2516//        func(page *ecs.ListClustersOutput, lastPage bool) bool {
2517//            pageNum++
2518//            fmt.Println(page)
2519//            return pageNum <= 3
2520//        })
2521//
2522func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2523	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2524}
2525
2526// ListClustersPagesWithContext same as ListClustersPages except
2527// it takes a Context and allows setting request options on the pages.
2528//
2529// The context must be non-nil and will be used for request cancellation. If
2530// the context is nil a panic will occur. In the future the SDK may create
2531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2532// for more information on using Contexts.
2533func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2534	p := request.Pagination{
2535		NewRequest: func() (*request.Request, error) {
2536			var inCpy *ListClustersInput
2537			if input != nil {
2538				tmp := *input
2539				inCpy = &tmp
2540			}
2541			req, _ := c.ListClustersRequest(inCpy)
2542			req.SetContext(ctx)
2543			req.ApplyOptions(opts...)
2544			return req, nil
2545		},
2546	}
2547
2548	for p.Next() {
2549		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2550			break
2551		}
2552	}
2553
2554	return p.Err()
2555}
2556
2557const opListContainerInstances = "ListContainerInstances"
2558
2559// ListContainerInstancesRequest generates a "aws/request.Request" representing the
2560// client's request for the ListContainerInstances operation. The "output" return
2561// value will be populated with the request's response once the request completes
2562// successfully.
2563//
2564// Use "Send" method on the returned Request to send the API call to the service.
2565// the "output" return value is not valid until after Send returns without error.
2566//
2567// See ListContainerInstances for more information on using the ListContainerInstances
2568// API call, and error handling.
2569//
2570// This method is useful when you want to inject custom logic or configuration
2571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2572//
2573//
2574//    // Example sending a request using the ListContainerInstancesRequest method.
2575//    req, resp := client.ListContainerInstancesRequest(params)
2576//
2577//    err := req.Send()
2578//    if err == nil { // resp is now filled
2579//        fmt.Println(resp)
2580//    }
2581//
2582// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2583func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
2584	op := &request.Operation{
2585		Name:       opListContainerInstances,
2586		HTTPMethod: "POST",
2587		HTTPPath:   "/",
2588		Paginator: &request.Paginator{
2589			InputTokens:     []string{"nextToken"},
2590			OutputTokens:    []string{"nextToken"},
2591			LimitToken:      "maxResults",
2592			TruncationToken: "",
2593		},
2594	}
2595
2596	if input == nil {
2597		input = &ListContainerInstancesInput{}
2598	}
2599
2600	output = &ListContainerInstancesOutput{}
2601	req = c.newRequest(op, input, output)
2602	return
2603}
2604
2605// ListContainerInstances API operation for Amazon EC2 Container Service.
2606//
2607// Returns a list of container instances in a specified cluster. You can filter
2608// the results of a ListContainerInstances operation with cluster query language
2609// statements inside the filter parameter. For more information, see Cluster
2610// Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
2611// in the Amazon Elastic Container Service Developer Guide.
2612//
2613// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2614// with awserr.Error's Code and Message methods to get detailed information about
2615// the error.
2616//
2617// See the AWS API reference guide for Amazon EC2 Container Service's
2618// API operation ListContainerInstances for usage and error information.
2619//
2620// Returned Error Types:
2621//   * ServerException
2622//   These errors are usually caused by a server issue.
2623//
2624//   * ClientException
2625//   These errors are usually caused by a client action, such as using an action
2626//   or resource on behalf of a user that doesn't have permissions to use the
2627//   action or resource, or specifying an identifier that is not valid.
2628//
2629//   * InvalidParameterException
2630//   The specified parameter is invalid. Review the available parameters for the
2631//   API request.
2632//
2633//   * ClusterNotFoundException
2634//   The specified cluster could not be found. You can view your available clusters
2635//   with ListClusters. Amazon ECS clusters are Region-specific.
2636//
2637// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2638func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
2639	req, out := c.ListContainerInstancesRequest(input)
2640	return out, req.Send()
2641}
2642
2643// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
2644// the ability to pass a context and additional request options.
2645//
2646// See ListContainerInstances for details on how to use this API operation.
2647//
2648// The context must be non-nil and will be used for request cancellation. If
2649// the context is nil a panic will occur. In the future the SDK may create
2650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2651// for more information on using Contexts.
2652func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
2653	req, out := c.ListContainerInstancesRequest(input)
2654	req.SetContext(ctx)
2655	req.ApplyOptions(opts...)
2656	return out, req.Send()
2657}
2658
2659// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
2660// calling the "fn" function with the response data for each page. To stop
2661// iterating, return false from the fn function.
2662//
2663// See ListContainerInstances method for more information on how to use this operation.
2664//
2665// Note: This operation can generate multiple requests to a service.
2666//
2667//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
2668//    pageNum := 0
2669//    err := client.ListContainerInstancesPages(params,
2670//        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
2671//            pageNum++
2672//            fmt.Println(page)
2673//            return pageNum <= 3
2674//        })
2675//
2676func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
2677	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2678}
2679
2680// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
2681// it takes a Context and allows setting request options on the pages.
2682//
2683// The context must be non-nil and will be used for request cancellation. If
2684// the context is nil a panic will occur. In the future the SDK may create
2685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2686// for more information on using Contexts.
2687func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
2688	p := request.Pagination{
2689		NewRequest: func() (*request.Request, error) {
2690			var inCpy *ListContainerInstancesInput
2691			if input != nil {
2692				tmp := *input
2693				inCpy = &tmp
2694			}
2695			req, _ := c.ListContainerInstancesRequest(inCpy)
2696			req.SetContext(ctx)
2697			req.ApplyOptions(opts...)
2698			return req, nil
2699		},
2700	}
2701
2702	for p.Next() {
2703		if !fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage()) {
2704			break
2705		}
2706	}
2707
2708	return p.Err()
2709}
2710
2711const opListServices = "ListServices"
2712
2713// ListServicesRequest generates a "aws/request.Request" representing the
2714// client's request for the ListServices operation. The "output" return
2715// value will be populated with the request's response once the request completes
2716// successfully.
2717//
2718// Use "Send" method on the returned Request to send the API call to the service.
2719// the "output" return value is not valid until after Send returns without error.
2720//
2721// See ListServices for more information on using the ListServices
2722// API call, and error handling.
2723//
2724// This method is useful when you want to inject custom logic or configuration
2725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2726//
2727//
2728//    // Example sending a request using the ListServicesRequest method.
2729//    req, resp := client.ListServicesRequest(params)
2730//
2731//    err := req.Send()
2732//    if err == nil { // resp is now filled
2733//        fmt.Println(resp)
2734//    }
2735//
2736// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2737func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
2738	op := &request.Operation{
2739		Name:       opListServices,
2740		HTTPMethod: "POST",
2741		HTTPPath:   "/",
2742		Paginator: &request.Paginator{
2743			InputTokens:     []string{"nextToken"},
2744			OutputTokens:    []string{"nextToken"},
2745			LimitToken:      "maxResults",
2746			TruncationToken: "",
2747		},
2748	}
2749
2750	if input == nil {
2751		input = &ListServicesInput{}
2752	}
2753
2754	output = &ListServicesOutput{}
2755	req = c.newRequest(op, input, output)
2756	return
2757}
2758
2759// ListServices API operation for Amazon EC2 Container Service.
2760//
2761// Lists the services that are running in a specified cluster.
2762//
2763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2764// with awserr.Error's Code and Message methods to get detailed information about
2765// the error.
2766//
2767// See the AWS API reference guide for Amazon EC2 Container Service's
2768// API operation ListServices for usage and error information.
2769//
2770// Returned Error Types:
2771//   * ServerException
2772//   These errors are usually caused by a server issue.
2773//
2774//   * ClientException
2775//   These errors are usually caused by a client action, such as using an action
2776//   or resource on behalf of a user that doesn't have permissions to use the
2777//   action or resource, or specifying an identifier that is not valid.
2778//
2779//   * InvalidParameterException
2780//   The specified parameter is invalid. Review the available parameters for the
2781//   API request.
2782//
2783//   * ClusterNotFoundException
2784//   The specified cluster could not be found. You can view your available clusters
2785//   with ListClusters. Amazon ECS clusters are Region-specific.
2786//
2787// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2788func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
2789	req, out := c.ListServicesRequest(input)
2790	return out, req.Send()
2791}
2792
2793// ListServicesWithContext is the same as ListServices with the addition of
2794// the ability to pass a context and additional request options.
2795//
2796// See ListServices for details on how to use this API operation.
2797//
2798// The context must be non-nil and will be used for request cancellation. If
2799// the context is nil a panic will occur. In the future the SDK may create
2800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2801// for more information on using Contexts.
2802func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
2803	req, out := c.ListServicesRequest(input)
2804	req.SetContext(ctx)
2805	req.ApplyOptions(opts...)
2806	return out, req.Send()
2807}
2808
2809// ListServicesPages iterates over the pages of a ListServices operation,
2810// calling the "fn" function with the response data for each page. To stop
2811// iterating, return false from the fn function.
2812//
2813// See ListServices method for more information on how to use this operation.
2814//
2815// Note: This operation can generate multiple requests to a service.
2816//
2817//    // Example iterating over at most 3 pages of a ListServices operation.
2818//    pageNum := 0
2819//    err := client.ListServicesPages(params,
2820//        func(page *ecs.ListServicesOutput, lastPage bool) bool {
2821//            pageNum++
2822//            fmt.Println(page)
2823//            return pageNum <= 3
2824//        })
2825//
2826func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
2827	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2828}
2829
2830// ListServicesPagesWithContext same as ListServicesPages except
2831// it takes a Context and allows setting request options on the pages.
2832//
2833// The context must be non-nil and will be used for request cancellation. If
2834// the context is nil a panic will occur. In the future the SDK may create
2835// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2836// for more information on using Contexts.
2837func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
2838	p := request.Pagination{
2839		NewRequest: func() (*request.Request, error) {
2840			var inCpy *ListServicesInput
2841			if input != nil {
2842				tmp := *input
2843				inCpy = &tmp
2844			}
2845			req, _ := c.ListServicesRequest(inCpy)
2846			req.SetContext(ctx)
2847			req.ApplyOptions(opts...)
2848			return req, nil
2849		},
2850	}
2851
2852	for p.Next() {
2853		if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) {
2854			break
2855		}
2856	}
2857
2858	return p.Err()
2859}
2860
2861const opListTagsForResource = "ListTagsForResource"
2862
2863// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2864// client's request for the ListTagsForResource operation. The "output" return
2865// value will be populated with the request's response once the request completes
2866// successfully.
2867//
2868// Use "Send" method on the returned Request to send the API call to the service.
2869// the "output" return value is not valid until after Send returns without error.
2870//
2871// See ListTagsForResource for more information on using the ListTagsForResource
2872// API call, and error handling.
2873//
2874// This method is useful when you want to inject custom logic or configuration
2875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2876//
2877//
2878//    // Example sending a request using the ListTagsForResourceRequest method.
2879//    req, resp := client.ListTagsForResourceRequest(params)
2880//
2881//    err := req.Send()
2882//    if err == nil { // resp is now filled
2883//        fmt.Println(resp)
2884//    }
2885//
2886// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2887func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2888	op := &request.Operation{
2889		Name:       opListTagsForResource,
2890		HTTPMethod: "POST",
2891		HTTPPath:   "/",
2892	}
2893
2894	if input == nil {
2895		input = &ListTagsForResourceInput{}
2896	}
2897
2898	output = &ListTagsForResourceOutput{}
2899	req = c.newRequest(op, input, output)
2900	return
2901}
2902
2903// ListTagsForResource API operation for Amazon EC2 Container Service.
2904//
2905// List the tags for an Amazon ECS resource.
2906//
2907// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2908// with awserr.Error's Code and Message methods to get detailed information about
2909// the error.
2910//
2911// See the AWS API reference guide for Amazon EC2 Container Service's
2912// API operation ListTagsForResource for usage and error information.
2913//
2914// Returned Error Types:
2915//   * ServerException
2916//   These errors are usually caused by a server issue.
2917//
2918//   * ClientException
2919//   These errors are usually caused by a client action, such as using an action
2920//   or resource on behalf of a user that doesn't have permissions to use the
2921//   action or resource, or specifying an identifier that is not valid.
2922//
2923//   * ClusterNotFoundException
2924//   The specified cluster could not be found. You can view your available clusters
2925//   with ListClusters. Amazon ECS clusters are Region-specific.
2926//
2927//   * InvalidParameterException
2928//   The specified parameter is invalid. Review the available parameters for the
2929//   API request.
2930//
2931// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2932func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2933	req, out := c.ListTagsForResourceRequest(input)
2934	return out, req.Send()
2935}
2936
2937// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2938// the ability to pass a context and additional request options.
2939//
2940// See ListTagsForResource for details on how to use this API operation.
2941//
2942// The context must be non-nil and will be used for request cancellation. If
2943// the context is nil a panic will occur. In the future the SDK may create
2944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2945// for more information on using Contexts.
2946func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2947	req, out := c.ListTagsForResourceRequest(input)
2948	req.SetContext(ctx)
2949	req.ApplyOptions(opts...)
2950	return out, req.Send()
2951}
2952
2953const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
2954
2955// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
2956// client's request for the ListTaskDefinitionFamilies operation. The "output" return
2957// value will be populated with the request's response once the request completes
2958// successfully.
2959//
2960// Use "Send" method on the returned Request to send the API call to the service.
2961// the "output" return value is not valid until after Send returns without error.
2962//
2963// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
2964// API call, and error handling.
2965//
2966// This method is useful when you want to inject custom logic or configuration
2967// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2968//
2969//
2970//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
2971//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
2972//
2973//    err := req.Send()
2974//    if err == nil { // resp is now filled
2975//        fmt.Println(resp)
2976//    }
2977//
2978// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2979func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
2980	op := &request.Operation{
2981		Name:       opListTaskDefinitionFamilies,
2982		HTTPMethod: "POST",
2983		HTTPPath:   "/",
2984		Paginator: &request.Paginator{
2985			InputTokens:     []string{"nextToken"},
2986			OutputTokens:    []string{"nextToken"},
2987			LimitToken:      "maxResults",
2988			TruncationToken: "",
2989		},
2990	}
2991
2992	if input == nil {
2993		input = &ListTaskDefinitionFamiliesInput{}
2994	}
2995
2996	output = &ListTaskDefinitionFamiliesOutput{}
2997	req = c.newRequest(op, input, output)
2998	return
2999}
3000
3001// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
3002//
3003// Returns a list of task definition families that are registered to your account
3004// (which may include task definition families that no longer have any ACTIVE
3005// task definition revisions).
3006//
3007// You can filter out task definition families that do not contain any ACTIVE
3008// task definition revisions by setting the status parameter to ACTIVE. You
3009// can also filter the results with the familyPrefix parameter.
3010//
3011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3012// with awserr.Error's Code and Message methods to get detailed information about
3013// the error.
3014//
3015// See the AWS API reference guide for Amazon EC2 Container Service's
3016// API operation ListTaskDefinitionFamilies for usage and error information.
3017//
3018// Returned Error Types:
3019//   * ServerException
3020//   These errors are usually caused by a server issue.
3021//
3022//   * ClientException
3023//   These errors are usually caused by a client action, such as using an action
3024//   or resource on behalf of a user that doesn't have permissions to use the
3025//   action or resource, or specifying an identifier that is not valid.
3026//
3027//   * InvalidParameterException
3028//   The specified parameter is invalid. Review the available parameters for the
3029//   API request.
3030//
3031// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
3032func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
3033	req, out := c.ListTaskDefinitionFamiliesRequest(input)
3034	return out, req.Send()
3035}
3036
3037// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
3038// the ability to pass a context and additional request options.
3039//
3040// See ListTaskDefinitionFamilies for details on how to use this API operation.
3041//
3042// The context must be non-nil and will be used for request cancellation. If
3043// the context is nil a panic will occur. In the future the SDK may create
3044// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3045// for more information on using Contexts.
3046func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
3047	req, out := c.ListTaskDefinitionFamiliesRequest(input)
3048	req.SetContext(ctx)
3049	req.ApplyOptions(opts...)
3050	return out, req.Send()
3051}
3052
3053// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
3054// calling the "fn" function with the response data for each page. To stop
3055// iterating, return false from the fn function.
3056//
3057// See ListTaskDefinitionFamilies method for more information on how to use this operation.
3058//
3059// Note: This operation can generate multiple requests to a service.
3060//
3061//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
3062//    pageNum := 0
3063//    err := client.ListTaskDefinitionFamiliesPages(params,
3064//        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
3065//            pageNum++
3066//            fmt.Println(page)
3067//            return pageNum <= 3
3068//        })
3069//
3070func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
3071	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
3072}
3073
3074// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
3075// it takes a Context and allows setting request options on the pages.
3076//
3077// The context must be non-nil and will be used for request cancellation. If
3078// the context is nil a panic will occur. In the future the SDK may create
3079// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3080// for more information on using Contexts.
3081func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
3082	p := request.Pagination{
3083		NewRequest: func() (*request.Request, error) {
3084			var inCpy *ListTaskDefinitionFamiliesInput
3085			if input != nil {
3086				tmp := *input
3087				inCpy = &tmp
3088			}
3089			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
3090			req.SetContext(ctx)
3091			req.ApplyOptions(opts...)
3092			return req, nil
3093		},
3094	}
3095
3096	for p.Next() {
3097		if !fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage()) {
3098			break
3099		}
3100	}
3101
3102	return p.Err()
3103}
3104
3105const opListTaskDefinitions = "ListTaskDefinitions"
3106
3107// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
3108// client's request for the ListTaskDefinitions operation. The "output" return
3109// value will be populated with the request's response once the request completes
3110// successfully.
3111//
3112// Use "Send" method on the returned Request to send the API call to the service.
3113// the "output" return value is not valid until after Send returns without error.
3114//
3115// See ListTaskDefinitions for more information on using the ListTaskDefinitions
3116// API call, and error handling.
3117//
3118// This method is useful when you want to inject custom logic or configuration
3119// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3120//
3121//
3122//    // Example sending a request using the ListTaskDefinitionsRequest method.
3123//    req, resp := client.ListTaskDefinitionsRequest(params)
3124//
3125//    err := req.Send()
3126//    if err == nil { // resp is now filled
3127//        fmt.Println(resp)
3128//    }
3129//
3130// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3131func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
3132	op := &request.Operation{
3133		Name:       opListTaskDefinitions,
3134		HTTPMethod: "POST",
3135		HTTPPath:   "/",
3136		Paginator: &request.Paginator{
3137			InputTokens:     []string{"nextToken"},
3138			OutputTokens:    []string{"nextToken"},
3139			LimitToken:      "maxResults",
3140			TruncationToken: "",
3141		},
3142	}
3143
3144	if input == nil {
3145		input = &ListTaskDefinitionsInput{}
3146	}
3147
3148	output = &ListTaskDefinitionsOutput{}
3149	req = c.newRequest(op, input, output)
3150	return
3151}
3152
3153// ListTaskDefinitions API operation for Amazon EC2 Container Service.
3154//
3155// Returns a list of task definitions that are registered to your account. You
3156// can filter the results by family name with the familyPrefix parameter or
3157// by status with the status parameter.
3158//
3159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3160// with awserr.Error's Code and Message methods to get detailed information about
3161// the error.
3162//
3163// See the AWS API reference guide for Amazon EC2 Container Service's
3164// API operation ListTaskDefinitions for usage and error information.
3165//
3166// Returned Error Types:
3167//   * ServerException
3168//   These errors are usually caused by a server issue.
3169//
3170//   * ClientException
3171//   These errors are usually caused by a client action, such as using an action
3172//   or resource on behalf of a user that doesn't have permissions to use the
3173//   action or resource, or specifying an identifier that is not valid.
3174//
3175//   * InvalidParameterException
3176//   The specified parameter is invalid. Review the available parameters for the
3177//   API request.
3178//
3179// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3180func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
3181	req, out := c.ListTaskDefinitionsRequest(input)
3182	return out, req.Send()
3183}
3184
3185// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
3186// the ability to pass a context and additional request options.
3187//
3188// See ListTaskDefinitions for details on how to use this API operation.
3189//
3190// The context must be non-nil and will be used for request cancellation. If
3191// the context is nil a panic will occur. In the future the SDK may create
3192// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3193// for more information on using Contexts.
3194func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
3195	req, out := c.ListTaskDefinitionsRequest(input)
3196	req.SetContext(ctx)
3197	req.ApplyOptions(opts...)
3198	return out, req.Send()
3199}
3200
3201// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
3202// calling the "fn" function with the response data for each page. To stop
3203// iterating, return false from the fn function.
3204//
3205// See ListTaskDefinitions method for more information on how to use this operation.
3206//
3207// Note: This operation can generate multiple requests to a service.
3208//
3209//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
3210//    pageNum := 0
3211//    err := client.ListTaskDefinitionsPages(params,
3212//        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
3213//            pageNum++
3214//            fmt.Println(page)
3215//            return pageNum <= 3
3216//        })
3217//
3218func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
3219	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
3220}
3221
3222// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
3223// it takes a Context and allows setting request options on the pages.
3224//
3225// The context must be non-nil and will be used for request cancellation. If
3226// the context is nil a panic will occur. In the future the SDK may create
3227// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3228// for more information on using Contexts.
3229func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
3230	p := request.Pagination{
3231		NewRequest: func() (*request.Request, error) {
3232			var inCpy *ListTaskDefinitionsInput
3233			if input != nil {
3234				tmp := *input
3235				inCpy = &tmp
3236			}
3237			req, _ := c.ListTaskDefinitionsRequest(inCpy)
3238			req.SetContext(ctx)
3239			req.ApplyOptions(opts...)
3240			return req, nil
3241		},
3242	}
3243
3244	for p.Next() {
3245		if !fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage()) {
3246			break
3247		}
3248	}
3249
3250	return p.Err()
3251}
3252
3253const opListTasks = "ListTasks"
3254
3255// ListTasksRequest generates a "aws/request.Request" representing the
3256// client's request for the ListTasks operation. The "output" return
3257// value will be populated with the request's response once the request completes
3258// successfully.
3259//
3260// Use "Send" method on the returned Request to send the API call to the service.
3261// the "output" return value is not valid until after Send returns without error.
3262//
3263// See ListTasks for more information on using the ListTasks
3264// API call, and error handling.
3265//
3266// This method is useful when you want to inject custom logic or configuration
3267// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3268//
3269//
3270//    // Example sending a request using the ListTasksRequest method.
3271//    req, resp := client.ListTasksRequest(params)
3272//
3273//    err := req.Send()
3274//    if err == nil { // resp is now filled
3275//        fmt.Println(resp)
3276//    }
3277//
3278// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3279func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
3280	op := &request.Operation{
3281		Name:       opListTasks,
3282		HTTPMethod: "POST",
3283		HTTPPath:   "/",
3284		Paginator: &request.Paginator{
3285			InputTokens:     []string{"nextToken"},
3286			OutputTokens:    []string{"nextToken"},
3287			LimitToken:      "maxResults",
3288			TruncationToken: "",
3289		},
3290	}
3291
3292	if input == nil {
3293		input = &ListTasksInput{}
3294	}
3295
3296	output = &ListTasksOutput{}
3297	req = c.newRequest(op, input, output)
3298	return
3299}
3300
3301// ListTasks API operation for Amazon EC2 Container Service.
3302//
3303// Returns a list of tasks for a specified cluster. You can filter the results
3304// by family name, by a particular container instance, or by the desired status
3305// of the task with the family, containerInstance, and desiredStatus parameters.
3306//
3307// Recently stopped tasks might appear in the returned results. Currently, stopped
3308// tasks appear in the returned results for at least one hour.
3309//
3310// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3311// with awserr.Error's Code and Message methods to get detailed information about
3312// the error.
3313//
3314// See the AWS API reference guide for Amazon EC2 Container Service's
3315// API operation ListTasks for usage and error information.
3316//
3317// Returned Error Types:
3318//   * ServerException
3319//   These errors are usually caused by a server issue.
3320//
3321//   * ClientException
3322//   These errors are usually caused by a client action, such as using an action
3323//   or resource on behalf of a user that doesn't have permissions to use the
3324//   action or resource, or specifying an identifier that is not valid.
3325//
3326//   * InvalidParameterException
3327//   The specified parameter is invalid. Review the available parameters for the
3328//   API request.
3329//
3330//   * ClusterNotFoundException
3331//   The specified cluster could not be found. You can view your available clusters
3332//   with ListClusters. Amazon ECS clusters are Region-specific.
3333//
3334//   * ServiceNotFoundException
3335//   The specified service could not be found. You can view your available services
3336//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
3337//
3338// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3339func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
3340	req, out := c.ListTasksRequest(input)
3341	return out, req.Send()
3342}
3343
3344// ListTasksWithContext is the same as ListTasks with the addition of
3345// the ability to pass a context and additional request options.
3346//
3347// See ListTasks for details on how to use this API operation.
3348//
3349// The context must be non-nil and will be used for request cancellation. If
3350// the context is nil a panic will occur. In the future the SDK may create
3351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3352// for more information on using Contexts.
3353func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
3354	req, out := c.ListTasksRequest(input)
3355	req.SetContext(ctx)
3356	req.ApplyOptions(opts...)
3357	return out, req.Send()
3358}
3359
3360// ListTasksPages iterates over the pages of a ListTasks operation,
3361// calling the "fn" function with the response data for each page. To stop
3362// iterating, return false from the fn function.
3363//
3364// See ListTasks method for more information on how to use this operation.
3365//
3366// Note: This operation can generate multiple requests to a service.
3367//
3368//    // Example iterating over at most 3 pages of a ListTasks operation.
3369//    pageNum := 0
3370//    err := client.ListTasksPages(params,
3371//        func(page *ecs.ListTasksOutput, lastPage bool) bool {
3372//            pageNum++
3373//            fmt.Println(page)
3374//            return pageNum <= 3
3375//        })
3376//
3377func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
3378	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
3379}
3380
3381// ListTasksPagesWithContext same as ListTasksPages except
3382// it takes a Context and allows setting request options on the pages.
3383//
3384// The context must be non-nil and will be used for request cancellation. If
3385// the context is nil a panic will occur. In the future the SDK may create
3386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3387// for more information on using Contexts.
3388func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
3389	p := request.Pagination{
3390		NewRequest: func() (*request.Request, error) {
3391			var inCpy *ListTasksInput
3392			if input != nil {
3393				tmp := *input
3394				inCpy = &tmp
3395			}
3396			req, _ := c.ListTasksRequest(inCpy)
3397			req.SetContext(ctx)
3398			req.ApplyOptions(opts...)
3399			return req, nil
3400		},
3401	}
3402
3403	for p.Next() {
3404		if !fn(p.Page().(*ListTasksOutput), !p.HasNextPage()) {
3405			break
3406		}
3407	}
3408
3409	return p.Err()
3410}
3411
3412const opPutAccountSetting = "PutAccountSetting"
3413
3414// PutAccountSettingRequest generates a "aws/request.Request" representing the
3415// client's request for the PutAccountSetting operation. The "output" return
3416// value will be populated with the request's response once the request completes
3417// successfully.
3418//
3419// Use "Send" method on the returned Request to send the API call to the service.
3420// the "output" return value is not valid until after Send returns without error.
3421//
3422// See PutAccountSetting for more information on using the PutAccountSetting
3423// API call, and error handling.
3424//
3425// This method is useful when you want to inject custom logic or configuration
3426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3427//
3428//
3429//    // Example sending a request using the PutAccountSettingRequest method.
3430//    req, resp := client.PutAccountSettingRequest(params)
3431//
3432//    err := req.Send()
3433//    if err == nil { // resp is now filled
3434//        fmt.Println(resp)
3435//    }
3436//
3437// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3438func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
3439	op := &request.Operation{
3440		Name:       opPutAccountSetting,
3441		HTTPMethod: "POST",
3442		HTTPPath:   "/",
3443	}
3444
3445	if input == nil {
3446		input = &PutAccountSettingInput{}
3447	}
3448
3449	output = &PutAccountSettingOutput{}
3450	req = c.newRequest(op, input, output)
3451	return
3452}
3453
3454// PutAccountSetting API operation for Amazon EC2 Container Service.
3455//
3456// Modifies an account setting. Account settings are set on a per-Region basis.
3457//
3458// If you change the account setting for the root user, the default settings
3459// for all of the IAM users and roles for which no individual account setting
3460// has been specified are reset. For more information, see Account Settings
3461// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
3462// in the Amazon Elastic Container Service Developer Guide.
3463//
3464// When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
3465// are specified, the Amazon Resource Name (ARN) and resource ID format of the
3466// resource type for a specified IAM user, IAM role, or the root user for an
3467// account is affected. The opt-in and opt-out account setting must be set for
3468// each Amazon ECS resource separately. The ARN and resource ID format of a
3469// resource will be defined by the opt-in status of the IAM user or role that
3470// created the resource. You must enable this setting to use Amazon ECS features
3471// such as resource tagging.
3472//
3473// When awsvpcTrunking is specified, the elastic network interface (ENI) limit
3474// for any new container instances that support the feature is changed. If awsvpcTrunking
3475// is enabled, any new container instances that support the feature are launched
3476// have the increased ENI limits available to them. For more information, see
3477// Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
3478// in the Amazon Elastic Container Service Developer Guide.
3479//
3480// When containerInsights is specified, the default setting indicating whether
3481// CloudWatch Container Insights is enabled for your clusters is changed. If
3482// containerInsights is enabled, any new clusters that are created will have
3483// Container Insights enabled unless you disable it during cluster creation.
3484// For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
3485// in the Amazon Elastic Container Service Developer Guide.
3486//
3487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3488// with awserr.Error's Code and Message methods to get detailed information about
3489// the error.
3490//
3491// See the AWS API reference guide for Amazon EC2 Container Service's
3492// API operation PutAccountSetting for usage and error information.
3493//
3494// Returned Error Types:
3495//   * ServerException
3496//   These errors are usually caused by a server issue.
3497//
3498//   * ClientException
3499//   These errors are usually caused by a client action, such as using an action
3500//   or resource on behalf of a user that doesn't have permissions to use the
3501//   action or resource, or specifying an identifier that is not valid.
3502//
3503//   * InvalidParameterException
3504//   The specified parameter is invalid. Review the available parameters for the
3505//   API request.
3506//
3507// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3508func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
3509	req, out := c.PutAccountSettingRequest(input)
3510	return out, req.Send()
3511}
3512
3513// PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
3514// the ability to pass a context and additional request options.
3515//
3516// See PutAccountSetting for details on how to use this API operation.
3517//
3518// The context must be non-nil and will be used for request cancellation. If
3519// the context is nil a panic will occur. In the future the SDK may create
3520// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3521// for more information on using Contexts.
3522func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
3523	req, out := c.PutAccountSettingRequest(input)
3524	req.SetContext(ctx)
3525	req.ApplyOptions(opts...)
3526	return out, req.Send()
3527}
3528
3529const opPutAccountSettingDefault = "PutAccountSettingDefault"
3530
3531// PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
3532// client's request for the PutAccountSettingDefault operation. The "output" return
3533// value will be populated with the request's response once the request completes
3534// successfully.
3535//
3536// Use "Send" method on the returned Request to send the API call to the service.
3537// the "output" return value is not valid until after Send returns without error.
3538//
3539// See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
3540// API call, and error handling.
3541//
3542// This method is useful when you want to inject custom logic or configuration
3543// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3544//
3545//
3546//    // Example sending a request using the PutAccountSettingDefaultRequest method.
3547//    req, resp := client.PutAccountSettingDefaultRequest(params)
3548//
3549//    err := req.Send()
3550//    if err == nil { // resp is now filled
3551//        fmt.Println(resp)
3552//    }
3553//
3554// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3555func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
3556	op := &request.Operation{
3557		Name:       opPutAccountSettingDefault,
3558		HTTPMethod: "POST",
3559		HTTPPath:   "/",
3560	}
3561
3562	if input == nil {
3563		input = &PutAccountSettingDefaultInput{}
3564	}
3565
3566	output = &PutAccountSettingDefaultOutput{}
3567	req = c.newRequest(op, input, output)
3568	return
3569}
3570
3571// PutAccountSettingDefault API operation for Amazon EC2 Container Service.
3572//
3573// Modifies an account setting for all IAM users on an account for whom no individual
3574// account setting has been specified. Account settings are set on a per-Region
3575// basis.
3576//
3577// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3578// with awserr.Error's Code and Message methods to get detailed information about
3579// the error.
3580//
3581// See the AWS API reference guide for Amazon EC2 Container Service's
3582// API operation PutAccountSettingDefault for usage and error information.
3583//
3584// Returned Error Types:
3585//   * ServerException
3586//   These errors are usually caused by a server issue.
3587//
3588//   * ClientException
3589//   These errors are usually caused by a client action, such as using an action
3590//   or resource on behalf of a user that doesn't have permissions to use the
3591//   action or resource, or specifying an identifier that is not valid.
3592//
3593//   * InvalidParameterException
3594//   The specified parameter is invalid. Review the available parameters for the
3595//   API request.
3596//
3597// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3598func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
3599	req, out := c.PutAccountSettingDefaultRequest(input)
3600	return out, req.Send()
3601}
3602
3603// PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
3604// the ability to pass a context and additional request options.
3605//
3606// See PutAccountSettingDefault for details on how to use this API operation.
3607//
3608// The context must be non-nil and will be used for request cancellation. If
3609// the context is nil a panic will occur. In the future the SDK may create
3610// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3611// for more information on using Contexts.
3612func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
3613	req, out := c.PutAccountSettingDefaultRequest(input)
3614	req.SetContext(ctx)
3615	req.ApplyOptions(opts...)
3616	return out, req.Send()
3617}
3618
3619const opPutAttributes = "PutAttributes"
3620
3621// PutAttributesRequest generates a "aws/request.Request" representing the
3622// client's request for the PutAttributes operation. The "output" return
3623// value will be populated with the request's response once the request completes
3624// successfully.
3625//
3626// Use "Send" method on the returned Request to send the API call to the service.
3627// the "output" return value is not valid until after Send returns without error.
3628//
3629// See PutAttributes for more information on using the PutAttributes
3630// API call, and error handling.
3631//
3632// This method is useful when you want to inject custom logic or configuration
3633// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3634//
3635//
3636//    // Example sending a request using the PutAttributesRequest method.
3637//    req, resp := client.PutAttributesRequest(params)
3638//
3639//    err := req.Send()
3640//    if err == nil { // resp is now filled
3641//        fmt.Println(resp)
3642//    }
3643//
3644// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3645func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
3646	op := &request.Operation{
3647		Name:       opPutAttributes,
3648		HTTPMethod: "POST",
3649		HTTPPath:   "/",
3650	}
3651
3652	if input == nil {
3653		input = &PutAttributesInput{}
3654	}
3655
3656	output = &PutAttributesOutput{}
3657	req = c.newRequest(op, input, output)
3658	return
3659}
3660
3661// PutAttributes API operation for Amazon EC2 Container Service.
3662//
3663// Create or update an attribute on an Amazon ECS resource. If the attribute
3664// does not exist, it is created. If the attribute exists, its value is replaced
3665// with the specified value. To delete an attribute, use DeleteAttributes. For
3666// more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3667// in the Amazon Elastic Container Service Developer Guide.
3668//
3669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3670// with awserr.Error's Code and Message methods to get detailed information about
3671// the error.
3672//
3673// See the AWS API reference guide for Amazon EC2 Container Service's
3674// API operation PutAttributes for usage and error information.
3675//
3676// Returned Error Types:
3677//   * ClusterNotFoundException
3678//   The specified cluster could not be found. You can view your available clusters
3679//   with ListClusters. Amazon ECS clusters are Region-specific.
3680//
3681//   * TargetNotFoundException
3682//   The specified target could not be found. You can view your available container
3683//   instances with ListContainerInstances. Amazon ECS container instances are
3684//   cluster-specific and Region-specific.
3685//
3686//   * AttributeLimitExceededException
3687//   You can apply up to 10 custom attributes per resource. You can view the attributes
3688//   of a resource with ListAttributes. You can remove existing attributes on
3689//   a resource with DeleteAttributes.
3690//
3691//   * InvalidParameterException
3692//   The specified parameter is invalid. Review the available parameters for the
3693//   API request.
3694//
3695// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3696func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
3697	req, out := c.PutAttributesRequest(input)
3698	return out, req.Send()
3699}
3700
3701// PutAttributesWithContext is the same as PutAttributes with the addition of
3702// the ability to pass a context and additional request options.
3703//
3704// See PutAttributes for details on how to use this API operation.
3705//
3706// The context must be non-nil and will be used for request cancellation. If
3707// the context is nil a panic will occur. In the future the SDK may create
3708// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3709// for more information on using Contexts.
3710func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
3711	req, out := c.PutAttributesRequest(input)
3712	req.SetContext(ctx)
3713	req.ApplyOptions(opts...)
3714	return out, req.Send()
3715}
3716
3717const opPutClusterCapacityProviders = "PutClusterCapacityProviders"
3718
3719// PutClusterCapacityProvidersRequest generates a "aws/request.Request" representing the
3720// client's request for the PutClusterCapacityProviders operation. The "output" return
3721// value will be populated with the request's response once the request completes
3722// successfully.
3723//
3724// Use "Send" method on the returned Request to send the API call to the service.
3725// the "output" return value is not valid until after Send returns without error.
3726//
3727// See PutClusterCapacityProviders for more information on using the PutClusterCapacityProviders
3728// API call, and error handling.
3729//
3730// This method is useful when you want to inject custom logic or configuration
3731// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3732//
3733//
3734//    // Example sending a request using the PutClusterCapacityProvidersRequest method.
3735//    req, resp := client.PutClusterCapacityProvidersRequest(params)
3736//
3737//    err := req.Send()
3738//    if err == nil { // resp is now filled
3739//        fmt.Println(resp)
3740//    }
3741//
3742// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3743func (c *ECS) PutClusterCapacityProvidersRequest(input *PutClusterCapacityProvidersInput) (req *request.Request, output *PutClusterCapacityProvidersOutput) {
3744	op := &request.Operation{
3745		Name:       opPutClusterCapacityProviders,
3746		HTTPMethod: "POST",
3747		HTTPPath:   "/",
3748	}
3749
3750	if input == nil {
3751		input = &PutClusterCapacityProvidersInput{}
3752	}
3753
3754	output = &PutClusterCapacityProvidersOutput{}
3755	req = c.newRequest(op, input, output)
3756	return
3757}
3758
3759// PutClusterCapacityProviders API operation for Amazon EC2 Container Service.
3760//
3761// Modifies the available capacity providers and the default capacity provider
3762// strategy for a cluster.
3763//
3764// You must specify both the available capacity providers and a default capacity
3765// provider strategy for the cluster. If the specified cluster has existing
3766// capacity providers associated with it, you must specify all existing capacity
3767// providers in addition to any new ones you want to add. Any existing capacity
3768// providers associated with a cluster that are omitted from a PutClusterCapacityProviders
3769// API call will be disassociated with the cluster. You can only disassociate
3770// an existing capacity provider from a cluster if it's not being used by any
3771// existing tasks.
3772//
3773// When creating a service or running a task on a cluster, if no capacity provider
3774// or launch type is specified, then the cluster's default capacity provider
3775// strategy is used. It is recommended to define a default capacity provider
3776// strategy for your cluster, however you may specify an empty array ([]) to
3777// bypass defining a default strategy.
3778//
3779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3780// with awserr.Error's Code and Message methods to get detailed information about
3781// the error.
3782//
3783// See the AWS API reference guide for Amazon EC2 Container Service's
3784// API operation PutClusterCapacityProviders for usage and error information.
3785//
3786// Returned Error Types:
3787//   * ServerException
3788//   These errors are usually caused by a server issue.
3789//
3790//   * ClientException
3791//   These errors are usually caused by a client action, such as using an action
3792//   or resource on behalf of a user that doesn't have permissions to use the
3793//   action or resource, or specifying an identifier that is not valid.
3794//
3795//   * InvalidParameterException
3796//   The specified parameter is invalid. Review the available parameters for the
3797//   API request.
3798//
3799//   * ClusterNotFoundException
3800//   The specified cluster could not be found. You can view your available clusters
3801//   with ListClusters. Amazon ECS clusters are Region-specific.
3802//
3803//   * ResourceInUseException
3804//   The specified resource is in-use and cannot be removed.
3805//
3806//   * UpdateInProgressException
3807//   There is already a current Amazon ECS container agent update in progress
3808//   on the specified container instance. If the container agent becomes disconnected
3809//   while it is in a transitional stage, such as PENDING or STAGING, the update
3810//   process can get stuck in that state. However, when the agent reconnects,
3811//   it resumes where it stopped previously.
3812//
3813// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3814func (c *ECS) PutClusterCapacityProviders(input *PutClusterCapacityProvidersInput) (*PutClusterCapacityProvidersOutput, error) {
3815	req, out := c.PutClusterCapacityProvidersRequest(input)
3816	return out, req.Send()
3817}
3818
3819// PutClusterCapacityProvidersWithContext is the same as PutClusterCapacityProviders with the addition of
3820// the ability to pass a context and additional request options.
3821//
3822// See PutClusterCapacityProviders for details on how to use this API operation.
3823//
3824// The context must be non-nil and will be used for request cancellation. If
3825// the context is nil a panic will occur. In the future the SDK may create
3826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3827// for more information on using Contexts.
3828func (c *ECS) PutClusterCapacityProvidersWithContext(ctx aws.Context, input *PutClusterCapacityProvidersInput, opts ...request.Option) (*PutClusterCapacityProvidersOutput, error) {
3829	req, out := c.PutClusterCapacityProvidersRequest(input)
3830	req.SetContext(ctx)
3831	req.ApplyOptions(opts...)
3832	return out, req.Send()
3833}
3834
3835const opRegisterContainerInstance = "RegisterContainerInstance"
3836
3837// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
3838// client's request for the RegisterContainerInstance operation. The "output" return
3839// value will be populated with the request's response once the request completes
3840// successfully.
3841//
3842// Use "Send" method on the returned Request to send the API call to the service.
3843// the "output" return value is not valid until after Send returns without error.
3844//
3845// See RegisterContainerInstance for more information on using the RegisterContainerInstance
3846// API call, and error handling.
3847//
3848// This method is useful when you want to inject custom logic or configuration
3849// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3850//
3851//
3852//    // Example sending a request using the RegisterContainerInstanceRequest method.
3853//    req, resp := client.RegisterContainerInstanceRequest(params)
3854//
3855//    err := req.Send()
3856//    if err == nil { // resp is now filled
3857//        fmt.Println(resp)
3858//    }
3859//
3860// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3861func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
3862	op := &request.Operation{
3863		Name:       opRegisterContainerInstance,
3864		HTTPMethod: "POST",
3865		HTTPPath:   "/",
3866	}
3867
3868	if input == nil {
3869		input = &RegisterContainerInstanceInput{}
3870	}
3871
3872	output = &RegisterContainerInstanceOutput{}
3873	req = c.newRequest(op, input, output)
3874	return
3875}
3876
3877// RegisterContainerInstance API operation for Amazon EC2 Container Service.
3878//
3879//
3880// This action is only used by the Amazon ECS agent, and it is not intended
3881// for use outside of the agent.
3882//
3883// Registers an EC2 instance into the specified cluster. This instance becomes
3884// available to place containers on.
3885//
3886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3887// with awserr.Error's Code and Message methods to get detailed information about
3888// the error.
3889//
3890// See the AWS API reference guide for Amazon EC2 Container Service's
3891// API operation RegisterContainerInstance for usage and error information.
3892//
3893// Returned Error Types:
3894//   * ServerException
3895//   These errors are usually caused by a server issue.
3896//
3897//   * ClientException
3898//   These errors are usually caused by a client action, such as using an action
3899//   or resource on behalf of a user that doesn't have permissions to use the
3900//   action or resource, or specifying an identifier that is not valid.
3901//
3902//   * InvalidParameterException
3903//   The specified parameter is invalid. Review the available parameters for the
3904//   API request.
3905//
3906// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3907func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
3908	req, out := c.RegisterContainerInstanceRequest(input)
3909	return out, req.Send()
3910}
3911
3912// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
3913// the ability to pass a context and additional request options.
3914//
3915// See RegisterContainerInstance for details on how to use this API operation.
3916//
3917// The context must be non-nil and will be used for request cancellation. If
3918// the context is nil a panic will occur. In the future the SDK may create
3919// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3920// for more information on using Contexts.
3921func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
3922	req, out := c.RegisterContainerInstanceRequest(input)
3923	req.SetContext(ctx)
3924	req.ApplyOptions(opts...)
3925	return out, req.Send()
3926}
3927
3928const opRegisterTaskDefinition = "RegisterTaskDefinition"
3929
3930// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
3931// client's request for the RegisterTaskDefinition operation. The "output" return
3932// value will be populated with the request's response once the request completes
3933// successfully.
3934//
3935// Use "Send" method on the returned Request to send the API call to the service.
3936// the "output" return value is not valid until after Send returns without error.
3937//
3938// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
3939// API call, and error handling.
3940//
3941// This method is useful when you want to inject custom logic or configuration
3942// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3943//
3944//
3945//    // Example sending a request using the RegisterTaskDefinitionRequest method.
3946//    req, resp := client.RegisterTaskDefinitionRequest(params)
3947//
3948//    err := req.Send()
3949//    if err == nil { // resp is now filled
3950//        fmt.Println(resp)
3951//    }
3952//
3953// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3954func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
3955	op := &request.Operation{
3956		Name:       opRegisterTaskDefinition,
3957		HTTPMethod: "POST",
3958		HTTPPath:   "/",
3959	}
3960
3961	if input == nil {
3962		input = &RegisterTaskDefinitionInput{}
3963	}
3964
3965	output = &RegisterTaskDefinitionOutput{}
3966	req = c.newRequest(op, input, output)
3967	return
3968}
3969
3970// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
3971//
3972// Registers a new task definition from the supplied family and containerDefinitions.
3973// Optionally, you can add data volumes to your containers with the volumes
3974// parameter. For more information about task definition parameters and defaults,
3975// see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
3976// in the Amazon Elastic Container Service Developer Guide.
3977//
3978// You can specify an IAM role for your task with the taskRoleArn parameter.
3979// When you specify an IAM role for a task, its containers can then use the
3980// latest versions of the AWS CLI or SDKs to make API requests to the AWS services
3981// that are specified in the IAM policy associated with the role. For more information,
3982// see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
3983// in the Amazon Elastic Container Service Developer Guide.
3984//
3985// You can specify a Docker networking mode for the containers in your task
3986// definition with the networkMode parameter. The available network modes correspond
3987// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
3988// in the Docker run reference. If you specify the awsvpc network mode, the
3989// task is allocated an elastic network interface, and you must specify a NetworkConfiguration
3990// when you create a service or run a task with the task definition. For more
3991// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
3992// in the Amazon Elastic Container Service Developer Guide.
3993//
3994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3995// with awserr.Error's Code and Message methods to get detailed information about
3996// the error.
3997//
3998// See the AWS API reference guide for Amazon EC2 Container Service's
3999// API operation RegisterTaskDefinition for usage and error information.
4000//
4001// Returned Error Types:
4002//   * ServerException
4003//   These errors are usually caused by a server issue.
4004//
4005//   * ClientException
4006//   These errors are usually caused by a client action, such as using an action
4007//   or resource on behalf of a user that doesn't have permissions to use the
4008//   action or resource, or specifying an identifier that is not valid.
4009//
4010//   * InvalidParameterException
4011//   The specified parameter is invalid. Review the available parameters for the
4012//   API request.
4013//
4014// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
4015func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
4016	req, out := c.RegisterTaskDefinitionRequest(input)
4017	return out, req.Send()
4018}
4019
4020// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
4021// the ability to pass a context and additional request options.
4022//
4023// See RegisterTaskDefinition for details on how to use this API operation.
4024//
4025// The context must be non-nil and will be used for request cancellation. If
4026// the context is nil a panic will occur. In the future the SDK may create
4027// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4028// for more information on using Contexts.
4029func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
4030	req, out := c.RegisterTaskDefinitionRequest(input)
4031	req.SetContext(ctx)
4032	req.ApplyOptions(opts...)
4033	return out, req.Send()
4034}
4035
4036const opRunTask = "RunTask"
4037
4038// RunTaskRequest generates a "aws/request.Request" representing the
4039// client's request for the RunTask operation. The "output" return
4040// value will be populated with the request's response once the request completes
4041// successfully.
4042//
4043// Use "Send" method on the returned Request to send the API call to the service.
4044// the "output" return value is not valid until after Send returns without error.
4045//
4046// See RunTask for more information on using the RunTask
4047// API call, and error handling.
4048//
4049// This method is useful when you want to inject custom logic or configuration
4050// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4051//
4052//
4053//    // Example sending a request using the RunTaskRequest method.
4054//    req, resp := client.RunTaskRequest(params)
4055//
4056//    err := req.Send()
4057//    if err == nil { // resp is now filled
4058//        fmt.Println(resp)
4059//    }
4060//
4061// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
4062func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
4063	op := &request.Operation{
4064		Name:       opRunTask,
4065		HTTPMethod: "POST",
4066		HTTPPath:   "/",
4067	}
4068
4069	if input == nil {
4070		input = &RunTaskInput{}
4071	}
4072
4073	output = &RunTaskOutput{}
4074	req = c.newRequest(op, input, output)
4075	return
4076}
4077
4078// RunTask API operation for Amazon EC2 Container Service.
4079//
4080// Starts a new task using the specified task definition.
4081//
4082// You can allow Amazon ECS to place tasks for you, or you can customize how
4083// Amazon ECS places tasks using placement constraints and placement strategies.
4084// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4085// in the Amazon Elastic Container Service Developer Guide.
4086//
4087// Alternatively, you can use StartTask to use your own scheduler or place tasks
4088// manually on specific container instances.
4089//
4090// The Amazon ECS API follows an eventual consistency model, due to the distributed
4091// nature of the system supporting the API. This means that the result of an
4092// API command you run that affects your Amazon ECS resources might not be immediately
4093// visible to all subsequent commands you run. Keep this in mind when you carry
4094// out an API command that immediately follows a previous API command.
4095//
4096// To manage eventual consistency, you can do the following:
4097//
4098//    * Confirm the state of the resource before you run a command to modify
4099//    it. Run the DescribeTasks command using an exponential backoff algorithm
4100//    to ensure that you allow enough time for the previous command to propagate
4101//    through the system. To do this, run the DescribeTasks command repeatedly,
4102//    starting with a couple of seconds of wait time and increasing gradually
4103//    up to five minutes of wait time.
4104//
4105//    * Add wait time between subsequent commands, even if the DescribeTasks
4106//    command returns an accurate response. Apply an exponential backoff algorithm
4107//    starting with a couple of seconds of wait time, and increase gradually
4108//    up to about five minutes of wait time.
4109//
4110// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4111// with awserr.Error's Code and Message methods to get detailed information about
4112// the error.
4113//
4114// See the AWS API reference guide for Amazon EC2 Container Service's
4115// API operation RunTask for usage and error information.
4116//
4117// Returned Error Types:
4118//   * ServerException
4119//   These errors are usually caused by a server issue.
4120//
4121//   * ClientException
4122//   These errors are usually caused by a client action, such as using an action
4123//   or resource on behalf of a user that doesn't have permissions to use the
4124//   action or resource, or specifying an identifier that is not valid.
4125//
4126//   * InvalidParameterException
4127//   The specified parameter is invalid. Review the available parameters for the
4128//   API request.
4129//
4130//   * ClusterNotFoundException
4131//   The specified cluster could not be found. You can view your available clusters
4132//   with ListClusters. Amazon ECS clusters are Region-specific.
4133//
4134//   * UnsupportedFeatureException
4135//   The specified task is not supported in this Region.
4136//
4137//   * PlatformUnknownException
4138//   The specified platform version does not exist.
4139//
4140//   * PlatformTaskDefinitionIncompatibilityException
4141//   The specified platform version does not satisfy the task definition's required
4142//   capabilities.
4143//
4144//   * AccessDeniedException
4145//   You do not have authorization to perform the requested action.
4146//
4147//   * BlockedException
4148//   Your AWS account has been blocked. For more information, contact AWS Support
4149//   (http://aws.amazon.com/contact-us/).
4150//
4151// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
4152func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
4153	req, out := c.RunTaskRequest(input)
4154	return out, req.Send()
4155}
4156
4157// RunTaskWithContext is the same as RunTask with the addition of
4158// the ability to pass a context and additional request options.
4159//
4160// See RunTask for details on how to use this API operation.
4161//
4162// The context must be non-nil and will be used for request cancellation. If
4163// the context is nil a panic will occur. In the future the SDK may create
4164// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4165// for more information on using Contexts.
4166func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
4167	req, out := c.RunTaskRequest(input)
4168	req.SetContext(ctx)
4169	req.ApplyOptions(opts...)
4170	return out, req.Send()
4171}
4172
4173const opStartTask = "StartTask"
4174
4175// StartTaskRequest generates a "aws/request.Request" representing the
4176// client's request for the StartTask operation. The "output" return
4177// value will be populated with the request's response once the request completes
4178// successfully.
4179//
4180// Use "Send" method on the returned Request to send the API call to the service.
4181// the "output" return value is not valid until after Send returns without error.
4182//
4183// See StartTask for more information on using the StartTask
4184// API call, and error handling.
4185//
4186// This method is useful when you want to inject custom logic or configuration
4187// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4188//
4189//
4190//    // Example sending a request using the StartTaskRequest method.
4191//    req, resp := client.StartTaskRequest(params)
4192//
4193//    err := req.Send()
4194//    if err == nil { // resp is now filled
4195//        fmt.Println(resp)
4196//    }
4197//
4198// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4199func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
4200	op := &request.Operation{
4201		Name:       opStartTask,
4202		HTTPMethod: "POST",
4203		HTTPPath:   "/",
4204	}
4205
4206	if input == nil {
4207		input = &StartTaskInput{}
4208	}
4209
4210	output = &StartTaskOutput{}
4211	req = c.newRequest(op, input, output)
4212	return
4213}
4214
4215// StartTask API operation for Amazon EC2 Container Service.
4216//
4217// Starts a new task from the specified task definition on the specified container
4218// instance or instances.
4219//
4220// Alternatively, you can use RunTask to place tasks for you. For more information,
4221// see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4222// in the Amazon Elastic Container Service Developer Guide.
4223//
4224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4225// with awserr.Error's Code and Message methods to get detailed information about
4226// the error.
4227//
4228// See the AWS API reference guide for Amazon EC2 Container Service's
4229// API operation StartTask for usage and error information.
4230//
4231// Returned Error Types:
4232//   * ServerException
4233//   These errors are usually caused by a server issue.
4234//
4235//   * ClientException
4236//   These errors are usually caused by a client action, such as using an action
4237//   or resource on behalf of a user that doesn't have permissions to use the
4238//   action or resource, or specifying an identifier that is not valid.
4239//
4240//   * InvalidParameterException
4241//   The specified parameter is invalid. Review the available parameters for the
4242//   API request.
4243//
4244//   * ClusterNotFoundException
4245//   The specified cluster could not be found. You can view your available clusters
4246//   with ListClusters. Amazon ECS clusters are Region-specific.
4247//
4248// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4249func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
4250	req, out := c.StartTaskRequest(input)
4251	return out, req.Send()
4252}
4253
4254// StartTaskWithContext is the same as StartTask with the addition of
4255// the ability to pass a context and additional request options.
4256//
4257// See StartTask for details on how to use this API operation.
4258//
4259// The context must be non-nil and will be used for request cancellation. If
4260// the context is nil a panic will occur. In the future the SDK may create
4261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4262// for more information on using Contexts.
4263func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
4264	req, out := c.StartTaskRequest(input)
4265	req.SetContext(ctx)
4266	req.ApplyOptions(opts...)
4267	return out, req.Send()
4268}
4269
4270const opStopTask = "StopTask"
4271
4272// StopTaskRequest generates a "aws/request.Request" representing the
4273// client's request for the StopTask operation. The "output" return
4274// value will be populated with the request's response once the request completes
4275// successfully.
4276//
4277// Use "Send" method on the returned Request to send the API call to the service.
4278// the "output" return value is not valid until after Send returns without error.
4279//
4280// See StopTask for more information on using the StopTask
4281// API call, and error handling.
4282//
4283// This method is useful when you want to inject custom logic or configuration
4284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4285//
4286//
4287//    // Example sending a request using the StopTaskRequest method.
4288//    req, resp := client.StopTaskRequest(params)
4289//
4290//    err := req.Send()
4291//    if err == nil { // resp is now filled
4292//        fmt.Println(resp)
4293//    }
4294//
4295// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4296func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
4297	op := &request.Operation{
4298		Name:       opStopTask,
4299		HTTPMethod: "POST",
4300		HTTPPath:   "/",
4301	}
4302
4303	if input == nil {
4304		input = &StopTaskInput{}
4305	}
4306
4307	output = &StopTaskOutput{}
4308	req = c.newRequest(op, input, output)
4309	return
4310}
4311
4312// StopTask API operation for Amazon EC2 Container Service.
4313//
4314// Stops a running task. Any tags associated with the task will be deleted.
4315//
4316// When StopTask is called on a task, the equivalent of docker stop is issued
4317// to the containers running in the task. This results in a SIGTERM value and
4318// a default 30-second timeout, after which the SIGKILL value is sent and the
4319// containers are forcibly stopped. If the container handles the SIGTERM value
4320// gracefully and exits within 30 seconds from receiving it, no SIGKILL value
4321// is sent.
4322//
4323// The default 30-second timeout can be configured on the Amazon ECS container
4324// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
4325// see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
4326// in the Amazon Elastic Container Service Developer Guide.
4327//
4328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4329// with awserr.Error's Code and Message methods to get detailed information about
4330// the error.
4331//
4332// See the AWS API reference guide for Amazon EC2 Container Service's
4333// API operation StopTask for usage and error information.
4334//
4335// Returned Error Types:
4336//   * ServerException
4337//   These errors are usually caused by a server issue.
4338//
4339//   * ClientException
4340//   These errors are usually caused by a client action, such as using an action
4341//   or resource on behalf of a user that doesn't have permissions to use the
4342//   action or resource, or specifying an identifier that is not valid.
4343//
4344//   * InvalidParameterException
4345//   The specified parameter is invalid. Review the available parameters for the
4346//   API request.
4347//
4348//   * ClusterNotFoundException
4349//   The specified cluster could not be found. You can view your available clusters
4350//   with ListClusters. Amazon ECS clusters are Region-specific.
4351//
4352// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4353func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
4354	req, out := c.StopTaskRequest(input)
4355	return out, req.Send()
4356}
4357
4358// StopTaskWithContext is the same as StopTask with the addition of
4359// the ability to pass a context and additional request options.
4360//
4361// See StopTask for details on how to use this API operation.
4362//
4363// The context must be non-nil and will be used for request cancellation. If
4364// the context is nil a panic will occur. In the future the SDK may create
4365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4366// for more information on using Contexts.
4367func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
4368	req, out := c.StopTaskRequest(input)
4369	req.SetContext(ctx)
4370	req.ApplyOptions(opts...)
4371	return out, req.Send()
4372}
4373
4374const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
4375
4376// SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
4377// client's request for the SubmitAttachmentStateChanges operation. The "output" return
4378// value will be populated with the request's response once the request completes
4379// successfully.
4380//
4381// Use "Send" method on the returned Request to send the API call to the service.
4382// the "output" return value is not valid until after Send returns without error.
4383//
4384// See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
4385// API call, and error handling.
4386//
4387// This method is useful when you want to inject custom logic or configuration
4388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4389//
4390//
4391//    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
4392//    req, resp := client.SubmitAttachmentStateChangesRequest(params)
4393//
4394//    err := req.Send()
4395//    if err == nil { // resp is now filled
4396//        fmt.Println(resp)
4397//    }
4398//
4399// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4400func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
4401	op := &request.Operation{
4402		Name:       opSubmitAttachmentStateChanges,
4403		HTTPMethod: "POST",
4404		HTTPPath:   "/",
4405	}
4406
4407	if input == nil {
4408		input = &SubmitAttachmentStateChangesInput{}
4409	}
4410
4411	output = &SubmitAttachmentStateChangesOutput{}
4412	req = c.newRequest(op, input, output)
4413	return
4414}
4415
4416// SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
4417//
4418//
4419// This action is only used by the Amazon ECS agent, and it is not intended
4420// for use outside of the agent.
4421//
4422// Sent to acknowledge that an attachment changed states.
4423//
4424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4425// with awserr.Error's Code and Message methods to get detailed information about
4426// the error.
4427//
4428// See the AWS API reference guide for Amazon EC2 Container Service's
4429// API operation SubmitAttachmentStateChanges for usage and error information.
4430//
4431// Returned Error Types:
4432//   * ServerException
4433//   These errors are usually caused by a server issue.
4434//
4435//   * ClientException
4436//   These errors are usually caused by a client action, such as using an action
4437//   or resource on behalf of a user that doesn't have permissions to use the
4438//   action or resource, or specifying an identifier that is not valid.
4439//
4440//   * AccessDeniedException
4441//   You do not have authorization to perform the requested action.
4442//
4443//   * InvalidParameterException
4444//   The specified parameter is invalid. Review the available parameters for the
4445//   API request.
4446//
4447// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4448func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
4449	req, out := c.SubmitAttachmentStateChangesRequest(input)
4450	return out, req.Send()
4451}
4452
4453// SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
4454// the ability to pass a context and additional request options.
4455//
4456// See SubmitAttachmentStateChanges for details on how to use this API operation.
4457//
4458// The context must be non-nil and will be used for request cancellation. If
4459// the context is nil a panic will occur. In the future the SDK may create
4460// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4461// for more information on using Contexts.
4462func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
4463	req, out := c.SubmitAttachmentStateChangesRequest(input)
4464	req.SetContext(ctx)
4465	req.ApplyOptions(opts...)
4466	return out, req.Send()
4467}
4468
4469const opSubmitContainerStateChange = "SubmitContainerStateChange"
4470
4471// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
4472// client's request for the SubmitContainerStateChange operation. The "output" return
4473// value will be populated with the request's response once the request completes
4474// successfully.
4475//
4476// Use "Send" method on the returned Request to send the API call to the service.
4477// the "output" return value is not valid until after Send returns without error.
4478//
4479// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
4480// API call, and error handling.
4481//
4482// This method is useful when you want to inject custom logic or configuration
4483// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4484//
4485//
4486//    // Example sending a request using the SubmitContainerStateChangeRequest method.
4487//    req, resp := client.SubmitContainerStateChangeRequest(params)
4488//
4489//    err := req.Send()
4490//    if err == nil { // resp is now filled
4491//        fmt.Println(resp)
4492//    }
4493//
4494// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4495func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
4496	op := &request.Operation{
4497		Name:       opSubmitContainerStateChange,
4498		HTTPMethod: "POST",
4499		HTTPPath:   "/",
4500	}
4501
4502	if input == nil {
4503		input = &SubmitContainerStateChangeInput{}
4504	}
4505
4506	output = &SubmitContainerStateChangeOutput{}
4507	req = c.newRequest(op, input, output)
4508	return
4509}
4510
4511// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
4512//
4513//
4514// This action is only used by the Amazon ECS agent, and it is not intended
4515// for use outside of the agent.
4516//
4517// Sent to acknowledge that a container changed states.
4518//
4519// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4520// with awserr.Error's Code and Message methods to get detailed information about
4521// the error.
4522//
4523// See the AWS API reference guide for Amazon EC2 Container Service's
4524// API operation SubmitContainerStateChange for usage and error information.
4525//
4526// Returned Error Types:
4527//   * ServerException
4528//   These errors are usually caused by a server issue.
4529//
4530//   * ClientException
4531//   These errors are usually caused by a client action, such as using an action
4532//   or resource on behalf of a user that doesn't have permissions to use the
4533//   action or resource, or specifying an identifier that is not valid.
4534//
4535//   * AccessDeniedException
4536//   You do not have authorization to perform the requested action.
4537//
4538// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4539func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
4540	req, out := c.SubmitContainerStateChangeRequest(input)
4541	return out, req.Send()
4542}
4543
4544// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
4545// the ability to pass a context and additional request options.
4546//
4547// See SubmitContainerStateChange for details on how to use this API operation.
4548//
4549// The context must be non-nil and will be used for request cancellation. If
4550// the context is nil a panic will occur. In the future the SDK may create
4551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4552// for more information on using Contexts.
4553func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
4554	req, out := c.SubmitContainerStateChangeRequest(input)
4555	req.SetContext(ctx)
4556	req.ApplyOptions(opts...)
4557	return out, req.Send()
4558}
4559
4560const opSubmitTaskStateChange = "SubmitTaskStateChange"
4561
4562// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
4563// client's request for the SubmitTaskStateChange operation. The "output" return
4564// value will be populated with the request's response once the request completes
4565// successfully.
4566//
4567// Use "Send" method on the returned Request to send the API call to the service.
4568// the "output" return value is not valid until after Send returns without error.
4569//
4570// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
4571// API call, and error handling.
4572//
4573// This method is useful when you want to inject custom logic or configuration
4574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4575//
4576//
4577//    // Example sending a request using the SubmitTaskStateChangeRequest method.
4578//    req, resp := client.SubmitTaskStateChangeRequest(params)
4579//
4580//    err := req.Send()
4581//    if err == nil { // resp is now filled
4582//        fmt.Println(resp)
4583//    }
4584//
4585// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4586func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
4587	op := &request.Operation{
4588		Name:       opSubmitTaskStateChange,
4589		HTTPMethod: "POST",
4590		HTTPPath:   "/",
4591	}
4592
4593	if input == nil {
4594		input = &SubmitTaskStateChangeInput{}
4595	}
4596
4597	output = &SubmitTaskStateChangeOutput{}
4598	req = c.newRequest(op, input, output)
4599	return
4600}
4601
4602// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
4603//
4604//
4605// This action is only used by the Amazon ECS agent, and it is not intended
4606// for use outside of the agent.
4607//
4608// Sent to acknowledge that a task changed states.
4609//
4610// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4611// with awserr.Error's Code and Message methods to get detailed information about
4612// the error.
4613//
4614// See the AWS API reference guide for Amazon EC2 Container Service's
4615// API operation SubmitTaskStateChange for usage and error information.
4616//
4617// Returned Error Types:
4618//   * ServerException
4619//   These errors are usually caused by a server issue.
4620//
4621//   * ClientException
4622//   These errors are usually caused by a client action, such as using an action
4623//   or resource on behalf of a user that doesn't have permissions to use the
4624//   action or resource, or specifying an identifier that is not valid.
4625//
4626//   * AccessDeniedException
4627//   You do not have authorization to perform the requested action.
4628//
4629//   * InvalidParameterException
4630//   The specified parameter is invalid. Review the available parameters for the
4631//   API request.
4632//
4633// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4634func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
4635	req, out := c.SubmitTaskStateChangeRequest(input)
4636	return out, req.Send()
4637}
4638
4639// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
4640// the ability to pass a context and additional request options.
4641//
4642// See SubmitTaskStateChange for details on how to use this API operation.
4643//
4644// The context must be non-nil and will be used for request cancellation. If
4645// the context is nil a panic will occur. In the future the SDK may create
4646// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4647// for more information on using Contexts.
4648func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
4649	req, out := c.SubmitTaskStateChangeRequest(input)
4650	req.SetContext(ctx)
4651	req.ApplyOptions(opts...)
4652	return out, req.Send()
4653}
4654
4655const opTagResource = "TagResource"
4656
4657// TagResourceRequest generates a "aws/request.Request" representing the
4658// client's request for the TagResource operation. The "output" return
4659// value will be populated with the request's response once the request completes
4660// successfully.
4661//
4662// Use "Send" method on the returned Request to send the API call to the service.
4663// the "output" return value is not valid until after Send returns without error.
4664//
4665// See TagResource for more information on using the TagResource
4666// API call, and error handling.
4667//
4668// This method is useful when you want to inject custom logic or configuration
4669// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4670//
4671//
4672//    // Example sending a request using the TagResourceRequest method.
4673//    req, resp := client.TagResourceRequest(params)
4674//
4675//    err := req.Send()
4676//    if err == nil { // resp is now filled
4677//        fmt.Println(resp)
4678//    }
4679//
4680// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4681func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4682	op := &request.Operation{
4683		Name:       opTagResource,
4684		HTTPMethod: "POST",
4685		HTTPPath:   "/",
4686	}
4687
4688	if input == nil {
4689		input = &TagResourceInput{}
4690	}
4691
4692	output = &TagResourceOutput{}
4693	req = c.newRequest(op, input, output)
4694	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4695	return
4696}
4697
4698// TagResource API operation for Amazon EC2 Container Service.
4699//
4700// Associates the specified tags to a resource with the specified resourceArn.
4701// If existing tags on a resource are not specified in the request parameters,
4702// they are not changed. When a resource is deleted, the tags associated with
4703// that resource are deleted as well.
4704//
4705// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4706// with awserr.Error's Code and Message methods to get detailed information about
4707// the error.
4708//
4709// See the AWS API reference guide for Amazon EC2 Container Service's
4710// API operation TagResource for usage and error information.
4711//
4712// Returned Error Types:
4713//   * ServerException
4714//   These errors are usually caused by a server issue.
4715//
4716//   * ClientException
4717//   These errors are usually caused by a client action, such as using an action
4718//   or resource on behalf of a user that doesn't have permissions to use the
4719//   action or resource, or specifying an identifier that is not valid.
4720//
4721//   * ClusterNotFoundException
4722//   The specified cluster could not be found. You can view your available clusters
4723//   with ListClusters. Amazon ECS clusters are Region-specific.
4724//
4725//   * ResourceNotFoundException
4726//   The specified resource could not be found.
4727//
4728//   * InvalidParameterException
4729//   The specified parameter is invalid. Review the available parameters for the
4730//   API request.
4731//
4732// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4733func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4734	req, out := c.TagResourceRequest(input)
4735	return out, req.Send()
4736}
4737
4738// TagResourceWithContext is the same as TagResource with the addition of
4739// the ability to pass a context and additional request options.
4740//
4741// See TagResource for details on how to use this API operation.
4742//
4743// The context must be non-nil and will be used for request cancellation. If
4744// the context is nil a panic will occur. In the future the SDK may create
4745// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4746// for more information on using Contexts.
4747func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4748	req, out := c.TagResourceRequest(input)
4749	req.SetContext(ctx)
4750	req.ApplyOptions(opts...)
4751	return out, req.Send()
4752}
4753
4754const opUntagResource = "UntagResource"
4755
4756// UntagResourceRequest generates a "aws/request.Request" representing the
4757// client's request for the UntagResource operation. The "output" return
4758// value will be populated with the request's response once the request completes
4759// successfully.
4760//
4761// Use "Send" method on the returned Request to send the API call to the service.
4762// the "output" return value is not valid until after Send returns without error.
4763//
4764// See UntagResource for more information on using the UntagResource
4765// API call, and error handling.
4766//
4767// This method is useful when you want to inject custom logic or configuration
4768// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4769//
4770//
4771//    // Example sending a request using the UntagResourceRequest method.
4772//    req, resp := client.UntagResourceRequest(params)
4773//
4774//    err := req.Send()
4775//    if err == nil { // resp is now filled
4776//        fmt.Println(resp)
4777//    }
4778//
4779// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4780func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4781	op := &request.Operation{
4782		Name:       opUntagResource,
4783		HTTPMethod: "POST",
4784		HTTPPath:   "/",
4785	}
4786
4787	if input == nil {
4788		input = &UntagResourceInput{}
4789	}
4790
4791	output = &UntagResourceOutput{}
4792	req = c.newRequest(op, input, output)
4793	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4794	return
4795}
4796
4797// UntagResource API operation for Amazon EC2 Container Service.
4798//
4799// Deletes specified tags from a resource.
4800//
4801// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4802// with awserr.Error's Code and Message methods to get detailed information about
4803// the error.
4804//
4805// See the AWS API reference guide for Amazon EC2 Container Service's
4806// API operation UntagResource for usage and error information.
4807//
4808// Returned Error Types:
4809//   * ServerException
4810//   These errors are usually caused by a server issue.
4811//
4812//   * ClientException
4813//   These errors are usually caused by a client action, such as using an action
4814//   or resource on behalf of a user that doesn't have permissions to use the
4815//   action or resource, or specifying an identifier that is not valid.
4816//
4817//   * ClusterNotFoundException
4818//   The specified cluster could not be found. You can view your available clusters
4819//   with ListClusters. Amazon ECS clusters are Region-specific.
4820//
4821//   * ResourceNotFoundException
4822//   The specified resource could not be found.
4823//
4824//   * InvalidParameterException
4825//   The specified parameter is invalid. Review the available parameters for the
4826//   API request.
4827//
4828// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4829func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4830	req, out := c.UntagResourceRequest(input)
4831	return out, req.Send()
4832}
4833
4834// UntagResourceWithContext is the same as UntagResource with the addition of
4835// the ability to pass a context and additional request options.
4836//
4837// See UntagResource for details on how to use this API operation.
4838//
4839// The context must be non-nil and will be used for request cancellation. If
4840// the context is nil a panic will occur. In the future the SDK may create
4841// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4842// for more information on using Contexts.
4843func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4844	req, out := c.UntagResourceRequest(input)
4845	req.SetContext(ctx)
4846	req.ApplyOptions(opts...)
4847	return out, req.Send()
4848}
4849
4850const opUpdateClusterSettings = "UpdateClusterSettings"
4851
4852// UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
4853// client's request for the UpdateClusterSettings operation. The "output" return
4854// value will be populated with the request's response once the request completes
4855// successfully.
4856//
4857// Use "Send" method on the returned Request to send the API call to the service.
4858// the "output" return value is not valid until after Send returns without error.
4859//
4860// See UpdateClusterSettings for more information on using the UpdateClusterSettings
4861// API call, and error handling.
4862//
4863// This method is useful when you want to inject custom logic or configuration
4864// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4865//
4866//
4867//    // Example sending a request using the UpdateClusterSettingsRequest method.
4868//    req, resp := client.UpdateClusterSettingsRequest(params)
4869//
4870//    err := req.Send()
4871//    if err == nil { // resp is now filled
4872//        fmt.Println(resp)
4873//    }
4874//
4875// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4876func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
4877	op := &request.Operation{
4878		Name:       opUpdateClusterSettings,
4879		HTTPMethod: "POST",
4880		HTTPPath:   "/",
4881	}
4882
4883	if input == nil {
4884		input = &UpdateClusterSettingsInput{}
4885	}
4886
4887	output = &UpdateClusterSettingsOutput{}
4888	req = c.newRequest(op, input, output)
4889	return
4890}
4891
4892// UpdateClusterSettings API operation for Amazon EC2 Container Service.
4893//
4894// Modifies the settings to use for a cluster.
4895//
4896// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4897// with awserr.Error's Code and Message methods to get detailed information about
4898// the error.
4899//
4900// See the AWS API reference guide for Amazon EC2 Container Service's
4901// API operation UpdateClusterSettings for usage and error information.
4902//
4903// Returned Error Types:
4904//   * ServerException
4905//   These errors are usually caused by a server issue.
4906//
4907//   * ClientException
4908//   These errors are usually caused by a client action, such as using an action
4909//   or resource on behalf of a user that doesn't have permissions to use the
4910//   action or resource, or specifying an identifier that is not valid.
4911//
4912//   * ClusterNotFoundException
4913//   The specified cluster could not be found. You can view your available clusters
4914//   with ListClusters. Amazon ECS clusters are Region-specific.
4915//
4916//   * InvalidParameterException
4917//   The specified parameter is invalid. Review the available parameters for the
4918//   API request.
4919//
4920// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4921func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
4922	req, out := c.UpdateClusterSettingsRequest(input)
4923	return out, req.Send()
4924}
4925
4926// UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
4927// the ability to pass a context and additional request options.
4928//
4929// See UpdateClusterSettings for details on how to use this API operation.
4930//
4931// The context must be non-nil and will be used for request cancellation. If
4932// the context is nil a panic will occur. In the future the SDK may create
4933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4934// for more information on using Contexts.
4935func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
4936	req, out := c.UpdateClusterSettingsRequest(input)
4937	req.SetContext(ctx)
4938	req.ApplyOptions(opts...)
4939	return out, req.Send()
4940}
4941
4942const opUpdateContainerAgent = "UpdateContainerAgent"
4943
4944// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
4945// client's request for the UpdateContainerAgent operation. The "output" return
4946// value will be populated with the request's response once the request completes
4947// successfully.
4948//
4949// Use "Send" method on the returned Request to send the API call to the service.
4950// the "output" return value is not valid until after Send returns without error.
4951//
4952// See UpdateContainerAgent for more information on using the UpdateContainerAgent
4953// API call, and error handling.
4954//
4955// This method is useful when you want to inject custom logic or configuration
4956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4957//
4958//
4959//    // Example sending a request using the UpdateContainerAgentRequest method.
4960//    req, resp := client.UpdateContainerAgentRequest(params)
4961//
4962//    err := req.Send()
4963//    if err == nil { // resp is now filled
4964//        fmt.Println(resp)
4965//    }
4966//
4967// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4968func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
4969	op := &request.Operation{
4970		Name:       opUpdateContainerAgent,
4971		HTTPMethod: "POST",
4972		HTTPPath:   "/",
4973	}
4974
4975	if input == nil {
4976		input = &UpdateContainerAgentInput{}
4977	}
4978
4979	output = &UpdateContainerAgentOutput{}
4980	req = c.newRequest(op, input, output)
4981	return
4982}
4983
4984// UpdateContainerAgent API operation for Amazon EC2 Container Service.
4985//
4986// Updates the Amazon ECS container agent on a specified container instance.
4987// Updating the Amazon ECS container agent does not interrupt running tasks
4988// or services on the container instance. The process for updating the agent
4989// differs depending on whether your container instance was launched with the
4990// Amazon ECS-optimized AMI or another operating system.
4991//
4992// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
4993// with the ecs-init service installed and running. For help updating the Amazon
4994// ECS container agent on other operating systems, see Manually Updating the
4995// Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
4996// in the Amazon Elastic Container Service Developer Guide.
4997//
4998// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4999// with awserr.Error's Code and Message methods to get detailed information about
5000// the error.
5001//
5002// See the AWS API reference guide for Amazon EC2 Container Service's
5003// API operation UpdateContainerAgent for usage and error information.
5004//
5005// Returned Error Types:
5006//   * ServerException
5007//   These errors are usually caused by a server issue.
5008//
5009//   * ClientException
5010//   These errors are usually caused by a client action, such as using an action
5011//   or resource on behalf of a user that doesn't have permissions to use the
5012//   action or resource, or specifying an identifier that is not valid.
5013//
5014//   * InvalidParameterException
5015//   The specified parameter is invalid. Review the available parameters for the
5016//   API request.
5017//
5018//   * ClusterNotFoundException
5019//   The specified cluster could not be found. You can view your available clusters
5020//   with ListClusters. Amazon ECS clusters are Region-specific.
5021//
5022//   * UpdateInProgressException
5023//   There is already a current Amazon ECS container agent update in progress
5024//   on the specified container instance. If the container agent becomes disconnected
5025//   while it is in a transitional stage, such as PENDING or STAGING, the update
5026//   process can get stuck in that state. However, when the agent reconnects,
5027//   it resumes where it stopped previously.
5028//
5029//   * NoUpdateAvailableException
5030//   There is no update available for this Amazon ECS container agent. This could
5031//   be because the agent is already running the latest version, or it is so old
5032//   that there is no update path to the current version.
5033//
5034//   * MissingVersionException
5035//   Amazon ECS is unable to determine the current version of the Amazon ECS container
5036//   agent on the container instance and does not have enough information to proceed
5037//   with an update. This could be because the agent running on the container
5038//   instance is an older or custom version that does not use our version information.
5039//
5040// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
5041func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
5042	req, out := c.UpdateContainerAgentRequest(input)
5043	return out, req.Send()
5044}
5045
5046// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
5047// the ability to pass a context and additional request options.
5048//
5049// See UpdateContainerAgent for details on how to use this API operation.
5050//
5051// The context must be non-nil and will be used for request cancellation. If
5052// the context is nil a panic will occur. In the future the SDK may create
5053// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5054// for more information on using Contexts.
5055func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
5056	req, out := c.UpdateContainerAgentRequest(input)
5057	req.SetContext(ctx)
5058	req.ApplyOptions(opts...)
5059	return out, req.Send()
5060}
5061
5062const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
5063
5064// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
5065// client's request for the UpdateContainerInstancesState operation. The "output" return
5066// value will be populated with the request's response once the request completes
5067// successfully.
5068//
5069// Use "Send" method on the returned Request to send the API call to the service.
5070// the "output" return value is not valid until after Send returns without error.
5071//
5072// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
5073// API call, and error handling.
5074//
5075// This method is useful when you want to inject custom logic or configuration
5076// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5077//
5078//
5079//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
5080//    req, resp := client.UpdateContainerInstancesStateRequest(params)
5081//
5082//    err := req.Send()
5083//    if err == nil { // resp is now filled
5084//        fmt.Println(resp)
5085//    }
5086//
5087// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5088func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
5089	op := &request.Operation{
5090		Name:       opUpdateContainerInstancesState,
5091		HTTPMethod: "POST",
5092		HTTPPath:   "/",
5093	}
5094
5095	if input == nil {
5096		input = &UpdateContainerInstancesStateInput{}
5097	}
5098
5099	output = &UpdateContainerInstancesStateOutput{}
5100	req = c.newRequest(op, input, output)
5101	return
5102}
5103
5104// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
5105//
5106// Modifies the status of an Amazon ECS container instance.
5107//
5108// Once a container instance has reached an ACTIVE state, you can change the
5109// status of a container instance to DRAINING to manually remove an instance
5110// from a cluster, for example to perform system updates, update the Docker
5111// daemon, or scale down the cluster size.
5112//
5113// A container instance cannot be changed to DRAINING until it has reached an
5114// ACTIVE status. If the instance is in any other status, an error will be received.
5115//
5116// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
5117// from being scheduled for placement on the container instance and replacement
5118// service tasks are started on other container instances in the cluster if
5119// the resources are available. Service tasks on the container instance that
5120// are in the PENDING state are stopped immediately.
5121//
5122// Service tasks on the container instance that are in the RUNNING state are
5123// stopped and replaced according to the service's deployment configuration
5124// parameters, minimumHealthyPercent and maximumPercent. You can change the
5125// deployment configuration of your service using UpdateService.
5126//
5127//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5128//    temporarily during task replacement. For example, desiredCount is four
5129//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5130//    before starting two new tasks. If the minimum is 100%, the service scheduler
5131//    can't remove existing tasks until the replacement tasks are considered
5132//    healthy. Tasks for services that do not use a load balancer are considered
5133//    healthy if they are in the RUNNING state. Tasks for services that use
5134//    a load balancer are considered healthy if they are in the RUNNING state
5135//    and the container instance they are hosted on is reported as healthy by
5136//    the load balancer.
5137//
5138//    * The maximumPercent parameter represents an upper limit on the number
5139//    of running tasks during task replacement, which enables you to define
5140//    the replacement batch size. For example, if desiredCount is four tasks,
5141//    a maximum of 200% starts four new tasks before stopping the four tasks
5142//    to be drained, provided that the cluster resources required to do this
5143//    are available. If the maximum is 100%, then replacement tasks can't start
5144//    until the draining tasks have stopped.
5145//
5146// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
5147// You must wait for them to finish or stop them manually.
5148//
5149// A container instance has completed draining when it has no more RUNNING tasks.
5150// You can verify this using ListTasks.
5151//
5152// When a container instance has been drained, you can set a container instance
5153// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
5154// can begin scheduling tasks on the instance again.
5155//
5156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5157// with awserr.Error's Code and Message methods to get detailed information about
5158// the error.
5159//
5160// See the AWS API reference guide for Amazon EC2 Container Service's
5161// API operation UpdateContainerInstancesState for usage and error information.
5162//
5163// Returned Error Types:
5164//   * ServerException
5165//   These errors are usually caused by a server issue.
5166//
5167//   * ClientException
5168//   These errors are usually caused by a client action, such as using an action
5169//   or resource on behalf of a user that doesn't have permissions to use the
5170//   action or resource, or specifying an identifier that is not valid.
5171//
5172//   * InvalidParameterException
5173//   The specified parameter is invalid. Review the available parameters for the
5174//   API request.
5175//
5176//   * ClusterNotFoundException
5177//   The specified cluster could not be found. You can view your available clusters
5178//   with ListClusters. Amazon ECS clusters are Region-specific.
5179//
5180// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5181func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
5182	req, out := c.UpdateContainerInstancesStateRequest(input)
5183	return out, req.Send()
5184}
5185
5186// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
5187// the ability to pass a context and additional request options.
5188//
5189// See UpdateContainerInstancesState for details on how to use this API operation.
5190//
5191// The context must be non-nil and will be used for request cancellation. If
5192// the context is nil a panic will occur. In the future the SDK may create
5193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5194// for more information on using Contexts.
5195func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
5196	req, out := c.UpdateContainerInstancesStateRequest(input)
5197	req.SetContext(ctx)
5198	req.ApplyOptions(opts...)
5199	return out, req.Send()
5200}
5201
5202const opUpdateService = "UpdateService"
5203
5204// UpdateServiceRequest generates a "aws/request.Request" representing the
5205// client's request for the UpdateService operation. The "output" return
5206// value will be populated with the request's response once the request completes
5207// successfully.
5208//
5209// Use "Send" method on the returned Request to send the API call to the service.
5210// the "output" return value is not valid until after Send returns without error.
5211//
5212// See UpdateService for more information on using the UpdateService
5213// API call, and error handling.
5214//
5215// This method is useful when you want to inject custom logic or configuration
5216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5217//
5218//
5219//    // Example sending a request using the UpdateServiceRequest method.
5220//    req, resp := client.UpdateServiceRequest(params)
5221//
5222//    err := req.Send()
5223//    if err == nil { // resp is now filled
5224//        fmt.Println(resp)
5225//    }
5226//
5227// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5228func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
5229	op := &request.Operation{
5230		Name:       opUpdateService,
5231		HTTPMethod: "POST",
5232		HTTPPath:   "/",
5233	}
5234
5235	if input == nil {
5236		input = &UpdateServiceInput{}
5237	}
5238
5239	output = &UpdateServiceOutput{}
5240	req = c.newRequest(op, input, output)
5241	return
5242}
5243
5244// UpdateService API operation for Amazon EC2 Container Service.
5245//
5246//
5247// Updating the task placement strategies and constraints on an Amazon ECS service
5248// remains in preview and is a Beta Service as defined by and subject to the
5249// Beta Service Participation Service Terms located at https://aws.amazon.com/service-terms
5250// (https://aws.amazon.com/service-terms) ("Beta Terms"). These Beta Terms apply
5251// to your participation in this preview.
5252//
5253// Modifies the parameters of a service.
5254//
5255// For services using the rolling update (ECS) deployment controller, the desired
5256// count, deployment configuration, network configuration, task placement constraints
5257// and strategies, or task definition used can be updated.
5258//
5259// For services using the blue/green (CODE_DEPLOY) deployment controller, only
5260// the desired count, deployment configuration, task placement constraints and
5261// strategies, and health check grace period can be updated using this API.
5262// If the network configuration, platform version, or task definition need to
5263// be updated, a new AWS CodeDeploy deployment should be created. For more information,
5264// see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
5265// in the AWS CodeDeploy API Reference.
5266//
5267// For services using an external deployment controller, you can update only
5268// the desired count, task placement constraints and strategies, and health
5269// check grace period using this API. If the launch type, load balancer, network
5270// configuration, platform version, or task definition need to be updated, you
5271// should create a new task set. For more information, see CreateTaskSet.
5272//
5273// You can add to or subtract from the number of instantiations of a task definition
5274// in a service by specifying the cluster that the service is running in and
5275// a new desiredCount parameter.
5276//
5277// If you have updated the Docker image of your application, you can create
5278// a new task definition with that image and deploy it to your service. The
5279// service scheduler uses the minimum healthy percent and maximum percent parameters
5280// (in the service's deployment configuration) to determine the deployment strategy.
5281//
5282// If your updated Docker image uses the same tag as what is in the existing
5283// task definition for your service (for example, my_image:latest), you do not
5284// need to create a new revision of your task definition. You can update the
5285// service using the forceNewDeployment option. The new tasks launched by the
5286// deployment pull the current image/tag combination from your repository when
5287// they start.
5288//
5289// You can also update the deployment configuration of a service. When a deployment
5290// is triggered by updating the task definition of a service, the service scheduler
5291// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
5292// to determine the deployment strategy.
5293//
5294//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5295//    temporarily during a deployment. For example, if desiredCount is four
5296//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5297//    before starting two new tasks. Tasks for services that do not use a load
5298//    balancer are considered healthy if they are in the RUNNING state. Tasks
5299//    for services that use a load balancer are considered healthy if they are
5300//    in the RUNNING state and the container instance they are hosted on is
5301//    reported as healthy by the load balancer.
5302//
5303//    * The maximumPercent parameter represents an upper limit on the number
5304//    of running tasks during a deployment, which enables you to define the
5305//    deployment batch size. For example, if desiredCount is four tasks, a maximum
5306//    of 200% starts four new tasks before stopping the four older tasks (provided
5307//    that the cluster resources required to do this are available).
5308//
5309// When UpdateService stops a task during a deployment, the equivalent of docker
5310// stop is issued to the containers running in the task. This results in a SIGTERM
5311// and a 30-second timeout, after which SIGKILL is sent and the containers are
5312// forcibly stopped. If the container handles the SIGTERM gracefully and exits
5313// within 30 seconds from receiving it, no SIGKILL is sent.
5314//
5315// When the service scheduler launches new tasks, it determines task placement
5316// in your cluster with the following logic:
5317//
5318//    * Determine which of the container instances in your cluster can support
5319//    your service's task definition (for example, they have the required CPU,
5320//    memory, ports, and container instance attributes).
5321//
5322//    * By default, the service scheduler attempts to balance tasks across Availability
5323//    Zones in this manner (although you can choose a different placement strategy):
5324//    Sort the valid container instances by the fewest number of running tasks
5325//    for this service in the same Availability Zone as the instance. For example,
5326//    if zone A has one running service task and zones B and C each have zero,
5327//    valid container instances in either zone B or C are considered optimal
5328//    for placement. Place the new service task on a valid container instance
5329//    in an optimal Availability Zone (based on the previous steps), favoring
5330//    container instances with the fewest number of running tasks for this service.
5331//
5332// When the service scheduler stops running tasks, it attempts to maintain balance
5333// across the Availability Zones in your cluster using the following logic:
5334//
5335//    * Sort the container instances by the largest number of running tasks
5336//    for this service in the same Availability Zone as the instance. For example,
5337//    if zone A has one running service task and zones B and C each have two,
5338//    container instances in either zone B or C are considered optimal for termination.
5339//
5340//    * Stop the task on a container instance in an optimal Availability Zone
5341//    (based on the previous steps), favoring container instances with the largest
5342//    number of running tasks for this service.
5343//
5344// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5345// with awserr.Error's Code and Message methods to get detailed information about
5346// the error.
5347//
5348// See the AWS API reference guide for Amazon EC2 Container Service's
5349// API operation UpdateService for usage and error information.
5350//
5351// Returned Error Types:
5352//   * ServerException
5353//   These errors are usually caused by a server issue.
5354//
5355//   * ClientException
5356//   These errors are usually caused by a client action, such as using an action
5357//   or resource on behalf of a user that doesn't have permissions to use the
5358//   action or resource, or specifying an identifier that is not valid.
5359//
5360//   * InvalidParameterException
5361//   The specified parameter is invalid. Review the available parameters for the
5362//   API request.
5363//
5364//   * ClusterNotFoundException
5365//   The specified cluster could not be found. You can view your available clusters
5366//   with ListClusters. Amazon ECS clusters are Region-specific.
5367//
5368//   * ServiceNotFoundException
5369//   The specified service could not be found. You can view your available services
5370//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5371//
5372//   * ServiceNotActiveException
5373//   The specified service is not active. You can't update a service that is inactive.
5374//   If you have previously deleted a service, you can re-create it with CreateService.
5375//
5376//   * PlatformUnknownException
5377//   The specified platform version does not exist.
5378//
5379//   * PlatformTaskDefinitionIncompatibilityException
5380//   The specified platform version does not satisfy the task definition's required
5381//   capabilities.
5382//
5383//   * AccessDeniedException
5384//   You do not have authorization to perform the requested action.
5385//
5386// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5387func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
5388	req, out := c.UpdateServiceRequest(input)
5389	return out, req.Send()
5390}
5391
5392// UpdateServiceWithContext is the same as UpdateService with the addition of
5393// the ability to pass a context and additional request options.
5394//
5395// See UpdateService for details on how to use this API operation.
5396//
5397// The context must be non-nil and will be used for request cancellation. If
5398// the context is nil a panic will occur. In the future the SDK may create
5399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5400// for more information on using Contexts.
5401func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
5402	req, out := c.UpdateServiceRequest(input)
5403	req.SetContext(ctx)
5404	req.ApplyOptions(opts...)
5405	return out, req.Send()
5406}
5407
5408const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
5409
5410// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
5411// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
5412// value will be populated with the request's response once the request completes
5413// successfully.
5414//
5415// Use "Send" method on the returned Request to send the API call to the service.
5416// the "output" return value is not valid until after Send returns without error.
5417//
5418// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
5419// API call, and error handling.
5420//
5421// This method is useful when you want to inject custom logic or configuration
5422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5423//
5424//
5425//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
5426//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
5427//
5428//    err := req.Send()
5429//    if err == nil { // resp is now filled
5430//        fmt.Println(resp)
5431//    }
5432//
5433// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5434func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
5435	op := &request.Operation{
5436		Name:       opUpdateServicePrimaryTaskSet,
5437		HTTPMethod: "POST",
5438		HTTPPath:   "/",
5439	}
5440
5441	if input == nil {
5442		input = &UpdateServicePrimaryTaskSetInput{}
5443	}
5444
5445	output = &UpdateServicePrimaryTaskSetOutput{}
5446	req = c.newRequest(op, input, output)
5447	return
5448}
5449
5450// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
5451//
5452// Modifies which task set in a service is the primary task set. Any parameters
5453// that are updated on the primary task set in a service will transition to
5454// the service. This is used when a service uses the EXTERNAL deployment controller
5455// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5456// in the Amazon Elastic Container Service Developer Guide.
5457//
5458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5459// with awserr.Error's Code and Message methods to get detailed information about
5460// the error.
5461//
5462// See the AWS API reference guide for Amazon EC2 Container Service's
5463// API operation UpdateServicePrimaryTaskSet for usage and error information.
5464//
5465// Returned Error Types:
5466//   * ServerException
5467//   These errors are usually caused by a server issue.
5468//
5469//   * ClientException
5470//   These errors are usually caused by a client action, such as using an action
5471//   or resource on behalf of a user that doesn't have permissions to use the
5472//   action or resource, or specifying an identifier that is not valid.
5473//
5474//   * InvalidParameterException
5475//   The specified parameter is invalid. Review the available parameters for the
5476//   API request.
5477//
5478//   * ClusterNotFoundException
5479//   The specified cluster could not be found. You can view your available clusters
5480//   with ListClusters. Amazon ECS clusters are Region-specific.
5481//
5482//   * UnsupportedFeatureException
5483//   The specified task is not supported in this Region.
5484//
5485//   * ServiceNotFoundException
5486//   The specified service could not be found. You can view your available services
5487//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5488//
5489//   * ServiceNotActiveException
5490//   The specified service is not active. You can't update a service that is inactive.
5491//   If you have previously deleted a service, you can re-create it with CreateService.
5492//
5493//   * TaskSetNotFoundException
5494//   The specified task set could not be found. You can view your available task
5495//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5496//   and Region.
5497//
5498//   * AccessDeniedException
5499//   You do not have authorization to perform the requested action.
5500//
5501// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5502func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
5503	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5504	return out, req.Send()
5505}
5506
5507// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
5508// the ability to pass a context and additional request options.
5509//
5510// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
5511//
5512// The context must be non-nil and will be used for request cancellation. If
5513// the context is nil a panic will occur. In the future the SDK may create
5514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5515// for more information on using Contexts.
5516func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
5517	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5518	req.SetContext(ctx)
5519	req.ApplyOptions(opts...)
5520	return out, req.Send()
5521}
5522
5523const opUpdateTaskSet = "UpdateTaskSet"
5524
5525// UpdateTaskSetRequest generates a "aws/request.Request" representing the
5526// client's request for the UpdateTaskSet operation. The "output" return
5527// value will be populated with the request's response once the request completes
5528// successfully.
5529//
5530// Use "Send" method on the returned Request to send the API call to the service.
5531// the "output" return value is not valid until after Send returns without error.
5532//
5533// See UpdateTaskSet for more information on using the UpdateTaskSet
5534// API call, and error handling.
5535//
5536// This method is useful when you want to inject custom logic or configuration
5537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5538//
5539//
5540//    // Example sending a request using the UpdateTaskSetRequest method.
5541//    req, resp := client.UpdateTaskSetRequest(params)
5542//
5543//    err := req.Send()
5544//    if err == nil { // resp is now filled
5545//        fmt.Println(resp)
5546//    }
5547//
5548// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5549func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
5550	op := &request.Operation{
5551		Name:       opUpdateTaskSet,
5552		HTTPMethod: "POST",
5553		HTTPPath:   "/",
5554	}
5555
5556	if input == nil {
5557		input = &UpdateTaskSetInput{}
5558	}
5559
5560	output = &UpdateTaskSetOutput{}
5561	req = c.newRequest(op, input, output)
5562	return
5563}
5564
5565// UpdateTaskSet API operation for Amazon EC2 Container Service.
5566//
5567// Modifies a task set. This is used when a service uses the EXTERNAL deployment
5568// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5569// in the Amazon Elastic Container Service Developer Guide.
5570//
5571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5572// with awserr.Error's Code and Message methods to get detailed information about
5573// the error.
5574//
5575// See the AWS API reference guide for Amazon EC2 Container Service's
5576// API operation UpdateTaskSet for usage and error information.
5577//
5578// Returned Error Types:
5579//   * ServerException
5580//   These errors are usually caused by a server issue.
5581//
5582//   * ClientException
5583//   These errors are usually caused by a client action, such as using an action
5584//   or resource on behalf of a user that doesn't have permissions to use the
5585//   action or resource, or specifying an identifier that is not valid.
5586//
5587//   * InvalidParameterException
5588//   The specified parameter is invalid. Review the available parameters for the
5589//   API request.
5590//
5591//   * ClusterNotFoundException
5592//   The specified cluster could not be found. You can view your available clusters
5593//   with ListClusters. Amazon ECS clusters are Region-specific.
5594//
5595//   * UnsupportedFeatureException
5596//   The specified task is not supported in this Region.
5597//
5598//   * AccessDeniedException
5599//   You do not have authorization to perform the requested action.
5600//
5601//   * ServiceNotFoundException
5602//   The specified service could not be found. You can view your available services
5603//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5604//
5605//   * ServiceNotActiveException
5606//   The specified service is not active. You can't update a service that is inactive.
5607//   If you have previously deleted a service, you can re-create it with CreateService.
5608//
5609//   * TaskSetNotFoundException
5610//   The specified task set could not be found. You can view your available task
5611//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5612//   and Region.
5613//
5614// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5615func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
5616	req, out := c.UpdateTaskSetRequest(input)
5617	return out, req.Send()
5618}
5619
5620// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
5621// the ability to pass a context and additional request options.
5622//
5623// See UpdateTaskSet for details on how to use this API operation.
5624//
5625// The context must be non-nil and will be used for request cancellation. If
5626// the context is nil a panic will occur. In the future the SDK may create
5627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5628// for more information on using Contexts.
5629func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
5630	req, out := c.UpdateTaskSetRequest(input)
5631	req.SetContext(ctx)
5632	req.ApplyOptions(opts...)
5633	return out, req.Send()
5634}
5635
5636// You do not have authorization to perform the requested action.
5637type AccessDeniedException struct {
5638	_            struct{}                  `type:"structure"`
5639	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5640
5641	Message_ *string `locationName:"message" type:"string"`
5642}
5643
5644// String returns the string representation
5645func (s AccessDeniedException) String() string {
5646	return awsutil.Prettify(s)
5647}
5648
5649// GoString returns the string representation
5650func (s AccessDeniedException) GoString() string {
5651	return s.String()
5652}
5653
5654func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5655	return &AccessDeniedException{
5656		RespMetadata: v,
5657	}
5658}
5659
5660// Code returns the exception type name.
5661func (s *AccessDeniedException) Code() string {
5662	return "AccessDeniedException"
5663}
5664
5665// Message returns the exception's message.
5666func (s *AccessDeniedException) Message() string {
5667	if s.Message_ != nil {
5668		return *s.Message_
5669	}
5670	return ""
5671}
5672
5673// OrigErr always returns nil, satisfies awserr.Error interface.
5674func (s *AccessDeniedException) OrigErr() error {
5675	return nil
5676}
5677
5678func (s *AccessDeniedException) Error() string {
5679	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5680}
5681
5682// Status code returns the HTTP status code for the request's response error.
5683func (s *AccessDeniedException) StatusCode() int {
5684	return s.RespMetadata.StatusCode
5685}
5686
5687// RequestID returns the service's response RequestID for request.
5688func (s *AccessDeniedException) RequestID() string {
5689	return s.RespMetadata.RequestID
5690}
5691
5692// An object representing a container instance or task attachment.
5693type Attachment struct {
5694	_ struct{} `type:"structure"`
5695
5696	// Details of the attachment. For elastic network interfaces, this includes
5697	// the network interface ID, the MAC address, the subnet ID, and the private
5698	// IPv4 address.
5699	Details []*KeyValuePair `locationName:"details" type:"list"`
5700
5701	// The unique identifier for the attachment.
5702	Id *string `locationName:"id" type:"string"`
5703
5704	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
5705	// ATTACHED, DETACHING, DETACHED, and DELETED.
5706	Status *string `locationName:"status" type:"string"`
5707
5708	// The type of the attachment, such as ElasticNetworkInterface.
5709	Type *string `locationName:"type" type:"string"`
5710}
5711
5712// String returns the string representation
5713func (s Attachment) String() string {
5714	return awsutil.Prettify(s)
5715}
5716
5717// GoString returns the string representation
5718func (s Attachment) GoString() string {
5719	return s.String()
5720}
5721
5722// SetDetails sets the Details field's value.
5723func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
5724	s.Details = v
5725	return s
5726}
5727
5728// SetId sets the Id field's value.
5729func (s *Attachment) SetId(v string) *Attachment {
5730	s.Id = &v
5731	return s
5732}
5733
5734// SetStatus sets the Status field's value.
5735func (s *Attachment) SetStatus(v string) *Attachment {
5736	s.Status = &v
5737	return s
5738}
5739
5740// SetType sets the Type field's value.
5741func (s *Attachment) SetType(v string) *Attachment {
5742	s.Type = &v
5743	return s
5744}
5745
5746// An object representing a change in state for a task attachment.
5747type AttachmentStateChange struct {
5748	_ struct{} `type:"structure"`
5749
5750	// The Amazon Resource Name (ARN) of the attachment.
5751	//
5752	// AttachmentArn is a required field
5753	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
5754
5755	// The status of the attachment.
5756	//
5757	// Status is a required field
5758	Status *string `locationName:"status" type:"string" required:"true"`
5759}
5760
5761// String returns the string representation
5762func (s AttachmentStateChange) String() string {
5763	return awsutil.Prettify(s)
5764}
5765
5766// GoString returns the string representation
5767func (s AttachmentStateChange) GoString() string {
5768	return s.String()
5769}
5770
5771// Validate inspects the fields of the type to determine if they are valid.
5772func (s *AttachmentStateChange) Validate() error {
5773	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
5774	if s.AttachmentArn == nil {
5775		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
5776	}
5777	if s.Status == nil {
5778		invalidParams.Add(request.NewErrParamRequired("Status"))
5779	}
5780
5781	if invalidParams.Len() > 0 {
5782		return invalidParams
5783	}
5784	return nil
5785}
5786
5787// SetAttachmentArn sets the AttachmentArn field's value.
5788func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
5789	s.AttachmentArn = &v
5790	return s
5791}
5792
5793// SetStatus sets the Status field's value.
5794func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
5795	s.Status = &v
5796	return s
5797}
5798
5799// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
5800// enable you to extend the Amazon ECS data model by adding custom metadata
5801// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
5802// in the Amazon Elastic Container Service Developer Guide.
5803type Attribute struct {
5804	_ struct{} `type:"structure"`
5805
5806	// The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers,
5807	// hyphens, underscores, and periods are allowed.
5808	//
5809	// Name is a required field
5810	Name *string `locationName:"name" type:"string" required:"true"`
5811
5812	// The ID of the target. You can specify the short form ID for a resource or
5813	// the full Amazon Resource Name (ARN).
5814	TargetId *string `locationName:"targetId" type:"string"`
5815
5816	// The type of the target with which to attach the attribute. This parameter
5817	// is required if you use the short form ID for a resource instead of the full
5818	// ARN.
5819	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
5820
5821	// The value of the attribute. Up to 128 letters (uppercase and lowercase),
5822	// numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons,
5823	// and spaces are allowed.
5824	Value *string `locationName:"value" type:"string"`
5825}
5826
5827// String returns the string representation
5828func (s Attribute) String() string {
5829	return awsutil.Prettify(s)
5830}
5831
5832// GoString returns the string representation
5833func (s Attribute) GoString() string {
5834	return s.String()
5835}
5836
5837// Validate inspects the fields of the type to determine if they are valid.
5838func (s *Attribute) Validate() error {
5839	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5840	if s.Name == nil {
5841		invalidParams.Add(request.NewErrParamRequired("Name"))
5842	}
5843
5844	if invalidParams.Len() > 0 {
5845		return invalidParams
5846	}
5847	return nil
5848}
5849
5850// SetName sets the Name field's value.
5851func (s *Attribute) SetName(v string) *Attribute {
5852	s.Name = &v
5853	return s
5854}
5855
5856// SetTargetId sets the TargetId field's value.
5857func (s *Attribute) SetTargetId(v string) *Attribute {
5858	s.TargetId = &v
5859	return s
5860}
5861
5862// SetTargetType sets the TargetType field's value.
5863func (s *Attribute) SetTargetType(v string) *Attribute {
5864	s.TargetType = &v
5865	return s
5866}
5867
5868// SetValue sets the Value field's value.
5869func (s *Attribute) SetValue(v string) *Attribute {
5870	s.Value = &v
5871	return s
5872}
5873
5874// You can apply up to 10 custom attributes per resource. You can view the attributes
5875// of a resource with ListAttributes. You can remove existing attributes on
5876// a resource with DeleteAttributes.
5877type AttributeLimitExceededException struct {
5878	_            struct{}                  `type:"structure"`
5879	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5880
5881	Message_ *string `locationName:"message" type:"string"`
5882}
5883
5884// String returns the string representation
5885func (s AttributeLimitExceededException) String() string {
5886	return awsutil.Prettify(s)
5887}
5888
5889// GoString returns the string representation
5890func (s AttributeLimitExceededException) GoString() string {
5891	return s.String()
5892}
5893
5894func newErrorAttributeLimitExceededException(v protocol.ResponseMetadata) error {
5895	return &AttributeLimitExceededException{
5896		RespMetadata: v,
5897	}
5898}
5899
5900// Code returns the exception type name.
5901func (s *AttributeLimitExceededException) Code() string {
5902	return "AttributeLimitExceededException"
5903}
5904
5905// Message returns the exception's message.
5906func (s *AttributeLimitExceededException) Message() string {
5907	if s.Message_ != nil {
5908		return *s.Message_
5909	}
5910	return ""
5911}
5912
5913// OrigErr always returns nil, satisfies awserr.Error interface.
5914func (s *AttributeLimitExceededException) OrigErr() error {
5915	return nil
5916}
5917
5918func (s *AttributeLimitExceededException) Error() string {
5919	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5920}
5921
5922// Status code returns the HTTP status code for the request's response error.
5923func (s *AttributeLimitExceededException) StatusCode() int {
5924	return s.RespMetadata.StatusCode
5925}
5926
5927// RequestID returns the service's response RequestID for request.
5928func (s *AttributeLimitExceededException) RequestID() string {
5929	return s.RespMetadata.RequestID
5930}
5931
5932// The details of the Auto Scaling group for the capacity provider.
5933type AutoScalingGroupProvider struct {
5934	_ struct{} `type:"structure"`
5935
5936	// The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
5937	//
5938	// AutoScalingGroupArn is a required field
5939	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"`
5940
5941	// The managed scaling settings for the Auto Scaling group capacity provider.
5942	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
5943
5944	// The managed termination protection setting to use for the Auto Scaling group
5945	// capacity provider. This determines whether the Auto Scaling group has managed
5946	// termination protection.
5947	//
5948	// When using managed termination protection, managed scaling must also be used
5949	// otherwise managed termination protection will not work.
5950	//
5951	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
5952	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
5953	// during a scale-in action. The Auto Scaling group and each instance in the
5954	// Auto Scaling group must have instance protection from scale-in actions enabled
5955	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
5956	// in the AWS Auto Scaling User Guide.
5957	//
5958	// When managed termination protection is disabled, your Amazon EC2 instances
5959	// are not protected from termination when the Auto Scaling group scales in.
5960	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
5961}
5962
5963// String returns the string representation
5964func (s AutoScalingGroupProvider) String() string {
5965	return awsutil.Prettify(s)
5966}
5967
5968// GoString returns the string representation
5969func (s AutoScalingGroupProvider) GoString() string {
5970	return s.String()
5971}
5972
5973// Validate inspects the fields of the type to determine if they are valid.
5974func (s *AutoScalingGroupProvider) Validate() error {
5975	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProvider"}
5976	if s.AutoScalingGroupArn == nil {
5977		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupArn"))
5978	}
5979	if s.ManagedScaling != nil {
5980		if err := s.ManagedScaling.Validate(); err != nil {
5981			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
5982		}
5983	}
5984
5985	if invalidParams.Len() > 0 {
5986		return invalidParams
5987	}
5988	return nil
5989}
5990
5991// SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
5992func (s *AutoScalingGroupProvider) SetAutoScalingGroupArn(v string) *AutoScalingGroupProvider {
5993	s.AutoScalingGroupArn = &v
5994	return s
5995}
5996
5997// SetManagedScaling sets the ManagedScaling field's value.
5998func (s *AutoScalingGroupProvider) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProvider {
5999	s.ManagedScaling = v
6000	return s
6001}
6002
6003// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
6004func (s *AutoScalingGroupProvider) SetManagedTerminationProtection(v string) *AutoScalingGroupProvider {
6005	s.ManagedTerminationProtection = &v
6006	return s
6007}
6008
6009// An object representing the networking details for a task or service.
6010type AwsVpcConfiguration struct {
6011	_ struct{} `type:"structure"`
6012
6013	// Whether the task's elastic network interface receives a public IP address.
6014	// The default value is DISABLED.
6015	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
6016
6017	// The security groups associated with the task or service. If you do not specify
6018	// a security group, the default security group for the VPC is used. There is
6019	// a limit of 5 security groups that can be specified per AwsVpcConfiguration.
6020	//
6021	// All specified security groups must be from the same VPC.
6022	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
6023
6024	// The subnets associated with the task or service. There is a limit of 16 subnets
6025	// that can be specified per AwsVpcConfiguration.
6026	//
6027	// All specified subnets must be from the same VPC.
6028	//
6029	// Subnets is a required field
6030	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
6031}
6032
6033// String returns the string representation
6034func (s AwsVpcConfiguration) String() string {
6035	return awsutil.Prettify(s)
6036}
6037
6038// GoString returns the string representation
6039func (s AwsVpcConfiguration) GoString() string {
6040	return s.String()
6041}
6042
6043// Validate inspects the fields of the type to determine if they are valid.
6044func (s *AwsVpcConfiguration) Validate() error {
6045	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
6046	if s.Subnets == nil {
6047		invalidParams.Add(request.NewErrParamRequired("Subnets"))
6048	}
6049
6050	if invalidParams.Len() > 0 {
6051		return invalidParams
6052	}
6053	return nil
6054}
6055
6056// SetAssignPublicIp sets the AssignPublicIp field's value.
6057func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
6058	s.AssignPublicIp = &v
6059	return s
6060}
6061
6062// SetSecurityGroups sets the SecurityGroups field's value.
6063func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
6064	s.SecurityGroups = v
6065	return s
6066}
6067
6068// SetSubnets sets the Subnets field's value.
6069func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
6070	s.Subnets = v
6071	return s
6072}
6073
6074// Your AWS account has been blocked. For more information, contact AWS Support
6075// (http://aws.amazon.com/contact-us/).
6076type BlockedException struct {
6077	_            struct{}                  `type:"structure"`
6078	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6079
6080	Message_ *string `locationName:"message" type:"string"`
6081}
6082
6083// String returns the string representation
6084func (s BlockedException) String() string {
6085	return awsutil.Prettify(s)
6086}
6087
6088// GoString returns the string representation
6089func (s BlockedException) GoString() string {
6090	return s.String()
6091}
6092
6093func newErrorBlockedException(v protocol.ResponseMetadata) error {
6094	return &BlockedException{
6095		RespMetadata: v,
6096	}
6097}
6098
6099// Code returns the exception type name.
6100func (s *BlockedException) Code() string {
6101	return "BlockedException"
6102}
6103
6104// Message returns the exception's message.
6105func (s *BlockedException) Message() string {
6106	if s.Message_ != nil {
6107		return *s.Message_
6108	}
6109	return ""
6110}
6111
6112// OrigErr always returns nil, satisfies awserr.Error interface.
6113func (s *BlockedException) OrigErr() error {
6114	return nil
6115}
6116
6117func (s *BlockedException) Error() string {
6118	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6119}
6120
6121// Status code returns the HTTP status code for the request's response error.
6122func (s *BlockedException) StatusCode() int {
6123	return s.RespMetadata.StatusCode
6124}
6125
6126// RequestID returns the service's response RequestID for request.
6127func (s *BlockedException) RequestID() string {
6128	return s.RespMetadata.RequestID
6129}
6130
6131// The details of a capacity provider.
6132type CapacityProvider struct {
6133	_ struct{} `type:"structure"`
6134
6135	// The Auto Scaling group settings for the capacity provider.
6136	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"`
6137
6138	// The Amazon Resource Name (ARN) that identifies the capacity provider.
6139	CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"`
6140
6141	// The name of the capacity provider.
6142	Name *string `locationName:"name" type:"string"`
6143
6144	// The current status of the capacity provider. Only capacity providers in an
6145	// ACTIVE state can be used in a cluster. When a capacity provider is successfully
6146	// deleted, it will have an INACTIVE status.
6147	Status *string `locationName:"status" type:"string" enum:"CapacityProviderStatus"`
6148
6149	// The metadata that you apply to the capacity provider to help you categorize
6150	// and organize it. Each tag consists of a key and an optional value, both of
6151	// which you define.
6152	//
6153	// The following basic restrictions apply to tags:
6154	//
6155	//    * Maximum number of tags per resource - 50
6156	//
6157	//    * For each resource, each tag key must be unique, and each tag key can
6158	//    have only one value.
6159	//
6160	//    * Maximum key length - 128 Unicode characters in UTF-8
6161	//
6162	//    * Maximum value length - 256 Unicode characters in UTF-8
6163	//
6164	//    * If your tagging schema is used across multiple services and resources,
6165	//    remember that other services may have restrictions on allowed characters.
6166	//    Generally allowed characters are: letters, numbers, and spaces representable
6167	//    in UTF-8, and the following characters: + - = . _ : / @.
6168	//
6169	//    * Tag keys and values are case-sensitive.
6170	//
6171	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6172	//    as a prefix for either keys or values as it is reserved for AWS use. You
6173	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6174	//    prefix do not count against your tags per resource limit.
6175	Tags []*Tag `locationName:"tags" type:"list"`
6176
6177	// The update status of the capacity provider. The following are the possible
6178	// states that will be returned.
6179	//
6180	// DELETE_IN_PROGRESS
6181	//
6182	// The capacity provider is in the process of being deleted.
6183	//
6184	// DELETE_COMPLETE
6185	//
6186	// The capacity provider has been successfully deleted and will have an INACTIVE
6187	// status.
6188	//
6189	// DELETE_FAILED
6190	//
6191	// The capacity provider was unable to be deleted. The update status reason
6192	// will provide further details about why the delete failed.
6193	UpdateStatus *string `locationName:"updateStatus" type:"string" enum:"CapacityProviderUpdateStatus"`
6194
6195	// The update status reason. This provides further details about the update
6196	// status for the capacity provider.
6197	UpdateStatusReason *string `locationName:"updateStatusReason" type:"string"`
6198}
6199
6200// String returns the string representation
6201func (s CapacityProvider) String() string {
6202	return awsutil.Prettify(s)
6203}
6204
6205// GoString returns the string representation
6206func (s CapacityProvider) GoString() string {
6207	return s.String()
6208}
6209
6210// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
6211func (s *CapacityProvider) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CapacityProvider {
6212	s.AutoScalingGroupProvider = v
6213	return s
6214}
6215
6216// SetCapacityProviderArn sets the CapacityProviderArn field's value.
6217func (s *CapacityProvider) SetCapacityProviderArn(v string) *CapacityProvider {
6218	s.CapacityProviderArn = &v
6219	return s
6220}
6221
6222// SetName sets the Name field's value.
6223func (s *CapacityProvider) SetName(v string) *CapacityProvider {
6224	s.Name = &v
6225	return s
6226}
6227
6228// SetStatus sets the Status field's value.
6229func (s *CapacityProvider) SetStatus(v string) *CapacityProvider {
6230	s.Status = &v
6231	return s
6232}
6233
6234// SetTags sets the Tags field's value.
6235func (s *CapacityProvider) SetTags(v []*Tag) *CapacityProvider {
6236	s.Tags = v
6237	return s
6238}
6239
6240// SetUpdateStatus sets the UpdateStatus field's value.
6241func (s *CapacityProvider) SetUpdateStatus(v string) *CapacityProvider {
6242	s.UpdateStatus = &v
6243	return s
6244}
6245
6246// SetUpdateStatusReason sets the UpdateStatusReason field's value.
6247func (s *CapacityProvider) SetUpdateStatusReason(v string) *CapacityProvider {
6248	s.UpdateStatusReason = &v
6249	return s
6250}
6251
6252// The details of a capacity provider strategy.
6253type CapacityProviderStrategyItem struct {
6254	_ struct{} `type:"structure"`
6255
6256	// The base value designates how many tasks, at a minimum, to run on the specified
6257	// capacity provider. Only one capacity provider in a capacity provider strategy
6258	// can have a base defined.
6259	Base *int64 `locationName:"base" type:"integer"`
6260
6261	// The short name of the capacity provider.
6262	//
6263	// CapacityProvider is a required field
6264	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
6265
6266	// The weight value designates the relative percentage of the total number of
6267	// tasks launched that should use the specified capacity provider.
6268	//
6269	// For example, if you have a strategy that contains two capacity providers
6270	// and both have a weight of 1, then when the base is satisfied, the tasks will
6271	// be split evenly across the two capacity providers. Using that same logic,
6272	// if you specify a weight of 1 for capacityProviderA and a weight of 4 for
6273	// capacityProviderB, then for every one task that is run using capacityProviderA,
6274	// four tasks would use capacityProviderB.
6275	Weight *int64 `locationName:"weight" type:"integer"`
6276}
6277
6278// String returns the string representation
6279func (s CapacityProviderStrategyItem) String() string {
6280	return awsutil.Prettify(s)
6281}
6282
6283// GoString returns the string representation
6284func (s CapacityProviderStrategyItem) GoString() string {
6285	return s.String()
6286}
6287
6288// Validate inspects the fields of the type to determine if they are valid.
6289func (s *CapacityProviderStrategyItem) Validate() error {
6290	invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
6291	if s.CapacityProvider == nil {
6292		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
6293	}
6294
6295	if invalidParams.Len() > 0 {
6296		return invalidParams
6297	}
6298	return nil
6299}
6300
6301// SetBase sets the Base field's value.
6302func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
6303	s.Base = &v
6304	return s
6305}
6306
6307// SetCapacityProvider sets the CapacityProvider field's value.
6308func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
6309	s.CapacityProvider = &v
6310	return s
6311}
6312
6313// SetWeight sets the Weight field's value.
6314func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
6315	s.Weight = &v
6316	return s
6317}
6318
6319// These errors are usually caused by a client action, such as using an action
6320// or resource on behalf of a user that doesn't have permissions to use the
6321// action or resource, or specifying an identifier that is not valid.
6322type ClientException struct {
6323	_            struct{}                  `type:"structure"`
6324	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6325
6326	Message_ *string `locationName:"message" type:"string"`
6327}
6328
6329// String returns the string representation
6330func (s ClientException) String() string {
6331	return awsutil.Prettify(s)
6332}
6333
6334// GoString returns the string representation
6335func (s ClientException) GoString() string {
6336	return s.String()
6337}
6338
6339func newErrorClientException(v protocol.ResponseMetadata) error {
6340	return &ClientException{
6341		RespMetadata: v,
6342	}
6343}
6344
6345// Code returns the exception type name.
6346func (s *ClientException) Code() string {
6347	return "ClientException"
6348}
6349
6350// Message returns the exception's message.
6351func (s *ClientException) Message() string {
6352	if s.Message_ != nil {
6353		return *s.Message_
6354	}
6355	return ""
6356}
6357
6358// OrigErr always returns nil, satisfies awserr.Error interface.
6359func (s *ClientException) OrigErr() error {
6360	return nil
6361}
6362
6363func (s *ClientException) Error() string {
6364	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6365}
6366
6367// Status code returns the HTTP status code for the request's response error.
6368func (s *ClientException) StatusCode() int {
6369	return s.RespMetadata.StatusCode
6370}
6371
6372// RequestID returns the service's response RequestID for request.
6373func (s *ClientException) RequestID() string {
6374	return s.RespMetadata.RequestID
6375}
6376
6377// A regional grouping of one or more container instances on which you can run
6378// task requests. Each account receives a default cluster the first time you
6379// use the Amazon ECS service, but you may also create other clusters. Clusters
6380// may contain more than one instance type simultaneously.
6381type Cluster struct {
6382	_ struct{} `type:"structure"`
6383
6384	// The number of services that are running on the cluster in an ACTIVE state.
6385	// You can view these services with ListServices.
6386	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
6387
6388	// The resources attached to a cluster. When using a capacity provider with
6389	// a cluster, the Auto Scaling plan that is created will be returned as a cluster
6390	// attachment.
6391	Attachments []*Attachment `locationName:"attachments" type:"list"`
6392
6393	// The status of the capacity providers associated with the cluster. The following
6394	// are the states that will be returned:
6395	//
6396	// UPDATE_IN_PROGRESS
6397	//
6398	// The available capacity providers for the cluster are updating. This occurs
6399	// when the Auto Scaling plan is provisioning or deprovisioning.
6400	//
6401	// UPDATE_COMPLETE
6402	//
6403	// The capacity providers have successfully updated.
6404	//
6405	// UPDATE_FAILED
6406	//
6407	// The capacity provider updates failed.
6408	AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"`
6409
6410	// The capacity providers associated with the cluster.
6411	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
6412
6413	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
6414	// the arn:aws:ecs namespace, followed by the Region of the cluster, the AWS
6415	// account ID of the cluster owner, the cluster namespace, and then the cluster
6416	// name. For example, arn:aws:ecs:region:012345678910:cluster/test.
6417	ClusterArn *string `locationName:"clusterArn" type:"string"`
6418
6419	// A user-generated string that you use to identify your cluster.
6420	ClusterName *string `locationName:"clusterName" type:"string"`
6421
6422	// The default capacity provider strategy for the cluster. When services or
6423	// tasks are run in the cluster with no launch type or capacity provider strategy
6424	// specified, the default capacity provider strategy is used.
6425	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
6426
6427	// The number of tasks in the cluster that are in the PENDING state.
6428	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
6429
6430	// The number of container instances registered into the cluster. This includes
6431	// container instances in both ACTIVE and DRAINING status.
6432	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
6433
6434	// The number of tasks in the cluster that are in the RUNNING state.
6435	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
6436
6437	// The settings for the cluster. This parameter indicates whether CloudWatch
6438	// Container Insights is enabled or disabled for a cluster.
6439	Settings []*ClusterSetting `locationName:"settings" type:"list"`
6440
6441	// Additional information about your clusters that are separated by launch type,
6442	// including:
6443	//
6444	//    * runningEC2TasksCount
6445	//
6446	//    * RunningFargateTasksCount
6447	//
6448	//    * pendingEC2TasksCount
6449	//
6450	//    * pendingFargateTasksCount
6451	//
6452	//    * activeEC2ServiceCount
6453	//
6454	//    * activeFargateServiceCount
6455	//
6456	//    * drainingEC2ServiceCount
6457	//
6458	//    * drainingFargateServiceCount
6459	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
6460
6461	// The status of the cluster. The following are the possible states that will
6462	// be returned.
6463	//
6464	// ACTIVE
6465	//
6466	// The cluster is ready to accept tasks and if applicable you can register container
6467	// instances with the cluster.
6468	//
6469	// PROVISIONING
6470	//
6471	// The cluster has capacity providers associated with it and the resources needed
6472	// for the capacity provider are being created.
6473	//
6474	// DEPROVISIONING
6475	//
6476	// The cluster has capacity providers associated with it and the resources needed
6477	// for the capacity provider are being deleted.
6478	//
6479	// FAILED
6480	//
6481	// The cluster has capacity providers associated with it and the resources needed
6482	// for the capacity provider have failed to create.
6483	//
6484	// INACTIVE
6485	//
6486	// The cluster has been deleted. Clusters with an INACTIVE status may remain
6487	// discoverable in your account for a period of time. However, this behavior
6488	// is subject to change in the future, so you should not rely on INACTIVE clusters
6489	// persisting.
6490	Status *string `locationName:"status" type:"string"`
6491
6492	// The metadata that you apply to the cluster to help you categorize and organize
6493	// them. Each tag consists of a key and an optional value, both of which you
6494	// define.
6495	//
6496	// The following basic restrictions apply to tags:
6497	//
6498	//    * Maximum number of tags per resource - 50
6499	//
6500	//    * For each resource, each tag key must be unique, and each tag key can
6501	//    have only one value.
6502	//
6503	//    * Maximum key length - 128 Unicode characters in UTF-8
6504	//
6505	//    * Maximum value length - 256 Unicode characters in UTF-8
6506	//
6507	//    * If your tagging schema is used across multiple services and resources,
6508	//    remember that other services may have restrictions on allowed characters.
6509	//    Generally allowed characters are: letters, numbers, and spaces representable
6510	//    in UTF-8, and the following characters: + - = . _ : / @.
6511	//
6512	//    * Tag keys and values are case-sensitive.
6513	//
6514	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6515	//    as a prefix for either keys or values as it is reserved for AWS use. You
6516	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6517	//    prefix do not count against your tags per resource limit.
6518	Tags []*Tag `locationName:"tags" type:"list"`
6519}
6520
6521// String returns the string representation
6522func (s Cluster) String() string {
6523	return awsutil.Prettify(s)
6524}
6525
6526// GoString returns the string representation
6527func (s Cluster) GoString() string {
6528	return s.String()
6529}
6530
6531// SetActiveServicesCount sets the ActiveServicesCount field's value.
6532func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
6533	s.ActiveServicesCount = &v
6534	return s
6535}
6536
6537// SetAttachments sets the Attachments field's value.
6538func (s *Cluster) SetAttachments(v []*Attachment) *Cluster {
6539	s.Attachments = v
6540	return s
6541}
6542
6543// SetAttachmentsStatus sets the AttachmentsStatus field's value.
6544func (s *Cluster) SetAttachmentsStatus(v string) *Cluster {
6545	s.AttachmentsStatus = &v
6546	return s
6547}
6548
6549// SetCapacityProviders sets the CapacityProviders field's value.
6550func (s *Cluster) SetCapacityProviders(v []*string) *Cluster {
6551	s.CapacityProviders = v
6552	return s
6553}
6554
6555// SetClusterArn sets the ClusterArn field's value.
6556func (s *Cluster) SetClusterArn(v string) *Cluster {
6557	s.ClusterArn = &v
6558	return s
6559}
6560
6561// SetClusterName sets the ClusterName field's value.
6562func (s *Cluster) SetClusterName(v string) *Cluster {
6563	s.ClusterName = &v
6564	return s
6565}
6566
6567// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
6568func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster {
6569	s.DefaultCapacityProviderStrategy = v
6570	return s
6571}
6572
6573// SetPendingTasksCount sets the PendingTasksCount field's value.
6574func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
6575	s.PendingTasksCount = &v
6576	return s
6577}
6578
6579// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
6580func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
6581	s.RegisteredContainerInstancesCount = &v
6582	return s
6583}
6584
6585// SetRunningTasksCount sets the RunningTasksCount field's value.
6586func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
6587	s.RunningTasksCount = &v
6588	return s
6589}
6590
6591// SetSettings sets the Settings field's value.
6592func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
6593	s.Settings = v
6594	return s
6595}
6596
6597// SetStatistics sets the Statistics field's value.
6598func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
6599	s.Statistics = v
6600	return s
6601}
6602
6603// SetStatus sets the Status field's value.
6604func (s *Cluster) SetStatus(v string) *Cluster {
6605	s.Status = &v
6606	return s
6607}
6608
6609// SetTags sets the Tags field's value.
6610func (s *Cluster) SetTags(v []*Tag) *Cluster {
6611	s.Tags = v
6612	return s
6613}
6614
6615// You cannot delete a cluster that has registered container instances. First,
6616// deregister the container instances before you can delete the cluster. For
6617// more information, see DeregisterContainerInstance.
6618type ClusterContainsContainerInstancesException struct {
6619	_            struct{}                  `type:"structure"`
6620	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6621
6622	Message_ *string `locationName:"message" type:"string"`
6623}
6624
6625// String returns the string representation
6626func (s ClusterContainsContainerInstancesException) String() string {
6627	return awsutil.Prettify(s)
6628}
6629
6630// GoString returns the string representation
6631func (s ClusterContainsContainerInstancesException) GoString() string {
6632	return s.String()
6633}
6634
6635func newErrorClusterContainsContainerInstancesException(v protocol.ResponseMetadata) error {
6636	return &ClusterContainsContainerInstancesException{
6637		RespMetadata: v,
6638	}
6639}
6640
6641// Code returns the exception type name.
6642func (s *ClusterContainsContainerInstancesException) Code() string {
6643	return "ClusterContainsContainerInstancesException"
6644}
6645
6646// Message returns the exception's message.
6647func (s *ClusterContainsContainerInstancesException) Message() string {
6648	if s.Message_ != nil {
6649		return *s.Message_
6650	}
6651	return ""
6652}
6653
6654// OrigErr always returns nil, satisfies awserr.Error interface.
6655func (s *ClusterContainsContainerInstancesException) OrigErr() error {
6656	return nil
6657}
6658
6659func (s *ClusterContainsContainerInstancesException) Error() string {
6660	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6661}
6662
6663// Status code returns the HTTP status code for the request's response error.
6664func (s *ClusterContainsContainerInstancesException) StatusCode() int {
6665	return s.RespMetadata.StatusCode
6666}
6667
6668// RequestID returns the service's response RequestID for request.
6669func (s *ClusterContainsContainerInstancesException) RequestID() string {
6670	return s.RespMetadata.RequestID
6671}
6672
6673// You cannot delete a cluster that contains services. First, update the service
6674// to reduce its desired task count to 0 and then delete the service. For more
6675// information, see UpdateService and DeleteService.
6676type ClusterContainsServicesException struct {
6677	_            struct{}                  `type:"structure"`
6678	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6679
6680	Message_ *string `locationName:"message" type:"string"`
6681}
6682
6683// String returns the string representation
6684func (s ClusterContainsServicesException) String() string {
6685	return awsutil.Prettify(s)
6686}
6687
6688// GoString returns the string representation
6689func (s ClusterContainsServicesException) GoString() string {
6690	return s.String()
6691}
6692
6693func newErrorClusterContainsServicesException(v protocol.ResponseMetadata) error {
6694	return &ClusterContainsServicesException{
6695		RespMetadata: v,
6696	}
6697}
6698
6699// Code returns the exception type name.
6700func (s *ClusterContainsServicesException) Code() string {
6701	return "ClusterContainsServicesException"
6702}
6703
6704// Message returns the exception's message.
6705func (s *ClusterContainsServicesException) Message() string {
6706	if s.Message_ != nil {
6707		return *s.Message_
6708	}
6709	return ""
6710}
6711
6712// OrigErr always returns nil, satisfies awserr.Error interface.
6713func (s *ClusterContainsServicesException) OrigErr() error {
6714	return nil
6715}
6716
6717func (s *ClusterContainsServicesException) Error() string {
6718	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6719}
6720
6721// Status code returns the HTTP status code for the request's response error.
6722func (s *ClusterContainsServicesException) StatusCode() int {
6723	return s.RespMetadata.StatusCode
6724}
6725
6726// RequestID returns the service's response RequestID for request.
6727func (s *ClusterContainsServicesException) RequestID() string {
6728	return s.RespMetadata.RequestID
6729}
6730
6731// You cannot delete a cluster that has active tasks.
6732type ClusterContainsTasksException struct {
6733	_            struct{}                  `type:"structure"`
6734	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6735
6736	Message_ *string `locationName:"message" type:"string"`
6737}
6738
6739// String returns the string representation
6740func (s ClusterContainsTasksException) String() string {
6741	return awsutil.Prettify(s)
6742}
6743
6744// GoString returns the string representation
6745func (s ClusterContainsTasksException) GoString() string {
6746	return s.String()
6747}
6748
6749func newErrorClusterContainsTasksException(v protocol.ResponseMetadata) error {
6750	return &ClusterContainsTasksException{
6751		RespMetadata: v,
6752	}
6753}
6754
6755// Code returns the exception type name.
6756func (s *ClusterContainsTasksException) Code() string {
6757	return "ClusterContainsTasksException"
6758}
6759
6760// Message returns the exception's message.
6761func (s *ClusterContainsTasksException) Message() string {
6762	if s.Message_ != nil {
6763		return *s.Message_
6764	}
6765	return ""
6766}
6767
6768// OrigErr always returns nil, satisfies awserr.Error interface.
6769func (s *ClusterContainsTasksException) OrigErr() error {
6770	return nil
6771}
6772
6773func (s *ClusterContainsTasksException) Error() string {
6774	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6775}
6776
6777// Status code returns the HTTP status code for the request's response error.
6778func (s *ClusterContainsTasksException) StatusCode() int {
6779	return s.RespMetadata.StatusCode
6780}
6781
6782// RequestID returns the service's response RequestID for request.
6783func (s *ClusterContainsTasksException) RequestID() string {
6784	return s.RespMetadata.RequestID
6785}
6786
6787// The specified cluster could not be found. You can view your available clusters
6788// with ListClusters. Amazon ECS clusters are Region-specific.
6789type ClusterNotFoundException struct {
6790	_            struct{}                  `type:"structure"`
6791	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6792
6793	Message_ *string `locationName:"message" type:"string"`
6794}
6795
6796// String returns the string representation
6797func (s ClusterNotFoundException) String() string {
6798	return awsutil.Prettify(s)
6799}
6800
6801// GoString returns the string representation
6802func (s ClusterNotFoundException) GoString() string {
6803	return s.String()
6804}
6805
6806func newErrorClusterNotFoundException(v protocol.ResponseMetadata) error {
6807	return &ClusterNotFoundException{
6808		RespMetadata: v,
6809	}
6810}
6811
6812// Code returns the exception type name.
6813func (s *ClusterNotFoundException) Code() string {
6814	return "ClusterNotFoundException"
6815}
6816
6817// Message returns the exception's message.
6818func (s *ClusterNotFoundException) Message() string {
6819	if s.Message_ != nil {
6820		return *s.Message_
6821	}
6822	return ""
6823}
6824
6825// OrigErr always returns nil, satisfies awserr.Error interface.
6826func (s *ClusterNotFoundException) OrigErr() error {
6827	return nil
6828}
6829
6830func (s *ClusterNotFoundException) Error() string {
6831	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6832}
6833
6834// Status code returns the HTTP status code for the request's response error.
6835func (s *ClusterNotFoundException) StatusCode() int {
6836	return s.RespMetadata.StatusCode
6837}
6838
6839// RequestID returns the service's response RequestID for request.
6840func (s *ClusterNotFoundException) RequestID() string {
6841	return s.RespMetadata.RequestID
6842}
6843
6844// The settings to use when creating a cluster. This parameter is used to enable
6845// CloudWatch Container Insights for a cluster.
6846type ClusterSetting struct {
6847	_ struct{} `type:"structure"`
6848
6849	// The name of the cluster setting. The only supported value is containerInsights.
6850	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
6851
6852	// The value to set for the cluster setting. The supported values are enabled
6853	// and disabled. If enabled is specified, CloudWatch Container Insights will
6854	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
6855	// account setting is enabled. If a cluster value is specified, it will override
6856	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
6857	Value *string `locationName:"value" type:"string"`
6858}
6859
6860// String returns the string representation
6861func (s ClusterSetting) String() string {
6862	return awsutil.Prettify(s)
6863}
6864
6865// GoString returns the string representation
6866func (s ClusterSetting) GoString() string {
6867	return s.String()
6868}
6869
6870// SetName sets the Name field's value.
6871func (s *ClusterSetting) SetName(v string) *ClusterSetting {
6872	s.Name = &v
6873	return s
6874}
6875
6876// SetValue sets the Value field's value.
6877func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
6878	s.Value = &v
6879	return s
6880}
6881
6882// A Docker container that is part of a task.
6883type Container struct {
6884	_ struct{} `type:"structure"`
6885
6886	// The Amazon Resource Name (ARN) of the container.
6887	ContainerArn *string `locationName:"containerArn" type:"string"`
6888
6889	// The number of CPU units set for the container. The value will be 0 if no
6890	// value was specified in the container definition when the task definition
6891	// was registered.
6892	Cpu *string `locationName:"cpu" type:"string"`
6893
6894	// The exit code returned from the container.
6895	ExitCode *int64 `locationName:"exitCode" type:"integer"`
6896
6897	// The IDs of each GPU assigned to the container.
6898	GpuIds []*string `locationName:"gpuIds" type:"list"`
6899
6900	// The health status of the container. If health checks are not configured for
6901	// this container in its task definition, then it reports the health status
6902	// as UNKNOWN.
6903	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
6904
6905	// The image used for the container.
6906	Image *string `locationName:"image" type:"string"`
6907
6908	// The container image manifest digest.
6909	//
6910	// The imageDigest is only returned if the container is using an image hosted
6911	// in Amazon ECR, otherwise it is omitted.
6912	ImageDigest *string `locationName:"imageDigest" type:"string"`
6913
6914	// The last known status of the container.
6915	LastStatus *string `locationName:"lastStatus" type:"string"`
6916
6917	// The hard limit (in MiB) of memory set for the container.
6918	Memory *string `locationName:"memory" type:"string"`
6919
6920	// The soft limit (in MiB) of memory set for the container.
6921	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
6922
6923	// The name of the container.
6924	Name *string `locationName:"name" type:"string"`
6925
6926	// The network bindings associated with the container.
6927	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
6928
6929	// The network interfaces associated with the container.
6930	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
6931
6932	// A short (255 max characters) human-readable string to provide additional
6933	// details about a running or stopped container.
6934	Reason *string `locationName:"reason" type:"string"`
6935
6936	// The ID of the Docker container.
6937	RuntimeId *string `locationName:"runtimeId" type:"string"`
6938
6939	// The ARN of the task.
6940	TaskArn *string `locationName:"taskArn" type:"string"`
6941}
6942
6943// String returns the string representation
6944func (s Container) String() string {
6945	return awsutil.Prettify(s)
6946}
6947
6948// GoString returns the string representation
6949func (s Container) GoString() string {
6950	return s.String()
6951}
6952
6953// SetContainerArn sets the ContainerArn field's value.
6954func (s *Container) SetContainerArn(v string) *Container {
6955	s.ContainerArn = &v
6956	return s
6957}
6958
6959// SetCpu sets the Cpu field's value.
6960func (s *Container) SetCpu(v string) *Container {
6961	s.Cpu = &v
6962	return s
6963}
6964
6965// SetExitCode sets the ExitCode field's value.
6966func (s *Container) SetExitCode(v int64) *Container {
6967	s.ExitCode = &v
6968	return s
6969}
6970
6971// SetGpuIds sets the GpuIds field's value.
6972func (s *Container) SetGpuIds(v []*string) *Container {
6973	s.GpuIds = v
6974	return s
6975}
6976
6977// SetHealthStatus sets the HealthStatus field's value.
6978func (s *Container) SetHealthStatus(v string) *Container {
6979	s.HealthStatus = &v
6980	return s
6981}
6982
6983// SetImage sets the Image field's value.
6984func (s *Container) SetImage(v string) *Container {
6985	s.Image = &v
6986	return s
6987}
6988
6989// SetImageDigest sets the ImageDigest field's value.
6990func (s *Container) SetImageDigest(v string) *Container {
6991	s.ImageDigest = &v
6992	return s
6993}
6994
6995// SetLastStatus sets the LastStatus field's value.
6996func (s *Container) SetLastStatus(v string) *Container {
6997	s.LastStatus = &v
6998	return s
6999}
7000
7001// SetMemory sets the Memory field's value.
7002func (s *Container) SetMemory(v string) *Container {
7003	s.Memory = &v
7004	return s
7005}
7006
7007// SetMemoryReservation sets the MemoryReservation field's value.
7008func (s *Container) SetMemoryReservation(v string) *Container {
7009	s.MemoryReservation = &v
7010	return s
7011}
7012
7013// SetName sets the Name field's value.
7014func (s *Container) SetName(v string) *Container {
7015	s.Name = &v
7016	return s
7017}
7018
7019// SetNetworkBindings sets the NetworkBindings field's value.
7020func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
7021	s.NetworkBindings = v
7022	return s
7023}
7024
7025// SetNetworkInterfaces sets the NetworkInterfaces field's value.
7026func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
7027	s.NetworkInterfaces = v
7028	return s
7029}
7030
7031// SetReason sets the Reason field's value.
7032func (s *Container) SetReason(v string) *Container {
7033	s.Reason = &v
7034	return s
7035}
7036
7037// SetRuntimeId sets the RuntimeId field's value.
7038func (s *Container) SetRuntimeId(v string) *Container {
7039	s.RuntimeId = &v
7040	return s
7041}
7042
7043// SetTaskArn sets the TaskArn field's value.
7044func (s *Container) SetTaskArn(v string) *Container {
7045	s.TaskArn = &v
7046	return s
7047}
7048
7049// Container definitions are used in task definitions to describe the different
7050// containers that are launched as part of a task.
7051type ContainerDefinition struct {
7052	_ struct{} `type:"structure"`
7053
7054	// The command that is passed to the container. This parameter maps to Cmd in
7055	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7056	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7057	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
7058	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
7059	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
7060	// arguments, each argument should be a separated string in the array.
7061	Command []*string `locationName:"command" type:"list"`
7062
7063	// The number of cpu units reserved for the container. This parameter maps to
7064	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7065	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7066	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
7067	//
7068	// This field is optional for tasks using the Fargate launch type, and the only
7069	// requirement is that the total amount of CPU reserved for all containers within
7070	// a task be lower than the task-level cpu value.
7071	//
7072	// You can determine the number of CPU units that are available per EC2 instance
7073	// type by multiplying the vCPUs listed for that instance type on the Amazon
7074	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
7075	// 1,024.
7076	//
7077	// Linux containers share unallocated CPU units with other containers on the
7078	// container instance with the same ratio as their allocated amount. For example,
7079	// if you run a single-container task on a single-core instance type with 512
7080	// CPU units specified for that container, and that is the only task running
7081	// on the container instance, that container could use the full 1,024 CPU unit
7082	// share at any given time. However, if you launched another copy of the same
7083	// task on that container instance, each task would be guaranteed a minimum
7084	// of 512 CPU units when needed, and each container could float to higher CPU
7085	// usage if the other container was not using it, but if both tasks were 100%
7086	// active all of the time, they would be limited to 512 CPU units.
7087	//
7088	// On Linux container instances, the Docker daemon on the container instance
7089	// uses the CPU value to calculate the relative CPU share ratios for running
7090	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
7091	// in the Docker documentation. The minimum valid CPU share value that the Linux
7092	// kernel allows is 2. However, the CPU parameter is not required, and you can
7093	// use CPU values below 2 in your container definitions. For CPU values below
7094	// 2 (including null), the behavior varies based on your Amazon ECS container
7095	// agent version:
7096	//
7097	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
7098	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
7099	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
7100	//    to two CPU shares.
7101	//
7102	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
7103	//    of 1 are passed to Docker as 2.
7104	//
7105	// On Windows container instances, the CPU limit is enforced as an absolute
7106	// limit, or a quota. Windows containers only have access to the specified amount
7107	// of CPU that is described in the task definition.
7108	Cpu *int64 `locationName:"cpu" type:"integer"`
7109
7110	// The dependencies defined for container startup and shutdown. A container
7111	// can contain multiple dependencies. When a dependency is defined for container
7112	// startup, for container shutdown it is reversed.
7113	//
7114	// For tasks using the EC2 launch type, the container instances require at least
7115	// version 1.26.0 of the container agent to enable container dependencies. However,
7116	// we recommend using the latest container agent version. For information about
7117	// checking your agent version and updating to the latest version, see Updating
7118	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7119	// in the Amazon Elastic Container Service Developer Guide. If you are using
7120	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7121	// of the ecs-init package. If your container instances are launched from version
7122	// 20190301 or later, then they contain the required versions of the container
7123	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7124	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7125	// in the Amazon Elastic Container Service Developer Guide.
7126	//
7127	// For tasks using the Fargate launch type, the task or service requires platform
7128	// version 1.3.0 or later.
7129	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
7130
7131	// When this parameter is true, networking is disabled within the container.
7132	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7133	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
7134	//
7135	// This parameter is not supported for Windows containers.
7136	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
7137
7138	// A list of DNS search domains that are presented to the container. This parameter
7139	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7140	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7141	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/).
7142	//
7143	// This parameter is not supported for Windows containers.
7144	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
7145
7146	// A list of DNS servers that are presented to the container. This parameter
7147	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7148	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7149	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/).
7150	//
7151	// This parameter is not supported for Windows containers.
7152	DnsServers []*string `locationName:"dnsServers" type:"list"`
7153
7154	// A key/value map of labels to add to the container. This parameter maps to
7155	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7156	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7157	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/).
7158	// This parameter requires version 1.18 of the Docker Remote API or greater
7159	// on your container instance. To check the Docker Remote API version on your
7160	// container instance, log in to your container instance and run the following
7161	// command: sudo docker version --format '{{.Server.APIVersion}}'
7162	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
7163
7164	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
7165	// security systems. This field is not valid for containers in tasks using the
7166	// Fargate launch type.
7167	//
7168	// With Windows containers, this parameter can be used to reference a credential
7169	// spec file when configuring a container for Active Directory authentication.
7170	// For more information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html)
7171	// in the Amazon Elastic Container Service Developer Guide.
7172	//
7173	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7174	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7175	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/).
7176	//
7177	// The Amazon ECS container agent running on a container instance must register
7178	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
7179	// variables before containers placed on that instance can use these security
7180	// options. For more information, see Amazon ECS Container Agent Configuration
7181	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7182	// in the Amazon Elastic Container Service Developer Guide.
7183	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
7184
7185	//
7186	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
7187	// parameters. If you have problems using entryPoint, update your container
7188	// agent or enter your commands and arguments as command array items instead.
7189	//
7190	// The entry point that is passed to the container. This parameter maps to Entrypoint
7191	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7192	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7193	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/).
7194	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
7195	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
7196	EntryPoint []*string `locationName:"entryPoint" type:"list"`
7197
7198	// The environment variables to pass to a container. This parameter maps to
7199	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7200	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7201	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
7202	//
7203	// We do not recommend using plaintext environment variables for sensitive information,
7204	// such as credential data.
7205	Environment []*KeyValuePair `locationName:"environment" type:"list"`
7206
7207	// A list of files containing the environment variables to pass to a container.
7208	// This parameter maps to the --env-file option to docker run (https://docs.docker.com/engine/reference/run/).
7209	//
7210	// You can specify up to ten environment files. The file must have a .env file
7211	// extension. Each line in an environment file should contain an environment
7212	// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
7213	// comments and are ignored. For more information on the environment variable
7214	// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
7215	//
7216	// If there are environment variables specified using the environment parameter
7217	// in a container definition, they take precedence over the variables contained
7218	// within an environment file. If multiple environment files are specified that
7219	// contain the same variable, they are processed from the top down. It is recommended
7220	// to use unique variable names. For more information, see Specifying Environment
7221	// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
7222	// in the Amazon Elastic Container Service Developer Guide.
7223	//
7224	// This field is not valid for containers in tasks using the Fargate launch
7225	// type.
7226	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
7227
7228	// If the essential parameter of a container is marked as true, and that container
7229	// fails or stops for any reason, all other containers that are part of the
7230	// task are stopped. If the essential parameter of a container is marked as
7231	// false, then its failure does not affect the rest of the containers in a task.
7232	// If this parameter is omitted, a container is assumed to be essential.
7233	//
7234	// All tasks must have at least one essential container. If you have an application
7235	// that is composed of multiple containers, you should group containers that
7236	// are used for a common purpose into components, and separate the different
7237	// components into multiple task definitions. For more information, see Application
7238	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
7239	// in the Amazon Elastic Container Service Developer Guide.
7240	Essential *bool `locationName:"essential" type:"boolean"`
7241
7242	// A list of hostnames and IP address mappings to append to the /etc/hosts file
7243	// on the container. This parameter maps to ExtraHosts in the Create a container
7244	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7245	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7246	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/).
7247	//
7248	// This parameter is not supported for Windows containers or tasks that use
7249	// the awsvpc network mode.
7250	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
7251
7252	// The FireLens configuration for the container. This is used to specify and
7253	// configure a log router for container logs. For more information, see Custom
7254	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
7255	// in the Amazon Elastic Container Service Developer Guide.
7256	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
7257
7258	// The container health check command and associated configuration parameters
7259	// for the container. This parameter maps to HealthCheck in the Create a container
7260	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7261	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7262	// the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/).
7263	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
7264
7265	// The hostname to use for your container. This parameter maps to Hostname in
7266	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7267	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7268	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/).
7269	//
7270	// The hostname parameter is not supported if you are using the awsvpc network
7271	// mode.
7272	Hostname *string `locationName:"hostname" type:"string"`
7273
7274	// The image used to start a container. This string is passed directly to the
7275	// Docker daemon. Images in the Docker Hub registry are available by default.
7276	// Other repositories are specified with either repository-url/image:tag or
7277	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
7278	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
7279	// signs are allowed. This parameter maps to Image in the Create a container
7280	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7281	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7282	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
7283	//
7284	//    * When a new task starts, the Amazon ECS container agent pulls the latest
7285	//    version of the specified image and tag for the container to use. However,
7286	//    subsequent updates to a repository image are not propagated to already
7287	//    running tasks.
7288	//
7289	//    * Images in Amazon ECR repositories can be specified by either using the
7290	//    full registry/repository:tag or registry/repository@digest. For example,
7291	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
7292	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
7293	//
7294	//    * Images in official repositories on Docker Hub use a single name (for
7295	//    example, ubuntu or mongo).
7296	//
7297	//    * Images in other repositories on Docker Hub are qualified with an organization
7298	//    name (for example, amazon/amazon-ecs-agent).
7299	//
7300	//    * Images in other online repositories are qualified further by a domain
7301	//    name (for example, quay.io/assemblyline/ubuntu).
7302	Image *string `locationName:"image" type:"string"`
7303
7304	// When this parameter is true, this allows you to deploy containerized applications
7305	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
7306	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7307	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7308	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/).
7309	Interactive *bool `locationName:"interactive" type:"boolean"`
7310
7311	// The links parameter allows containers to communicate with each other without
7312	// the need for port mappings. This parameter is only supported if the network
7313	// mode of a task definition is bridge. The name:internalName construct is analogous
7314	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
7315	// numbers, and hyphens are allowed. For more information about linking Docker
7316	// containers, go to Legacy container links (https://docs.docker.com/network/links/)
7317	// in the Docker documentation. This parameter maps to Links in the Create a
7318	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7319	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7320	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/).
7321	//
7322	// This parameter is not supported for Windows containers.
7323	//
7324	// Containers that are collocated on a single container instance may be able
7325	// to communicate with each other without requiring links or host port mappings.
7326	// Network isolation is achieved on the container instance using security groups
7327	// and VPC settings.
7328	Links []*string `locationName:"links" type:"list"`
7329
7330	// Linux-specific modifications that are applied to the container, such as Linux
7331	// kernel capabilities. For more information see KernelCapabilities.
7332	//
7333	// This parameter is not supported for Windows containers.
7334	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
7335
7336	// The log configuration specification for the container.
7337	//
7338	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7339	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7340	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
7341	// By default, containers use the same logging driver that the Docker daemon
7342	// uses. However the container may use a different logging driver than the Docker
7343	// daemon by specifying a log driver with this parameter in the container definition.
7344	// To use a different logging driver for a container, the log system must be
7345	// configured properly on the container instance (or on a different log server
7346	// for remote logging options). For more information on the options for different
7347	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
7348	// in the Docker documentation.
7349	//
7350	// Amazon ECS currently supports a subset of the logging drivers available to
7351	// the Docker daemon (shown in the LogConfiguration data type). Additional log
7352	// drivers may be available in future releases of the Amazon ECS container agent.
7353	//
7354	// This parameter requires version 1.18 of the Docker Remote API or greater
7355	// on your container instance. To check the Docker Remote API version on your
7356	// container instance, log in to your container instance and run the following
7357	// command: sudo docker version --format '{{.Server.APIVersion}}'
7358	//
7359	// The Amazon ECS container agent running on a container instance must register
7360	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
7361	// environment variable before containers placed on that instance can use these
7362	// log configuration options. For more information, see Amazon ECS Container
7363	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7364	// in the Amazon Elastic Container Service Developer Guide.
7365	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
7366
7367	// The amount (in MiB) of memory to present to the container. If your container
7368	// attempts to exceed the memory specified here, the container is killed. The
7369	// total amount of memory reserved for all containers within a task must be
7370	// lower than the task memory value, if one is specified. This parameter maps
7371	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7372	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7373	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
7374	//
7375	// If using the Fargate launch type, this parameter is optional.
7376	//
7377	// If using the EC2 launch type, you must specify either a task-level memory
7378	// value or a container-level memory value. If you specify both a container-level
7379	// memory and memoryReservation value, memory must be greater than memoryReservation.
7380	// If you specify memoryReservation, then that value is subtracted from the
7381	// available memory resources for the container instance on which the container
7382	// is placed. Otherwise, the value of memory is used.
7383	//
7384	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7385	// so you should not specify fewer than 4 MiB of memory for your containers.
7386	Memory *int64 `locationName:"memory" type:"integer"`
7387
7388	// The soft limit (in MiB) of memory to reserve for the container. When system
7389	// memory is under heavy contention, Docker attempts to keep the container memory
7390	// to this soft limit. However, your container can consume more memory when
7391	// it needs to, up to either the hard limit specified with the memory parameter
7392	// (if applicable), or all of the available memory on the container instance,
7393	// whichever comes first. This parameter maps to MemoryReservation in the Create
7394	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7395	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7396	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/).
7397	//
7398	// If a task-level memory value is not specified, you must specify a non-zero
7399	// integer for one or both of memory or memoryReservation in a container definition.
7400	// If you specify both, memory must be greater than memoryReservation. If you
7401	// specify memoryReservation, then that value is subtracted from the available
7402	// memory resources for the container instance on which the container is placed.
7403	// Otherwise, the value of memory is used.
7404	//
7405	// For example, if your container normally uses 128 MiB of memory, but occasionally
7406	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
7407	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
7408	// allow the container to only reserve 128 MiB of memory from the remaining
7409	// resources on the container instance, but also allow the container to consume
7410	// more memory resources when needed.
7411	//
7412	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7413	// so you should not specify fewer than 4 MiB of memory for your containers.
7414	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
7415
7416	// The mount points for data volumes in your container.
7417	//
7418	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7419	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7420	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
7421	//
7422	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
7423	// Windows containers cannot mount directories on a different drive, and mount
7424	// point cannot be across drives.
7425	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
7426
7427	// The name of a container. If you are linking multiple containers together
7428	// in a task definition, the name of one container can be entered in the links
7429	// of another container to connect the containers. Up to 255 letters (uppercase
7430	// and lowercase), numbers, and hyphens are allowed. This parameter maps to
7431	// name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7432	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7433	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/).
7434	Name *string `locationName:"name" type:"string"`
7435
7436	// The list of port mappings for the container. Port mappings allow containers
7437	// to access ports on the host container instance to send or receive traffic.
7438	//
7439	// For task definitions that use the awsvpc network mode, you should only specify
7440	// the containerPort. The hostPort can be left blank or it must be the same
7441	// value as the containerPort.
7442	//
7443	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
7444	// There is no loopback for port mappings on Windows, so you cannot access a
7445	// container's mapped port from the host itself.
7446	//
7447	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7448	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7449	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/).
7450	// If the network mode of a task definition is set to none, then you can't specify
7451	// port mappings. If the network mode of a task definition is set to host, then
7452	// host ports must either be undefined or they must match the container port
7453	// in the port mapping.
7454	//
7455	// After a task reaches the RUNNING status, manual and automatic host and container
7456	// port assignments are visible in the Network Bindings section of a container
7457	// description for a selected task in the Amazon ECS console. The assignments
7458	// are also visible in the networkBindings section DescribeTasks responses.
7459	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
7460
7461	// When this parameter is true, the container is given elevated privileges on
7462	// the host container instance (similar to the root user). This parameter maps
7463	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7464	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7465	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
7466	//
7467	// This parameter is not supported for Windows containers or tasks using the
7468	// Fargate launch type.
7469	Privileged *bool `locationName:"privileged" type:"boolean"`
7470
7471	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
7472	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7473	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7474	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/).
7475	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
7476
7477	// When this parameter is true, the container is given read-only access to its
7478	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
7479	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7480	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7481	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/).
7482	//
7483	// This parameter is not supported for Windows containers.
7484	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
7485
7486	// The private repository authentication credentials to use.
7487	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
7488
7489	// The type and amount of a resource to assign to a container. The only supported
7490	// resource is a GPU.
7491	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
7492
7493	// The secrets to pass to the container. For more information, see Specifying
7494	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
7495	// in the Amazon Elastic Container Service Developer Guide.
7496	Secrets []*Secret `locationName:"secrets" type:"list"`
7497
7498	// Time duration (in seconds) to wait before giving up on resolving dependencies
7499	// for a container. For example, you specify two containers in a task definition
7500	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
7501	// or HEALTHY status. If a startTimeout value is specified for containerB and
7502	// it does not reach the desired status within that time then containerA will
7503	// give up and not start. This results in the task transitioning to a STOPPED
7504	// state.
7505	//
7506	// For tasks using the Fargate launch type, this parameter requires that the
7507	// task or service uses platform version 1.3.0 or later. If this parameter is
7508	// not specified, the default value of 3 minutes is used.
7509	//
7510	// For tasks using the EC2 launch type, if the startTimeout parameter is not
7511	// specified, the value set for the Amazon ECS container agent configuration
7512	// variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither the startTimeout
7513	// parameter or the ECS_CONTAINER_START_TIMEOUT agent configuration variable
7514	// are set, then the default values of 3 minutes for Linux containers and 8
7515	// minutes on Windows containers are used. Your container instances require
7516	// at least version 1.26.0 of the container agent to enable a container start
7517	// timeout value. However, we recommend using the latest container agent version.
7518	// For information about checking your agent version and updating to the latest
7519	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7520	// in the Amazon Elastic Container Service Developer Guide. If you are using
7521	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7522	// of the ecs-init package. If your container instances are launched from version
7523	// 20190301 or later, then they contain the required versions of the container
7524	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7525	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7526	// in the Amazon Elastic Container Service Developer Guide.
7527	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
7528
7529	// Time duration (in seconds) to wait before the container is forcefully killed
7530	// if it doesn't exit normally on its own.
7531	//
7532	// For tasks using the Fargate launch type, the task or service requires platform
7533	// version 1.3.0 or later. The max stop timeout value is 120 seconds and if
7534	// the parameter is not specified, the default value of 30 seconds is used.
7535	//
7536	// For tasks using the EC2 launch type, if the stopTimeout parameter is not
7537	// specified, the value set for the Amazon ECS container agent configuration
7538	// variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout
7539	// parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable
7540	// are set, then the default values of 30 seconds for Linux containers and 30
7541	// seconds on Windows containers are used. Your container instances require
7542	// at least version 1.26.0 of the container agent to enable a container stop
7543	// timeout value. However, we recommend using the latest container agent version.
7544	// For information about checking your agent version and updating to the latest
7545	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7546	// in the Amazon Elastic Container Service Developer Guide. If you are using
7547	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7548	// of the ecs-init package. If your container instances are launched from version
7549	// 20190301 or later, then they contain the required versions of the container
7550	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7551	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7552	// in the Amazon Elastic Container Service Developer Guide.
7553	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
7554
7555	// A list of namespaced kernel parameters to set in the container. This parameter
7556	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7557	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7558	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
7559	//
7560	// It is not recommended that you specify network-related systemControls parameters
7561	// for multiple containers in a single task that also uses either the awsvpc
7562	// or host network modes. For tasks that use the awsvpc network mode, the container
7563	// that is started last determines which systemControls parameters take effect.
7564	// For tasks that use the host network mode, it changes the container instance's
7565	// namespaced kernel parameters as well as the containers.
7566	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
7567
7568	// A list of ulimits to set in the container. If a ulimit value is specified
7569	// in a task definition, it will override the default values set by Docker.
7570	// This parameter maps to Ulimits in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7571	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7572	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
7573	// Valid naming values are displayed in the Ulimit data type. This parameter
7574	// requires version 1.18 of the Docker Remote API or greater on your container
7575	// instance. To check the Docker Remote API version on your container instance,
7576	// log in to your container instance and run the following command: sudo docker
7577	// version --format '{{.Server.APIVersion}}'
7578	//
7579	// This parameter is not supported for Windows containers.
7580	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
7581
7582	// The user name to use inside the container. This parameter maps to User in
7583	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7584	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7585	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
7586	//
7587	// You can use the following formats. If specifying a UID or GID, you must specify
7588	// it as a positive integer.
7589	//
7590	//    * user
7591	//
7592	//    * user:group
7593	//
7594	//    * uid
7595	//
7596	//    * uid:gid
7597	//
7598	//    * user:gid
7599	//
7600	//    * uid:group
7601	//
7602	// This parameter is not supported for Windows containers.
7603	User *string `locationName:"user" type:"string"`
7604
7605	// Data volumes to mount from another container. This parameter maps to VolumesFrom
7606	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7607	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7608	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/).
7609	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
7610
7611	// The working directory in which to run commands inside the container. This
7612	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7613	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7614	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/).
7615	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
7616}
7617
7618// String returns the string representation
7619func (s ContainerDefinition) String() string {
7620	return awsutil.Prettify(s)
7621}
7622
7623// GoString returns the string representation
7624func (s ContainerDefinition) GoString() string {
7625	return s.String()
7626}
7627
7628// Validate inspects the fields of the type to determine if they are valid.
7629func (s *ContainerDefinition) Validate() error {
7630	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
7631	if s.DependsOn != nil {
7632		for i, v := range s.DependsOn {
7633			if v == nil {
7634				continue
7635			}
7636			if err := v.Validate(); err != nil {
7637				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
7638			}
7639		}
7640	}
7641	if s.EnvironmentFiles != nil {
7642		for i, v := range s.EnvironmentFiles {
7643			if v == nil {
7644				continue
7645			}
7646			if err := v.Validate(); err != nil {
7647				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
7648			}
7649		}
7650	}
7651	if s.ExtraHosts != nil {
7652		for i, v := range s.ExtraHosts {
7653			if v == nil {
7654				continue
7655			}
7656			if err := v.Validate(); err != nil {
7657				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
7658			}
7659		}
7660	}
7661	if s.FirelensConfiguration != nil {
7662		if err := s.FirelensConfiguration.Validate(); err != nil {
7663			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
7664		}
7665	}
7666	if s.HealthCheck != nil {
7667		if err := s.HealthCheck.Validate(); err != nil {
7668			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
7669		}
7670	}
7671	if s.LinuxParameters != nil {
7672		if err := s.LinuxParameters.Validate(); err != nil {
7673			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
7674		}
7675	}
7676	if s.LogConfiguration != nil {
7677		if err := s.LogConfiguration.Validate(); err != nil {
7678			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
7679		}
7680	}
7681	if s.RepositoryCredentials != nil {
7682		if err := s.RepositoryCredentials.Validate(); err != nil {
7683			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
7684		}
7685	}
7686	if s.ResourceRequirements != nil {
7687		for i, v := range s.ResourceRequirements {
7688			if v == nil {
7689				continue
7690			}
7691			if err := v.Validate(); err != nil {
7692				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
7693			}
7694		}
7695	}
7696	if s.Secrets != nil {
7697		for i, v := range s.Secrets {
7698			if v == nil {
7699				continue
7700			}
7701			if err := v.Validate(); err != nil {
7702				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
7703			}
7704		}
7705	}
7706	if s.Ulimits != nil {
7707		for i, v := range s.Ulimits {
7708			if v == nil {
7709				continue
7710			}
7711			if err := v.Validate(); err != nil {
7712				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
7713			}
7714		}
7715	}
7716
7717	if invalidParams.Len() > 0 {
7718		return invalidParams
7719	}
7720	return nil
7721}
7722
7723// SetCommand sets the Command field's value.
7724func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
7725	s.Command = v
7726	return s
7727}
7728
7729// SetCpu sets the Cpu field's value.
7730func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
7731	s.Cpu = &v
7732	return s
7733}
7734
7735// SetDependsOn sets the DependsOn field's value.
7736func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
7737	s.DependsOn = v
7738	return s
7739}
7740
7741// SetDisableNetworking sets the DisableNetworking field's value.
7742func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
7743	s.DisableNetworking = &v
7744	return s
7745}
7746
7747// SetDnsSearchDomains sets the DnsSearchDomains field's value.
7748func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
7749	s.DnsSearchDomains = v
7750	return s
7751}
7752
7753// SetDnsServers sets the DnsServers field's value.
7754func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
7755	s.DnsServers = v
7756	return s
7757}
7758
7759// SetDockerLabels sets the DockerLabels field's value.
7760func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
7761	s.DockerLabels = v
7762	return s
7763}
7764
7765// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
7766func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
7767	s.DockerSecurityOptions = v
7768	return s
7769}
7770
7771// SetEntryPoint sets the EntryPoint field's value.
7772func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
7773	s.EntryPoint = v
7774	return s
7775}
7776
7777// SetEnvironment sets the Environment field's value.
7778func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
7779	s.Environment = v
7780	return s
7781}
7782
7783// SetEnvironmentFiles sets the EnvironmentFiles field's value.
7784func (s *ContainerDefinition) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerDefinition {
7785	s.EnvironmentFiles = v
7786	return s
7787}
7788
7789// SetEssential sets the Essential field's value.
7790func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
7791	s.Essential = &v
7792	return s
7793}
7794
7795// SetExtraHosts sets the ExtraHosts field's value.
7796func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
7797	s.ExtraHosts = v
7798	return s
7799}
7800
7801// SetFirelensConfiguration sets the FirelensConfiguration field's value.
7802func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
7803	s.FirelensConfiguration = v
7804	return s
7805}
7806
7807// SetHealthCheck sets the HealthCheck field's value.
7808func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
7809	s.HealthCheck = v
7810	return s
7811}
7812
7813// SetHostname sets the Hostname field's value.
7814func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
7815	s.Hostname = &v
7816	return s
7817}
7818
7819// SetImage sets the Image field's value.
7820func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
7821	s.Image = &v
7822	return s
7823}
7824
7825// SetInteractive sets the Interactive field's value.
7826func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
7827	s.Interactive = &v
7828	return s
7829}
7830
7831// SetLinks sets the Links field's value.
7832func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
7833	s.Links = v
7834	return s
7835}
7836
7837// SetLinuxParameters sets the LinuxParameters field's value.
7838func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
7839	s.LinuxParameters = v
7840	return s
7841}
7842
7843// SetLogConfiguration sets the LogConfiguration field's value.
7844func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
7845	s.LogConfiguration = v
7846	return s
7847}
7848
7849// SetMemory sets the Memory field's value.
7850func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
7851	s.Memory = &v
7852	return s
7853}
7854
7855// SetMemoryReservation sets the MemoryReservation field's value.
7856func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
7857	s.MemoryReservation = &v
7858	return s
7859}
7860
7861// SetMountPoints sets the MountPoints field's value.
7862func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
7863	s.MountPoints = v
7864	return s
7865}
7866
7867// SetName sets the Name field's value.
7868func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
7869	s.Name = &v
7870	return s
7871}
7872
7873// SetPortMappings sets the PortMappings field's value.
7874func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
7875	s.PortMappings = v
7876	return s
7877}
7878
7879// SetPrivileged sets the Privileged field's value.
7880func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
7881	s.Privileged = &v
7882	return s
7883}
7884
7885// SetPseudoTerminal sets the PseudoTerminal field's value.
7886func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
7887	s.PseudoTerminal = &v
7888	return s
7889}
7890
7891// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
7892func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
7893	s.ReadonlyRootFilesystem = &v
7894	return s
7895}
7896
7897// SetRepositoryCredentials sets the RepositoryCredentials field's value.
7898func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
7899	s.RepositoryCredentials = v
7900	return s
7901}
7902
7903// SetResourceRequirements sets the ResourceRequirements field's value.
7904func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
7905	s.ResourceRequirements = v
7906	return s
7907}
7908
7909// SetSecrets sets the Secrets field's value.
7910func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
7911	s.Secrets = v
7912	return s
7913}
7914
7915// SetStartTimeout sets the StartTimeout field's value.
7916func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
7917	s.StartTimeout = &v
7918	return s
7919}
7920
7921// SetStopTimeout sets the StopTimeout field's value.
7922func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
7923	s.StopTimeout = &v
7924	return s
7925}
7926
7927// SetSystemControls sets the SystemControls field's value.
7928func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
7929	s.SystemControls = v
7930	return s
7931}
7932
7933// SetUlimits sets the Ulimits field's value.
7934func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
7935	s.Ulimits = v
7936	return s
7937}
7938
7939// SetUser sets the User field's value.
7940func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
7941	s.User = &v
7942	return s
7943}
7944
7945// SetVolumesFrom sets the VolumesFrom field's value.
7946func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
7947	s.VolumesFrom = v
7948	return s
7949}
7950
7951// SetWorkingDirectory sets the WorkingDirectory field's value.
7952func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
7953	s.WorkingDirectory = &v
7954	return s
7955}
7956
7957// The dependencies defined for container startup and shutdown. A container
7958// can contain multiple dependencies. When a dependency is defined for container
7959// startup, for container shutdown it is reversed.
7960//
7961// Your Amazon ECS container instances require at least version 1.26.0 of the
7962// container agent to enable container dependencies. However, we recommend using
7963// the latest container agent version. For information about checking your agent
7964// version and updating to the latest version, see Updating the Amazon ECS Container
7965// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7966// in the Amazon Elastic Container Service Developer Guide. If you are using
7967// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7968// of the ecs-init package. If your container instances are launched from version
7969// 20190301 or later, then they contain the required versions of the container
7970// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7971// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7972// in the Amazon Elastic Container Service Developer Guide.
7973//
7974// For tasks using the Fargate launch type, this parameter requires that the
7975// task or service uses platform version 1.3.0 or later.
7976type ContainerDependency struct {
7977	_ struct{} `type:"structure"`
7978
7979	// The dependency condition of the container. The following are the available
7980	// conditions and their behavior:
7981	//
7982	//    * START - This condition emulates the behavior of links and volumes today.
7983	//    It validates that a dependent container is started before permitting other
7984	//    containers to start.
7985	//
7986	//    * COMPLETE - This condition validates that a dependent container runs
7987	//    to completion (exits) before permitting other containers to start. This
7988	//    can be useful for nonessential containers that run a script and then exit.
7989	//
7990	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
7991	//    that the container exits with a zero status.
7992	//
7993	//    * HEALTHY - This condition validates that the dependent container passes
7994	//    its Docker health check before permitting other containers to start. This
7995	//    requires that the dependent container has health checks configured. This
7996	//    condition is confirmed only at task startup.
7997	//
7998	// Condition is a required field
7999	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
8000
8001	// The name of a container.
8002	//
8003	// ContainerName is a required field
8004	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
8005}
8006
8007// String returns the string representation
8008func (s ContainerDependency) String() string {
8009	return awsutil.Prettify(s)
8010}
8011
8012// GoString returns the string representation
8013func (s ContainerDependency) GoString() string {
8014	return s.String()
8015}
8016
8017// Validate inspects the fields of the type to determine if they are valid.
8018func (s *ContainerDependency) Validate() error {
8019	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
8020	if s.Condition == nil {
8021		invalidParams.Add(request.NewErrParamRequired("Condition"))
8022	}
8023	if s.ContainerName == nil {
8024		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
8025	}
8026
8027	if invalidParams.Len() > 0 {
8028		return invalidParams
8029	}
8030	return nil
8031}
8032
8033// SetCondition sets the Condition field's value.
8034func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
8035	s.Condition = &v
8036	return s
8037}
8038
8039// SetContainerName sets the ContainerName field's value.
8040func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
8041	s.ContainerName = &v
8042	return s
8043}
8044
8045// An EC2 instance that is running the Amazon ECS agent and has been registered
8046// with a cluster.
8047type ContainerInstance struct {
8048	_ struct{} `type:"structure"`
8049
8050	// This parameter returns true if the agent is connected to Amazon ECS. Registered
8051	// instances with an agent that may be unhealthy or stopped return false. Only
8052	// instances connected to an agent can accept placement requests.
8053	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
8054
8055	// The status of the most recent agent update. If an update has never been requested,
8056	// this value is NULL.
8057	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
8058
8059	// The resources attached to a container instance, such as elastic network interfaces.
8060	Attachments []*Attachment `locationName:"attachments" type:"list"`
8061
8062	// The attributes set for the container instance, either by the Amazon ECS container
8063	// agent at instance registration or manually with the PutAttributes operation.
8064	Attributes []*Attribute `locationName:"attributes" type:"list"`
8065
8066	// The capacity provider associated with the container instance.
8067	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
8068
8069	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
8070	// the arn:aws:ecs namespace, followed by the Region of the container instance,
8071	// the AWS account ID of the container instance owner, the container-instance
8072	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
8073	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
8074
8075	// The EC2 instance ID of the container instance.
8076	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
8077
8078	// The number of tasks on the container instance that are in the PENDING status.
8079	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
8080
8081	// The Unix timestamp for when the container instance was registered.
8082	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
8083
8084	// For CPU and memory resource types, this parameter describes the amount of
8085	// each resource that was available on the container instance when the container
8086	// agent registered it with Amazon ECS. This value represents the total amount
8087	// of CPU and memory that can be allocated on this container instance to tasks.
8088	// For port resource types, this parameter describes the ports that were reserved
8089	// by the Amazon ECS container agent when it registered the container instance
8090	// with Amazon ECS.
8091	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
8092
8093	// For CPU and memory resource types, this parameter describes the remaining
8094	// CPU and memory that has not already been allocated to tasks and is therefore
8095	// available for new tasks. For port resource types, this parameter describes
8096	// the ports that were reserved by the Amazon ECS container agent (at instance
8097	// registration time) and any task containers that have reserved port mappings
8098	// on the host (with the host or bridge network mode). Any port that is not
8099	// specified here is available for new tasks.
8100	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
8101
8102	// The number of tasks on the container instance that are in the RUNNING status.
8103	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
8104
8105	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
8106	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
8107	//
8108	// If your account has opted in to the awsvpcTrunking account setting, then
8109	// any newly registered container instance will transition to a REGISTERING
8110	// status while the trunk elastic network interface is provisioned for the instance.
8111	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
8112	// status. You can describe the container instance and see the reason for failure
8113	// in the statusReason parameter. Once the container instance is terminated,
8114	// the instance transitions to a DEREGISTERING status while the trunk elastic
8115	// network interface is deprovisioned. The instance then transitions to an INACTIVE
8116	// status.
8117	//
8118	// The ACTIVE status indicates that the container instance can accept tasks.
8119	// The DRAINING indicates that new tasks are not placed on the container instance
8120	// and any service tasks running on the container instance are removed if possible.
8121	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
8122	// in the Amazon Elastic Container Service Developer Guide.
8123	Status *string `locationName:"status" type:"string"`
8124
8125	// The reason that the container instance reached its current status.
8126	StatusReason *string `locationName:"statusReason" type:"string"`
8127
8128	// The metadata that you apply to the container instance to help you categorize
8129	// and organize them. Each tag consists of a key and an optional value, both
8130	// of which you define.
8131	//
8132	// The following basic restrictions apply to tags:
8133	//
8134	//    * Maximum number of tags per resource - 50
8135	//
8136	//    * For each resource, each tag key must be unique, and each tag key can
8137	//    have only one value.
8138	//
8139	//    * Maximum key length - 128 Unicode characters in UTF-8
8140	//
8141	//    * Maximum value length - 256 Unicode characters in UTF-8
8142	//
8143	//    * If your tagging schema is used across multiple services and resources,
8144	//    remember that other services may have restrictions on allowed characters.
8145	//    Generally allowed characters are: letters, numbers, and spaces representable
8146	//    in UTF-8, and the following characters: + - = . _ : / @.
8147	//
8148	//    * Tag keys and values are case-sensitive.
8149	//
8150	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8151	//    as a prefix for either keys or values as it is reserved for AWS use. You
8152	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8153	//    prefix do not count against your tags per resource limit.
8154	Tags []*Tag `locationName:"tags" type:"list"`
8155
8156	// The version counter for the container instance. Every time a container instance
8157	// experiences a change that triggers a CloudWatch event, the version counter
8158	// is incremented. If you are replicating your Amazon ECS container instance
8159	// state with CloudWatch Events, you can compare the version of a container
8160	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
8161	// Events for the container instance (inside the detail object) to verify that
8162	// the version in your event stream is current.
8163	Version *int64 `locationName:"version" type:"long"`
8164
8165	// The version information for the Amazon ECS container agent and Docker daemon
8166	// running on the container instance.
8167	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
8168}
8169
8170// String returns the string representation
8171func (s ContainerInstance) String() string {
8172	return awsutil.Prettify(s)
8173}
8174
8175// GoString returns the string representation
8176func (s ContainerInstance) GoString() string {
8177	return s.String()
8178}
8179
8180// SetAgentConnected sets the AgentConnected field's value.
8181func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
8182	s.AgentConnected = &v
8183	return s
8184}
8185
8186// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
8187func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
8188	s.AgentUpdateStatus = &v
8189	return s
8190}
8191
8192// SetAttachments sets the Attachments field's value.
8193func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
8194	s.Attachments = v
8195	return s
8196}
8197
8198// SetAttributes sets the Attributes field's value.
8199func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
8200	s.Attributes = v
8201	return s
8202}
8203
8204// SetCapacityProviderName sets the CapacityProviderName field's value.
8205func (s *ContainerInstance) SetCapacityProviderName(v string) *ContainerInstance {
8206	s.CapacityProviderName = &v
8207	return s
8208}
8209
8210// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
8211func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
8212	s.ContainerInstanceArn = &v
8213	return s
8214}
8215
8216// SetEc2InstanceId sets the Ec2InstanceId field's value.
8217func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
8218	s.Ec2InstanceId = &v
8219	return s
8220}
8221
8222// SetPendingTasksCount sets the PendingTasksCount field's value.
8223func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
8224	s.PendingTasksCount = &v
8225	return s
8226}
8227
8228// SetRegisteredAt sets the RegisteredAt field's value.
8229func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
8230	s.RegisteredAt = &v
8231	return s
8232}
8233
8234// SetRegisteredResources sets the RegisteredResources field's value.
8235func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
8236	s.RegisteredResources = v
8237	return s
8238}
8239
8240// SetRemainingResources sets the RemainingResources field's value.
8241func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
8242	s.RemainingResources = v
8243	return s
8244}
8245
8246// SetRunningTasksCount sets the RunningTasksCount field's value.
8247func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
8248	s.RunningTasksCount = &v
8249	return s
8250}
8251
8252// SetStatus sets the Status field's value.
8253func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
8254	s.Status = &v
8255	return s
8256}
8257
8258// SetStatusReason sets the StatusReason field's value.
8259func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
8260	s.StatusReason = &v
8261	return s
8262}
8263
8264// SetTags sets the Tags field's value.
8265func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
8266	s.Tags = v
8267	return s
8268}
8269
8270// SetVersion sets the Version field's value.
8271func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
8272	s.Version = &v
8273	return s
8274}
8275
8276// SetVersionInfo sets the VersionInfo field's value.
8277func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
8278	s.VersionInfo = v
8279	return s
8280}
8281
8282// The overrides that should be sent to a container. An empty container override
8283// can be passed in. An example of an empty container override would be {"containerOverrides":
8284// [ ] }. If a non-empty container override is specified, the name parameter
8285// must be included.
8286type ContainerOverride struct {
8287	_ struct{} `type:"structure"`
8288
8289	// The command to send to the container that overrides the default command from
8290	// the Docker image or the task definition. You must also specify a container
8291	// name.
8292	Command []*string `locationName:"command" type:"list"`
8293
8294	// The number of cpu units reserved for the container, instead of the default
8295	// value from the task definition. You must also specify a container name.
8296	Cpu *int64 `locationName:"cpu" type:"integer"`
8297
8298	// The environment variables to send to the container. You can add new environment
8299	// variables, which are added to the container at launch, or you can override
8300	// the existing environment variables from the Docker image or the task definition.
8301	// You must also specify a container name.
8302	Environment []*KeyValuePair `locationName:"environment" type:"list"`
8303
8304	// A list of files containing the environment variables to pass to a container,
8305	// instead of the value from the container definition.
8306	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
8307
8308	// The hard limit (in MiB) of memory to present to the container, instead of
8309	// the default value from the task definition. If your container attempts to
8310	// exceed the memory specified here, the container is killed. You must also
8311	// specify a container name.
8312	Memory *int64 `locationName:"memory" type:"integer"`
8313
8314	// The soft limit (in MiB) of memory to reserve for the container, instead of
8315	// the default value from the task definition. You must also specify a container
8316	// name.
8317	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
8318
8319	// The name of the container that receives the override. This parameter is required
8320	// if any override is specified.
8321	Name *string `locationName:"name" type:"string"`
8322
8323	// The type and amount of a resource to assign to a container, instead of the
8324	// default value from the task definition. The only supported resource is a
8325	// GPU.
8326	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
8327}
8328
8329// String returns the string representation
8330func (s ContainerOverride) String() string {
8331	return awsutil.Prettify(s)
8332}
8333
8334// GoString returns the string representation
8335func (s ContainerOverride) GoString() string {
8336	return s.String()
8337}
8338
8339// Validate inspects the fields of the type to determine if they are valid.
8340func (s *ContainerOverride) Validate() error {
8341	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
8342	if s.EnvironmentFiles != nil {
8343		for i, v := range s.EnvironmentFiles {
8344			if v == nil {
8345				continue
8346			}
8347			if err := v.Validate(); err != nil {
8348				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
8349			}
8350		}
8351	}
8352	if s.ResourceRequirements != nil {
8353		for i, v := range s.ResourceRequirements {
8354			if v == nil {
8355				continue
8356			}
8357			if err := v.Validate(); err != nil {
8358				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
8359			}
8360		}
8361	}
8362
8363	if invalidParams.Len() > 0 {
8364		return invalidParams
8365	}
8366	return nil
8367}
8368
8369// SetCommand sets the Command field's value.
8370func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
8371	s.Command = v
8372	return s
8373}
8374
8375// SetCpu sets the Cpu field's value.
8376func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
8377	s.Cpu = &v
8378	return s
8379}
8380
8381// SetEnvironment sets the Environment field's value.
8382func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
8383	s.Environment = v
8384	return s
8385}
8386
8387// SetEnvironmentFiles sets the EnvironmentFiles field's value.
8388func (s *ContainerOverride) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerOverride {
8389	s.EnvironmentFiles = v
8390	return s
8391}
8392
8393// SetMemory sets the Memory field's value.
8394func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
8395	s.Memory = &v
8396	return s
8397}
8398
8399// SetMemoryReservation sets the MemoryReservation field's value.
8400func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
8401	s.MemoryReservation = &v
8402	return s
8403}
8404
8405// SetName sets the Name field's value.
8406func (s *ContainerOverride) SetName(v string) *ContainerOverride {
8407	s.Name = &v
8408	return s
8409}
8410
8411// SetResourceRequirements sets the ResourceRequirements field's value.
8412func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
8413	s.ResourceRequirements = v
8414	return s
8415}
8416
8417// An object representing a change in state for a container.
8418type ContainerStateChange struct {
8419	_ struct{} `type:"structure"`
8420
8421	// The name of the container.
8422	ContainerName *string `locationName:"containerName" type:"string"`
8423
8424	// The exit code for the container, if the state change is a result of the container
8425	// exiting.
8426	ExitCode *int64 `locationName:"exitCode" type:"integer"`
8427
8428	// The container image SHA 256 digest.
8429	ImageDigest *string `locationName:"imageDigest" type:"string"`
8430
8431	// Any network bindings associated with the container.
8432	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
8433
8434	// The reason for the state change.
8435	Reason *string `locationName:"reason" type:"string"`
8436
8437	// The ID of the Docker container.
8438	RuntimeId *string `locationName:"runtimeId" type:"string"`
8439
8440	// The status of the container.
8441	Status *string `locationName:"status" type:"string"`
8442}
8443
8444// String returns the string representation
8445func (s ContainerStateChange) String() string {
8446	return awsutil.Prettify(s)
8447}
8448
8449// GoString returns the string representation
8450func (s ContainerStateChange) GoString() string {
8451	return s.String()
8452}
8453
8454// SetContainerName sets the ContainerName field's value.
8455func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
8456	s.ContainerName = &v
8457	return s
8458}
8459
8460// SetExitCode sets the ExitCode field's value.
8461func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
8462	s.ExitCode = &v
8463	return s
8464}
8465
8466// SetImageDigest sets the ImageDigest field's value.
8467func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
8468	s.ImageDigest = &v
8469	return s
8470}
8471
8472// SetNetworkBindings sets the NetworkBindings field's value.
8473func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
8474	s.NetworkBindings = v
8475	return s
8476}
8477
8478// SetReason sets the Reason field's value.
8479func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
8480	s.Reason = &v
8481	return s
8482}
8483
8484// SetRuntimeId sets the RuntimeId field's value.
8485func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
8486	s.RuntimeId = &v
8487	return s
8488}
8489
8490// SetStatus sets the Status field's value.
8491func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
8492	s.Status = &v
8493	return s
8494}
8495
8496type CreateCapacityProviderInput struct {
8497	_ struct{} `type:"structure"`
8498
8499	// The details of the Auto Scaling group for the capacity provider.
8500	//
8501	// AutoScalingGroupProvider is a required field
8502	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
8503
8504	// The name of the capacity provider. Up to 255 characters are allowed, including
8505	// letters (upper and lowercase), numbers, underscores, and hyphens. The name
8506	// cannot be prefixed with "aws", "ecs", or "fargate".
8507	//
8508	// Name is a required field
8509	Name *string `locationName:"name" type:"string" required:"true"`
8510
8511	// The metadata that you apply to the capacity provider to help you categorize
8512	// and organize them. Each tag consists of a key and an optional value, both
8513	// of which you define.
8514	//
8515	// The following basic restrictions apply to tags:
8516	//
8517	//    * Maximum number of tags per resource - 50
8518	//
8519	//    * For each resource, each tag key must be unique, and each tag key can
8520	//    have only one value.
8521	//
8522	//    * Maximum key length - 128 Unicode characters in UTF-8
8523	//
8524	//    * Maximum value length - 256 Unicode characters in UTF-8
8525	//
8526	//    * If your tagging schema is used across multiple services and resources,
8527	//    remember that other services may have restrictions on allowed characters.
8528	//    Generally allowed characters are: letters, numbers, and spaces representable
8529	//    in UTF-8, and the following characters: + - = . _ : / @.
8530	//
8531	//    * Tag keys and values are case-sensitive.
8532	//
8533	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8534	//    as a prefix for either keys or values as it is reserved for AWS use. You
8535	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8536	//    prefix do not count against your tags per resource limit.
8537	Tags []*Tag `locationName:"tags" type:"list"`
8538}
8539
8540// String returns the string representation
8541func (s CreateCapacityProviderInput) String() string {
8542	return awsutil.Prettify(s)
8543}
8544
8545// GoString returns the string representation
8546func (s CreateCapacityProviderInput) GoString() string {
8547	return s.String()
8548}
8549
8550// Validate inspects the fields of the type to determine if they are valid.
8551func (s *CreateCapacityProviderInput) Validate() error {
8552	invalidParams := request.ErrInvalidParams{Context: "CreateCapacityProviderInput"}
8553	if s.AutoScalingGroupProvider == nil {
8554		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
8555	}
8556	if s.Name == nil {
8557		invalidParams.Add(request.NewErrParamRequired("Name"))
8558	}
8559	if s.AutoScalingGroupProvider != nil {
8560		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
8561			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
8562		}
8563	}
8564	if s.Tags != nil {
8565		for i, v := range s.Tags {
8566			if v == nil {
8567				continue
8568			}
8569			if err := v.Validate(); err != nil {
8570				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8571			}
8572		}
8573	}
8574
8575	if invalidParams.Len() > 0 {
8576		return invalidParams
8577	}
8578	return nil
8579}
8580
8581// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
8582func (s *CreateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CreateCapacityProviderInput {
8583	s.AutoScalingGroupProvider = v
8584	return s
8585}
8586
8587// SetName sets the Name field's value.
8588func (s *CreateCapacityProviderInput) SetName(v string) *CreateCapacityProviderInput {
8589	s.Name = &v
8590	return s
8591}
8592
8593// SetTags sets the Tags field's value.
8594func (s *CreateCapacityProviderInput) SetTags(v []*Tag) *CreateCapacityProviderInput {
8595	s.Tags = v
8596	return s
8597}
8598
8599type CreateCapacityProviderOutput struct {
8600	_ struct{} `type:"structure"`
8601
8602	// The full description of the new capacity provider.
8603	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
8604}
8605
8606// String returns the string representation
8607func (s CreateCapacityProviderOutput) String() string {
8608	return awsutil.Prettify(s)
8609}
8610
8611// GoString returns the string representation
8612func (s CreateCapacityProviderOutput) GoString() string {
8613	return s.String()
8614}
8615
8616// SetCapacityProvider sets the CapacityProvider field's value.
8617func (s *CreateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *CreateCapacityProviderOutput {
8618	s.CapacityProvider = v
8619	return s
8620}
8621
8622type CreateClusterInput struct {
8623	_ struct{} `type:"structure"`
8624
8625	// The short name of one or more capacity providers to associate with the cluster.
8626	//
8627	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8628	// provider must already be created and not already associated with another
8629	// cluster. New capacity providers can be created with the CreateCapacityProvider
8630	// API operation.
8631	//
8632	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8633	// capacity providers. The AWS Fargate capacity providers are available to all
8634	// accounts and only need to be associated with a cluster to be used.
8635	//
8636	// The PutClusterCapacityProviders API operation is used to update the list
8637	// of available capacity providers for a cluster after the cluster is created.
8638	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
8639
8640	// The name of your cluster. If you do not specify a name for your cluster,
8641	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
8642	// numbers, and hyphens are allowed.
8643	ClusterName *string `locationName:"clusterName" type:"string"`
8644
8645	// The capacity provider strategy to use by default for the cluster.
8646	//
8647	// When creating a service or running a task on a cluster, if no capacity provider
8648	// or launch type is specified then the default capacity provider strategy for
8649	// the cluster is used.
8650	//
8651	// A capacity provider strategy consists of one or more capacity providers along
8652	// with the base and weight to assign to them. A capacity provider must be associated
8653	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8654	// API is used to associate a capacity provider with a cluster. Only capacity
8655	// providers with an ACTIVE or UPDATING status can be used.
8656	//
8657	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8658	// provider must already be created. New capacity providers can be created with
8659	// the CreateCapacityProvider API operation.
8660	//
8661	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8662	// capacity providers. The AWS Fargate capacity providers are available to all
8663	// accounts and only need to be associated with a cluster to be used.
8664	//
8665	// If a default capacity provider strategy is not defined for a cluster during
8666	// creation, it can be defined later with the PutClusterCapacityProviders API
8667	// operation.
8668	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
8669
8670	// The setting to use when creating a cluster. This parameter is used to enable
8671	// CloudWatch Container Insights for a cluster. If this value is specified,
8672	// it will override the containerInsights value set with PutAccountSetting or
8673	// PutAccountSettingDefault.
8674	Settings []*ClusterSetting `locationName:"settings" type:"list"`
8675
8676	// The metadata that you apply to the cluster to help you categorize and organize
8677	// them. Each tag consists of a key and an optional value, both of which you
8678	// define.
8679	//
8680	// The following basic restrictions apply to tags:
8681	//
8682	//    * Maximum number of tags per resource - 50
8683	//
8684	//    * For each resource, each tag key must be unique, and each tag key can
8685	//    have only one value.
8686	//
8687	//    * Maximum key length - 128 Unicode characters in UTF-8
8688	//
8689	//    * Maximum value length - 256 Unicode characters in UTF-8
8690	//
8691	//    * If your tagging schema is used across multiple services and resources,
8692	//    remember that other services may have restrictions on allowed characters.
8693	//    Generally allowed characters are: letters, numbers, and spaces representable
8694	//    in UTF-8, and the following characters: + - = . _ : / @.
8695	//
8696	//    * Tag keys and values are case-sensitive.
8697	//
8698	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8699	//    as a prefix for either keys or values as it is reserved for AWS use. You
8700	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8701	//    prefix do not count against your tags per resource limit.
8702	Tags []*Tag `locationName:"tags" type:"list"`
8703}
8704
8705// String returns the string representation
8706func (s CreateClusterInput) String() string {
8707	return awsutil.Prettify(s)
8708}
8709
8710// GoString returns the string representation
8711func (s CreateClusterInput) GoString() string {
8712	return s.String()
8713}
8714
8715// Validate inspects the fields of the type to determine if they are valid.
8716func (s *CreateClusterInput) Validate() error {
8717	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
8718	if s.DefaultCapacityProviderStrategy != nil {
8719		for i, v := range s.DefaultCapacityProviderStrategy {
8720			if v == nil {
8721				continue
8722			}
8723			if err := v.Validate(); err != nil {
8724				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
8725			}
8726		}
8727	}
8728	if s.Tags != nil {
8729		for i, v := range s.Tags {
8730			if v == nil {
8731				continue
8732			}
8733			if err := v.Validate(); err != nil {
8734				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8735			}
8736		}
8737	}
8738
8739	if invalidParams.Len() > 0 {
8740		return invalidParams
8741	}
8742	return nil
8743}
8744
8745// SetCapacityProviders sets the CapacityProviders field's value.
8746func (s *CreateClusterInput) SetCapacityProviders(v []*string) *CreateClusterInput {
8747	s.CapacityProviders = v
8748	return s
8749}
8750
8751// SetClusterName sets the ClusterName field's value.
8752func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
8753	s.ClusterName = &v
8754	return s
8755}
8756
8757// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
8758func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput {
8759	s.DefaultCapacityProviderStrategy = v
8760	return s
8761}
8762
8763// SetSettings sets the Settings field's value.
8764func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
8765	s.Settings = v
8766	return s
8767}
8768
8769// SetTags sets the Tags field's value.
8770func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
8771	s.Tags = v
8772	return s
8773}
8774
8775type CreateClusterOutput struct {
8776	_ struct{} `type:"structure"`
8777
8778	// The full description of your new cluster.
8779	Cluster *Cluster `locationName:"cluster" type:"structure"`
8780}
8781
8782// String returns the string representation
8783func (s CreateClusterOutput) String() string {
8784	return awsutil.Prettify(s)
8785}
8786
8787// GoString returns the string representation
8788func (s CreateClusterOutput) GoString() string {
8789	return s.String()
8790}
8791
8792// SetCluster sets the Cluster field's value.
8793func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
8794	s.Cluster = v
8795	return s
8796}
8797
8798type CreateServiceInput struct {
8799	_ struct{} `type:"structure"`
8800
8801	// The capacity provider strategy to use for the service.
8802	//
8803	// A capacity provider strategy consists of one or more capacity providers along
8804	// with the base and weight to assign to them. A capacity provider must be associated
8805	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8806	// API is used to associate a capacity provider with a cluster. Only capacity
8807	// providers with an ACTIVE or UPDATING status can be used.
8808	//
8809	// If a capacityProviderStrategy is specified, the launchType parameter must
8810	// be omitted. If no capacityProviderStrategy or launchType is specified, the
8811	// defaultCapacityProviderStrategy for the cluster is used.
8812	//
8813	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8814	// provider must already be created. New capacity providers can be created with
8815	// the CreateCapacityProvider API operation.
8816	//
8817	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8818	// capacity providers. The AWS Fargate capacity providers are available to all
8819	// accounts and only need to be associated with a cluster to be used.
8820	//
8821	// The PutClusterCapacityProviders API operation is used to update the list
8822	// of available capacity providers for a cluster after the cluster is created.
8823	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
8824
8825	// Unique, case-sensitive identifier that you provide to ensure the idempotency
8826	// of the request. Up to 32 ASCII characters are allowed.
8827	ClientToken *string `locationName:"clientToken" type:"string"`
8828
8829	// The short name or full Amazon Resource Name (ARN) of the cluster on which
8830	// to run your service. If you do not specify a cluster, the default cluster
8831	// is assumed.
8832	Cluster *string `locationName:"cluster" type:"string"`
8833
8834	// Optional deployment parameters that control how many tasks run during the
8835	// deployment and the ordering of stopping and starting tasks.
8836	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
8837
8838	// The deployment controller to use for the service.
8839	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
8840
8841	// The number of instantiations of the specified task definition to place and
8842	// keep running on your cluster.
8843	//
8844	// This is required if schedulingStrategy is REPLICA or is not specified. If
8845	// schedulingStrategy is DAEMON then this is not required.
8846	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
8847
8848	// Specifies whether to enable Amazon ECS managed tags for the tasks within
8849	// the service. For more information, see Tagging Your Amazon ECS Resources
8850	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
8851	// in the Amazon Elastic Container Service Developer Guide.
8852	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
8853
8854	// The period of time, in seconds, that the Amazon ECS service scheduler should
8855	// ignore unhealthy Elastic Load Balancing target health checks after a task
8856	// has first started. This is only used when your service is configured to use
8857	// a load balancer. If your service has a load balancer defined and you don't
8858	// specify a health check grace period value, the default value of 0 is used.
8859	//
8860	// If your service's tasks take a while to start and respond to Elastic Load
8861	// Balancing health checks, you can specify a health check grace period of up
8862	// to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler
8863	// ignores health check status. This grace period can prevent the service scheduler
8864	// from marking tasks as unhealthy and stopping them before they have time to
8865	// come up.
8866	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
8867
8868	// The launch type on which to run your service. For more information, see Amazon
8869	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
8870	// in the Amazon Elastic Container Service Developer Guide.
8871	//
8872	// If a launchType is specified, the capacityProviderStrategy parameter must
8873	// be omitted.
8874	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
8875
8876	// A load balancer object representing the load balancers to use with your service.
8877	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
8878	// in the Amazon Elastic Container Service Developer Guide.
8879	//
8880	// If the service is using the rolling update (ECS) deployment controller and
8881	// using either an Application Load Balancer or Network Load Balancer, you can
8882	// specify multiple target groups to attach to the service. The service-linked
8883	// role is required for services that make use of multiple target groups. For
8884	// more information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8885	// in the Amazon Elastic Container Service Developer Guide.
8886	//
8887	// If the service is using the CODE_DEPLOY deployment controller, the service
8888	// is required to use either an Application Load Balancer or Network Load Balancer.
8889	// When creating an AWS CodeDeploy deployment group, you specify two target
8890	// groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy
8891	// determines which task set in your service has the status PRIMARY and associates
8892	// one target group with it, and then associates the other target group with
8893	// the replacement task set. The load balancer can also have up to two listeners:
8894	// a required listener for production traffic and an optional listener that
8895	// allows you perform validation tests with Lambda functions before routing
8896	// production traffic to it.
8897	//
8898	// After you create a service using the ECS deployment controller, the load
8899	// balancer name or target group ARN, container name, and container port specified
8900	// in the service definition are immutable. If you are using the CODE_DEPLOY
8901	// deployment controller, these values can be changed when updating the service.
8902	//
8903	// For Application Load Balancers and Network Load Balancers, this object must
8904	// contain the load balancer target group ARN, the container name (as it appears
8905	// in a container definition), and the container port to access from the load
8906	// balancer. When a task from this service is placed on a container instance,
8907	// the container instance and port combination is registered as a target in
8908	// the target group specified here.
8909	//
8910	// For Classic Load Balancers, this object must contain the load balancer name,
8911	// the container name (as it appears in a container definition), and the container
8912	// port to access from the load balancer. When a task from this service is placed
8913	// on a container instance, the container instance is registered with the load
8914	// balancer specified here.
8915	//
8916	// Services with tasks that use the awsvpc network mode (for example, those
8917	// with the Fargate launch type) only support Application Load Balancers and
8918	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
8919	// you create any target groups for these services, you must choose ip as the
8920	// target type, not instance, because tasks that use the awsvpc network mode
8921	// are associated with an elastic network interface, not an Amazon EC2 instance.
8922	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
8923
8924	// The network configuration for the service. This parameter is required for
8925	// task definitions that use the awsvpc network mode to receive their own elastic
8926	// network interface, and it is not supported for other network modes. For more
8927	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
8928	// in the Amazon Elastic Container Service Developer Guide.
8929	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
8930
8931	// An array of placement constraint objects to use for tasks in your service.
8932	// You can specify a maximum of 10 constraints per task (this limit includes
8933	// constraints in the task definition and those specified at runtime).
8934	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
8935
8936	// The placement strategy objects to use for tasks in your service. You can
8937	// specify a maximum of five strategy rules per service.
8938	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
8939
8940	// The platform version that your tasks in the service are running on. A platform
8941	// version is specified only for tasks using the Fargate launch type. If one
8942	// isn't specified, the LATEST platform version is used by default. For more
8943	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
8944	// in the Amazon Elastic Container Service Developer Guide.
8945	PlatformVersion *string `locationName:"platformVersion" type:"string"`
8946
8947	// Specifies whether to propagate the tags from the task definition or the service
8948	// to the tasks in the service. If no value is specified, the tags are not propagated.
8949	// Tags can only be propagated to the tasks within the service during service
8950	// creation. To add tags to a task after service creation, use the TagResource
8951	// API action.
8952	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
8953
8954	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
8955	// ECS to make calls to your load balancer on your behalf. This parameter is
8956	// only permitted if you are using a load balancer with your service and your
8957	// task definition does not use the awsvpc network mode. If you specify the
8958	// role parameter, you must also specify a load balancer object with the loadBalancers
8959	// parameter.
8960	//
8961	// If your account has already created the Amazon ECS service-linked role, that
8962	// role is used by default for your service unless you specify a role here.
8963	// The service-linked role is required if your task definition uses the awsvpc
8964	// network mode or if the service is configured to use service discovery, an
8965	// external deployment controller, multiple target groups, or Elastic Inference
8966	// accelerators in which case you should not specify a role here. For more information,
8967	// see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8968	// in the Amazon Elastic Container Service Developer Guide.
8969	//
8970	// If your specified role has a path other than /, then you must either specify
8971	// the full role ARN (this is recommended) or prefix the role name with the
8972	// path. For example, if a role with the name bar has a path of /foo/ then you
8973	// would specify /foo/bar as the role name. For more information, see Friendly
8974	// Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
8975	// in the IAM User Guide.
8976	Role *string `locationName:"role" type:"string"`
8977
8978	// The scheduling strategy to use for the service. For more information, see
8979	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
8980	//
8981	// There are two service scheduler strategies available:
8982	//
8983	//    * REPLICA-The replica scheduling strategy places and maintains the desired
8984	//    number of tasks across your cluster. By default, the service scheduler
8985	//    spreads tasks across Availability Zones. You can use task placement strategies
8986	//    and constraints to customize task placement decisions. This scheduler
8987	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
8988	//    deployment controller types.
8989	//
8990	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
8991	//    active container instance that meets all of the task placement constraints
8992	//    that you specify in your cluster. The service scheduler also evaluates
8993	//    the task placement constraints for running tasks and will stop tasks that
8994	//    do not meet the placement constraints. When you're using this strategy,
8995	//    you don't need to specify a desired number of tasks, a task placement
8996	//    strategy, or use Service Auto Scaling policies. Tasks using the Fargate
8997	//    launch type or the CODE_DEPLOY or EXTERNAL deployment controller types
8998	//    don't support the DAEMON scheduling strategy.
8999	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
9000
9001	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
9002	// and hyphens are allowed. Service names must be unique within a cluster, but
9003	// you can have similarly named services in multiple clusters within a Region
9004	// or across multiple Regions.
9005	//
9006	// ServiceName is a required field
9007	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
9008
9009	// The details of the service discovery registries to assign to this service.
9010	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9011	//
9012	// Service discovery is supported for Fargate tasks if you are using platform
9013	// version v1.1.0 or later. For more information, see AWS Fargate Platform Versions
9014	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
9015	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9016
9017	// The metadata that you apply to the service to help you categorize and organize
9018	// them. Each tag consists of a key and an optional value, both of which you
9019	// define. When a service is deleted, the tags are deleted as well.
9020	//
9021	// The following basic restrictions apply to tags:
9022	//
9023	//    * Maximum number of tags per resource - 50
9024	//
9025	//    * For each resource, each tag key must be unique, and each tag key can
9026	//    have only one value.
9027	//
9028	//    * Maximum key length - 128 Unicode characters in UTF-8
9029	//
9030	//    * Maximum value length - 256 Unicode characters in UTF-8
9031	//
9032	//    * If your tagging schema is used across multiple services and resources,
9033	//    remember that other services may have restrictions on allowed characters.
9034	//    Generally allowed characters are: letters, numbers, and spaces representable
9035	//    in UTF-8, and the following characters: + - = . _ : / @.
9036	//
9037	//    * Tag keys and values are case-sensitive.
9038	//
9039	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9040	//    as a prefix for either keys or values as it is reserved for AWS use. You
9041	//    cannot edit or delete tag keys or values with this prefix. Tags with this
9042	//    prefix do not count against your tags per resource limit.
9043	Tags []*Tag `locationName:"tags" type:"list"`
9044
9045	// The family and revision (family:revision) or full ARN of the task definition
9046	// to run in your service. If a revision is not specified, the latest ACTIVE
9047	// revision is used.
9048	//
9049	// A task definition must be specified if the service is using the ECS deployment
9050	// controller.
9051	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
9052}
9053
9054// String returns the string representation
9055func (s CreateServiceInput) String() string {
9056	return awsutil.Prettify(s)
9057}
9058
9059// GoString returns the string representation
9060func (s CreateServiceInput) GoString() string {
9061	return s.String()
9062}
9063
9064// Validate inspects the fields of the type to determine if they are valid.
9065func (s *CreateServiceInput) Validate() error {
9066	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
9067	if s.ServiceName == nil {
9068		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
9069	}
9070	if s.CapacityProviderStrategy != nil {
9071		for i, v := range s.CapacityProviderStrategy {
9072			if v == nil {
9073				continue
9074			}
9075			if err := v.Validate(); err != nil {
9076				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9077			}
9078		}
9079	}
9080	if s.DeploymentController != nil {
9081		if err := s.DeploymentController.Validate(); err != nil {
9082			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
9083		}
9084	}
9085	if s.NetworkConfiguration != nil {
9086		if err := s.NetworkConfiguration.Validate(); err != nil {
9087			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9088		}
9089	}
9090	if s.Tags != nil {
9091		for i, v := range s.Tags {
9092			if v == nil {
9093				continue
9094			}
9095			if err := v.Validate(); err != nil {
9096				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9097			}
9098		}
9099	}
9100
9101	if invalidParams.Len() > 0 {
9102		return invalidParams
9103	}
9104	return nil
9105}
9106
9107// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9108func (s *CreateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateServiceInput {
9109	s.CapacityProviderStrategy = v
9110	return s
9111}
9112
9113// SetClientToken sets the ClientToken field's value.
9114func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
9115	s.ClientToken = &v
9116	return s
9117}
9118
9119// SetCluster sets the Cluster field's value.
9120func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
9121	s.Cluster = &v
9122	return s
9123}
9124
9125// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
9126func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
9127	s.DeploymentConfiguration = v
9128	return s
9129}
9130
9131// SetDeploymentController sets the DeploymentController field's value.
9132func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
9133	s.DeploymentController = v
9134	return s
9135}
9136
9137// SetDesiredCount sets the DesiredCount field's value.
9138func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
9139	s.DesiredCount = &v
9140	return s
9141}
9142
9143// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
9144func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
9145	s.EnableECSManagedTags = &v
9146	return s
9147}
9148
9149// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
9150func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
9151	s.HealthCheckGracePeriodSeconds = &v
9152	return s
9153}
9154
9155// SetLaunchType sets the LaunchType field's value.
9156func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
9157	s.LaunchType = &v
9158	return s
9159}
9160
9161// SetLoadBalancers sets the LoadBalancers field's value.
9162func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
9163	s.LoadBalancers = v
9164	return s
9165}
9166
9167// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9168func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
9169	s.NetworkConfiguration = v
9170	return s
9171}
9172
9173// SetPlacementConstraints sets the PlacementConstraints field's value.
9174func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
9175	s.PlacementConstraints = v
9176	return s
9177}
9178
9179// SetPlacementStrategy sets the PlacementStrategy field's value.
9180func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
9181	s.PlacementStrategy = v
9182	return s
9183}
9184
9185// SetPlatformVersion sets the PlatformVersion field's value.
9186func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
9187	s.PlatformVersion = &v
9188	return s
9189}
9190
9191// SetPropagateTags sets the PropagateTags field's value.
9192func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
9193	s.PropagateTags = &v
9194	return s
9195}
9196
9197// SetRole sets the Role field's value.
9198func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
9199	s.Role = &v
9200	return s
9201}
9202
9203// SetSchedulingStrategy sets the SchedulingStrategy field's value.
9204func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
9205	s.SchedulingStrategy = &v
9206	return s
9207}
9208
9209// SetServiceName sets the ServiceName field's value.
9210func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
9211	s.ServiceName = &v
9212	return s
9213}
9214
9215// SetServiceRegistries sets the ServiceRegistries field's value.
9216func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
9217	s.ServiceRegistries = v
9218	return s
9219}
9220
9221// SetTags sets the Tags field's value.
9222func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
9223	s.Tags = v
9224	return s
9225}
9226
9227// SetTaskDefinition sets the TaskDefinition field's value.
9228func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
9229	s.TaskDefinition = &v
9230	return s
9231}
9232
9233type CreateServiceOutput struct {
9234	_ struct{} `type:"structure"`
9235
9236	// The full description of your service following the create call.
9237	//
9238	// If a service is using the ECS deployment controller, the deploymentController
9239	// and taskSets parameters will not be returned.
9240	//
9241	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
9242	// taskSets and deployments parameters will be returned, however the deployments
9243	// parameter will be an empty list.
9244	Service *Service `locationName:"service" type:"structure"`
9245}
9246
9247// String returns the string representation
9248func (s CreateServiceOutput) String() string {
9249	return awsutil.Prettify(s)
9250}
9251
9252// GoString returns the string representation
9253func (s CreateServiceOutput) GoString() string {
9254	return s.String()
9255}
9256
9257// SetService sets the Service field's value.
9258func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
9259	s.Service = v
9260	return s
9261}
9262
9263type CreateTaskSetInput struct {
9264	_ struct{} `type:"structure"`
9265
9266	// The capacity provider strategy to use for the task set.
9267	//
9268	// A capacity provider strategy consists of one or more capacity providers along
9269	// with the base and weight to assign to them. A capacity provider must be associated
9270	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
9271	// API is used to associate a capacity provider with a cluster. Only capacity
9272	// providers with an ACTIVE or UPDATING status can be used.
9273	//
9274	// If a capacityProviderStrategy is specified, the launchType parameter must
9275	// be omitted. If no capacityProviderStrategy or launchType is specified, the
9276	// defaultCapacityProviderStrategy for the cluster is used.
9277	//
9278	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
9279	// provider must already be created. New capacity providers can be created with
9280	// the CreateCapacityProvider API operation.
9281	//
9282	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
9283	// capacity providers. The AWS Fargate capacity providers are available to all
9284	// accounts and only need to be associated with a cluster to be used.
9285	//
9286	// The PutClusterCapacityProviders API operation is used to update the list
9287	// of available capacity providers for a cluster after the cluster is created.
9288	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9289
9290	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9291	// of the request. Up to 32 ASCII characters are allowed.
9292	ClientToken *string `locationName:"clientToken" type:"string"`
9293
9294	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9295	// the service to create the task set in.
9296	//
9297	// Cluster is a required field
9298	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9299
9300	// An optional non-unique tag that identifies this task set in external systems.
9301	// If the task set is associated with a service discovery registry, the tasks
9302	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute
9303	// set to the provided value.
9304	ExternalId *string `locationName:"externalId" type:"string"`
9305
9306	// The launch type that new tasks in the task set will use. For more information,
9307	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9308	// in the Amazon Elastic Container Service Developer Guide.
9309	//
9310	// If a launchType is specified, the capacityProviderStrategy parameter must
9311	// be omitted.
9312	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9313
9314	// A load balancer object representing the load balancer to use with the task
9315	// set. The supported load balancer types are either an Application Load Balancer
9316	// or a Network Load Balancer.
9317	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
9318
9319	// An object representing the network configuration for a task or service.
9320	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9321
9322	// The platform version that the tasks in the task set should use. A platform
9323	// version is specified only for tasks using the Fargate launch type. If one
9324	// isn't specified, the LATEST platform version is used by default.
9325	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9326
9327	// A floating-point percentage of the desired number of tasks to place and keep
9328	// running in the task set.
9329	Scale *Scale `locationName:"scale" type:"structure"`
9330
9331	// The short name or full Amazon Resource Name (ARN) of the service to create
9332	// the task set in.
9333	//
9334	// Service is a required field
9335	Service *string `locationName:"service" type:"string" required:"true"`
9336
9337	// The details of the service discovery registries to assign to this task set.
9338	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9339	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9340
9341	// The metadata that you apply to the task set to help you categorize and organize
9342	// them. Each tag consists of a key and an optional value, both of which you
9343	// define. When a service is deleted, the tags are deleted as well.
9344	//
9345	// The following basic restrictions apply to tags:
9346	//
9347	//    * Maximum number of tags per resource - 50
9348	//
9349	//    * For each resource, each tag key must be unique, and each tag key can
9350	//    have only one value.
9351	//
9352	//    * Maximum key length - 128 Unicode characters in UTF-8
9353	//
9354	//    * Maximum value length - 256 Unicode characters in UTF-8
9355	//
9356	//    * If your tagging schema is used across multiple services and resources,
9357	//    remember that other services may have restrictions on allowed characters.
9358	//    Generally allowed characters are: letters, numbers, and spaces representable
9359	//    in UTF-8, and the following characters: + - = . _ : / @.
9360	//
9361	//    * Tag keys and values are case-sensitive.
9362	//
9363	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9364	//    as a prefix for either keys or values as it is reserved for AWS use. You
9365	//    cannot edit or delete tag keys or values with this prefix. Tags with this
9366	//    prefix do not count against your tags per resource limit.
9367	Tags []*Tag `locationName:"tags" type:"list"`
9368
9369	// The task definition for the tasks in the task set to use.
9370	//
9371	// TaskDefinition is a required field
9372	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
9373}
9374
9375// String returns the string representation
9376func (s CreateTaskSetInput) String() string {
9377	return awsutil.Prettify(s)
9378}
9379
9380// GoString returns the string representation
9381func (s CreateTaskSetInput) GoString() string {
9382	return s.String()
9383}
9384
9385// Validate inspects the fields of the type to determine if they are valid.
9386func (s *CreateTaskSetInput) Validate() error {
9387	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
9388	if s.Cluster == nil {
9389		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9390	}
9391	if s.Service == nil {
9392		invalidParams.Add(request.NewErrParamRequired("Service"))
9393	}
9394	if s.TaskDefinition == nil {
9395		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
9396	}
9397	if s.CapacityProviderStrategy != nil {
9398		for i, v := range s.CapacityProviderStrategy {
9399			if v == nil {
9400				continue
9401			}
9402			if err := v.Validate(); err != nil {
9403				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9404			}
9405		}
9406	}
9407	if s.NetworkConfiguration != nil {
9408		if err := s.NetworkConfiguration.Validate(); err != nil {
9409			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9410		}
9411	}
9412	if s.Tags != nil {
9413		for i, v := range s.Tags {
9414			if v == nil {
9415				continue
9416			}
9417			if err := v.Validate(); err != nil {
9418				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9419			}
9420		}
9421	}
9422
9423	if invalidParams.Len() > 0 {
9424		return invalidParams
9425	}
9426	return nil
9427}
9428
9429// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9430func (s *CreateTaskSetInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateTaskSetInput {
9431	s.CapacityProviderStrategy = v
9432	return s
9433}
9434
9435// SetClientToken sets the ClientToken field's value.
9436func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
9437	s.ClientToken = &v
9438	return s
9439}
9440
9441// SetCluster sets the Cluster field's value.
9442func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
9443	s.Cluster = &v
9444	return s
9445}
9446
9447// SetExternalId sets the ExternalId field's value.
9448func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
9449	s.ExternalId = &v
9450	return s
9451}
9452
9453// SetLaunchType sets the LaunchType field's value.
9454func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
9455	s.LaunchType = &v
9456	return s
9457}
9458
9459// SetLoadBalancers sets the LoadBalancers field's value.
9460func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
9461	s.LoadBalancers = v
9462	return s
9463}
9464
9465// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9466func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
9467	s.NetworkConfiguration = v
9468	return s
9469}
9470
9471// SetPlatformVersion sets the PlatformVersion field's value.
9472func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
9473	s.PlatformVersion = &v
9474	return s
9475}
9476
9477// SetScale sets the Scale field's value.
9478func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
9479	s.Scale = v
9480	return s
9481}
9482
9483// SetService sets the Service field's value.
9484func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
9485	s.Service = &v
9486	return s
9487}
9488
9489// SetServiceRegistries sets the ServiceRegistries field's value.
9490func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
9491	s.ServiceRegistries = v
9492	return s
9493}
9494
9495// SetTags sets the Tags field's value.
9496func (s *CreateTaskSetInput) SetTags(v []*Tag) *CreateTaskSetInput {
9497	s.Tags = v
9498	return s
9499}
9500
9501// SetTaskDefinition sets the TaskDefinition field's value.
9502func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
9503	s.TaskDefinition = &v
9504	return s
9505}
9506
9507type CreateTaskSetOutput struct {
9508	_ struct{} `type:"structure"`
9509
9510	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9511	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9512	// desired number of tasks, how many tasks are running, and whether the task
9513	// set serves production traffic.
9514	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9515}
9516
9517// String returns the string representation
9518func (s CreateTaskSetOutput) String() string {
9519	return awsutil.Prettify(s)
9520}
9521
9522// GoString returns the string representation
9523func (s CreateTaskSetOutput) GoString() string {
9524	return s.String()
9525}
9526
9527// SetTaskSet sets the TaskSet field's value.
9528func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
9529	s.TaskSet = v
9530	return s
9531}
9532
9533type DeleteAccountSettingInput struct {
9534	_ struct{} `type:"structure"`
9535
9536	// The resource name for which to disable the account setting. If serviceLongArnFormat
9537	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
9538	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
9539	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
9540	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
9541	// the ENI limit for your Amazon ECS container instances is affected.
9542	//
9543	// Name is a required field
9544	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
9545
9546	// The ARN of the principal, which can be an IAM user, IAM role, or the root
9547	// user. If you specify the root user, it disables the account setting for all
9548	// IAM users, IAM roles, and the root user of the account unless an IAM user
9549	// or role explicitly overrides these settings. If this field is omitted, the
9550	// setting is changed only for the authenticated user.
9551	PrincipalArn *string `locationName:"principalArn" type:"string"`
9552}
9553
9554// String returns the string representation
9555func (s DeleteAccountSettingInput) String() string {
9556	return awsutil.Prettify(s)
9557}
9558
9559// GoString returns the string representation
9560func (s DeleteAccountSettingInput) GoString() string {
9561	return s.String()
9562}
9563
9564// Validate inspects the fields of the type to determine if they are valid.
9565func (s *DeleteAccountSettingInput) Validate() error {
9566	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
9567	if s.Name == nil {
9568		invalidParams.Add(request.NewErrParamRequired("Name"))
9569	}
9570
9571	if invalidParams.Len() > 0 {
9572		return invalidParams
9573	}
9574	return nil
9575}
9576
9577// SetName sets the Name field's value.
9578func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
9579	s.Name = &v
9580	return s
9581}
9582
9583// SetPrincipalArn sets the PrincipalArn field's value.
9584func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
9585	s.PrincipalArn = &v
9586	return s
9587}
9588
9589type DeleteAccountSettingOutput struct {
9590	_ struct{} `type:"structure"`
9591
9592	// The account setting for the specified principal ARN.
9593	Setting *Setting `locationName:"setting" type:"structure"`
9594}
9595
9596// String returns the string representation
9597func (s DeleteAccountSettingOutput) String() string {
9598	return awsutil.Prettify(s)
9599}
9600
9601// GoString returns the string representation
9602func (s DeleteAccountSettingOutput) GoString() string {
9603	return s.String()
9604}
9605
9606// SetSetting sets the Setting field's value.
9607func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
9608	s.Setting = v
9609	return s
9610}
9611
9612type DeleteAttributesInput struct {
9613	_ struct{} `type:"structure"`
9614
9615	// The attributes to delete from your resource. You can specify up to 10 attributes
9616	// per request. For custom attributes, specify the attribute name and target
9617	// ID, but do not specify the value. If you specify the target ID using the
9618	// short form, you must also specify the target type.
9619	//
9620	// Attributes is a required field
9621	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
9622
9623	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
9624	// the resource to delete attributes. If you do not specify a cluster, the default
9625	// cluster is assumed.
9626	Cluster *string `locationName:"cluster" type:"string"`
9627}
9628
9629// String returns the string representation
9630func (s DeleteAttributesInput) String() string {
9631	return awsutil.Prettify(s)
9632}
9633
9634// GoString returns the string representation
9635func (s DeleteAttributesInput) GoString() string {
9636	return s.String()
9637}
9638
9639// Validate inspects the fields of the type to determine if they are valid.
9640func (s *DeleteAttributesInput) Validate() error {
9641	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
9642	if s.Attributes == nil {
9643		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9644	}
9645	if s.Attributes != nil {
9646		for i, v := range s.Attributes {
9647			if v == nil {
9648				continue
9649			}
9650			if err := v.Validate(); err != nil {
9651				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9652			}
9653		}
9654	}
9655
9656	if invalidParams.Len() > 0 {
9657		return invalidParams
9658	}
9659	return nil
9660}
9661
9662// SetAttributes sets the Attributes field's value.
9663func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
9664	s.Attributes = v
9665	return s
9666}
9667
9668// SetCluster sets the Cluster field's value.
9669func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
9670	s.Cluster = &v
9671	return s
9672}
9673
9674type DeleteAttributesOutput struct {
9675	_ struct{} `type:"structure"`
9676
9677	// A list of attribute objects that were successfully deleted from your resource.
9678	Attributes []*Attribute `locationName:"attributes" type:"list"`
9679}
9680
9681// String returns the string representation
9682func (s DeleteAttributesOutput) String() string {
9683	return awsutil.Prettify(s)
9684}
9685
9686// GoString returns the string representation
9687func (s DeleteAttributesOutput) GoString() string {
9688	return s.String()
9689}
9690
9691// SetAttributes sets the Attributes field's value.
9692func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
9693	s.Attributes = v
9694	return s
9695}
9696
9697type DeleteCapacityProviderInput struct {
9698	_ struct{} `type:"structure"`
9699
9700	// The short name or full Amazon Resource Name (ARN) of the capacity provider
9701	// to delete.
9702	//
9703	// CapacityProvider is a required field
9704	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
9705}
9706
9707// String returns the string representation
9708func (s DeleteCapacityProviderInput) String() string {
9709	return awsutil.Prettify(s)
9710}
9711
9712// GoString returns the string representation
9713func (s DeleteCapacityProviderInput) GoString() string {
9714	return s.String()
9715}
9716
9717// Validate inspects the fields of the type to determine if they are valid.
9718func (s *DeleteCapacityProviderInput) Validate() error {
9719	invalidParams := request.ErrInvalidParams{Context: "DeleteCapacityProviderInput"}
9720	if s.CapacityProvider == nil {
9721		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
9722	}
9723
9724	if invalidParams.Len() > 0 {
9725		return invalidParams
9726	}
9727	return nil
9728}
9729
9730// SetCapacityProvider sets the CapacityProvider field's value.
9731func (s *DeleteCapacityProviderInput) SetCapacityProvider(v string) *DeleteCapacityProviderInput {
9732	s.CapacityProvider = &v
9733	return s
9734}
9735
9736type DeleteCapacityProviderOutput struct {
9737	_ struct{} `type:"structure"`
9738
9739	// The details of a capacity provider.
9740	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
9741}
9742
9743// String returns the string representation
9744func (s DeleteCapacityProviderOutput) String() string {
9745	return awsutil.Prettify(s)
9746}
9747
9748// GoString returns the string representation
9749func (s DeleteCapacityProviderOutput) GoString() string {
9750	return s.String()
9751}
9752
9753// SetCapacityProvider sets the CapacityProvider field's value.
9754func (s *DeleteCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *DeleteCapacityProviderOutput {
9755	s.CapacityProvider = v
9756	return s
9757}
9758
9759type DeleteClusterInput struct {
9760	_ struct{} `type:"structure"`
9761
9762	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
9763	//
9764	// Cluster is a required field
9765	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9766}
9767
9768// String returns the string representation
9769func (s DeleteClusterInput) String() string {
9770	return awsutil.Prettify(s)
9771}
9772
9773// GoString returns the string representation
9774func (s DeleteClusterInput) GoString() string {
9775	return s.String()
9776}
9777
9778// Validate inspects the fields of the type to determine if they are valid.
9779func (s *DeleteClusterInput) Validate() error {
9780	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
9781	if s.Cluster == nil {
9782		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9783	}
9784
9785	if invalidParams.Len() > 0 {
9786		return invalidParams
9787	}
9788	return nil
9789}
9790
9791// SetCluster sets the Cluster field's value.
9792func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
9793	s.Cluster = &v
9794	return s
9795}
9796
9797type DeleteClusterOutput struct {
9798	_ struct{} `type:"structure"`
9799
9800	// The full description of the deleted cluster.
9801	Cluster *Cluster `locationName:"cluster" type:"structure"`
9802}
9803
9804// String returns the string representation
9805func (s DeleteClusterOutput) String() string {
9806	return awsutil.Prettify(s)
9807}
9808
9809// GoString returns the string representation
9810func (s DeleteClusterOutput) GoString() string {
9811	return s.String()
9812}
9813
9814// SetCluster sets the Cluster field's value.
9815func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
9816	s.Cluster = v
9817	return s
9818}
9819
9820type DeleteServiceInput struct {
9821	_ struct{} `type:"structure"`
9822
9823	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9824	// the service to delete. If you do not specify a cluster, the default cluster
9825	// is assumed.
9826	Cluster *string `locationName:"cluster" type:"string"`
9827
9828	// If true, allows you to delete a service even if it has not been scaled down
9829	// to zero tasks. It is only necessary to use this if the service is using the
9830	// REPLICA scheduling strategy.
9831	Force *bool `locationName:"force" type:"boolean"`
9832
9833	// The name of the service to delete.
9834	//
9835	// Service is a required field
9836	Service *string `locationName:"service" type:"string" required:"true"`
9837}
9838
9839// String returns the string representation
9840func (s DeleteServiceInput) String() string {
9841	return awsutil.Prettify(s)
9842}
9843
9844// GoString returns the string representation
9845func (s DeleteServiceInput) GoString() string {
9846	return s.String()
9847}
9848
9849// Validate inspects the fields of the type to determine if they are valid.
9850func (s *DeleteServiceInput) Validate() error {
9851	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
9852	if s.Service == nil {
9853		invalidParams.Add(request.NewErrParamRequired("Service"))
9854	}
9855
9856	if invalidParams.Len() > 0 {
9857		return invalidParams
9858	}
9859	return nil
9860}
9861
9862// SetCluster sets the Cluster field's value.
9863func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
9864	s.Cluster = &v
9865	return s
9866}
9867
9868// SetForce sets the Force field's value.
9869func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
9870	s.Force = &v
9871	return s
9872}
9873
9874// SetService sets the Service field's value.
9875func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
9876	s.Service = &v
9877	return s
9878}
9879
9880type DeleteServiceOutput struct {
9881	_ struct{} `type:"structure"`
9882
9883	// The full description of the deleted service.
9884	Service *Service `locationName:"service" type:"structure"`
9885}
9886
9887// String returns the string representation
9888func (s DeleteServiceOutput) String() string {
9889	return awsutil.Prettify(s)
9890}
9891
9892// GoString returns the string representation
9893func (s DeleteServiceOutput) GoString() string {
9894	return s.String()
9895}
9896
9897// SetService sets the Service field's value.
9898func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
9899	s.Service = v
9900	return s
9901}
9902
9903type DeleteTaskSetInput struct {
9904	_ struct{} `type:"structure"`
9905
9906	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9907	// the service that the task set exists in to delete.
9908	//
9909	// Cluster is a required field
9910	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9911
9912	// If true, this allows you to delete a task set even if it hasn't been scaled
9913	// down to zero.
9914	Force *bool `locationName:"force" type:"boolean"`
9915
9916	// The short name or full Amazon Resource Name (ARN) of the service that hosts
9917	// the task set to delete.
9918	//
9919	// Service is a required field
9920	Service *string `locationName:"service" type:"string" required:"true"`
9921
9922	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
9923	//
9924	// TaskSet is a required field
9925	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
9926}
9927
9928// String returns the string representation
9929func (s DeleteTaskSetInput) String() string {
9930	return awsutil.Prettify(s)
9931}
9932
9933// GoString returns the string representation
9934func (s DeleteTaskSetInput) GoString() string {
9935	return s.String()
9936}
9937
9938// Validate inspects the fields of the type to determine if they are valid.
9939func (s *DeleteTaskSetInput) Validate() error {
9940	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
9941	if s.Cluster == nil {
9942		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9943	}
9944	if s.Service == nil {
9945		invalidParams.Add(request.NewErrParamRequired("Service"))
9946	}
9947	if s.TaskSet == nil {
9948		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
9949	}
9950
9951	if invalidParams.Len() > 0 {
9952		return invalidParams
9953	}
9954	return nil
9955}
9956
9957// SetCluster sets the Cluster field's value.
9958func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
9959	s.Cluster = &v
9960	return s
9961}
9962
9963// SetForce sets the Force field's value.
9964func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
9965	s.Force = &v
9966	return s
9967}
9968
9969// SetService sets the Service field's value.
9970func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
9971	s.Service = &v
9972	return s
9973}
9974
9975// SetTaskSet sets the TaskSet field's value.
9976func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
9977	s.TaskSet = &v
9978	return s
9979}
9980
9981type DeleteTaskSetOutput struct {
9982	_ struct{} `type:"structure"`
9983
9984	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9985	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9986	// desired number of tasks, how many tasks are running, and whether the task
9987	// set serves production traffic.
9988	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9989}
9990
9991// String returns the string representation
9992func (s DeleteTaskSetOutput) String() string {
9993	return awsutil.Prettify(s)
9994}
9995
9996// GoString returns the string representation
9997func (s DeleteTaskSetOutput) GoString() string {
9998	return s.String()
9999}
10000
10001// SetTaskSet sets the TaskSet field's value.
10002func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
10003	s.TaskSet = v
10004	return s
10005}
10006
10007// The details of an Amazon ECS service deployment. This is used only when a
10008// service uses the ECS deployment controller type.
10009type Deployment struct {
10010	_ struct{} `type:"structure"`
10011
10012	// The capacity provider strategy that the deployment is using.
10013	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
10014
10015	// The Unix timestamp for when the service deployment was created.
10016	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
10017
10018	// The most recent desired count of tasks that was specified for the service
10019	// to deploy or maintain.
10020	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
10021
10022	// The ID of the deployment.
10023	Id *string `locationName:"id" type:"string"`
10024
10025	// The launch type the tasks in the service are using. For more information,
10026	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
10027	// in the Amazon Elastic Container Service Developer Guide.
10028	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10029
10030	// The VPC subnet and security group configuration for tasks that receive their
10031	// own elastic network interface by using the awsvpc networking mode.
10032	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
10033
10034	// The number of tasks in the deployment that are in the PENDING status.
10035	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
10036
10037	// The platform version on which your tasks in the service are running. A platform
10038	// version is only specified for tasks using the Fargate launch type. If one
10039	// is not specified, the LATEST platform version is used by default. For more
10040	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
10041	// in the Amazon Elastic Container Service Developer Guide.
10042	PlatformVersion *string `locationName:"platformVersion" type:"string"`
10043
10044	// The number of tasks in the deployment that are in the RUNNING status.
10045	RunningCount *int64 `locationName:"runningCount" type:"integer"`
10046
10047	// The status of the deployment. The following describes each state:
10048	//
10049	// PRIMARY
10050	//
10051	// The most recent deployment of a service.
10052	//
10053	// ACTIVE
10054	//
10055	// A service deployment that still has running tasks, but are in the process
10056	// of being replaced with a new PRIMARY deployment.
10057	//
10058	// INACTIVE
10059	//
10060	// A deployment that has been completely replaced.
10061	Status *string `locationName:"status" type:"string"`
10062
10063	// The most recent task definition that was specified for the tasks in the service
10064	// to use.
10065	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
10066
10067	// The Unix timestamp for when the service deployment was last updated.
10068	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
10069}
10070
10071// String returns the string representation
10072func (s Deployment) String() string {
10073	return awsutil.Prettify(s)
10074}
10075
10076// GoString returns the string representation
10077func (s Deployment) GoString() string {
10078	return s.String()
10079}
10080
10081// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
10082func (s *Deployment) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Deployment {
10083	s.CapacityProviderStrategy = v
10084	return s
10085}
10086
10087// SetCreatedAt sets the CreatedAt field's value.
10088func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
10089	s.CreatedAt = &v
10090	return s
10091}
10092
10093// SetDesiredCount sets the DesiredCount field's value.
10094func (s *Deployment) SetDesiredCount(v int64) *Deployment {
10095	s.DesiredCount = &v
10096	return s
10097}
10098
10099// SetId sets the Id field's value.
10100func (s *Deployment) SetId(v string) *Deployment {
10101	s.Id = &v
10102	return s
10103}
10104
10105// SetLaunchType sets the LaunchType field's value.
10106func (s *Deployment) SetLaunchType(v string) *Deployment {
10107	s.LaunchType = &v
10108	return s
10109}
10110
10111// SetNetworkConfiguration sets the NetworkConfiguration field's value.
10112func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
10113	s.NetworkConfiguration = v
10114	return s
10115}
10116
10117// SetPendingCount sets the PendingCount field's value.
10118func (s *Deployment) SetPendingCount(v int64) *Deployment {
10119	s.PendingCount = &v
10120	return s
10121}
10122
10123// SetPlatformVersion sets the PlatformVersion field's value.
10124func (s *Deployment) SetPlatformVersion(v string) *Deployment {
10125	s.PlatformVersion = &v
10126	return s
10127}
10128
10129// SetRunningCount sets the RunningCount field's value.
10130func (s *Deployment) SetRunningCount(v int64) *Deployment {
10131	s.RunningCount = &v
10132	return s
10133}
10134
10135// SetStatus sets the Status field's value.
10136func (s *Deployment) SetStatus(v string) *Deployment {
10137	s.Status = &v
10138	return s
10139}
10140
10141// SetTaskDefinition sets the TaskDefinition field's value.
10142func (s *Deployment) SetTaskDefinition(v string) *Deployment {
10143	s.TaskDefinition = &v
10144	return s
10145}
10146
10147// SetUpdatedAt sets the UpdatedAt field's value.
10148func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
10149	s.UpdatedAt = &v
10150	return s
10151}
10152
10153// Optional deployment parameters that control how many tasks run during a deployment
10154// and the ordering of stopping and starting tasks.
10155type DeploymentConfiguration struct {
10156	_ struct{} `type:"structure"`
10157
10158	// If a service is using the rolling update (ECS) deployment type, the maximum
10159	// percent parameter represents an upper limit on the number of tasks in a service
10160	// that are allowed in the RUNNING or PENDING state during a deployment, as
10161	// a percentage of the desired number of tasks (rounded down to the nearest
10162	// integer), and while any container instances are in the DRAINING state if
10163	// the service contains tasks using the EC2 launch type. This parameter enables
10164	// you to define the deployment batch size. For example, if your service has
10165	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
10166	// may start four new tasks before stopping the four older tasks (provided that
10167	// the cluster resources required to do this are available). The default value
10168	// for maximum percent is 200%.
10169	//
10170	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10171	// types and tasks that use the EC2 launch type, the maximum percent value is
10172	// set to the default value and is used to define the upper limit on the number
10173	// of the tasks in the service that remain in the RUNNING state while the container
10174	// instances are in the DRAINING state. If the tasks in the service use the
10175	// Fargate launch type, the maximum percent value is not used, although it is
10176	// returned when describing your service.
10177	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
10178
10179	// If a service is using the rolling update (ECS) deployment type, the minimum
10180	// healthy percent represents a lower limit on the number of tasks in a service
10181	// that must remain in the RUNNING state during a deployment, as a percentage
10182	// of the desired number of tasks (rounded up to the nearest integer), and while
10183	// any container instances are in the DRAINING state if the service contains
10184	// tasks using the EC2 launch type. This parameter enables you to deploy without
10185	// using additional cluster capacity. For example, if your service has a desired
10186	// number of four tasks and a minimum healthy percent of 50%, the scheduler
10187	// may stop two existing tasks to free up cluster capacity before starting two
10188	// new tasks. Tasks for services that do not use a load balancer are considered
10189	// healthy if they are in the RUNNING state; tasks for services that do use
10190	// a load balancer are considered healthy if they are in the RUNNING state and
10191	// they are reported as healthy by the load balancer. The default value for
10192	// minimum healthy percent is 100%.
10193	//
10194	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
10195	// types and tasks that use the EC2 launch type, the minimum healthy percent
10196	// value is set to the default value and is used to define the lower limit on
10197	// the number of the tasks in the service that remain in the RUNNING state while
10198	// the container instances are in the DRAINING state. If the tasks in the service
10199	// use the Fargate launch type, the minimum healthy percent value is not used,
10200	// although it is returned when describing your service.
10201	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
10202}
10203
10204// String returns the string representation
10205func (s DeploymentConfiguration) String() string {
10206	return awsutil.Prettify(s)
10207}
10208
10209// GoString returns the string representation
10210func (s DeploymentConfiguration) GoString() string {
10211	return s.String()
10212}
10213
10214// SetMaximumPercent sets the MaximumPercent field's value.
10215func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
10216	s.MaximumPercent = &v
10217	return s
10218}
10219
10220// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
10221func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
10222	s.MinimumHealthyPercent = &v
10223	return s
10224}
10225
10226// The deployment controller to use for the service. For more information, see
10227// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
10228// in the Amazon Elastic Container Service Developer Guide.
10229type DeploymentController struct {
10230	_ struct{} `type:"structure"`
10231
10232	// The deployment controller type to use.
10233	//
10234	// There are three deployment controller types available:
10235	//
10236	// ECS
10237	//
10238	// The rolling update (ECS) deployment type involves replacing the current running
10239	// version of the container with the latest version. The number of containers
10240	// Amazon ECS adds or removes from the service during a rolling update is controlled
10241	// by adjusting the minimum and maximum number of healthy tasks allowed during
10242	// a service deployment, as specified in the DeploymentConfiguration.
10243	//
10244	// CODE_DEPLOY
10245	//
10246	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
10247	// model powered by AWS CodeDeploy, which allows you to verify a new deployment
10248	// of a service before sending production traffic to it.
10249	//
10250	// EXTERNAL
10251	//
10252	// The external (EXTERNAL) deployment type enables you to use any third-party
10253	// deployment controller for full control over the deployment process for an
10254	// Amazon ECS service.
10255	//
10256	// Type is a required field
10257	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
10258}
10259
10260// String returns the string representation
10261func (s DeploymentController) String() string {
10262	return awsutil.Prettify(s)
10263}
10264
10265// GoString returns the string representation
10266func (s DeploymentController) GoString() string {
10267	return s.String()
10268}
10269
10270// Validate inspects the fields of the type to determine if they are valid.
10271func (s *DeploymentController) Validate() error {
10272	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
10273	if s.Type == nil {
10274		invalidParams.Add(request.NewErrParamRequired("Type"))
10275	}
10276
10277	if invalidParams.Len() > 0 {
10278		return invalidParams
10279	}
10280	return nil
10281}
10282
10283// SetType sets the Type field's value.
10284func (s *DeploymentController) SetType(v string) *DeploymentController {
10285	s.Type = &v
10286	return s
10287}
10288
10289type DeregisterContainerInstanceInput struct {
10290	_ struct{} `type:"structure"`
10291
10292	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10293	// the container instance to deregister. If you do not specify a cluster, the
10294	// default cluster is assumed.
10295	Cluster *string `locationName:"cluster" type:"string"`
10296
10297	// The container instance ID or full ARN of the container instance to deregister.
10298	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
10299	// container instance, the AWS account ID of the container instance owner, the
10300	// container-instance namespace, and then the container instance ID. For example,
10301	// arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
10302	//
10303	// ContainerInstance is a required field
10304	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
10305
10306	// Forces the deregistration of the container instance. If you have tasks running
10307	// on the container instance when you deregister it with the force option, these
10308	// tasks remain running until you terminate the instance or the tasks stop through
10309	// some other means, but they are orphaned (no longer monitored or accounted
10310	// for by Amazon ECS). If an orphaned task on your container instance is part
10311	// of an Amazon ECS service, then the service scheduler starts another copy
10312	// of that task, on a different container instance if possible.
10313	//
10314	// Any containers in orphaned service tasks that are registered with a Classic
10315	// Load Balancer or an Application Load Balancer target group are deregistered.
10316	// They begin connection draining according to the settings on the load balancer
10317	// or target group.
10318	Force *bool `locationName:"force" type:"boolean"`
10319}
10320
10321// String returns the string representation
10322func (s DeregisterContainerInstanceInput) String() string {
10323	return awsutil.Prettify(s)
10324}
10325
10326// GoString returns the string representation
10327func (s DeregisterContainerInstanceInput) GoString() string {
10328	return s.String()
10329}
10330
10331// Validate inspects the fields of the type to determine if they are valid.
10332func (s *DeregisterContainerInstanceInput) Validate() error {
10333	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
10334	if s.ContainerInstance == nil {
10335		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
10336	}
10337
10338	if invalidParams.Len() > 0 {
10339		return invalidParams
10340	}
10341	return nil
10342}
10343
10344// SetCluster sets the Cluster field's value.
10345func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
10346	s.Cluster = &v
10347	return s
10348}
10349
10350// SetContainerInstance sets the ContainerInstance field's value.
10351func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
10352	s.ContainerInstance = &v
10353	return s
10354}
10355
10356// SetForce sets the Force field's value.
10357func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
10358	s.Force = &v
10359	return s
10360}
10361
10362type DeregisterContainerInstanceOutput struct {
10363	_ struct{} `type:"structure"`
10364
10365	// The container instance that was deregistered.
10366	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
10367}
10368
10369// String returns the string representation
10370func (s DeregisterContainerInstanceOutput) String() string {
10371	return awsutil.Prettify(s)
10372}
10373
10374// GoString returns the string representation
10375func (s DeregisterContainerInstanceOutput) GoString() string {
10376	return s.String()
10377}
10378
10379// SetContainerInstance sets the ContainerInstance field's value.
10380func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
10381	s.ContainerInstance = v
10382	return s
10383}
10384
10385type DeregisterTaskDefinitionInput struct {
10386	_ struct{} `type:"structure"`
10387
10388	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
10389	// of the task definition to deregister. You must specify a revision.
10390	//
10391	// TaskDefinition is a required field
10392	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10393}
10394
10395// String returns the string representation
10396func (s DeregisterTaskDefinitionInput) String() string {
10397	return awsutil.Prettify(s)
10398}
10399
10400// GoString returns the string representation
10401func (s DeregisterTaskDefinitionInput) GoString() string {
10402	return s.String()
10403}
10404
10405// Validate inspects the fields of the type to determine if they are valid.
10406func (s *DeregisterTaskDefinitionInput) Validate() error {
10407	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
10408	if s.TaskDefinition == nil {
10409		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10410	}
10411
10412	if invalidParams.Len() > 0 {
10413		return invalidParams
10414	}
10415	return nil
10416}
10417
10418// SetTaskDefinition sets the TaskDefinition field's value.
10419func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
10420	s.TaskDefinition = &v
10421	return s
10422}
10423
10424type DeregisterTaskDefinitionOutput struct {
10425	_ struct{} `type:"structure"`
10426
10427	// The full description of the deregistered task.
10428	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10429}
10430
10431// String returns the string representation
10432func (s DeregisterTaskDefinitionOutput) String() string {
10433	return awsutil.Prettify(s)
10434}
10435
10436// GoString returns the string representation
10437func (s DeregisterTaskDefinitionOutput) GoString() string {
10438	return s.String()
10439}
10440
10441// SetTaskDefinition sets the TaskDefinition field's value.
10442func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
10443	s.TaskDefinition = v
10444	return s
10445}
10446
10447type DescribeCapacityProvidersInput struct {
10448	_ struct{} `type:"structure"`
10449
10450	// The short name or full Amazon Resource Name (ARN) of one or more capacity
10451	// providers. Up to 100 capacity providers can be described in an action.
10452	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
10453
10454	// Specifies whether or not you want to see the resource tags for the capacity
10455	// provider. If TAGS is specified, the tags are included in the response. If
10456	// this field is omitted, tags are not included in the response.
10457	Include []*string `locationName:"include" type:"list"`
10458
10459	// The maximum number of account setting results returned by DescribeCapacityProviders
10460	// in paginated output. When this parameter is used, DescribeCapacityProviders
10461	// only returns maxResults results in a single page along with a nextToken response
10462	// element. The remaining results of the initial request can be seen by sending
10463	// another DescribeCapacityProviders request with the returned nextToken value.
10464	// This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders
10465	// returns up to 10 results and a nextToken value if applicable.
10466	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10467
10468	// The nextToken value returned from a previous paginated DescribeCapacityProviders
10469	// request where maxResults was used and the results exceeded the value of that
10470	// parameter. Pagination continues from the end of the previous results that
10471	// returned the nextToken value.
10472	//
10473	// This token should be treated as an opaque identifier that is only used to
10474	// retrieve the next items in a list and not for other programmatic purposes.
10475	NextToken *string `locationName:"nextToken" type:"string"`
10476}
10477
10478// String returns the string representation
10479func (s DescribeCapacityProvidersInput) String() string {
10480	return awsutil.Prettify(s)
10481}
10482
10483// GoString returns the string representation
10484func (s DescribeCapacityProvidersInput) GoString() string {
10485	return s.String()
10486}
10487
10488// SetCapacityProviders sets the CapacityProviders field's value.
10489func (s *DescribeCapacityProvidersInput) SetCapacityProviders(v []*string) *DescribeCapacityProvidersInput {
10490	s.CapacityProviders = v
10491	return s
10492}
10493
10494// SetInclude sets the Include field's value.
10495func (s *DescribeCapacityProvidersInput) SetInclude(v []*string) *DescribeCapacityProvidersInput {
10496	s.Include = v
10497	return s
10498}
10499
10500// SetMaxResults sets the MaxResults field's value.
10501func (s *DescribeCapacityProvidersInput) SetMaxResults(v int64) *DescribeCapacityProvidersInput {
10502	s.MaxResults = &v
10503	return s
10504}
10505
10506// SetNextToken sets the NextToken field's value.
10507func (s *DescribeCapacityProvidersInput) SetNextToken(v string) *DescribeCapacityProvidersInput {
10508	s.NextToken = &v
10509	return s
10510}
10511
10512type DescribeCapacityProvidersOutput struct {
10513	_ struct{} `type:"structure"`
10514
10515	// The list of capacity providers.
10516	CapacityProviders []*CapacityProvider `locationName:"capacityProviders" type:"list"`
10517
10518	// Any failures associated with the call.
10519	Failures []*Failure `locationName:"failures" type:"list"`
10520
10521	// The nextToken value to include in a future DescribeCapacityProviders request.
10522	// When the results of a DescribeCapacityProviders request exceed maxResults,
10523	// this value can be used to retrieve the next page of results. This value is
10524	// null when there are no more results to return.
10525	NextToken *string `locationName:"nextToken" type:"string"`
10526}
10527
10528// String returns the string representation
10529func (s DescribeCapacityProvidersOutput) String() string {
10530	return awsutil.Prettify(s)
10531}
10532
10533// GoString returns the string representation
10534func (s DescribeCapacityProvidersOutput) GoString() string {
10535	return s.String()
10536}
10537
10538// SetCapacityProviders sets the CapacityProviders field's value.
10539func (s *DescribeCapacityProvidersOutput) SetCapacityProviders(v []*CapacityProvider) *DescribeCapacityProvidersOutput {
10540	s.CapacityProviders = v
10541	return s
10542}
10543
10544// SetFailures sets the Failures field's value.
10545func (s *DescribeCapacityProvidersOutput) SetFailures(v []*Failure) *DescribeCapacityProvidersOutput {
10546	s.Failures = v
10547	return s
10548}
10549
10550// SetNextToken sets the NextToken field's value.
10551func (s *DescribeCapacityProvidersOutput) SetNextToken(v string) *DescribeCapacityProvidersOutput {
10552	s.NextToken = &v
10553	return s
10554}
10555
10556type DescribeClustersInput struct {
10557	_ struct{} `type:"structure"`
10558
10559	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
10560	// entries. If you do not specify a cluster, the default cluster is assumed.
10561	Clusters []*string `locationName:"clusters" type:"list"`
10562
10563	// Whether to include additional information about your clusters in the response.
10564	// If this field is omitted, the attachments, statistics, and tags are not included.
10565	//
10566	// If ATTACHMENTS is specified, the attachments for the container instances
10567	// or tasks within the cluster are included.
10568	//
10569	// If SETTINGS is specified, the settings for the cluster are included.
10570	//
10571	// If STATISTICS is specified, the following additional information, separated
10572	// by launch type, is included:
10573	//
10574	//    * runningEC2TasksCount
10575	//
10576	//    * runningFargateTasksCount
10577	//
10578	//    * pendingEC2TasksCount
10579	//
10580	//    * pendingFargateTasksCount
10581	//
10582	//    * activeEC2ServiceCount
10583	//
10584	//    * activeFargateServiceCount
10585	//
10586	//    * drainingEC2ServiceCount
10587	//
10588	//    * drainingFargateServiceCount
10589	//
10590	// If TAGS is specified, the metadata tags associated with the cluster are included.
10591	Include []*string `locationName:"include" type:"list"`
10592}
10593
10594// String returns the string representation
10595func (s DescribeClustersInput) String() string {
10596	return awsutil.Prettify(s)
10597}
10598
10599// GoString returns the string representation
10600func (s DescribeClustersInput) GoString() string {
10601	return s.String()
10602}
10603
10604// SetClusters sets the Clusters field's value.
10605func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
10606	s.Clusters = v
10607	return s
10608}
10609
10610// SetInclude sets the Include field's value.
10611func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
10612	s.Include = v
10613	return s
10614}
10615
10616type DescribeClustersOutput struct {
10617	_ struct{} `type:"structure"`
10618
10619	// The list of clusters.
10620	Clusters []*Cluster `locationName:"clusters" type:"list"`
10621
10622	// Any failures associated with the call.
10623	Failures []*Failure `locationName:"failures" type:"list"`
10624}
10625
10626// String returns the string representation
10627func (s DescribeClustersOutput) String() string {
10628	return awsutil.Prettify(s)
10629}
10630
10631// GoString returns the string representation
10632func (s DescribeClustersOutput) GoString() string {
10633	return s.String()
10634}
10635
10636// SetClusters sets the Clusters field's value.
10637func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
10638	s.Clusters = v
10639	return s
10640}
10641
10642// SetFailures sets the Failures field's value.
10643func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
10644	s.Failures = v
10645	return s
10646}
10647
10648type DescribeContainerInstancesInput struct {
10649	_ struct{} `type:"structure"`
10650
10651	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10652	// the container instances to describe. If you do not specify a cluster, the
10653	// default cluster is assumed. This parameter is required if the container instance
10654	// or container instances you are describing were launched in any cluster other
10655	// than the default cluster.
10656	Cluster *string `locationName:"cluster" type:"string"`
10657
10658	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
10659	// entries.
10660	//
10661	// ContainerInstances is a required field
10662	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
10663
10664	// Specifies whether you want to see the resource tags for the container instance.
10665	// If TAGS is specified, the tags are included in the response. If this field
10666	// is omitted, tags are not included in the response.
10667	Include []*string `locationName:"include" type:"list"`
10668}
10669
10670// String returns the string representation
10671func (s DescribeContainerInstancesInput) String() string {
10672	return awsutil.Prettify(s)
10673}
10674
10675// GoString returns the string representation
10676func (s DescribeContainerInstancesInput) GoString() string {
10677	return s.String()
10678}
10679
10680// Validate inspects the fields of the type to determine if they are valid.
10681func (s *DescribeContainerInstancesInput) Validate() error {
10682	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
10683	if s.ContainerInstances == nil {
10684		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
10685	}
10686
10687	if invalidParams.Len() > 0 {
10688		return invalidParams
10689	}
10690	return nil
10691}
10692
10693// SetCluster sets the Cluster field's value.
10694func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
10695	s.Cluster = &v
10696	return s
10697}
10698
10699// SetContainerInstances sets the ContainerInstances field's value.
10700func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
10701	s.ContainerInstances = v
10702	return s
10703}
10704
10705// SetInclude sets the Include field's value.
10706func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
10707	s.Include = v
10708	return s
10709}
10710
10711type DescribeContainerInstancesOutput struct {
10712	_ struct{} `type:"structure"`
10713
10714	// The list of container instances.
10715	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
10716
10717	// Any failures associated with the call.
10718	Failures []*Failure `locationName:"failures" type:"list"`
10719}
10720
10721// String returns the string representation
10722func (s DescribeContainerInstancesOutput) String() string {
10723	return awsutil.Prettify(s)
10724}
10725
10726// GoString returns the string representation
10727func (s DescribeContainerInstancesOutput) GoString() string {
10728	return s.String()
10729}
10730
10731// SetContainerInstances sets the ContainerInstances field's value.
10732func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
10733	s.ContainerInstances = v
10734	return s
10735}
10736
10737// SetFailures sets the Failures field's value.
10738func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
10739	s.Failures = v
10740	return s
10741}
10742
10743type DescribeServicesInput struct {
10744	_ struct{} `type:"structure"`
10745
10746	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
10747	// service to describe. If you do not specify a cluster, the default cluster
10748	// is assumed. This parameter is required if the service or services you are
10749	// describing were launched in any cluster other than the default cluster.
10750	Cluster *string `locationName:"cluster" type:"string"`
10751
10752	// Specifies whether you want to see the resource tags for the service. If TAGS
10753	// is specified, the tags are included in the response. If this field is omitted,
10754	// tags are not included in the response.
10755	Include []*string `locationName:"include" type:"list"`
10756
10757	// A list of services to describe. You may specify up to 10 services to describe
10758	// in a single operation.
10759	//
10760	// Services is a required field
10761	Services []*string `locationName:"services" type:"list" required:"true"`
10762}
10763
10764// String returns the string representation
10765func (s DescribeServicesInput) String() string {
10766	return awsutil.Prettify(s)
10767}
10768
10769// GoString returns the string representation
10770func (s DescribeServicesInput) GoString() string {
10771	return s.String()
10772}
10773
10774// Validate inspects the fields of the type to determine if they are valid.
10775func (s *DescribeServicesInput) Validate() error {
10776	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
10777	if s.Services == nil {
10778		invalidParams.Add(request.NewErrParamRequired("Services"))
10779	}
10780
10781	if invalidParams.Len() > 0 {
10782		return invalidParams
10783	}
10784	return nil
10785}
10786
10787// SetCluster sets the Cluster field's value.
10788func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
10789	s.Cluster = &v
10790	return s
10791}
10792
10793// SetInclude sets the Include field's value.
10794func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
10795	s.Include = v
10796	return s
10797}
10798
10799// SetServices sets the Services field's value.
10800func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
10801	s.Services = v
10802	return s
10803}
10804
10805type DescribeServicesOutput struct {
10806	_ struct{} `type:"structure"`
10807
10808	// Any failures associated with the call.
10809	Failures []*Failure `locationName:"failures" type:"list"`
10810
10811	// The list of services described.
10812	Services []*Service `locationName:"services" type:"list"`
10813}
10814
10815// String returns the string representation
10816func (s DescribeServicesOutput) String() string {
10817	return awsutil.Prettify(s)
10818}
10819
10820// GoString returns the string representation
10821func (s DescribeServicesOutput) GoString() string {
10822	return s.String()
10823}
10824
10825// SetFailures sets the Failures field's value.
10826func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
10827	s.Failures = v
10828	return s
10829}
10830
10831// SetServices sets the Services field's value.
10832func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
10833	s.Services = v
10834	return s
10835}
10836
10837type DescribeTaskDefinitionInput struct {
10838	_ struct{} `type:"structure"`
10839
10840	// Specifies whether to see the resource tags for the task definition. If TAGS
10841	// is specified, the tags are included in the response. If this field is omitted,
10842	// tags are not included in the response.
10843	Include []*string `locationName:"include" type:"list"`
10844
10845	// The family for the latest ACTIVE revision, family and revision (family:revision)
10846	// for a specific revision in the family, or full Amazon Resource Name (ARN)
10847	// of the task definition to describe.
10848	//
10849	// TaskDefinition is a required field
10850	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10851}
10852
10853// String returns the string representation
10854func (s DescribeTaskDefinitionInput) String() string {
10855	return awsutil.Prettify(s)
10856}
10857
10858// GoString returns the string representation
10859func (s DescribeTaskDefinitionInput) GoString() string {
10860	return s.String()
10861}
10862
10863// Validate inspects the fields of the type to determine if they are valid.
10864func (s *DescribeTaskDefinitionInput) Validate() error {
10865	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
10866	if s.TaskDefinition == nil {
10867		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10868	}
10869
10870	if invalidParams.Len() > 0 {
10871		return invalidParams
10872	}
10873	return nil
10874}
10875
10876// SetInclude sets the Include field's value.
10877func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
10878	s.Include = v
10879	return s
10880}
10881
10882// SetTaskDefinition sets the TaskDefinition field's value.
10883func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
10884	s.TaskDefinition = &v
10885	return s
10886}
10887
10888type DescribeTaskDefinitionOutput struct {
10889	_ struct{} `type:"structure"`
10890
10891	// The metadata that is applied to the task definition to help you categorize
10892	// and organize them. Each tag consists of a key and an optional value, both
10893	// of which you define.
10894	//
10895	// The following basic restrictions apply to tags:
10896	//
10897	//    * Maximum number of tags per resource - 50
10898	//
10899	//    * For each resource, each tag key must be unique, and each tag key can
10900	//    have only one value.
10901	//
10902	//    * Maximum key length - 128 Unicode characters in UTF-8
10903	//
10904	//    * Maximum value length - 256 Unicode characters in UTF-8
10905	//
10906	//    * If your tagging schema is used across multiple services and resources,
10907	//    remember that other services may have restrictions on allowed characters.
10908	//    Generally allowed characters are: letters, numbers, and spaces representable
10909	//    in UTF-8, and the following characters: + - = . _ : / @.
10910	//
10911	//    * Tag keys and values are case-sensitive.
10912	//
10913	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
10914	//    as a prefix for either keys or values as it is reserved for AWS use. You
10915	//    cannot edit or delete tag keys or values with this prefix. Tags with this
10916	//    prefix do not count against your tags per resource limit.
10917	Tags []*Tag `locationName:"tags" type:"list"`
10918
10919	// The full task definition description.
10920	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10921}
10922
10923// String returns the string representation
10924func (s DescribeTaskDefinitionOutput) String() string {
10925	return awsutil.Prettify(s)
10926}
10927
10928// GoString returns the string representation
10929func (s DescribeTaskDefinitionOutput) GoString() string {
10930	return s.String()
10931}
10932
10933// SetTags sets the Tags field's value.
10934func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
10935	s.Tags = v
10936	return s
10937}
10938
10939// SetTaskDefinition sets the TaskDefinition field's value.
10940func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
10941	s.TaskDefinition = v
10942	return s
10943}
10944
10945type DescribeTaskSetsInput struct {
10946	_ struct{} `type:"structure"`
10947
10948	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10949	// the service that the task sets exist in.
10950	//
10951	// Cluster is a required field
10952	Cluster *string `locationName:"cluster" type:"string" required:"true"`
10953
10954	// Specifies whether to see the resource tags for the task set. If TAGS is specified,
10955	// the tags are included in the response. If this field is omitted, tags are
10956	// not included in the response.
10957	Include []*string `locationName:"include" type:"list"`
10958
10959	// The short name or full Amazon Resource Name (ARN) of the service that the
10960	// task sets exist in.
10961	//
10962	// Service is a required field
10963	Service *string `locationName:"service" type:"string" required:"true"`
10964
10965	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
10966	TaskSets []*string `locationName:"taskSets" type:"list"`
10967}
10968
10969// String returns the string representation
10970func (s DescribeTaskSetsInput) String() string {
10971	return awsutil.Prettify(s)
10972}
10973
10974// GoString returns the string representation
10975func (s DescribeTaskSetsInput) GoString() string {
10976	return s.String()
10977}
10978
10979// Validate inspects the fields of the type to determine if they are valid.
10980func (s *DescribeTaskSetsInput) Validate() error {
10981	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
10982	if s.Cluster == nil {
10983		invalidParams.Add(request.NewErrParamRequired("Cluster"))
10984	}
10985	if s.Service == nil {
10986		invalidParams.Add(request.NewErrParamRequired("Service"))
10987	}
10988
10989	if invalidParams.Len() > 0 {
10990		return invalidParams
10991	}
10992	return nil
10993}
10994
10995// SetCluster sets the Cluster field's value.
10996func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
10997	s.Cluster = &v
10998	return s
10999}
11000
11001// SetInclude sets the Include field's value.
11002func (s *DescribeTaskSetsInput) SetInclude(v []*string) *DescribeTaskSetsInput {
11003	s.Include = v
11004	return s
11005}
11006
11007// SetService sets the Service field's value.
11008func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
11009	s.Service = &v
11010	return s
11011}
11012
11013// SetTaskSets sets the TaskSets field's value.
11014func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
11015	s.TaskSets = v
11016	return s
11017}
11018
11019type DescribeTaskSetsOutput struct {
11020	_ struct{} `type:"structure"`
11021
11022	// Any failures associated with the call.
11023	Failures []*Failure `locationName:"failures" type:"list"`
11024
11025	// The list of task sets described.
11026	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
11027}
11028
11029// String returns the string representation
11030func (s DescribeTaskSetsOutput) String() string {
11031	return awsutil.Prettify(s)
11032}
11033
11034// GoString returns the string representation
11035func (s DescribeTaskSetsOutput) GoString() string {
11036	return s.String()
11037}
11038
11039// SetFailures sets the Failures field's value.
11040func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
11041	s.Failures = v
11042	return s
11043}
11044
11045// SetTaskSets sets the TaskSets field's value.
11046func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
11047	s.TaskSets = v
11048	return s
11049}
11050
11051type DescribeTasksInput struct {
11052	_ struct{} `type:"structure"`
11053
11054	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11055	// the task or tasks to describe. If you do not specify a cluster, the default
11056	// cluster is assumed. This parameter is required if the task or tasks you are
11057	// describing were launched in any cluster other than the default cluster.
11058	Cluster *string `locationName:"cluster" type:"string"`
11059
11060	// Specifies whether you want to see the resource tags for the task. If TAGS
11061	// is specified, the tags are included in the response. If this field is omitted,
11062	// tags are not included in the response.
11063	Include []*string `locationName:"include" type:"list"`
11064
11065	// A list of up to 100 task IDs or full ARN entries.
11066	//
11067	// Tasks is a required field
11068	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
11069}
11070
11071// String returns the string representation
11072func (s DescribeTasksInput) String() string {
11073	return awsutil.Prettify(s)
11074}
11075
11076// GoString returns the string representation
11077func (s DescribeTasksInput) GoString() string {
11078	return s.String()
11079}
11080
11081// Validate inspects the fields of the type to determine if they are valid.
11082func (s *DescribeTasksInput) Validate() error {
11083	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
11084	if s.Tasks == nil {
11085		invalidParams.Add(request.NewErrParamRequired("Tasks"))
11086	}
11087
11088	if invalidParams.Len() > 0 {
11089		return invalidParams
11090	}
11091	return nil
11092}
11093
11094// SetCluster sets the Cluster field's value.
11095func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
11096	s.Cluster = &v
11097	return s
11098}
11099
11100// SetInclude sets the Include field's value.
11101func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
11102	s.Include = v
11103	return s
11104}
11105
11106// SetTasks sets the Tasks field's value.
11107func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
11108	s.Tasks = v
11109	return s
11110}
11111
11112type DescribeTasksOutput struct {
11113	_ struct{} `type:"structure"`
11114
11115	// Any failures associated with the call.
11116	Failures []*Failure `locationName:"failures" type:"list"`
11117
11118	// The list of tasks.
11119	Tasks []*Task `locationName:"tasks" type:"list"`
11120}
11121
11122// String returns the string representation
11123func (s DescribeTasksOutput) String() string {
11124	return awsutil.Prettify(s)
11125}
11126
11127// GoString returns the string representation
11128func (s DescribeTasksOutput) GoString() string {
11129	return s.String()
11130}
11131
11132// SetFailures sets the Failures field's value.
11133func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
11134	s.Failures = v
11135	return s
11136}
11137
11138// SetTasks sets the Tasks field's value.
11139func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
11140	s.Tasks = v
11141	return s
11142}
11143
11144// An object representing a container instance host device.
11145type Device struct {
11146	_ struct{} `type:"structure"`
11147
11148	// The path inside the container at which to expose the host device.
11149	ContainerPath *string `locationName:"containerPath" type:"string"`
11150
11151	// The path for the device on the host container instance.
11152	//
11153	// HostPath is a required field
11154	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
11155
11156	// The explicit permissions to provide to the container for the device. By default,
11157	// the container has permissions for read, write, and mknod for the device.
11158	Permissions []*string `locationName:"permissions" type:"list"`
11159}
11160
11161// String returns the string representation
11162func (s Device) String() string {
11163	return awsutil.Prettify(s)
11164}
11165
11166// GoString returns the string representation
11167func (s Device) GoString() string {
11168	return s.String()
11169}
11170
11171// Validate inspects the fields of the type to determine if they are valid.
11172func (s *Device) Validate() error {
11173	invalidParams := request.ErrInvalidParams{Context: "Device"}
11174	if s.HostPath == nil {
11175		invalidParams.Add(request.NewErrParamRequired("HostPath"))
11176	}
11177
11178	if invalidParams.Len() > 0 {
11179		return invalidParams
11180	}
11181	return nil
11182}
11183
11184// SetContainerPath sets the ContainerPath field's value.
11185func (s *Device) SetContainerPath(v string) *Device {
11186	s.ContainerPath = &v
11187	return s
11188}
11189
11190// SetHostPath sets the HostPath field's value.
11191func (s *Device) SetHostPath(v string) *Device {
11192	s.HostPath = &v
11193	return s
11194}
11195
11196// SetPermissions sets the Permissions field's value.
11197func (s *Device) SetPermissions(v []*string) *Device {
11198	s.Permissions = v
11199	return s
11200}
11201
11202type DiscoverPollEndpointInput struct {
11203	_ struct{} `type:"structure"`
11204
11205	// The short name or full Amazon Resource Name (ARN) of the cluster to which
11206	// the container instance belongs.
11207	Cluster *string `locationName:"cluster" type:"string"`
11208
11209	// The container instance ID or full ARN of the container instance. The ARN
11210	// contains the arn:aws:ecs namespace, followed by the Region of the container
11211	// instance, the AWS account ID of the container instance owner, the container-instance
11212	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
11213	ContainerInstance *string `locationName:"containerInstance" type:"string"`
11214}
11215
11216// String returns the string representation
11217func (s DiscoverPollEndpointInput) String() string {
11218	return awsutil.Prettify(s)
11219}
11220
11221// GoString returns the string representation
11222func (s DiscoverPollEndpointInput) GoString() string {
11223	return s.String()
11224}
11225
11226// SetCluster sets the Cluster field's value.
11227func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
11228	s.Cluster = &v
11229	return s
11230}
11231
11232// SetContainerInstance sets the ContainerInstance field's value.
11233func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
11234	s.ContainerInstance = &v
11235	return s
11236}
11237
11238type DiscoverPollEndpointOutput struct {
11239	_ struct{} `type:"structure"`
11240
11241	// The endpoint for the Amazon ECS agent to poll.
11242	Endpoint *string `locationName:"endpoint" type:"string"`
11243
11244	// The telemetry endpoint for the Amazon ECS agent.
11245	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
11246}
11247
11248// String returns the string representation
11249func (s DiscoverPollEndpointOutput) String() string {
11250	return awsutil.Prettify(s)
11251}
11252
11253// GoString returns the string representation
11254func (s DiscoverPollEndpointOutput) GoString() string {
11255	return s.String()
11256}
11257
11258// SetEndpoint sets the Endpoint field's value.
11259func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
11260	s.Endpoint = &v
11261	return s
11262}
11263
11264// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
11265func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
11266	s.TelemetryEndpoint = &v
11267	return s
11268}
11269
11270// This parameter is specified when you are using Docker volumes. Docker volumes
11271// are only supported when you are using the EC2 launch type. Windows containers
11272// only support the use of the local driver. To use bind mounts, specify a host
11273// instead.
11274type DockerVolumeConfiguration struct {
11275	_ struct{} `type:"structure"`
11276
11277	// If this value is true, the Docker volume is created if it does not already
11278	// exist.
11279	//
11280	// This field is only used if the scope is shared.
11281	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
11282
11283	// The Docker volume driver to use. The driver value must match the driver name
11284	// provided by Docker because it is used for task placement. If the driver was
11285	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
11286	// driver name from your container instance. If the driver was installed using
11287	// another method, use Docker plugin discovery to retrieve the driver name.
11288	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
11289	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11290	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11291	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11292	Driver *string `locationName:"driver" type:"string"`
11293
11294	// A map of Docker driver-specific options passed through. This parameter maps
11295	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11296	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11297	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11298	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
11299
11300	// Custom metadata to add to your Docker volume. This parameter maps to Labels
11301	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11302	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11303	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11304	Labels map[string]*string `locationName:"labels" type:"map"`
11305
11306	// The scope for the Docker volume that determines its lifecycle. Docker volumes
11307	// that are scoped to a task are automatically provisioned when the task starts
11308	// and destroyed when the task stops. Docker volumes that are scoped as shared
11309	// persist after the task stops.
11310	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
11311}
11312
11313// String returns the string representation
11314func (s DockerVolumeConfiguration) String() string {
11315	return awsutil.Prettify(s)
11316}
11317
11318// GoString returns the string representation
11319func (s DockerVolumeConfiguration) GoString() string {
11320	return s.String()
11321}
11322
11323// SetAutoprovision sets the Autoprovision field's value.
11324func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
11325	s.Autoprovision = &v
11326	return s
11327}
11328
11329// SetDriver sets the Driver field's value.
11330func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
11331	s.Driver = &v
11332	return s
11333}
11334
11335// SetDriverOpts sets the DriverOpts field's value.
11336func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
11337	s.DriverOpts = v
11338	return s
11339}
11340
11341// SetLabels sets the Labels field's value.
11342func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
11343	s.Labels = v
11344	return s
11345}
11346
11347// SetScope sets the Scope field's value.
11348func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
11349	s.Scope = &v
11350	return s
11351}
11352
11353// The authorization configuration details for the Amazon EFS file system.
11354type EFSAuthorizationConfig struct {
11355	_ struct{} `type:"structure"`
11356
11357	// The Amazon EFS access point ID to use. If an access point is specified, the
11358	// root directory value specified in the EFSVolumeConfiguration will be relative
11359	// to the directory set for the access point. If an access point is used, transit
11360	// encryption must be enabled in the EFSVolumeConfiguration. For more information,
11361	// see Working with Amazon EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)
11362	// in the Amazon Elastic File System User Guide.
11363	AccessPointId *string `locationName:"accessPointId" type:"string"`
11364
11365	// Whether or not to use the Amazon ECS task IAM role defined in a task definition
11366	// when mounting the Amazon EFS file system. If enabled, transit encryption
11367	// must be enabled in the EFSVolumeConfiguration. If this parameter is omitted,
11368	// the default value of DISABLED is used. For more information, see Using Amazon
11369	// EFS Access Points (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints)
11370	// in the Amazon Elastic Container Service Developer Guide.
11371	Iam *string `locationName:"iam" type:"string" enum:"EFSAuthorizationConfigIAM"`
11372}
11373
11374// String returns the string representation
11375func (s EFSAuthorizationConfig) String() string {
11376	return awsutil.Prettify(s)
11377}
11378
11379// GoString returns the string representation
11380func (s EFSAuthorizationConfig) GoString() string {
11381	return s.String()
11382}
11383
11384// SetAccessPointId sets the AccessPointId field's value.
11385func (s *EFSAuthorizationConfig) SetAccessPointId(v string) *EFSAuthorizationConfig {
11386	s.AccessPointId = &v
11387	return s
11388}
11389
11390// SetIam sets the Iam field's value.
11391func (s *EFSAuthorizationConfig) SetIam(v string) *EFSAuthorizationConfig {
11392	s.Iam = &v
11393	return s
11394}
11395
11396// This parameter is specified when you are using an Amazon Elastic File System
11397// file system for task storage. For more information, see Amazon EFS Volumes
11398// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html)
11399// in the Amazon Elastic Container Service Developer Guide.
11400type EFSVolumeConfiguration struct {
11401	_ struct{} `type:"structure"`
11402
11403	// The authorization configuration details for the Amazon EFS file system.
11404	AuthorizationConfig *EFSAuthorizationConfig `locationName:"authorizationConfig" type:"structure"`
11405
11406	// The Amazon EFS file system ID to use.
11407	//
11408	// FileSystemId is a required field
11409	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
11410
11411	// The directory within the Amazon EFS file system to mount as the root directory
11412	// inside the host. If this parameter is omitted, the root of the Amazon EFS
11413	// volume will be used. Specifying / will have the same effect as omitting this
11414	// parameter.
11415	RootDirectory *string `locationName:"rootDirectory" type:"string"`
11416
11417	// Whether or not to enable encryption for Amazon EFS data in transit between
11418	// the Amazon ECS host and the Amazon EFS server. Transit encryption must be
11419	// enabled if Amazon EFS IAM authorization is used. If this parameter is omitted,
11420	// the default value of DISABLED is used. For more information, see Encrypting
11421	// Data in Transit (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)
11422	// in the Amazon Elastic File System User Guide.
11423	TransitEncryption *string `locationName:"transitEncryption" type:"string" enum:"EFSTransitEncryption"`
11424
11425	// The port to use when sending encrypted data between the Amazon ECS host and
11426	// the Amazon EFS server. If you do not specify a transit encryption port, it
11427	// will use the port selection strategy that the Amazon EFS mount helper uses.
11428	// For more information, see EFS Mount Helper (https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html)
11429	// in the Amazon Elastic File System User Guide.
11430	TransitEncryptionPort *int64 `locationName:"transitEncryptionPort" type:"integer"`
11431}
11432
11433// String returns the string representation
11434func (s EFSVolumeConfiguration) String() string {
11435	return awsutil.Prettify(s)
11436}
11437
11438// GoString returns the string representation
11439func (s EFSVolumeConfiguration) GoString() string {
11440	return s.String()
11441}
11442
11443// Validate inspects the fields of the type to determine if they are valid.
11444func (s *EFSVolumeConfiguration) Validate() error {
11445	invalidParams := request.ErrInvalidParams{Context: "EFSVolumeConfiguration"}
11446	if s.FileSystemId == nil {
11447		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
11448	}
11449
11450	if invalidParams.Len() > 0 {
11451		return invalidParams
11452	}
11453	return nil
11454}
11455
11456// SetAuthorizationConfig sets the AuthorizationConfig field's value.
11457func (s *EFSVolumeConfiguration) SetAuthorizationConfig(v *EFSAuthorizationConfig) *EFSVolumeConfiguration {
11458	s.AuthorizationConfig = v
11459	return s
11460}
11461
11462// SetFileSystemId sets the FileSystemId field's value.
11463func (s *EFSVolumeConfiguration) SetFileSystemId(v string) *EFSVolumeConfiguration {
11464	s.FileSystemId = &v
11465	return s
11466}
11467
11468// SetRootDirectory sets the RootDirectory field's value.
11469func (s *EFSVolumeConfiguration) SetRootDirectory(v string) *EFSVolumeConfiguration {
11470	s.RootDirectory = &v
11471	return s
11472}
11473
11474// SetTransitEncryption sets the TransitEncryption field's value.
11475func (s *EFSVolumeConfiguration) SetTransitEncryption(v string) *EFSVolumeConfiguration {
11476	s.TransitEncryption = &v
11477	return s
11478}
11479
11480// SetTransitEncryptionPort sets the TransitEncryptionPort field's value.
11481func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeConfiguration {
11482	s.TransitEncryptionPort = &v
11483	return s
11484}
11485
11486// A list of files containing the environment variables to pass to a container.
11487// You can specify up to ten environment files. The file must have a .env file
11488// extension. Each line in an environment file should contain an environment
11489// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
11490// comments and are ignored. For more information on the environment variable
11491// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
11492//
11493// If there are environment variables specified using the environment parameter
11494// in a container definition, they take precedence over the variables contained
11495// within an environment file. If multiple environment files are specified that
11496// contain the same variable, they are processed from the top down. It is recommended
11497// to use unique variable names. For more information, see Specifying Environment
11498// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
11499// in the Amazon Elastic Container Service Developer Guide.
11500//
11501// This field is not valid for containers in tasks using the Fargate launch
11502// type.
11503type EnvironmentFile struct {
11504	_ struct{} `type:"structure"`
11505
11506	// The file type to use. The only supported value is s3.
11507	//
11508	// Type is a required field
11509	Type *string `locationName:"type" type:"string" required:"true" enum:"EnvironmentFileType"`
11510
11511	// The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment
11512	// variable file.
11513	//
11514	// Value is a required field
11515	Value *string `locationName:"value" type:"string" required:"true"`
11516}
11517
11518// String returns the string representation
11519func (s EnvironmentFile) String() string {
11520	return awsutil.Prettify(s)
11521}
11522
11523// GoString returns the string representation
11524func (s EnvironmentFile) GoString() string {
11525	return s.String()
11526}
11527
11528// Validate inspects the fields of the type to determine if they are valid.
11529func (s *EnvironmentFile) Validate() error {
11530	invalidParams := request.ErrInvalidParams{Context: "EnvironmentFile"}
11531	if s.Type == nil {
11532		invalidParams.Add(request.NewErrParamRequired("Type"))
11533	}
11534	if s.Value == nil {
11535		invalidParams.Add(request.NewErrParamRequired("Value"))
11536	}
11537
11538	if invalidParams.Len() > 0 {
11539		return invalidParams
11540	}
11541	return nil
11542}
11543
11544// SetType sets the Type field's value.
11545func (s *EnvironmentFile) SetType(v string) *EnvironmentFile {
11546	s.Type = &v
11547	return s
11548}
11549
11550// SetValue sets the Value field's value.
11551func (s *EnvironmentFile) SetValue(v string) *EnvironmentFile {
11552	s.Value = &v
11553	return s
11554}
11555
11556// A failed resource.
11557type Failure struct {
11558	_ struct{} `type:"structure"`
11559
11560	// The Amazon Resource Name (ARN) of the failed resource.
11561	Arn *string `locationName:"arn" type:"string"`
11562
11563	// The details of the failure.
11564	Detail *string `locationName:"detail" type:"string"`
11565
11566	// The reason for the failure.
11567	Reason *string `locationName:"reason" type:"string"`
11568}
11569
11570// String returns the string representation
11571func (s Failure) String() string {
11572	return awsutil.Prettify(s)
11573}
11574
11575// GoString returns the string representation
11576func (s Failure) GoString() string {
11577	return s.String()
11578}
11579
11580// SetArn sets the Arn field's value.
11581func (s *Failure) SetArn(v string) *Failure {
11582	s.Arn = &v
11583	return s
11584}
11585
11586// SetDetail sets the Detail field's value.
11587func (s *Failure) SetDetail(v string) *Failure {
11588	s.Detail = &v
11589	return s
11590}
11591
11592// SetReason sets the Reason field's value.
11593func (s *Failure) SetReason(v string) *Failure {
11594	s.Reason = &v
11595	return s
11596}
11597
11598// The FireLens configuration for the container. This is used to specify and
11599// configure a log router for container logs. For more information, see Custom
11600// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
11601// in the Amazon Elastic Container Service Developer Guide.
11602type FirelensConfiguration struct {
11603	_ struct{} `type:"structure"`
11604
11605	// The options to use when configuring the log router. This field is optional
11606	// and can be used to specify a custom configuration file or to add additional
11607	// metadata, such as the task, task definition, cluster, and container instance
11608	// details to the log event. If specified, the syntax to use is "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}.
11609	// For more information, see Creating a Task Definition that Uses a FireLens
11610	// Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef)
11611	// in the Amazon Elastic Container Service Developer Guide.
11612	Options map[string]*string `locationName:"options" type:"map"`
11613
11614	// The log router to use. The valid values are fluentd or fluentbit.
11615	//
11616	// Type is a required field
11617	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
11618}
11619
11620// String returns the string representation
11621func (s FirelensConfiguration) String() string {
11622	return awsutil.Prettify(s)
11623}
11624
11625// GoString returns the string representation
11626func (s FirelensConfiguration) GoString() string {
11627	return s.String()
11628}
11629
11630// Validate inspects the fields of the type to determine if they are valid.
11631func (s *FirelensConfiguration) Validate() error {
11632	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
11633	if s.Type == nil {
11634		invalidParams.Add(request.NewErrParamRequired("Type"))
11635	}
11636
11637	if invalidParams.Len() > 0 {
11638		return invalidParams
11639	}
11640	return nil
11641}
11642
11643// SetOptions sets the Options field's value.
11644func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
11645	s.Options = v
11646	return s
11647}
11648
11649// SetType sets the Type field's value.
11650func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
11651	s.Type = &v
11652	return s
11653}
11654
11655// An object representing a container health check. Health check parameters
11656// that are specified in a container definition override any Docker health checks
11657// that exist in the container image (such as those specified in a parent image
11658// or from the image's Dockerfile).
11659//
11660// You can view the health status of both individual containers and a task with
11661// the DescribeTasks API operation or when viewing the task details in the console.
11662//
11663// The following describes the possible healthStatus values for a container:
11664//
11665//    * HEALTHY-The container health check has passed successfully.
11666//
11667//    * UNHEALTHY-The container health check has failed.
11668//
11669//    * UNKNOWN-The container health check is being evaluated or there is no
11670//    container health check defined.
11671//
11672// The following describes the possible healthStatus values for a task. The
11673// container health check status of nonessential containers do not have an effect
11674// on the health status of a task.
11675//
11676//    * HEALTHY-All essential containers within the task have passed their health
11677//    checks.
11678//
11679//    * UNHEALTHY-One or more essential containers have failed their health
11680//    check.
11681//
11682//    * UNKNOWN-The essential containers within the task are still having their
11683//    health checks evaluated or there are no container health checks defined.
11684//
11685// If a task is run manually, and not as part of a service, the task will continue
11686// its lifecycle regardless of its health status. For tasks that are part of
11687// a service, if the task reports as unhealthy then the task will be stopped
11688// and the service scheduler will replace it.
11689//
11690// The following are notes about container health check support:
11691//
11692//    * Container health checks require version 1.17.0 or greater of the Amazon
11693//    ECS container agent. For more information, see Updating the Amazon ECS
11694//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
11695//
11696//    * Container health checks are supported for Fargate tasks if you are using
11697//    platform version 1.1.0 or greater. For more information, see AWS Fargate
11698//    Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
11699//
11700//    * Container health checks are not supported for tasks that are part of
11701//    a service that is configured to use a Classic Load Balancer.
11702type HealthCheck struct {
11703	_ struct{} `type:"structure"`
11704
11705	// A string array representing the command that the container runs to determine
11706	// if it is healthy. The string array must start with CMD to execute the command
11707	// arguments directly, or CMD-SHELL to run the command with the container's
11708	// default shell. For example:
11709	//
11710	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
11711	//
11712	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
11713	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
11714	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
11715	//
11716	// Command is a required field
11717	Command []*string `locationName:"command" type:"list" required:"true"`
11718
11719	// The time period in seconds between each health check execution. You may specify
11720	// between 5 and 300 seconds. The default value is 30 seconds.
11721	Interval *int64 `locationName:"interval" type:"integer"`
11722
11723	// The number of times to retry a failed health check before the container is
11724	// considered unhealthy. You may specify between 1 and 10 retries. The default
11725	// value is 3.
11726	Retries *int64 `locationName:"retries" type:"integer"`
11727
11728	// The optional grace period within which to provide containers time to bootstrap
11729	// before failed health checks count towards the maximum number of retries.
11730	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
11731	// default.
11732	//
11733	// If a health check succeeds within the startPeriod, then the container is
11734	// considered healthy and any subsequent failures count toward the maximum number
11735	// of retries.
11736	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
11737
11738	// The time period in seconds to wait for a health check to succeed before it
11739	// is considered a failure. You may specify between 2 and 60 seconds. The default
11740	// value is 5.
11741	Timeout *int64 `locationName:"timeout" type:"integer"`
11742}
11743
11744// String returns the string representation
11745func (s HealthCheck) String() string {
11746	return awsutil.Prettify(s)
11747}
11748
11749// GoString returns the string representation
11750func (s HealthCheck) GoString() string {
11751	return s.String()
11752}
11753
11754// Validate inspects the fields of the type to determine if they are valid.
11755func (s *HealthCheck) Validate() error {
11756	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
11757	if s.Command == nil {
11758		invalidParams.Add(request.NewErrParamRequired("Command"))
11759	}
11760
11761	if invalidParams.Len() > 0 {
11762		return invalidParams
11763	}
11764	return nil
11765}
11766
11767// SetCommand sets the Command field's value.
11768func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
11769	s.Command = v
11770	return s
11771}
11772
11773// SetInterval sets the Interval field's value.
11774func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
11775	s.Interval = &v
11776	return s
11777}
11778
11779// SetRetries sets the Retries field's value.
11780func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
11781	s.Retries = &v
11782	return s
11783}
11784
11785// SetStartPeriod sets the StartPeriod field's value.
11786func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
11787	s.StartPeriod = &v
11788	return s
11789}
11790
11791// SetTimeout sets the Timeout field's value.
11792func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
11793	s.Timeout = &v
11794	return s
11795}
11796
11797// Hostnames and IP address entries that are added to the /etc/hosts file of
11798// a container via the extraHosts parameter of its ContainerDefinition.
11799type HostEntry struct {
11800	_ struct{} `type:"structure"`
11801
11802	// The hostname to use in the /etc/hosts entry.
11803	//
11804	// Hostname is a required field
11805	Hostname *string `locationName:"hostname" type:"string" required:"true"`
11806
11807	// The IP address to use in the /etc/hosts entry.
11808	//
11809	// IpAddress is a required field
11810	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
11811}
11812
11813// String returns the string representation
11814func (s HostEntry) String() string {
11815	return awsutil.Prettify(s)
11816}
11817
11818// GoString returns the string representation
11819func (s HostEntry) GoString() string {
11820	return s.String()
11821}
11822
11823// Validate inspects the fields of the type to determine if they are valid.
11824func (s *HostEntry) Validate() error {
11825	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
11826	if s.Hostname == nil {
11827		invalidParams.Add(request.NewErrParamRequired("Hostname"))
11828	}
11829	if s.IpAddress == nil {
11830		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
11831	}
11832
11833	if invalidParams.Len() > 0 {
11834		return invalidParams
11835	}
11836	return nil
11837}
11838
11839// SetHostname sets the Hostname field's value.
11840func (s *HostEntry) SetHostname(v string) *HostEntry {
11841	s.Hostname = &v
11842	return s
11843}
11844
11845// SetIpAddress sets the IpAddress field's value.
11846func (s *HostEntry) SetIpAddress(v string) *HostEntry {
11847	s.IpAddress = &v
11848	return s
11849}
11850
11851// Details on a container instance bind mount host volume.
11852type HostVolumeProperties struct {
11853	_ struct{} `type:"structure"`
11854
11855	// When the host parameter is used, specify a sourcePath to declare the path
11856	// on the host container instance that is presented to the container. If this
11857	// parameter is empty, then the Docker daemon has assigned a host path for you.
11858	// If the host parameter contains a sourcePath file location, then the data
11859	// volume persists at the specified location on the host container instance
11860	// until you delete it manually. If the sourcePath value does not exist on the
11861	// host container instance, the Docker daemon creates it. If the location does
11862	// exist, the contents of the source path folder are exported.
11863	//
11864	// If you are using the Fargate launch type, the sourcePath parameter is not
11865	// supported.
11866	SourcePath *string `locationName:"sourcePath" type:"string"`
11867}
11868
11869// String returns the string representation
11870func (s HostVolumeProperties) String() string {
11871	return awsutil.Prettify(s)
11872}
11873
11874// GoString returns the string representation
11875func (s HostVolumeProperties) GoString() string {
11876	return s.String()
11877}
11878
11879// SetSourcePath sets the SourcePath field's value.
11880func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
11881	s.SourcePath = &v
11882	return s
11883}
11884
11885// Details on a Elastic Inference accelerator. For more information, see Working
11886// with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
11887// in the Amazon Elastic Container Service Developer Guide.
11888type InferenceAccelerator struct {
11889	_ struct{} `type:"structure"`
11890
11891	// The Elastic Inference accelerator device name. The deviceName must also be
11892	// referenced in a container definition as a ResourceRequirement.
11893	//
11894	// DeviceName is a required field
11895	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
11896
11897	// The Elastic Inference accelerator type to use.
11898	//
11899	// DeviceType is a required field
11900	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
11901}
11902
11903// String returns the string representation
11904func (s InferenceAccelerator) String() string {
11905	return awsutil.Prettify(s)
11906}
11907
11908// GoString returns the string representation
11909func (s InferenceAccelerator) GoString() string {
11910	return s.String()
11911}
11912
11913// Validate inspects the fields of the type to determine if they are valid.
11914func (s *InferenceAccelerator) Validate() error {
11915	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
11916	if s.DeviceName == nil {
11917		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
11918	}
11919	if s.DeviceType == nil {
11920		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
11921	}
11922
11923	if invalidParams.Len() > 0 {
11924		return invalidParams
11925	}
11926	return nil
11927}
11928
11929// SetDeviceName sets the DeviceName field's value.
11930func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
11931	s.DeviceName = &v
11932	return s
11933}
11934
11935// SetDeviceType sets the DeviceType field's value.
11936func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
11937	s.DeviceType = &v
11938	return s
11939}
11940
11941// Details on an Elastic Inference accelerator task override. This parameter
11942// is used to override the Elastic Inference accelerator specified in the task
11943// definition. For more information, see Working with Amazon Elastic Inference
11944// on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
11945// in the Amazon Elastic Container Service Developer Guide.
11946type InferenceAcceleratorOverride struct {
11947	_ struct{} `type:"structure"`
11948
11949	// The Elastic Inference accelerator device name to override for the task. This
11950	// parameter must match a deviceName specified in the task definition.
11951	DeviceName *string `locationName:"deviceName" type:"string"`
11952
11953	// The Elastic Inference accelerator type to use.
11954	DeviceType *string `locationName:"deviceType" type:"string"`
11955}
11956
11957// String returns the string representation
11958func (s InferenceAcceleratorOverride) String() string {
11959	return awsutil.Prettify(s)
11960}
11961
11962// GoString returns the string representation
11963func (s InferenceAcceleratorOverride) GoString() string {
11964	return s.String()
11965}
11966
11967// SetDeviceName sets the DeviceName field's value.
11968func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
11969	s.DeviceName = &v
11970	return s
11971}
11972
11973// SetDeviceType sets the DeviceType field's value.
11974func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
11975	s.DeviceType = &v
11976	return s
11977}
11978
11979// The specified parameter is invalid. Review the available parameters for the
11980// API request.
11981type InvalidParameterException struct {
11982	_            struct{}                  `type:"structure"`
11983	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11984
11985	Message_ *string `locationName:"message" type:"string"`
11986}
11987
11988// String returns the string representation
11989func (s InvalidParameterException) String() string {
11990	return awsutil.Prettify(s)
11991}
11992
11993// GoString returns the string representation
11994func (s InvalidParameterException) GoString() string {
11995	return s.String()
11996}
11997
11998func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
11999	return &InvalidParameterException{
12000		RespMetadata: v,
12001	}
12002}
12003
12004// Code returns the exception type name.
12005func (s *InvalidParameterException) Code() string {
12006	return "InvalidParameterException"
12007}
12008
12009// Message returns the exception's message.
12010func (s *InvalidParameterException) Message() string {
12011	if s.Message_ != nil {
12012		return *s.Message_
12013	}
12014	return ""
12015}
12016
12017// OrigErr always returns nil, satisfies awserr.Error interface.
12018func (s *InvalidParameterException) OrigErr() error {
12019	return nil
12020}
12021
12022func (s *InvalidParameterException) Error() string {
12023	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12024}
12025
12026// Status code returns the HTTP status code for the request's response error.
12027func (s *InvalidParameterException) StatusCode() int {
12028	return s.RespMetadata.StatusCode
12029}
12030
12031// RequestID returns the service's response RequestID for request.
12032func (s *InvalidParameterException) RequestID() string {
12033	return s.RespMetadata.RequestID
12034}
12035
12036// The Linux capabilities for the container that are added to or dropped from
12037// the default configuration provided by Docker. For more information on the
12038// default capabilities and the non-default available capabilities, see Runtime
12039// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
12040// in the Docker run reference. For more detailed information on these Linux
12041// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
12042// Linux manual page.
12043type KernelCapabilities struct {
12044	_ struct{} `type:"structure"`
12045
12046	// The Linux capabilities for the container that have been added to the default
12047	// configuration provided by Docker. This parameter maps to CapAdd in the Create
12048	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12049	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12050	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/).
12051	//
12052	// The SYS_PTRACE capability is supported for tasks that use the Fargate launch
12053	// type if they are also using platform version 1.4.0. The other capabilities
12054	// are not supported for any platform versions.
12055	//
12056	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
12057	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
12058	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
12059	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
12060	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
12061	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
12062	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
12063	// "WAKE_ALARM"
12064	Add []*string `locationName:"add" type:"list"`
12065
12066	// The Linux capabilities for the container that have been removed from the
12067	// default configuration provided by Docker. This parameter maps to CapDrop
12068	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12069	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12070	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/).
12071	//
12072	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
12073	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
12074	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
12075	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
12076	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
12077	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
12078	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
12079	// "WAKE_ALARM"
12080	Drop []*string `locationName:"drop" type:"list"`
12081}
12082
12083// String returns the string representation
12084func (s KernelCapabilities) String() string {
12085	return awsutil.Prettify(s)
12086}
12087
12088// GoString returns the string representation
12089func (s KernelCapabilities) GoString() string {
12090	return s.String()
12091}
12092
12093// SetAdd sets the Add field's value.
12094func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
12095	s.Add = v
12096	return s
12097}
12098
12099// SetDrop sets the Drop field's value.
12100func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
12101	s.Drop = v
12102	return s
12103}
12104
12105// A key-value pair object.
12106type KeyValuePair struct {
12107	_ struct{} `type:"structure"`
12108
12109	// The name of the key-value pair. For environment variables, this is the name
12110	// of the environment variable.
12111	Name *string `locationName:"name" type:"string"`
12112
12113	// The value of the key-value pair. For environment variables, this is the value
12114	// of the environment variable.
12115	Value *string `locationName:"value" type:"string"`
12116}
12117
12118// String returns the string representation
12119func (s KeyValuePair) String() string {
12120	return awsutil.Prettify(s)
12121}
12122
12123// GoString returns the string representation
12124func (s KeyValuePair) GoString() string {
12125	return s.String()
12126}
12127
12128// SetName sets the Name field's value.
12129func (s *KeyValuePair) SetName(v string) *KeyValuePair {
12130	s.Name = &v
12131	return s
12132}
12133
12134// SetValue sets the Value field's value.
12135func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
12136	s.Value = &v
12137	return s
12138}
12139
12140// The limit for the resource has been exceeded.
12141type LimitExceededException struct {
12142	_            struct{}                  `type:"structure"`
12143	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12144
12145	Message_ *string `locationName:"message" type:"string"`
12146}
12147
12148// String returns the string representation
12149func (s LimitExceededException) String() string {
12150	return awsutil.Prettify(s)
12151}
12152
12153// GoString returns the string representation
12154func (s LimitExceededException) GoString() string {
12155	return s.String()
12156}
12157
12158func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
12159	return &LimitExceededException{
12160		RespMetadata: v,
12161	}
12162}
12163
12164// Code returns the exception type name.
12165func (s *LimitExceededException) Code() string {
12166	return "LimitExceededException"
12167}
12168
12169// Message returns the exception's message.
12170func (s *LimitExceededException) Message() string {
12171	if s.Message_ != nil {
12172		return *s.Message_
12173	}
12174	return ""
12175}
12176
12177// OrigErr always returns nil, satisfies awserr.Error interface.
12178func (s *LimitExceededException) OrigErr() error {
12179	return nil
12180}
12181
12182func (s *LimitExceededException) Error() string {
12183	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12184}
12185
12186// Status code returns the HTTP status code for the request's response error.
12187func (s *LimitExceededException) StatusCode() int {
12188	return s.RespMetadata.StatusCode
12189}
12190
12191// RequestID returns the service's response RequestID for request.
12192func (s *LimitExceededException) RequestID() string {
12193	return s.RespMetadata.RequestID
12194}
12195
12196// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
12197type LinuxParameters struct {
12198	_ struct{} `type:"structure"`
12199
12200	// The Linux capabilities for the container that are added to or dropped from
12201	// the default configuration provided by Docker.
12202	//
12203	// For tasks that use the Fargate launch type, capabilities is supported for
12204	// all platform versions but the add parameter is only supported if using platform
12205	// version 1.4.0 or later.
12206	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
12207
12208	// Any host devices to expose to the container. This parameter maps to Devices
12209	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12210	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12211	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
12212	//
12213	// If you are using tasks that use the Fargate launch type, the devices parameter
12214	// is not supported.
12215	Devices []*Device `locationName:"devices" type:"list"`
12216
12217	// Run an init process inside the container that forwards signals and reaps
12218	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/).
12219	// This parameter requires version 1.25 of the Docker Remote API or greater
12220	// on your container instance. To check the Docker Remote API version on your
12221	// container instance, log in to your container instance and run the following
12222	// command: sudo docker version --format '{{.Server.APIVersion}}'
12223	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
12224
12225	// The total amount of swap memory (in MiB) a container can use. This parameter
12226	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/)
12227	// where the value would be the sum of the container memory plus the maxSwap
12228	// value.
12229	//
12230	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
12231	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
12232	// the container will use the swap configuration for the container instance
12233	// it is running on. A maxSwap value must be set for the swappiness parameter
12234	// to be used.
12235	//
12236	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
12237	// is not supported.
12238	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
12239
12240	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
12241	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/).
12242	//
12243	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
12244	// parameter is not supported.
12245	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
12246
12247	// This allows you to tune a container's memory swappiness behavior. A swappiness
12248	// value of 0 will cause swapping to not happen unless absolutely necessary.
12249	// A swappiness value of 100 will cause pages to be swapped very aggressively.
12250	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
12251	// is not specified, a default value of 60 is used. If a value is not specified
12252	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
12253	// option to docker run (https://docs.docker.com/engine/reference/run/).
12254	//
12255	// If you are using tasks that use the Fargate launch type, the swappiness parameter
12256	// is not supported.
12257	Swappiness *int64 `locationName:"swappiness" type:"integer"`
12258
12259	// The container path, mount options, and size (in MiB) of the tmpfs mount.
12260	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/).
12261	//
12262	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
12263	// is not supported.
12264	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
12265}
12266
12267// String returns the string representation
12268func (s LinuxParameters) String() string {
12269	return awsutil.Prettify(s)
12270}
12271
12272// GoString returns the string representation
12273func (s LinuxParameters) GoString() string {
12274	return s.String()
12275}
12276
12277// Validate inspects the fields of the type to determine if they are valid.
12278func (s *LinuxParameters) Validate() error {
12279	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
12280	if s.Devices != nil {
12281		for i, v := range s.Devices {
12282			if v == nil {
12283				continue
12284			}
12285			if err := v.Validate(); err != nil {
12286				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
12287			}
12288		}
12289	}
12290	if s.Tmpfs != nil {
12291		for i, v := range s.Tmpfs {
12292			if v == nil {
12293				continue
12294			}
12295			if err := v.Validate(); err != nil {
12296				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
12297			}
12298		}
12299	}
12300
12301	if invalidParams.Len() > 0 {
12302		return invalidParams
12303	}
12304	return nil
12305}
12306
12307// SetCapabilities sets the Capabilities field's value.
12308func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
12309	s.Capabilities = v
12310	return s
12311}
12312
12313// SetDevices sets the Devices field's value.
12314func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
12315	s.Devices = v
12316	return s
12317}
12318
12319// SetInitProcessEnabled sets the InitProcessEnabled field's value.
12320func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
12321	s.InitProcessEnabled = &v
12322	return s
12323}
12324
12325// SetMaxSwap sets the MaxSwap field's value.
12326func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
12327	s.MaxSwap = &v
12328	return s
12329}
12330
12331// SetSharedMemorySize sets the SharedMemorySize field's value.
12332func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
12333	s.SharedMemorySize = &v
12334	return s
12335}
12336
12337// SetSwappiness sets the Swappiness field's value.
12338func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
12339	s.Swappiness = &v
12340	return s
12341}
12342
12343// SetTmpfs sets the Tmpfs field's value.
12344func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
12345	s.Tmpfs = v
12346	return s
12347}
12348
12349type ListAccountSettingsInput struct {
12350	_ struct{} `type:"structure"`
12351
12352	// Specifies whether to return the effective settings. If true, the account
12353	// settings for the root user or the default setting for the principalArn are
12354	// returned. If false, the account settings for the principalArn are returned
12355	// if they are set. Otherwise, no account settings are returned.
12356	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
12357
12358	// The maximum number of account setting results returned by ListAccountSettings
12359	// in paginated output. When this parameter is used, ListAccountSettings only
12360	// returns maxResults results in a single page along with a nextToken response
12361	// element. The remaining results of the initial request can be seen by sending
12362	// another ListAccountSettings request with the returned nextToken value. This
12363	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
12364	// returns up to 10 results and a nextToken value if applicable.
12365	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12366
12367	// The name of the account setting you want to list the settings for.
12368	Name *string `locationName:"name" type:"string" enum:"SettingName"`
12369
12370	// The nextToken value returned from a ListAccountSettings request indicating
12371	// that more results are available to fulfill the request and further calls
12372	// will be needed. If maxResults was provided, it is possible the number of
12373	// results to be fewer than maxResults.
12374	//
12375	// This token should be treated as an opaque identifier that is only used to
12376	// retrieve the next items in a list and not for other programmatic purposes.
12377	NextToken *string `locationName:"nextToken" type:"string"`
12378
12379	// The ARN of the principal, which can be an IAM user, IAM role, or the root
12380	// user. If this field is omitted, the account settings are listed only for
12381	// the authenticated user.
12382	PrincipalArn *string `locationName:"principalArn" type:"string"`
12383
12384	// The value of the account settings with which to filter results. You must
12385	// also specify an account setting name to use this parameter.
12386	Value *string `locationName:"value" type:"string"`
12387}
12388
12389// String returns the string representation
12390func (s ListAccountSettingsInput) String() string {
12391	return awsutil.Prettify(s)
12392}
12393
12394// GoString returns the string representation
12395func (s ListAccountSettingsInput) GoString() string {
12396	return s.String()
12397}
12398
12399// SetEffectiveSettings sets the EffectiveSettings field's value.
12400func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
12401	s.EffectiveSettings = &v
12402	return s
12403}
12404
12405// SetMaxResults sets the MaxResults field's value.
12406func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
12407	s.MaxResults = &v
12408	return s
12409}
12410
12411// SetName sets the Name field's value.
12412func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
12413	s.Name = &v
12414	return s
12415}
12416
12417// SetNextToken sets the NextToken field's value.
12418func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
12419	s.NextToken = &v
12420	return s
12421}
12422
12423// SetPrincipalArn sets the PrincipalArn field's value.
12424func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
12425	s.PrincipalArn = &v
12426	return s
12427}
12428
12429// SetValue sets the Value field's value.
12430func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
12431	s.Value = &v
12432	return s
12433}
12434
12435type ListAccountSettingsOutput struct {
12436	_ struct{} `type:"structure"`
12437
12438	// The nextToken value to include in a future ListAccountSettings request. When
12439	// the results of a ListAccountSettings request exceed maxResults, this value
12440	// can be used to retrieve the next page of results. This value is null when
12441	// there are no more results to return.
12442	NextToken *string `locationName:"nextToken" type:"string"`
12443
12444	// The account settings for the resource.
12445	Settings []*Setting `locationName:"settings" type:"list"`
12446}
12447
12448// String returns the string representation
12449func (s ListAccountSettingsOutput) String() string {
12450	return awsutil.Prettify(s)
12451}
12452
12453// GoString returns the string representation
12454func (s ListAccountSettingsOutput) GoString() string {
12455	return s.String()
12456}
12457
12458// SetNextToken sets the NextToken field's value.
12459func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
12460	s.NextToken = &v
12461	return s
12462}
12463
12464// SetSettings sets the Settings field's value.
12465func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
12466	s.Settings = v
12467	return s
12468}
12469
12470type ListAttributesInput struct {
12471	_ struct{} `type:"structure"`
12472
12473	// The name of the attribute with which to filter the results.
12474	AttributeName *string `locationName:"attributeName" type:"string"`
12475
12476	// The value of the attribute with which to filter results. You must also specify
12477	// an attribute name to use this parameter.
12478	AttributeValue *string `locationName:"attributeValue" type:"string"`
12479
12480	// The short name or full Amazon Resource Name (ARN) of the cluster to list
12481	// attributes. If you do not specify a cluster, the default cluster is assumed.
12482	Cluster *string `locationName:"cluster" type:"string"`
12483
12484	// The maximum number of cluster results returned by ListAttributes in paginated
12485	// output. When this parameter is used, ListAttributes only returns maxResults
12486	// results in a single page along with a nextToken response element. The remaining
12487	// results of the initial request can be seen by sending another ListAttributes
12488	// request with the returned nextToken value. This value can be between 1 and
12489	// 100. If this parameter is not used, then ListAttributes returns up to 100
12490	// results and a nextToken value if applicable.
12491	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12492
12493	// The nextToken value returned from a ListAttributes request indicating that
12494	// more results are available to fulfill the request and further calls will
12495	// be needed. If maxResults was provided, it is possible the number of results
12496	// to be fewer than maxResults.
12497	//
12498	// This token should be treated as an opaque identifier that is only used to
12499	// retrieve the next items in a list and not for other programmatic purposes.
12500	NextToken *string `locationName:"nextToken" type:"string"`
12501
12502	// The type of the target with which to list attributes.
12503	//
12504	// TargetType is a required field
12505	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
12506}
12507
12508// String returns the string representation
12509func (s ListAttributesInput) String() string {
12510	return awsutil.Prettify(s)
12511}
12512
12513// GoString returns the string representation
12514func (s ListAttributesInput) GoString() string {
12515	return s.String()
12516}
12517
12518// Validate inspects the fields of the type to determine if they are valid.
12519func (s *ListAttributesInput) Validate() error {
12520	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
12521	if s.TargetType == nil {
12522		invalidParams.Add(request.NewErrParamRequired("TargetType"))
12523	}
12524
12525	if invalidParams.Len() > 0 {
12526		return invalidParams
12527	}
12528	return nil
12529}
12530
12531// SetAttributeName sets the AttributeName field's value.
12532func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
12533	s.AttributeName = &v
12534	return s
12535}
12536
12537// SetAttributeValue sets the AttributeValue field's value.
12538func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
12539	s.AttributeValue = &v
12540	return s
12541}
12542
12543// SetCluster sets the Cluster field's value.
12544func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
12545	s.Cluster = &v
12546	return s
12547}
12548
12549// SetMaxResults sets the MaxResults field's value.
12550func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
12551	s.MaxResults = &v
12552	return s
12553}
12554
12555// SetNextToken sets the NextToken field's value.
12556func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
12557	s.NextToken = &v
12558	return s
12559}
12560
12561// SetTargetType sets the TargetType field's value.
12562func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
12563	s.TargetType = &v
12564	return s
12565}
12566
12567type ListAttributesOutput struct {
12568	_ struct{} `type:"structure"`
12569
12570	// A list of attribute objects that meet the criteria of the request.
12571	Attributes []*Attribute `locationName:"attributes" type:"list"`
12572
12573	// The nextToken value to include in a future ListAttributes request. When the
12574	// results of a ListAttributes request exceed maxResults, this value can be
12575	// used to retrieve the next page of results. This value is null when there
12576	// are no more results to return.
12577	NextToken *string `locationName:"nextToken" type:"string"`
12578}
12579
12580// String returns the string representation
12581func (s ListAttributesOutput) String() string {
12582	return awsutil.Prettify(s)
12583}
12584
12585// GoString returns the string representation
12586func (s ListAttributesOutput) GoString() string {
12587	return s.String()
12588}
12589
12590// SetAttributes sets the Attributes field's value.
12591func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
12592	s.Attributes = v
12593	return s
12594}
12595
12596// SetNextToken sets the NextToken field's value.
12597func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
12598	s.NextToken = &v
12599	return s
12600}
12601
12602type ListClustersInput struct {
12603	_ struct{} `type:"structure"`
12604
12605	// The maximum number of cluster results returned by ListClusters in paginated
12606	// output. When this parameter is used, ListClusters only returns maxResults
12607	// results in a single page along with a nextToken response element. The remaining
12608	// results of the initial request can be seen by sending another ListClusters
12609	// request with the returned nextToken value. This value can be between 1 and
12610	// 100. If this parameter is not used, then ListClusters returns up to 100 results
12611	// and a nextToken value if applicable.
12612	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12613
12614	// The nextToken value returned from a ListClusters request indicating that
12615	// more results are available to fulfill the request and further calls will
12616	// be needed. If maxResults was provided, it is possible the number of results
12617	// to be fewer than maxResults.
12618	//
12619	// This token should be treated as an opaque identifier that is only used to
12620	// retrieve the next items in a list and not for other programmatic purposes.
12621	NextToken *string `locationName:"nextToken" type:"string"`
12622}
12623
12624// String returns the string representation
12625func (s ListClustersInput) String() string {
12626	return awsutil.Prettify(s)
12627}
12628
12629// GoString returns the string representation
12630func (s ListClustersInput) GoString() string {
12631	return s.String()
12632}
12633
12634// SetMaxResults sets the MaxResults field's value.
12635func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
12636	s.MaxResults = &v
12637	return s
12638}
12639
12640// SetNextToken sets the NextToken field's value.
12641func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
12642	s.NextToken = &v
12643	return s
12644}
12645
12646type ListClustersOutput struct {
12647	_ struct{} `type:"structure"`
12648
12649	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
12650	// with your account.
12651	ClusterArns []*string `locationName:"clusterArns" type:"list"`
12652
12653	// The nextToken value to include in a future ListClusters request. When the
12654	// results of a ListClusters request exceed maxResults, this value can be used
12655	// to retrieve the next page of results. This value is null when there are no
12656	// more results to return.
12657	NextToken *string `locationName:"nextToken" type:"string"`
12658}
12659
12660// String returns the string representation
12661func (s ListClustersOutput) String() string {
12662	return awsutil.Prettify(s)
12663}
12664
12665// GoString returns the string representation
12666func (s ListClustersOutput) GoString() string {
12667	return s.String()
12668}
12669
12670// SetClusterArns sets the ClusterArns field's value.
12671func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
12672	s.ClusterArns = v
12673	return s
12674}
12675
12676// SetNextToken sets the NextToken field's value.
12677func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
12678	s.NextToken = &v
12679	return s
12680}
12681
12682type ListContainerInstancesInput struct {
12683	_ struct{} `type:"structure"`
12684
12685	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
12686	// the container instances to list. If you do not specify a cluster, the default
12687	// cluster is assumed.
12688	Cluster *string `locationName:"cluster" type:"string"`
12689
12690	// You can filter the results of a ListContainerInstances operation with cluster
12691	// query language statements. For more information, see Cluster Query Language
12692	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
12693	// in the Amazon Elastic Container Service Developer Guide.
12694	Filter *string `locationName:"filter" type:"string"`
12695
12696	// The maximum number of container instance results returned by ListContainerInstances
12697	// in paginated output. When this parameter is used, ListContainerInstances
12698	// only returns maxResults results in a single page along with a nextToken response
12699	// element. The remaining results of the initial request can be seen by sending
12700	// another ListContainerInstances request with the returned nextToken value.
12701	// This value can be between 1 and 100. If this parameter is not used, then
12702	// ListContainerInstances returns up to 100 results and a nextToken value if
12703	// applicable.
12704	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12705
12706	// The nextToken value returned from a ListContainerInstances request indicating
12707	// that more results are available to fulfill the request and further calls
12708	// will be needed. If maxResults was provided, it is possible the number of
12709	// results to be fewer than maxResults.
12710	//
12711	// This token should be treated as an opaque identifier that is only used to
12712	// retrieve the next items in a list and not for other programmatic purposes.
12713	NextToken *string `locationName:"nextToken" type:"string"`
12714
12715	// Filters the container instances by status. For example, if you specify the
12716	// DRAINING status, the results include only container instances that have been
12717	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
12718	// this parameter, the default is to include container instances set to all
12719	// states other than INACTIVE.
12720	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
12721}
12722
12723// String returns the string representation
12724func (s ListContainerInstancesInput) String() string {
12725	return awsutil.Prettify(s)
12726}
12727
12728// GoString returns the string representation
12729func (s ListContainerInstancesInput) GoString() string {
12730	return s.String()
12731}
12732
12733// SetCluster sets the Cluster field's value.
12734func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
12735	s.Cluster = &v
12736	return s
12737}
12738
12739// SetFilter sets the Filter field's value.
12740func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
12741	s.Filter = &v
12742	return s
12743}
12744
12745// SetMaxResults sets the MaxResults field's value.
12746func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
12747	s.MaxResults = &v
12748	return s
12749}
12750
12751// SetNextToken sets the NextToken field's value.
12752func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
12753	s.NextToken = &v
12754	return s
12755}
12756
12757// SetStatus sets the Status field's value.
12758func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
12759	s.Status = &v
12760	return s
12761}
12762
12763type ListContainerInstancesOutput struct {
12764	_ struct{} `type:"structure"`
12765
12766	// The list of container instances with full ARN entries for each container
12767	// instance associated with the specified cluster.
12768	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
12769
12770	// The nextToken value to include in a future ListContainerInstances request.
12771	// When the results of a ListContainerInstances request exceed maxResults, this
12772	// value can be used to retrieve the next page of results. This value is null
12773	// when there are no more results to return.
12774	NextToken *string `locationName:"nextToken" type:"string"`
12775}
12776
12777// String returns the string representation
12778func (s ListContainerInstancesOutput) String() string {
12779	return awsutil.Prettify(s)
12780}
12781
12782// GoString returns the string representation
12783func (s ListContainerInstancesOutput) GoString() string {
12784	return s.String()
12785}
12786
12787// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
12788func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
12789	s.ContainerInstanceArns = v
12790	return s
12791}
12792
12793// SetNextToken sets the NextToken field's value.
12794func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
12795	s.NextToken = &v
12796	return s
12797}
12798
12799type ListServicesInput struct {
12800	_ struct{} `type:"structure"`
12801
12802	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
12803	// the services to list. If you do not specify a cluster, the default cluster
12804	// is assumed.
12805	Cluster *string `locationName:"cluster" type:"string"`
12806
12807	// The launch type for the services to list.
12808	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
12809
12810	// The maximum number of service results returned by ListServices in paginated
12811	// output. When this parameter is used, ListServices only returns maxResults
12812	// results in a single page along with a nextToken response element. The remaining
12813	// results of the initial request can be seen by sending another ListServices
12814	// request with the returned nextToken value. This value can be between 1 and
12815	// 100. If this parameter is not used, then ListServices returns up to 10 results
12816	// and a nextToken value if applicable.
12817	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12818
12819	// The nextToken value returned from a ListServices request indicating that
12820	// more results are available to fulfill the request and further calls will
12821	// be needed. If maxResults was provided, it is possible the number of results
12822	// to be fewer than maxResults.
12823	//
12824	// This token should be treated as an opaque identifier that is only used to
12825	// retrieve the next items in a list and not for other programmatic purposes.
12826	NextToken *string `locationName:"nextToken" type:"string"`
12827
12828	// The scheduling strategy for services to list.
12829	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
12830}
12831
12832// String returns the string representation
12833func (s ListServicesInput) String() string {
12834	return awsutil.Prettify(s)
12835}
12836
12837// GoString returns the string representation
12838func (s ListServicesInput) GoString() string {
12839	return s.String()
12840}
12841
12842// SetCluster sets the Cluster field's value.
12843func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
12844	s.Cluster = &v
12845	return s
12846}
12847
12848// SetLaunchType sets the LaunchType field's value.
12849func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
12850	s.LaunchType = &v
12851	return s
12852}
12853
12854// SetMaxResults sets the MaxResults field's value.
12855func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
12856	s.MaxResults = &v
12857	return s
12858}
12859
12860// SetNextToken sets the NextToken field's value.
12861func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
12862	s.NextToken = &v
12863	return s
12864}
12865
12866// SetSchedulingStrategy sets the SchedulingStrategy field's value.
12867func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
12868	s.SchedulingStrategy = &v
12869	return s
12870}
12871
12872type ListServicesOutput struct {
12873	_ struct{} `type:"structure"`
12874
12875	// The nextToken value to include in a future ListServices request. When the
12876	// results of a ListServices request exceed maxResults, this value can be used
12877	// to retrieve the next page of results. This value is null when there are no
12878	// more results to return.
12879	NextToken *string `locationName:"nextToken" type:"string"`
12880
12881	// The list of full ARN entries for each service associated with the specified
12882	// cluster.
12883	ServiceArns []*string `locationName:"serviceArns" type:"list"`
12884}
12885
12886// String returns the string representation
12887func (s ListServicesOutput) String() string {
12888	return awsutil.Prettify(s)
12889}
12890
12891// GoString returns the string representation
12892func (s ListServicesOutput) GoString() string {
12893	return s.String()
12894}
12895
12896// SetNextToken sets the NextToken field's value.
12897func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
12898	s.NextToken = &v
12899	return s
12900}
12901
12902// SetServiceArns sets the ServiceArns field's value.
12903func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
12904	s.ServiceArns = v
12905	return s
12906}
12907
12908type ListTagsForResourceInput struct {
12909	_ struct{} `type:"structure"`
12910
12911	// The Amazon Resource Name (ARN) that identifies the resource for which to
12912	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
12913	// task definitions, clusters, and container instances.
12914	//
12915	// ResourceArn is a required field
12916	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
12917}
12918
12919// String returns the string representation
12920func (s ListTagsForResourceInput) String() string {
12921	return awsutil.Prettify(s)
12922}
12923
12924// GoString returns the string representation
12925func (s ListTagsForResourceInput) GoString() string {
12926	return s.String()
12927}
12928
12929// Validate inspects the fields of the type to determine if they are valid.
12930func (s *ListTagsForResourceInput) Validate() error {
12931	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
12932	if s.ResourceArn == nil {
12933		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12934	}
12935
12936	if invalidParams.Len() > 0 {
12937		return invalidParams
12938	}
12939	return nil
12940}
12941
12942// SetResourceArn sets the ResourceArn field's value.
12943func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
12944	s.ResourceArn = &v
12945	return s
12946}
12947
12948type ListTagsForResourceOutput struct {
12949	_ struct{} `type:"structure"`
12950
12951	// The tags for the resource.
12952	Tags []*Tag `locationName:"tags" type:"list"`
12953}
12954
12955// String returns the string representation
12956func (s ListTagsForResourceOutput) String() string {
12957	return awsutil.Prettify(s)
12958}
12959
12960// GoString returns the string representation
12961func (s ListTagsForResourceOutput) GoString() string {
12962	return s.String()
12963}
12964
12965// SetTags sets the Tags field's value.
12966func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
12967	s.Tags = v
12968	return s
12969}
12970
12971type ListTaskDefinitionFamiliesInput struct {
12972	_ struct{} `type:"structure"`
12973
12974	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
12975	// If you specify a familyPrefix, only task definition family names that begin
12976	// with the familyPrefix string are returned.
12977	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
12978
12979	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
12980	// in paginated output. When this parameter is used, ListTaskDefinitions only
12981	// returns maxResults results in a single page along with a nextToken response
12982	// element. The remaining results of the initial request can be seen by sending
12983	// another ListTaskDefinitionFamilies request with the returned nextToken value.
12984	// This value can be between 1 and 100. If this parameter is not used, then
12985	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
12986	// if applicable.
12987	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12988
12989	// The nextToken value returned from a ListTaskDefinitionFamilies request indicating
12990	// that more results are available to fulfill the request and further calls
12991	// will be needed. If maxResults was provided, it is possible the number of
12992	// results to be fewer than maxResults.
12993	//
12994	// This token should be treated as an opaque identifier that is only used to
12995	// retrieve the next items in a list and not for other programmatic purposes.
12996	NextToken *string `locationName:"nextToken" type:"string"`
12997
12998	// The task definition family status with which to filter the ListTaskDefinitionFamilies
12999	// results. By default, both ACTIVE and INACTIVE task definition families are
13000	// listed. If this parameter is set to ACTIVE, only task definition families
13001	// that have an ACTIVE task definition revision are returned. If this parameter
13002	// is set to INACTIVE, only task definition families that do not have any ACTIVE
13003	// task definition revisions are returned. If you paginate the resulting output,
13004	// be sure to keep the status value constant in each subsequent request.
13005	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
13006}
13007
13008// String returns the string representation
13009func (s ListTaskDefinitionFamiliesInput) String() string {
13010	return awsutil.Prettify(s)
13011}
13012
13013// GoString returns the string representation
13014func (s ListTaskDefinitionFamiliesInput) GoString() string {
13015	return s.String()
13016}
13017
13018// SetFamilyPrefix sets the FamilyPrefix field's value.
13019func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
13020	s.FamilyPrefix = &v
13021	return s
13022}
13023
13024// SetMaxResults sets the MaxResults field's value.
13025func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
13026	s.MaxResults = &v
13027	return s
13028}
13029
13030// SetNextToken sets the NextToken field's value.
13031func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
13032	s.NextToken = &v
13033	return s
13034}
13035
13036// SetStatus sets the Status field's value.
13037func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
13038	s.Status = &v
13039	return s
13040}
13041
13042type ListTaskDefinitionFamiliesOutput struct {
13043	_ struct{} `type:"structure"`
13044
13045	// The list of task definition family names that match the ListTaskDefinitionFamilies
13046	// request.
13047	Families []*string `locationName:"families" type:"list"`
13048
13049	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
13050	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
13051	// this value can be used to retrieve the next page of results. This value is
13052	// null when there are no more results to return.
13053	NextToken *string `locationName:"nextToken" type:"string"`
13054}
13055
13056// String returns the string representation
13057func (s ListTaskDefinitionFamiliesOutput) String() string {
13058	return awsutil.Prettify(s)
13059}
13060
13061// GoString returns the string representation
13062func (s ListTaskDefinitionFamiliesOutput) GoString() string {
13063	return s.String()
13064}
13065
13066// SetFamilies sets the Families field's value.
13067func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
13068	s.Families = v
13069	return s
13070}
13071
13072// SetNextToken sets the NextToken field's value.
13073func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
13074	s.NextToken = &v
13075	return s
13076}
13077
13078type ListTaskDefinitionsInput struct {
13079	_ struct{} `type:"structure"`
13080
13081	// The full family name with which to filter the ListTaskDefinitions results.
13082	// Specifying a familyPrefix limits the listed task definitions to task definition
13083	// revisions that belong to that family.
13084	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
13085
13086	// The maximum number of task definition results returned by ListTaskDefinitions
13087	// in paginated output. When this parameter is used, ListTaskDefinitions only
13088	// returns maxResults results in a single page along with a nextToken response
13089	// element. The remaining results of the initial request can be seen by sending
13090	// another ListTaskDefinitions request with the returned nextToken value. This
13091	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
13092	// returns up to 100 results and a nextToken value if applicable.
13093	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13094
13095	// The nextToken value returned from a ListTaskDefinitions request indicating
13096	// that more results are available to fulfill the request and further calls
13097	// will be needed. If maxResults was provided, it is possible the number of
13098	// results to be fewer than maxResults.
13099	//
13100	// This token should be treated as an opaque identifier that is only used to
13101	// retrieve the next items in a list and not for other programmatic purposes.
13102	NextToken *string `locationName:"nextToken" type:"string"`
13103
13104	// The order in which to sort the results. Valid values are ASC and DESC. By
13105	// default (ASC), task definitions are listed lexicographically by family name
13106	// and in ascending numerical order by revision so that the newest task definitions
13107	// in a family are listed last. Setting this parameter to DESC reverses the
13108	// sort order on family name and revision so that the newest task definitions
13109	// in a family are listed first.
13110	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
13111
13112	// The task definition status with which to filter the ListTaskDefinitions results.
13113	// By default, only ACTIVE task definitions are listed. By setting this parameter
13114	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
13115	// active task or service still references them. If you paginate the resulting
13116	// output, be sure to keep the status value constant in each subsequent request.
13117	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
13118}
13119
13120// String returns the string representation
13121func (s ListTaskDefinitionsInput) String() string {
13122	return awsutil.Prettify(s)
13123}
13124
13125// GoString returns the string representation
13126func (s ListTaskDefinitionsInput) GoString() string {
13127	return s.String()
13128}
13129
13130// SetFamilyPrefix sets the FamilyPrefix field's value.
13131func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
13132	s.FamilyPrefix = &v
13133	return s
13134}
13135
13136// SetMaxResults sets the MaxResults field's value.
13137func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
13138	s.MaxResults = &v
13139	return s
13140}
13141
13142// SetNextToken sets the NextToken field's value.
13143func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
13144	s.NextToken = &v
13145	return s
13146}
13147
13148// SetSort sets the Sort field's value.
13149func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
13150	s.Sort = &v
13151	return s
13152}
13153
13154// SetStatus sets the Status field's value.
13155func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
13156	s.Status = &v
13157	return s
13158}
13159
13160type ListTaskDefinitionsOutput struct {
13161	_ struct{} `type:"structure"`
13162
13163	// The nextToken value to include in a future ListTaskDefinitions request. When
13164	// the results of a ListTaskDefinitions request exceed maxResults, this value
13165	// can be used to retrieve the next page of results. This value is null when
13166	// there are no more results to return.
13167	NextToken *string `locationName:"nextToken" type:"string"`
13168
13169	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
13170	// request.
13171	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
13172}
13173
13174// String returns the string representation
13175func (s ListTaskDefinitionsOutput) String() string {
13176	return awsutil.Prettify(s)
13177}
13178
13179// GoString returns the string representation
13180func (s ListTaskDefinitionsOutput) GoString() string {
13181	return s.String()
13182}
13183
13184// SetNextToken sets the NextToken field's value.
13185func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
13186	s.NextToken = &v
13187	return s
13188}
13189
13190// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
13191func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
13192	s.TaskDefinitionArns = v
13193	return s
13194}
13195
13196type ListTasksInput struct {
13197	_ struct{} `type:"structure"`
13198
13199	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13200	// the tasks to list. If you do not specify a cluster, the default cluster is
13201	// assumed.
13202	Cluster *string `locationName:"cluster" type:"string"`
13203
13204	// The container instance ID or full ARN of the container instance with which
13205	// to filter the ListTasks results. Specifying a containerInstance limits the
13206	// results to tasks that belong to that container instance.
13207	ContainerInstance *string `locationName:"containerInstance" type:"string"`
13208
13209	// The task desired status with which to filter the ListTasks results. Specifying
13210	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
13211	// set the desired status to STOPPED. This can be useful for debugging tasks
13212	// that are not starting properly or have died or finished. The default status
13213	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
13214	// status to RUNNING.
13215	//
13216	// Although you can filter results based on a desired status of PENDING, this
13217	// does not return any results. Amazon ECS never sets the desired status of
13218	// a task to that value (only a task's lastStatus may have a value of PENDING).
13219	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
13220
13221	// The name of the family with which to filter the ListTasks results. Specifying
13222	// a family limits the results to tasks that belong to that family.
13223	Family *string `locationName:"family" type:"string"`
13224
13225	// The launch type for services to list.
13226	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13227
13228	// The maximum number of task results returned by ListTasks in paginated output.
13229	// When this parameter is used, ListTasks only returns maxResults results in
13230	// a single page along with a nextToken response element. The remaining results
13231	// of the initial request can be seen by sending another ListTasks request with
13232	// the returned nextToken value. This value can be between 1 and 100. If this
13233	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
13234	// value if applicable.
13235	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13236
13237	// The nextToken value returned from a ListTasks request indicating that more
13238	// results are available to fulfill the request and further calls will be needed.
13239	// If maxResults was provided, it is possible the number of results to be fewer
13240	// than maxResults.
13241	//
13242	// This token should be treated as an opaque identifier that is only used to
13243	// retrieve the next items in a list and not for other programmatic purposes.
13244	NextToken *string `locationName:"nextToken" type:"string"`
13245
13246	// The name of the service with which to filter the ListTasks results. Specifying
13247	// a serviceName limits the results to tasks that belong to that service.
13248	ServiceName *string `locationName:"serviceName" type:"string"`
13249
13250	// The startedBy value with which to filter the task results. Specifying a startedBy
13251	// value limits the results to tasks that were started with that value.
13252	StartedBy *string `locationName:"startedBy" type:"string"`
13253}
13254
13255// String returns the string representation
13256func (s ListTasksInput) String() string {
13257	return awsutil.Prettify(s)
13258}
13259
13260// GoString returns the string representation
13261func (s ListTasksInput) GoString() string {
13262	return s.String()
13263}
13264
13265// SetCluster sets the Cluster field's value.
13266func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
13267	s.Cluster = &v
13268	return s
13269}
13270
13271// SetContainerInstance sets the ContainerInstance field's value.
13272func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
13273	s.ContainerInstance = &v
13274	return s
13275}
13276
13277// SetDesiredStatus sets the DesiredStatus field's value.
13278func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
13279	s.DesiredStatus = &v
13280	return s
13281}
13282
13283// SetFamily sets the Family field's value.
13284func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
13285	s.Family = &v
13286	return s
13287}
13288
13289// SetLaunchType sets the LaunchType field's value.
13290func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
13291	s.LaunchType = &v
13292	return s
13293}
13294
13295// SetMaxResults sets the MaxResults field's value.
13296func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
13297	s.MaxResults = &v
13298	return s
13299}
13300
13301// SetNextToken sets the NextToken field's value.
13302func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
13303	s.NextToken = &v
13304	return s
13305}
13306
13307// SetServiceName sets the ServiceName field's value.
13308func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
13309	s.ServiceName = &v
13310	return s
13311}
13312
13313// SetStartedBy sets the StartedBy field's value.
13314func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
13315	s.StartedBy = &v
13316	return s
13317}
13318
13319type ListTasksOutput struct {
13320	_ struct{} `type:"structure"`
13321
13322	// The nextToken value to include in a future ListTasks request. When the results
13323	// of a ListTasks request exceed maxResults, this value can be used to retrieve
13324	// the next page of results. This value is null when there are no more results
13325	// to return.
13326	NextToken *string `locationName:"nextToken" type:"string"`
13327
13328	// The list of task ARN entries for the ListTasks request.
13329	TaskArns []*string `locationName:"taskArns" type:"list"`
13330}
13331
13332// String returns the string representation
13333func (s ListTasksOutput) String() string {
13334	return awsutil.Prettify(s)
13335}
13336
13337// GoString returns the string representation
13338func (s ListTasksOutput) GoString() string {
13339	return s.String()
13340}
13341
13342// SetNextToken sets the NextToken field's value.
13343func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
13344	s.NextToken = &v
13345	return s
13346}
13347
13348// SetTaskArns sets the TaskArns field's value.
13349func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
13350	s.TaskArns = v
13351	return s
13352}
13353
13354// The load balancer configuration to use with a service or task set.
13355//
13356// For specific notes and restrictions regarding the use of load balancers with
13357// services and task sets, see the CreateService and CreateTaskSet actions.
13358type LoadBalancer struct {
13359	_ struct{} `type:"structure"`
13360
13361	// The name of the container (as it appears in a container definition) to associate
13362	// with the load balancer.
13363	ContainerName *string `locationName:"containerName" type:"string"`
13364
13365	// The port on the container to associate with the load balancer. This port
13366	// must correspond to a containerPort in the task definition the tasks in the
13367	// service are using. For tasks that use the EC2 launch type, the container
13368	// instance they are launched on must allow ingress traffic on the hostPort
13369	// of the port mapping.
13370	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13371
13372	// The name of the load balancer to associate with the Amazon ECS service or
13373	// task set.
13374	//
13375	// A load balancer name is only specified when using a Classic Load Balancer.
13376	// If you are using an Application Load Balancer or a Network Load Balancer
13377	// the load balancer name parameter should be omitted.
13378	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
13379
13380	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
13381	// group or groups associated with a service or task set.
13382	//
13383	// A target group ARN is only specified when using an Application Load Balancer
13384	// or Network Load Balancer. If you are using a Classic Load Balancer the target
13385	// group ARN should be omitted.
13386	//
13387	// For services using the ECS deployment controller, you can specify one or
13388	// multiple target groups. For more information, see Registering Multiple Target
13389	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
13390	// in the Amazon Elastic Container Service Developer Guide.
13391	//
13392	// For services using the CODE_DEPLOY deployment controller, you are required
13393	// to define two target groups for the load balancer. For more information,
13394	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
13395	// in the Amazon Elastic Container Service Developer Guide.
13396	//
13397	// If your service's task definition uses the awsvpc network mode (which is
13398	// required for the Fargate launch type), you must choose ip as the target type,
13399	// not instance, when creating your target groups because tasks that use the
13400	// awsvpc network mode are associated with an elastic network interface, not
13401	// an Amazon EC2 instance.
13402	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
13403}
13404
13405// String returns the string representation
13406func (s LoadBalancer) String() string {
13407	return awsutil.Prettify(s)
13408}
13409
13410// GoString returns the string representation
13411func (s LoadBalancer) GoString() string {
13412	return s.String()
13413}
13414
13415// SetContainerName sets the ContainerName field's value.
13416func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
13417	s.ContainerName = &v
13418	return s
13419}
13420
13421// SetContainerPort sets the ContainerPort field's value.
13422func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
13423	s.ContainerPort = &v
13424	return s
13425}
13426
13427// SetLoadBalancerName sets the LoadBalancerName field's value.
13428func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
13429	s.LoadBalancerName = &v
13430	return s
13431}
13432
13433// SetTargetGroupArn sets the TargetGroupArn field's value.
13434func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
13435	s.TargetGroupArn = &v
13436	return s
13437}
13438
13439// The log configuration specification for the container.
13440//
13441// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13442// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13443// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).
13444// By default, containers use the same logging driver that the Docker daemon
13445// uses; however the container may use a different logging driver than the Docker
13446// daemon by specifying a log driver with this parameter in the container definition.
13447// To use a different logging driver for a container, the log system must be
13448// configured properly on the container instance (or on a different log server
13449// for remote logging options). For more information on the options for different
13450// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
13451// in the Docker documentation.
13452//
13453// The following should be noted when specifying a log configuration for your
13454// containers:
13455//
13456//    * Amazon ECS currently supports a subset of the logging drivers available
13457//    to the Docker daemon (shown in the valid values below). Additional log
13458//    drivers may be available in future releases of the Amazon ECS container
13459//    agent.
13460//
13461//    * This parameter requires version 1.18 of the Docker Remote API or greater
13462//    on your container instance.
13463//
13464//    * For tasks using the EC2 launch type, the Amazon ECS container agent
13465//    running on a container instance must register the logging drivers available
13466//    on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable
13467//    before containers placed on that instance can use these log configuration
13468//    options. For more information, see Amazon ECS Container Agent Configuration
13469//    (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
13470//    in the Amazon Elastic Container Service Developer Guide.
13471//
13472//    * For tasks using the Fargate launch type, because you do not have access
13473//    to the underlying infrastructure your tasks are hosted on, any additional
13474//    software needed will have to be installed outside of the task. For example,
13475//    the Fluentd output aggregators or a remote host running Logstash to send
13476//    Gelf logs to.
13477type LogConfiguration struct {
13478	_ struct{} `type:"structure"`
13479
13480	// The log driver to use for the container. The valid values listed earlier
13481	// are log drivers that the Amazon ECS container agent can communicate with
13482	// by default.
13483	//
13484	// For tasks using the Fargate launch type, the supported log drivers are awslogs,
13485	// splunk, and awsfirelens.
13486	//
13487	// For tasks using the EC2 launch type, the supported log drivers are awslogs,
13488	// fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.
13489	//
13490	// For more information about using the awslogs log driver, see Using the awslogs
13491	// Log Driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
13492	// in the Amazon Elastic Container Service Developer Guide.
13493	//
13494	// For more information about using the awsfirelens log driver, see Custom Log
13495	// Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
13496	// in the Amazon Elastic Container Service Developer Guide.
13497	//
13498	// If you have a custom driver that is not listed, you can fork the Amazon ECS
13499	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
13500	// and customize it to work with that driver. We encourage you to submit pull
13501	// requests for changes that you would like to have included. However, we do
13502	// not currently provide support for running modified copies of this software.
13503	//
13504	// LogDriver is a required field
13505	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
13506
13507	// The configuration options to send to the log driver. This parameter requires
13508	// version 1.19 of the Docker Remote API or greater on your container instance.
13509	// To check the Docker Remote API version on your container instance, log in
13510	// to your container instance and run the following command: sudo docker version
13511	// --format '{{.Server.APIVersion}}'
13512	Options map[string]*string `locationName:"options" type:"map"`
13513
13514	// The secrets to pass to the log configuration. For more information, see Specifying
13515	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
13516	// in the Amazon Elastic Container Service Developer Guide.
13517	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
13518}
13519
13520// String returns the string representation
13521func (s LogConfiguration) String() string {
13522	return awsutil.Prettify(s)
13523}
13524
13525// GoString returns the string representation
13526func (s LogConfiguration) GoString() string {
13527	return s.String()
13528}
13529
13530// Validate inspects the fields of the type to determine if they are valid.
13531func (s *LogConfiguration) Validate() error {
13532	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
13533	if s.LogDriver == nil {
13534		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
13535	}
13536	if s.SecretOptions != nil {
13537		for i, v := range s.SecretOptions {
13538			if v == nil {
13539				continue
13540			}
13541			if err := v.Validate(); err != nil {
13542				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
13543			}
13544		}
13545	}
13546
13547	if invalidParams.Len() > 0 {
13548		return invalidParams
13549	}
13550	return nil
13551}
13552
13553// SetLogDriver sets the LogDriver field's value.
13554func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
13555	s.LogDriver = &v
13556	return s
13557}
13558
13559// SetOptions sets the Options field's value.
13560func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
13561	s.Options = v
13562	return s
13563}
13564
13565// SetSecretOptions sets the SecretOptions field's value.
13566func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
13567	s.SecretOptions = v
13568	return s
13569}
13570
13571// The managed scaling settings for the Auto Scaling group capacity provider.
13572//
13573// When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
13574// actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
13575// policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
13576// value as the target value for the metric. For more information, see Using
13577// Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
13578// in the Amazon Elastic Container Service Developer Guide.
13579//
13580// If managed scaling is disabled, the user must manage the scaling of the Auto
13581// Scaling group.
13582type ManagedScaling struct {
13583	_ struct{} `type:"structure"`
13584
13585	// The maximum number of container instances that Amazon ECS will scale in or
13586	// scale out at one time. If this parameter is omitted, the default value of
13587	// 10000 is used.
13588	MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"`
13589
13590	// The minimum number of container instances that Amazon ECS will scale in or
13591	// scale out at one time. If this parameter is omitted, the default value of
13592	// 1 is used.
13593	MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"`
13594
13595	// Whether or not to enable managed scaling for the capacity provider.
13596	Status *string `locationName:"status" type:"string" enum:"ManagedScalingStatus"`
13597
13598	// The target capacity value for the capacity provider. The specified value
13599	// must be greater than 0 and less than or equal to 100. A value of 100 will
13600	// result in the Amazon EC2 instances in your Auto Scaling group being completely
13601	// utilized.
13602	TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"`
13603}
13604
13605// String returns the string representation
13606func (s ManagedScaling) String() string {
13607	return awsutil.Prettify(s)
13608}
13609
13610// GoString returns the string representation
13611func (s ManagedScaling) GoString() string {
13612	return s.String()
13613}
13614
13615// Validate inspects the fields of the type to determine if they are valid.
13616func (s *ManagedScaling) Validate() error {
13617	invalidParams := request.ErrInvalidParams{Context: "ManagedScaling"}
13618	if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 {
13619		invalidParams.Add(request.NewErrParamMinValue("MaximumScalingStepSize", 1))
13620	}
13621	if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 {
13622		invalidParams.Add(request.NewErrParamMinValue("MinimumScalingStepSize", 1))
13623	}
13624	if s.TargetCapacity != nil && *s.TargetCapacity < 1 {
13625		invalidParams.Add(request.NewErrParamMinValue("TargetCapacity", 1))
13626	}
13627
13628	if invalidParams.Len() > 0 {
13629		return invalidParams
13630	}
13631	return nil
13632}
13633
13634// SetMaximumScalingStepSize sets the MaximumScalingStepSize field's value.
13635func (s *ManagedScaling) SetMaximumScalingStepSize(v int64) *ManagedScaling {
13636	s.MaximumScalingStepSize = &v
13637	return s
13638}
13639
13640// SetMinimumScalingStepSize sets the MinimumScalingStepSize field's value.
13641func (s *ManagedScaling) SetMinimumScalingStepSize(v int64) *ManagedScaling {
13642	s.MinimumScalingStepSize = &v
13643	return s
13644}
13645
13646// SetStatus sets the Status field's value.
13647func (s *ManagedScaling) SetStatus(v string) *ManagedScaling {
13648	s.Status = &v
13649	return s
13650}
13651
13652// SetTargetCapacity sets the TargetCapacity field's value.
13653func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling {
13654	s.TargetCapacity = &v
13655	return s
13656}
13657
13658// Amazon ECS is unable to determine the current version of the Amazon ECS container
13659// agent on the container instance and does not have enough information to proceed
13660// with an update. This could be because the agent running on the container
13661// instance is an older or custom version that does not use our version information.
13662type MissingVersionException struct {
13663	_            struct{}                  `type:"structure"`
13664	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13665
13666	Message_ *string `locationName:"message" type:"string"`
13667}
13668
13669// String returns the string representation
13670func (s MissingVersionException) String() string {
13671	return awsutil.Prettify(s)
13672}
13673
13674// GoString returns the string representation
13675func (s MissingVersionException) GoString() string {
13676	return s.String()
13677}
13678
13679func newErrorMissingVersionException(v protocol.ResponseMetadata) error {
13680	return &MissingVersionException{
13681		RespMetadata: v,
13682	}
13683}
13684
13685// Code returns the exception type name.
13686func (s *MissingVersionException) Code() string {
13687	return "MissingVersionException"
13688}
13689
13690// Message returns the exception's message.
13691func (s *MissingVersionException) Message() string {
13692	if s.Message_ != nil {
13693		return *s.Message_
13694	}
13695	return ""
13696}
13697
13698// OrigErr always returns nil, satisfies awserr.Error interface.
13699func (s *MissingVersionException) OrigErr() error {
13700	return nil
13701}
13702
13703func (s *MissingVersionException) Error() string {
13704	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13705}
13706
13707// Status code returns the HTTP status code for the request's response error.
13708func (s *MissingVersionException) StatusCode() int {
13709	return s.RespMetadata.StatusCode
13710}
13711
13712// RequestID returns the service's response RequestID for request.
13713func (s *MissingVersionException) RequestID() string {
13714	return s.RespMetadata.RequestID
13715}
13716
13717// Details on a volume mount point that is used in a container definition.
13718type MountPoint struct {
13719	_ struct{} `type:"structure"`
13720
13721	// The path on the container to mount the host volume at.
13722	ContainerPath *string `locationName:"containerPath" type:"string"`
13723
13724	// If this value is true, the container has read-only access to the volume.
13725	// If this value is false, then the container can write to the volume. The default
13726	// value is false.
13727	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
13728
13729	// The name of the volume to mount. Must be a volume name referenced in the
13730	// name parameter of task definition volume.
13731	SourceVolume *string `locationName:"sourceVolume" type:"string"`
13732}
13733
13734// String returns the string representation
13735func (s MountPoint) String() string {
13736	return awsutil.Prettify(s)
13737}
13738
13739// GoString returns the string representation
13740func (s MountPoint) GoString() string {
13741	return s.String()
13742}
13743
13744// SetContainerPath sets the ContainerPath field's value.
13745func (s *MountPoint) SetContainerPath(v string) *MountPoint {
13746	s.ContainerPath = &v
13747	return s
13748}
13749
13750// SetReadOnly sets the ReadOnly field's value.
13751func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
13752	s.ReadOnly = &v
13753	return s
13754}
13755
13756// SetSourceVolume sets the SourceVolume field's value.
13757func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
13758	s.SourceVolume = &v
13759	return s
13760}
13761
13762// Details on the network bindings between a container and its host container
13763// instance. After a task reaches the RUNNING status, manual and automatic host
13764// and container port assignments are visible in the networkBindings section
13765// of DescribeTasks API responses.
13766type NetworkBinding struct {
13767	_ struct{} `type:"structure"`
13768
13769	// The IP address that the container is bound to on the container instance.
13770	BindIP *string `locationName:"bindIP" type:"string"`
13771
13772	// The port number on the container that is used with the network binding.
13773	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13774
13775	// The port number on the host that is used with the network binding.
13776	HostPort *int64 `locationName:"hostPort" type:"integer"`
13777
13778	// The protocol used for the network binding.
13779	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
13780}
13781
13782// String returns the string representation
13783func (s NetworkBinding) String() string {
13784	return awsutil.Prettify(s)
13785}
13786
13787// GoString returns the string representation
13788func (s NetworkBinding) GoString() string {
13789	return s.String()
13790}
13791
13792// SetBindIP sets the BindIP field's value.
13793func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
13794	s.BindIP = &v
13795	return s
13796}
13797
13798// SetContainerPort sets the ContainerPort field's value.
13799func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
13800	s.ContainerPort = &v
13801	return s
13802}
13803
13804// SetHostPort sets the HostPort field's value.
13805func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
13806	s.HostPort = &v
13807	return s
13808}
13809
13810// SetProtocol sets the Protocol field's value.
13811func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
13812	s.Protocol = &v
13813	return s
13814}
13815
13816// An object representing the network configuration for a task or service.
13817type NetworkConfiguration struct {
13818	_ struct{} `type:"structure"`
13819
13820	// The VPC subnets and security groups associated with a task.
13821	//
13822	// All specified subnets and security groups must be from the same VPC.
13823	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
13824}
13825
13826// String returns the string representation
13827func (s NetworkConfiguration) String() string {
13828	return awsutil.Prettify(s)
13829}
13830
13831// GoString returns the string representation
13832func (s NetworkConfiguration) GoString() string {
13833	return s.String()
13834}
13835
13836// Validate inspects the fields of the type to determine if they are valid.
13837func (s *NetworkConfiguration) Validate() error {
13838	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
13839	if s.AwsvpcConfiguration != nil {
13840		if err := s.AwsvpcConfiguration.Validate(); err != nil {
13841			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
13842		}
13843	}
13844
13845	if invalidParams.Len() > 0 {
13846		return invalidParams
13847	}
13848	return nil
13849}
13850
13851// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
13852func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
13853	s.AwsvpcConfiguration = v
13854	return s
13855}
13856
13857// An object representing the elastic network interface for tasks that use the
13858// awsvpc network mode.
13859type NetworkInterface struct {
13860	_ struct{} `type:"structure"`
13861
13862	// The attachment ID for the network interface.
13863	AttachmentId *string `locationName:"attachmentId" type:"string"`
13864
13865	// The private IPv6 address for the network interface.
13866	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
13867
13868	// The private IPv4 address for the network interface.
13869	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
13870}
13871
13872// String returns the string representation
13873func (s NetworkInterface) String() string {
13874	return awsutil.Prettify(s)
13875}
13876
13877// GoString returns the string representation
13878func (s NetworkInterface) GoString() string {
13879	return s.String()
13880}
13881
13882// SetAttachmentId sets the AttachmentId field's value.
13883func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
13884	s.AttachmentId = &v
13885	return s
13886}
13887
13888// SetIpv6Address sets the Ipv6Address field's value.
13889func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
13890	s.Ipv6Address = &v
13891	return s
13892}
13893
13894// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
13895func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
13896	s.PrivateIpv4Address = &v
13897	return s
13898}
13899
13900// There is no update available for this Amazon ECS container agent. This could
13901// be because the agent is already running the latest version, or it is so old
13902// that there is no update path to the current version.
13903type NoUpdateAvailableException struct {
13904	_            struct{}                  `type:"structure"`
13905	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13906
13907	Message_ *string `locationName:"message" type:"string"`
13908}
13909
13910// String returns the string representation
13911func (s NoUpdateAvailableException) String() string {
13912	return awsutil.Prettify(s)
13913}
13914
13915// GoString returns the string representation
13916func (s NoUpdateAvailableException) GoString() string {
13917	return s.String()
13918}
13919
13920func newErrorNoUpdateAvailableException(v protocol.ResponseMetadata) error {
13921	return &NoUpdateAvailableException{
13922		RespMetadata: v,
13923	}
13924}
13925
13926// Code returns the exception type name.
13927func (s *NoUpdateAvailableException) Code() string {
13928	return "NoUpdateAvailableException"
13929}
13930
13931// Message returns the exception's message.
13932func (s *NoUpdateAvailableException) Message() string {
13933	if s.Message_ != nil {
13934		return *s.Message_
13935	}
13936	return ""
13937}
13938
13939// OrigErr always returns nil, satisfies awserr.Error interface.
13940func (s *NoUpdateAvailableException) OrigErr() error {
13941	return nil
13942}
13943
13944func (s *NoUpdateAvailableException) Error() string {
13945	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13946}
13947
13948// Status code returns the HTTP status code for the request's response error.
13949func (s *NoUpdateAvailableException) StatusCode() int {
13950	return s.RespMetadata.StatusCode
13951}
13952
13953// RequestID returns the service's response RequestID for request.
13954func (s *NoUpdateAvailableException) RequestID() string {
13955	return s.RespMetadata.RequestID
13956}
13957
13958// An object representing a constraint on task placement. For more information,
13959// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
13960// in the Amazon Elastic Container Service Developer Guide.
13961//
13962// If you are using the Fargate launch type, task placement constraints are
13963// not supported.
13964type PlacementConstraint struct {
13965	_ struct{} `type:"structure"`
13966
13967	// A cluster query language expression to apply to the constraint. You cannot
13968	// specify an expression if the constraint type is distinctInstance. For more
13969	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
13970	// in the Amazon Elastic Container Service Developer Guide.
13971	Expression *string `locationName:"expression" type:"string"`
13972
13973	// The type of constraint. Use distinctInstance to ensure that each task in
13974	// a particular group is running on a different container instance. Use memberOf
13975	// to restrict the selection to a group of valid candidates.
13976	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
13977}
13978
13979// String returns the string representation
13980func (s PlacementConstraint) String() string {
13981	return awsutil.Prettify(s)
13982}
13983
13984// GoString returns the string representation
13985func (s PlacementConstraint) GoString() string {
13986	return s.String()
13987}
13988
13989// SetExpression sets the Expression field's value.
13990func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
13991	s.Expression = &v
13992	return s
13993}
13994
13995// SetType sets the Type field's value.
13996func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
13997	s.Type = &v
13998	return s
13999}
14000
14001// The task placement strategy for a task or service. For more information,
14002// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
14003// in the Amazon Elastic Container Service Developer Guide.
14004type PlacementStrategy struct {
14005	_ struct{} `type:"structure"`
14006
14007	// The field to apply the placement strategy against. For the spread placement
14008	// strategy, valid values are instanceId (or host, which has the same effect),
14009	// or any platform or custom attribute that is applied to a container instance,
14010	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
14011	// valid values are cpu and memory. For the random placement strategy, this
14012	// field is not used.
14013	Field *string `locationName:"field" type:"string"`
14014
14015	// The type of placement strategy. The random placement strategy randomly places
14016	// tasks on available candidates. The spread placement strategy spreads placement
14017	// across available candidates evenly based on the field parameter. The binpack
14018	// strategy places tasks on available candidates that have the least available
14019	// amount of the resource that is specified with the field parameter. For example,
14020	// if you binpack on memory, a task is placed on the instance with the least
14021	// amount of remaining memory (but still enough to run the task).
14022	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
14023}
14024
14025// String returns the string representation
14026func (s PlacementStrategy) String() string {
14027	return awsutil.Prettify(s)
14028}
14029
14030// GoString returns the string representation
14031func (s PlacementStrategy) GoString() string {
14032	return s.String()
14033}
14034
14035// SetField sets the Field field's value.
14036func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
14037	s.Field = &v
14038	return s
14039}
14040
14041// SetType sets the Type field's value.
14042func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
14043	s.Type = &v
14044	return s
14045}
14046
14047// The devices that are available on the container instance. The only supported
14048// device type is a GPU.
14049type PlatformDevice struct {
14050	_ struct{} `type:"structure"`
14051
14052	// The ID for the GPU(s) on the container instance. The available GPU IDs can
14053	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
14054	// file.
14055	//
14056	// Id is a required field
14057	Id *string `locationName:"id" type:"string" required:"true"`
14058
14059	// The type of device that is available on the container instance. The only
14060	// supported value is GPU.
14061	//
14062	// Type is a required field
14063	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
14064}
14065
14066// String returns the string representation
14067func (s PlatformDevice) String() string {
14068	return awsutil.Prettify(s)
14069}
14070
14071// GoString returns the string representation
14072func (s PlatformDevice) GoString() string {
14073	return s.String()
14074}
14075
14076// Validate inspects the fields of the type to determine if they are valid.
14077func (s *PlatformDevice) Validate() error {
14078	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
14079	if s.Id == nil {
14080		invalidParams.Add(request.NewErrParamRequired("Id"))
14081	}
14082	if s.Type == nil {
14083		invalidParams.Add(request.NewErrParamRequired("Type"))
14084	}
14085
14086	if invalidParams.Len() > 0 {
14087		return invalidParams
14088	}
14089	return nil
14090}
14091
14092// SetId sets the Id field's value.
14093func (s *PlatformDevice) SetId(v string) *PlatformDevice {
14094	s.Id = &v
14095	return s
14096}
14097
14098// SetType sets the Type field's value.
14099func (s *PlatformDevice) SetType(v string) *PlatformDevice {
14100	s.Type = &v
14101	return s
14102}
14103
14104// The specified platform version does not satisfy the task definition's required
14105// capabilities.
14106type PlatformTaskDefinitionIncompatibilityException struct {
14107	_            struct{}                  `type:"structure"`
14108	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14109
14110	Message_ *string `locationName:"message" type:"string"`
14111}
14112
14113// String returns the string representation
14114func (s PlatformTaskDefinitionIncompatibilityException) String() string {
14115	return awsutil.Prettify(s)
14116}
14117
14118// GoString returns the string representation
14119func (s PlatformTaskDefinitionIncompatibilityException) GoString() string {
14120	return s.String()
14121}
14122
14123func newErrorPlatformTaskDefinitionIncompatibilityException(v protocol.ResponseMetadata) error {
14124	return &PlatformTaskDefinitionIncompatibilityException{
14125		RespMetadata: v,
14126	}
14127}
14128
14129// Code returns the exception type name.
14130func (s *PlatformTaskDefinitionIncompatibilityException) Code() string {
14131	return "PlatformTaskDefinitionIncompatibilityException"
14132}
14133
14134// Message returns the exception's message.
14135func (s *PlatformTaskDefinitionIncompatibilityException) Message() string {
14136	if s.Message_ != nil {
14137		return *s.Message_
14138	}
14139	return ""
14140}
14141
14142// OrigErr always returns nil, satisfies awserr.Error interface.
14143func (s *PlatformTaskDefinitionIncompatibilityException) OrigErr() error {
14144	return nil
14145}
14146
14147func (s *PlatformTaskDefinitionIncompatibilityException) Error() string {
14148	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14149}
14150
14151// Status code returns the HTTP status code for the request's response error.
14152func (s *PlatformTaskDefinitionIncompatibilityException) StatusCode() int {
14153	return s.RespMetadata.StatusCode
14154}
14155
14156// RequestID returns the service's response RequestID for request.
14157func (s *PlatformTaskDefinitionIncompatibilityException) RequestID() string {
14158	return s.RespMetadata.RequestID
14159}
14160
14161// The specified platform version does not exist.
14162type PlatformUnknownException struct {
14163	_            struct{}                  `type:"structure"`
14164	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14165
14166	Message_ *string `locationName:"message" type:"string"`
14167}
14168
14169// String returns the string representation
14170func (s PlatformUnknownException) String() string {
14171	return awsutil.Prettify(s)
14172}
14173
14174// GoString returns the string representation
14175func (s PlatformUnknownException) GoString() string {
14176	return s.String()
14177}
14178
14179func newErrorPlatformUnknownException(v protocol.ResponseMetadata) error {
14180	return &PlatformUnknownException{
14181		RespMetadata: v,
14182	}
14183}
14184
14185// Code returns the exception type name.
14186func (s *PlatformUnknownException) Code() string {
14187	return "PlatformUnknownException"
14188}
14189
14190// Message returns the exception's message.
14191func (s *PlatformUnknownException) Message() string {
14192	if s.Message_ != nil {
14193		return *s.Message_
14194	}
14195	return ""
14196}
14197
14198// OrigErr always returns nil, satisfies awserr.Error interface.
14199func (s *PlatformUnknownException) OrigErr() error {
14200	return nil
14201}
14202
14203func (s *PlatformUnknownException) Error() string {
14204	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14205}
14206
14207// Status code returns the HTTP status code for the request's response error.
14208func (s *PlatformUnknownException) StatusCode() int {
14209	return s.RespMetadata.StatusCode
14210}
14211
14212// RequestID returns the service's response RequestID for request.
14213func (s *PlatformUnknownException) RequestID() string {
14214	return s.RespMetadata.RequestID
14215}
14216
14217// Port mappings allow containers to access ports on the host container instance
14218// to send or receive traffic. Port mappings are specified as part of the container
14219// definition.
14220//
14221// If you are using containers in a task with the awsvpc or host network mode,
14222// exposed ports should be specified using containerPort. The hostPort can be
14223// left blank or it must be the same value as the containerPort.
14224//
14225// After a task reaches the RUNNING status, manual and automatic host and container
14226// port assignments are visible in the networkBindings section of DescribeTasks
14227// API responses.
14228type PortMapping struct {
14229	_ struct{} `type:"structure"`
14230
14231	// The port number on the container that is bound to the user-specified or automatically
14232	// assigned host port.
14233	//
14234	// If you are using containers in a task with the awsvpc or host network mode,
14235	// exposed ports should be specified using containerPort.
14236	//
14237	// If you are using containers in a task with the bridge network mode and you
14238	// specify a container port and not a host port, your container automatically
14239	// receives a host port in the ephemeral port range. For more information, see
14240	// hostPort. Port mappings that are automatically assigned in this way do not
14241	// count toward the 100 reserved ports limit of a container instance.
14242	//
14243	// You cannot expose the same container port for multiple protocols. An error
14244	// will be returned if this is attempted.
14245	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14246
14247	// The port number on the container instance to reserve for your container.
14248	//
14249	// If you are using containers in a task with the awsvpc or host network mode,
14250	// the hostPort can either be left blank or set to the same value as the containerPort.
14251	//
14252	// If you are using containers in a task with the bridge network mode, you can
14253	// specify a non-reserved host port for your container port mapping, or you
14254	// can omit the hostPort (or set it to 0) while specifying a containerPort and
14255	// your container automatically receives a port in the ephemeral port range
14256	// for your container instance operating system and Docker version.
14257	//
14258	// The default ephemeral port range for Docker version 1.6.0 and later is listed
14259	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
14260	// parameter is unavailable, the default ephemeral port range from 49153 through
14261	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
14262	// range as these are reserved for automatic assignment. In general, ports below
14263	// 32768 are outside of the ephemeral port range.
14264	//
14265	// The default ephemeral port range from 49153 through 65535 is always used
14266	// for Docker versions before 1.6.0.
14267	//
14268	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
14269	// and the Amazon ECS container agent ports 51678-51680. Any host port that
14270	// was previously specified in a running task is also reserved while the task
14271	// is running (after a task stops, the host port is released). The current reserved
14272	// ports are displayed in the remainingResources of DescribeContainerInstances
14273	// output. A container instance can have up to 100 reserved ports at a time,
14274	// including the default reserved ports. Automatically assigned ports don't
14275	// count toward the 100 reserved ports limit.
14276	HostPort *int64 `locationName:"hostPort" type:"integer"`
14277
14278	// The protocol used for the port mapping. Valid values are tcp and udp. The
14279	// default is tcp.
14280	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
14281}
14282
14283// String returns the string representation
14284func (s PortMapping) String() string {
14285	return awsutil.Prettify(s)
14286}
14287
14288// GoString returns the string representation
14289func (s PortMapping) GoString() string {
14290	return s.String()
14291}
14292
14293// SetContainerPort sets the ContainerPort field's value.
14294func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
14295	s.ContainerPort = &v
14296	return s
14297}
14298
14299// SetHostPort sets the HostPort field's value.
14300func (s *PortMapping) SetHostPort(v int64) *PortMapping {
14301	s.HostPort = &v
14302	return s
14303}
14304
14305// SetProtocol sets the Protocol field's value.
14306func (s *PortMapping) SetProtocol(v string) *PortMapping {
14307	s.Protocol = &v
14308	return s
14309}
14310
14311// The configuration details for the App Mesh proxy.
14312//
14313// For tasks using the EC2 launch type, the container instances require at least
14314// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
14315// ecs-init package to enable a proxy configuration. If your container instances
14316// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
14317// then they contain the required versions of the container agent and ecs-init.
14318// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
14319// in the Amazon Elastic Container Service Developer Guide.
14320//
14321// For tasks using the Fargate launch type, the task or service requires platform
14322// version 1.3.0 or later.
14323type ProxyConfiguration struct {
14324	_ struct{} `type:"structure"`
14325
14326	// The name of the container that will serve as the App Mesh proxy.
14327	//
14328	// ContainerName is a required field
14329	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
14330
14331	// The set of network configuration parameters to provide the Container Network
14332	// Interface (CNI) plugin, specified as key-value pairs.
14333	//
14334	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
14335	//    defined by the user parameter in a container definition. This is used
14336	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
14337	//    this field can be empty.
14338	//
14339	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
14340	//    defined by the user parameter in a container definition. This is used
14341	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
14342	//    this field can be empty.
14343	//
14344	//    * AppPorts - (Required) The list of ports that the application uses. Network
14345	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
14346	//
14347	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
14348	//    to the AppPorts is directed to.
14349	//
14350	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
14351	//    from the AppPorts is directed to.
14352	//
14353	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
14354	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
14355	//    an empty list.
14356	//
14357	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
14358	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
14359	//    can be an empty list.
14360	Properties []*KeyValuePair `locationName:"properties" type:"list"`
14361
14362	// The proxy type. The only supported value is APPMESH.
14363	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
14364}
14365
14366// String returns the string representation
14367func (s ProxyConfiguration) String() string {
14368	return awsutil.Prettify(s)
14369}
14370
14371// GoString returns the string representation
14372func (s ProxyConfiguration) GoString() string {
14373	return s.String()
14374}
14375
14376// Validate inspects the fields of the type to determine if they are valid.
14377func (s *ProxyConfiguration) Validate() error {
14378	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
14379	if s.ContainerName == nil {
14380		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
14381	}
14382
14383	if invalidParams.Len() > 0 {
14384		return invalidParams
14385	}
14386	return nil
14387}
14388
14389// SetContainerName sets the ContainerName field's value.
14390func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
14391	s.ContainerName = &v
14392	return s
14393}
14394
14395// SetProperties sets the Properties field's value.
14396func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
14397	s.Properties = v
14398	return s
14399}
14400
14401// SetType sets the Type field's value.
14402func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
14403	s.Type = &v
14404	return s
14405}
14406
14407type PutAccountSettingDefaultInput struct {
14408	_ struct{} `type:"structure"`
14409
14410	// The resource name for which to modify the account setting. If serviceLongArnFormat
14411	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
14412	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
14413	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
14414	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
14415	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
14416	// is specified, the default setting for CloudWatch Container Insights for your
14417	// clusters is affected.
14418	//
14419	// Name is a required field
14420	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14421
14422	// The account setting value for the specified principal ARN. Accepted values
14423	// are enabled and disabled.
14424	//
14425	// Value is a required field
14426	Value *string `locationName:"value" type:"string" required:"true"`
14427}
14428
14429// String returns the string representation
14430func (s PutAccountSettingDefaultInput) String() string {
14431	return awsutil.Prettify(s)
14432}
14433
14434// GoString returns the string representation
14435func (s PutAccountSettingDefaultInput) GoString() string {
14436	return s.String()
14437}
14438
14439// Validate inspects the fields of the type to determine if they are valid.
14440func (s *PutAccountSettingDefaultInput) Validate() error {
14441	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
14442	if s.Name == nil {
14443		invalidParams.Add(request.NewErrParamRequired("Name"))
14444	}
14445	if s.Value == nil {
14446		invalidParams.Add(request.NewErrParamRequired("Value"))
14447	}
14448
14449	if invalidParams.Len() > 0 {
14450		return invalidParams
14451	}
14452	return nil
14453}
14454
14455// SetName sets the Name field's value.
14456func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
14457	s.Name = &v
14458	return s
14459}
14460
14461// SetValue sets the Value field's value.
14462func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
14463	s.Value = &v
14464	return s
14465}
14466
14467type PutAccountSettingDefaultOutput struct {
14468	_ struct{} `type:"structure"`
14469
14470	// The current account setting for a resource.
14471	Setting *Setting `locationName:"setting" type:"structure"`
14472}
14473
14474// String returns the string representation
14475func (s PutAccountSettingDefaultOutput) String() string {
14476	return awsutil.Prettify(s)
14477}
14478
14479// GoString returns the string representation
14480func (s PutAccountSettingDefaultOutput) GoString() string {
14481	return s.String()
14482}
14483
14484// SetSetting sets the Setting field's value.
14485func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
14486	s.Setting = v
14487	return s
14488}
14489
14490type PutAccountSettingInput struct {
14491	_ struct{} `type:"structure"`
14492
14493	// The Amazon ECS resource name for which to modify the account setting. If
14494	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
14495	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
14496	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
14497	// the ARN and resource ID for your Amazon ECS container instances is affected.
14498	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
14499	// for your Amazon ECS container instances is affected. If containerInsights
14500	// is specified, the default setting for CloudWatch Container Insights for your
14501	// clusters is affected.
14502	//
14503	// Name is a required field
14504	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14505
14506	// The ARN of the principal, which can be an IAM user, IAM role, or the root
14507	// user. If you specify the root user, it modifies the account setting for all
14508	// IAM users, IAM roles, and the root user of the account unless an IAM user
14509	// or role explicitly overrides these settings. If this field is omitted, the
14510	// setting is changed only for the authenticated user.
14511	PrincipalArn *string `locationName:"principalArn" type:"string"`
14512
14513	// The account setting value for the specified principal ARN. Accepted values
14514	// are enabled and disabled.
14515	//
14516	// Value is a required field
14517	Value *string `locationName:"value" type:"string" required:"true"`
14518}
14519
14520// String returns the string representation
14521func (s PutAccountSettingInput) String() string {
14522	return awsutil.Prettify(s)
14523}
14524
14525// GoString returns the string representation
14526func (s PutAccountSettingInput) GoString() string {
14527	return s.String()
14528}
14529
14530// Validate inspects the fields of the type to determine if they are valid.
14531func (s *PutAccountSettingInput) Validate() error {
14532	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
14533	if s.Name == nil {
14534		invalidParams.Add(request.NewErrParamRequired("Name"))
14535	}
14536	if s.Value == nil {
14537		invalidParams.Add(request.NewErrParamRequired("Value"))
14538	}
14539
14540	if invalidParams.Len() > 0 {
14541		return invalidParams
14542	}
14543	return nil
14544}
14545
14546// SetName sets the Name field's value.
14547func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
14548	s.Name = &v
14549	return s
14550}
14551
14552// SetPrincipalArn sets the PrincipalArn field's value.
14553func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
14554	s.PrincipalArn = &v
14555	return s
14556}
14557
14558// SetValue sets the Value field's value.
14559func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
14560	s.Value = &v
14561	return s
14562}
14563
14564type PutAccountSettingOutput struct {
14565	_ struct{} `type:"structure"`
14566
14567	// The current account setting for a resource.
14568	Setting *Setting `locationName:"setting" type:"structure"`
14569}
14570
14571// String returns the string representation
14572func (s PutAccountSettingOutput) String() string {
14573	return awsutil.Prettify(s)
14574}
14575
14576// GoString returns the string representation
14577func (s PutAccountSettingOutput) GoString() string {
14578	return s.String()
14579}
14580
14581// SetSetting sets the Setting field's value.
14582func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
14583	s.Setting = v
14584	return s
14585}
14586
14587type PutAttributesInput struct {
14588	_ struct{} `type:"structure"`
14589
14590	// The attributes to apply to your resource. You can specify up to 10 custom
14591	// attributes per resource. You can specify up to 10 attributes in a single
14592	// call.
14593	//
14594	// Attributes is a required field
14595	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
14596
14597	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
14598	// the resource to apply attributes. If you do not specify a cluster, the default
14599	// cluster is assumed.
14600	Cluster *string `locationName:"cluster" type:"string"`
14601}
14602
14603// String returns the string representation
14604func (s PutAttributesInput) String() string {
14605	return awsutil.Prettify(s)
14606}
14607
14608// GoString returns the string representation
14609func (s PutAttributesInput) GoString() string {
14610	return s.String()
14611}
14612
14613// Validate inspects the fields of the type to determine if they are valid.
14614func (s *PutAttributesInput) Validate() error {
14615	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
14616	if s.Attributes == nil {
14617		invalidParams.Add(request.NewErrParamRequired("Attributes"))
14618	}
14619	if s.Attributes != nil {
14620		for i, v := range s.Attributes {
14621			if v == nil {
14622				continue
14623			}
14624			if err := v.Validate(); err != nil {
14625				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
14626			}
14627		}
14628	}
14629
14630	if invalidParams.Len() > 0 {
14631		return invalidParams
14632	}
14633	return nil
14634}
14635
14636// SetAttributes sets the Attributes field's value.
14637func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
14638	s.Attributes = v
14639	return s
14640}
14641
14642// SetCluster sets the Cluster field's value.
14643func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
14644	s.Cluster = &v
14645	return s
14646}
14647
14648type PutAttributesOutput struct {
14649	_ struct{} `type:"structure"`
14650
14651	// The attributes applied to your resource.
14652	Attributes []*Attribute `locationName:"attributes" type:"list"`
14653}
14654
14655// String returns the string representation
14656func (s PutAttributesOutput) String() string {
14657	return awsutil.Prettify(s)
14658}
14659
14660// GoString returns the string representation
14661func (s PutAttributesOutput) GoString() string {
14662	return s.String()
14663}
14664
14665// SetAttributes sets the Attributes field's value.
14666func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
14667	s.Attributes = v
14668	return s
14669}
14670
14671type PutClusterCapacityProvidersInput struct {
14672	_ struct{} `type:"structure"`
14673
14674	// The name of one or more capacity providers to associate with the cluster.
14675	//
14676	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
14677	// provider must already be created. New capacity providers can be created with
14678	// the CreateCapacityProvider API operation.
14679	//
14680	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
14681	// capacity providers. The AWS Fargate capacity providers are available to all
14682	// accounts and only need to be associated with a cluster to be used.
14683	//
14684	// CapacityProviders is a required field
14685	CapacityProviders []*string `locationName:"capacityProviders" type:"list" required:"true"`
14686
14687	// The short name or full Amazon Resource Name (ARN) of the cluster to modify
14688	// the capacity provider settings for. If you do not specify a cluster, the
14689	// default cluster is assumed.
14690	//
14691	// Cluster is a required field
14692	Cluster *string `locationName:"cluster" type:"string" required:"true"`
14693
14694	// The capacity provider strategy to use by default for the cluster.
14695	//
14696	// When creating a service or running a task on a cluster, if no capacity provider
14697	// or launch type is specified then the default capacity provider strategy for
14698	// the cluster is used.
14699	//
14700	// A capacity provider strategy consists of one or more capacity providers along
14701	// with the base and weight to assign to them. A capacity provider must be associated
14702	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
14703	// API is used to associate a capacity provider with a cluster. Only capacity
14704	// providers with an ACTIVE or UPDATING status can be used.
14705	//
14706	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
14707	// provider must already be created. New capacity providers can be created with
14708	// the CreateCapacityProvider API operation.
14709	//
14710	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
14711	// capacity providers. The AWS Fargate capacity providers are available to all
14712	// accounts and only need to be associated with a cluster to be used.
14713	//
14714	// DefaultCapacityProviderStrategy is a required field
14715	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"`
14716}
14717
14718// String returns the string representation
14719func (s PutClusterCapacityProvidersInput) String() string {
14720	return awsutil.Prettify(s)
14721}
14722
14723// GoString returns the string representation
14724func (s PutClusterCapacityProvidersInput) GoString() string {
14725	return s.String()
14726}
14727
14728// Validate inspects the fields of the type to determine if they are valid.
14729func (s *PutClusterCapacityProvidersInput) Validate() error {
14730	invalidParams := request.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"}
14731	if s.CapacityProviders == nil {
14732		invalidParams.Add(request.NewErrParamRequired("CapacityProviders"))
14733	}
14734	if s.Cluster == nil {
14735		invalidParams.Add(request.NewErrParamRequired("Cluster"))
14736	}
14737	if s.DefaultCapacityProviderStrategy == nil {
14738		invalidParams.Add(request.NewErrParamRequired("DefaultCapacityProviderStrategy"))
14739	}
14740	if s.DefaultCapacityProviderStrategy != nil {
14741		for i, v := range s.DefaultCapacityProviderStrategy {
14742			if v == nil {
14743				continue
14744			}
14745			if err := v.Validate(); err != nil {
14746				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
14747			}
14748		}
14749	}
14750
14751	if invalidParams.Len() > 0 {
14752		return invalidParams
14753	}
14754	return nil
14755}
14756
14757// SetCapacityProviders sets the CapacityProviders field's value.
14758func (s *PutClusterCapacityProvidersInput) SetCapacityProviders(v []*string) *PutClusterCapacityProvidersInput {
14759	s.CapacityProviders = v
14760	return s
14761}
14762
14763// SetCluster sets the Cluster field's value.
14764func (s *PutClusterCapacityProvidersInput) SetCluster(v string) *PutClusterCapacityProvidersInput {
14765	s.Cluster = &v
14766	return s
14767}
14768
14769// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
14770func (s *PutClusterCapacityProvidersInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *PutClusterCapacityProvidersInput {
14771	s.DefaultCapacityProviderStrategy = v
14772	return s
14773}
14774
14775type PutClusterCapacityProvidersOutput struct {
14776	_ struct{} `type:"structure"`
14777
14778	// A regional grouping of one or more container instances on which you can run
14779	// task requests. Each account receives a default cluster the first time you
14780	// use the Amazon ECS service, but you may also create other clusters. Clusters
14781	// may contain more than one instance type simultaneously.
14782	Cluster *Cluster `locationName:"cluster" type:"structure"`
14783}
14784
14785// String returns the string representation
14786func (s PutClusterCapacityProvidersOutput) String() string {
14787	return awsutil.Prettify(s)
14788}
14789
14790// GoString returns the string representation
14791func (s PutClusterCapacityProvidersOutput) GoString() string {
14792	return s.String()
14793}
14794
14795// SetCluster sets the Cluster field's value.
14796func (s *PutClusterCapacityProvidersOutput) SetCluster(v *Cluster) *PutClusterCapacityProvidersOutput {
14797	s.Cluster = v
14798	return s
14799}
14800
14801type RegisterContainerInstanceInput struct {
14802	_ struct{} `type:"structure"`
14803
14804	// The container instance attributes that this container instance supports.
14805	Attributes []*Attribute `locationName:"attributes" type:"list"`
14806
14807	// The short name or full Amazon Resource Name (ARN) of the cluster with which
14808	// to register your container instance. If you do not specify a cluster, the
14809	// default cluster is assumed.
14810	Cluster *string `locationName:"cluster" type:"string"`
14811
14812	// The ARN of the container instance (if it was previously registered).
14813	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
14814
14815	// The instance identity document for the EC2 instance to register. This document
14816	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
14817	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
14818
14819	// The instance identity document signature for the EC2 instance to register.
14820	// This signature can be found by running the following command from the instance:
14821	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
14822	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
14823
14824	// The devices that are available on the container instance. The only supported
14825	// device type is a GPU.
14826	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
14827
14828	// The metadata that you apply to the container instance to help you categorize
14829	// and organize them. Each tag consists of a key and an optional value, both
14830	// of which you define.
14831	//
14832	// The following basic restrictions apply to tags:
14833	//
14834	//    * Maximum number of tags per resource - 50
14835	//
14836	//    * For each resource, each tag key must be unique, and each tag key can
14837	//    have only one value.
14838	//
14839	//    * Maximum key length - 128 Unicode characters in UTF-8
14840	//
14841	//    * Maximum value length - 256 Unicode characters in UTF-8
14842	//
14843	//    * If your tagging schema is used across multiple services and resources,
14844	//    remember that other services may have restrictions on allowed characters.
14845	//    Generally allowed characters are: letters, numbers, and spaces representable
14846	//    in UTF-8, and the following characters: + - = . _ : / @.
14847	//
14848	//    * Tag keys and values are case-sensitive.
14849	//
14850	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14851	//    as a prefix for either keys or values as it is reserved for AWS use. You
14852	//    cannot edit or delete tag keys or values with this prefix. Tags with this
14853	//    prefix do not count against your tags per resource limit.
14854	Tags []*Tag `locationName:"tags" type:"list"`
14855
14856	// The resources available on the instance.
14857	TotalResources []*Resource `locationName:"totalResources" type:"list"`
14858
14859	// The version information for the Amazon ECS container agent and Docker daemon
14860	// running on the container instance.
14861	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
14862}
14863
14864// String returns the string representation
14865func (s RegisterContainerInstanceInput) String() string {
14866	return awsutil.Prettify(s)
14867}
14868
14869// GoString returns the string representation
14870func (s RegisterContainerInstanceInput) GoString() string {
14871	return s.String()
14872}
14873
14874// Validate inspects the fields of the type to determine if they are valid.
14875func (s *RegisterContainerInstanceInput) Validate() error {
14876	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
14877	if s.Attributes != nil {
14878		for i, v := range s.Attributes {
14879			if v == nil {
14880				continue
14881			}
14882			if err := v.Validate(); err != nil {
14883				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
14884			}
14885		}
14886	}
14887	if s.PlatformDevices != nil {
14888		for i, v := range s.PlatformDevices {
14889			if v == nil {
14890				continue
14891			}
14892			if err := v.Validate(); err != nil {
14893				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
14894			}
14895		}
14896	}
14897	if s.Tags != nil {
14898		for i, v := range s.Tags {
14899			if v == nil {
14900				continue
14901			}
14902			if err := v.Validate(); err != nil {
14903				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
14904			}
14905		}
14906	}
14907
14908	if invalidParams.Len() > 0 {
14909		return invalidParams
14910	}
14911	return nil
14912}
14913
14914// SetAttributes sets the Attributes field's value.
14915func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
14916	s.Attributes = v
14917	return s
14918}
14919
14920// SetCluster sets the Cluster field's value.
14921func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
14922	s.Cluster = &v
14923	return s
14924}
14925
14926// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
14927func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
14928	s.ContainerInstanceArn = &v
14929	return s
14930}
14931
14932// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
14933func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
14934	s.InstanceIdentityDocument = &v
14935	return s
14936}
14937
14938// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
14939func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
14940	s.InstanceIdentityDocumentSignature = &v
14941	return s
14942}
14943
14944// SetPlatformDevices sets the PlatformDevices field's value.
14945func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
14946	s.PlatformDevices = v
14947	return s
14948}
14949
14950// SetTags sets the Tags field's value.
14951func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
14952	s.Tags = v
14953	return s
14954}
14955
14956// SetTotalResources sets the TotalResources field's value.
14957func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
14958	s.TotalResources = v
14959	return s
14960}
14961
14962// SetVersionInfo sets the VersionInfo field's value.
14963func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
14964	s.VersionInfo = v
14965	return s
14966}
14967
14968type RegisterContainerInstanceOutput struct {
14969	_ struct{} `type:"structure"`
14970
14971	// The container instance that was registered.
14972	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
14973}
14974
14975// String returns the string representation
14976func (s RegisterContainerInstanceOutput) String() string {
14977	return awsutil.Prettify(s)
14978}
14979
14980// GoString returns the string representation
14981func (s RegisterContainerInstanceOutput) GoString() string {
14982	return s.String()
14983}
14984
14985// SetContainerInstance sets the ContainerInstance field's value.
14986func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
14987	s.ContainerInstance = v
14988	return s
14989}
14990
14991type RegisterTaskDefinitionInput struct {
14992	_ struct{} `type:"structure"`
14993
14994	// A list of container definitions in JSON format that describe the different
14995	// containers that make up your task.
14996	//
14997	// ContainerDefinitions is a required field
14998	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
14999
15000	// The number of CPU units used by the task. It can be expressed as an integer
15001	// using CPU units, for example 1024, or as a string using vCPUs, for example
15002	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
15003	// integer indicating the CPU units when the task definition is registered.
15004	//
15005	// Task-level CPU and memory parameters are ignored for Windows containers.
15006	// We recommend specifying container-level resources for Windows containers.
15007	//
15008	// If you are using the EC2 launch type, this field is optional. Supported values
15009	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
15010	//
15011	// If you are using the Fargate launch type, this field is required and you
15012	// must use one of the following values, which determines your range of supported
15013	// values for the memory parameter:
15014	//
15015	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
15016	//    2048 (2 GB)
15017	//
15018	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
15019	//    (3 GB), 4096 (4 GB)
15020	//
15021	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
15022	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
15023	//
15024	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
15025	//    (16 GB) in increments of 1024 (1 GB)
15026	//
15027	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
15028	//    (30 GB) in increments of 1024 (1 GB)
15029	Cpu *string `locationName:"cpu" type:"string"`
15030
15031	// The Amazon Resource Name (ARN) of the task execution role that grants the
15032	// Amazon ECS container agent permission to make AWS API calls on your behalf.
15033	// The task execution IAM role is required depending on the requirements of
15034	// your task. For more information, see Amazon ECS task execution IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
15035	// in the Amazon Elastic Container Service Developer Guide.
15036	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
15037
15038	// You must specify a family for a task definition, which allows you to track
15039	// multiple versions of the same task definition. The family is used as a name
15040	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
15041	// and hyphens are allowed.
15042	//
15043	// Family is a required field
15044	Family *string `locationName:"family" type:"string" required:"true"`
15045
15046	// The Elastic Inference accelerators to use for the containers in the task.
15047	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
15048
15049	// The IPC resource namespace to use for the containers in the task. The valid
15050	// values are host, task, or none. If host is specified, then all containers
15051	// within the tasks that specified the host IPC mode on the same container instance
15052	// share the same IPC resources with the host Amazon EC2 instance. If task is
15053	// specified, all containers within the specified task share the same IPC resources.
15054	// If none is specified, then IPC resources within the containers of a task
15055	// are private and not shared with other containers in a task or on the container
15056	// instance. If no value is specified, then the IPC resource namespace sharing
15057	// depends on the Docker daemon setting on the container instance. For more
15058	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
15059	// in the Docker run reference.
15060	//
15061	// If the host IPC mode is used, be aware that there is a heightened risk of
15062	// undesired IPC namespace expose. For more information, see Docker security
15063	// (https://docs.docker.com/engine/security/security/).
15064	//
15065	// If you are setting namespaced kernel parameters using systemControls for
15066	// the containers in the task, the following will apply to your IPC resource
15067	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
15068	// in the Amazon Elastic Container Service Developer Guide.
15069	//
15070	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
15071	//    are not supported.
15072	//
15073	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
15074	//    will apply to all containers within a task.
15075	//
15076	// This parameter is not supported for Windows containers or tasks using the
15077	// Fargate launch type.
15078	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
15079
15080	// The amount of memory (in MiB) used by the task. It can be expressed as an
15081	// integer using MiB, for example 1024, or as a string using GB, for example
15082	// 1GB or 1 GB, in a task definition. String values are converted to an integer
15083	// indicating the MiB when the task definition is registered.
15084	//
15085	// Task-level CPU and memory parameters are ignored for Windows containers.
15086	// We recommend specifying container-level resources for Windows containers.
15087	//
15088	// If using the EC2 launch type, this field is optional.
15089	//
15090	// If using the Fargate launch type, this field is required and you must use
15091	// one of the following values, which determines your range of supported values
15092	// for the cpu parameter:
15093	//
15094	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
15095	//    vCPU)
15096	//
15097	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
15098	//    512 (.5 vCPU)
15099	//
15100	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
15101	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
15102	//
15103	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
15104	//    Available cpu values: 2048 (2 vCPU)
15105	//
15106	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
15107	//    Available cpu values: 4096 (4 vCPU)
15108	Memory *string `locationName:"memory" type:"string"`
15109
15110	// The Docker networking mode to use for the containers in the task. The valid
15111	// values are none, bridge, awsvpc, and host. The default Docker network mode
15112	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
15113	// is required. If you are using the EC2 launch type, any network mode can be
15114	// used. If the network mode is set to none, you cannot specify port mappings
15115	// in your container definitions, and the tasks containers do not have external
15116	// connectivity. The host and awsvpc network modes offer the highest networking
15117	// performance for containers because they use the EC2 network stack instead
15118	// of the virtualized network stack provided by the bridge mode.
15119	//
15120	// With the host and awsvpc network modes, exposed container ports are mapped
15121	// directly to the corresponding host port (for the host network mode) or the
15122	// attached elastic network interface port (for the awsvpc network mode), so
15123	// you cannot take advantage of dynamic host port mappings.
15124	//
15125	// If the network mode is awsvpc, the task is allocated an elastic network interface,
15126	// and you must specify a NetworkConfiguration value when you create a service
15127	// or run a task with the task definition. For more information, see Task Networking
15128	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15129	// in the Amazon Elastic Container Service Developer Guide.
15130	//
15131	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
15132	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
15133	// mode.
15134	//
15135	// If the network mode is host, you cannot run multiple instantiations of the
15136	// same task on a single container instance when port mappings are used.
15137	//
15138	// Docker for Windows uses different network modes than Docker for Linux. When
15139	// you register a task definition with Windows containers, you must not specify
15140	// a network mode. If you use the console to register a task definition with
15141	// Windows containers, you must choose the <default> network mode object.
15142	//
15143	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
15144	// in the Docker run reference.
15145	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
15146
15147	// The process namespace to use for the containers in the task. The valid values
15148	// are host or task. If host is specified, then all containers within the tasks
15149	// that specified the host PID mode on the same container instance share the
15150	// same process namespace with the host Amazon EC2 instance. If task is specified,
15151	// all containers within the specified task share the same process namespace.
15152	// If no value is specified, the default is a private namespace. For more information,
15153	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
15154	// in the Docker run reference.
15155	//
15156	// If the host PID mode is used, be aware that there is a heightened risk of
15157	// undesired process namespace expose. For more information, see Docker security
15158	// (https://docs.docker.com/engine/security/security/).
15159	//
15160	// This parameter is not supported for Windows containers or tasks using the
15161	// Fargate launch type.
15162	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
15163
15164	// An array of placement constraint objects to use for the task. You can specify
15165	// a maximum of 10 constraints per task (this limit includes constraints in
15166	// the task definition and those specified at runtime).
15167	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
15168
15169	// The configuration details for the App Mesh proxy.
15170	//
15171	// For tasks using the EC2 launch type, the container instances require at least
15172	// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
15173	// ecs-init package to enable a proxy configuration. If your container instances
15174	// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
15175	// then they contain the required versions of the container agent and ecs-init.
15176	// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
15177	// in the Amazon Elastic Container Service Developer Guide.
15178	//
15179	// For tasks using the Fargate launch type, the task or service requires platform
15180	// version 1.3.0 or later.
15181	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
15182
15183	// The launch type required by the task. If no value is specified, it defaults
15184	// to EC2.
15185	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
15186
15187	// The metadata that you apply to the task definition to help you categorize
15188	// and organize them. Each tag consists of a key and an optional value, both
15189	// of which you define.
15190	//
15191	// The following basic restrictions apply to tags:
15192	//
15193	//    * Maximum number of tags per resource - 50
15194	//
15195	//    * For each resource, each tag key must be unique, and each tag key can
15196	//    have only one value.
15197	//
15198	//    * Maximum key length - 128 Unicode characters in UTF-8
15199	//
15200	//    * Maximum value length - 256 Unicode characters in UTF-8
15201	//
15202	//    * If your tagging schema is used across multiple services and resources,
15203	//    remember that other services may have restrictions on allowed characters.
15204	//    Generally allowed characters are: letters, numbers, and spaces representable
15205	//    in UTF-8, and the following characters: + - = . _ : / @.
15206	//
15207	//    * Tag keys and values are case-sensitive.
15208	//
15209	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15210	//    as a prefix for either keys or values as it is reserved for AWS use. You
15211	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15212	//    prefix do not count against your tags per resource limit.
15213	Tags []*Tag `locationName:"tags" type:"list"`
15214
15215	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
15216	// in this task can assume. All containers in this task are granted the permissions
15217	// that are specified in this role. For more information, see IAM Roles for
15218	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
15219	// in the Amazon Elastic Container Service Developer Guide.
15220	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
15221
15222	// A list of volume definitions in JSON format that containers in your task
15223	// may use.
15224	Volumes []*Volume `locationName:"volumes" type:"list"`
15225}
15226
15227// String returns the string representation
15228func (s RegisterTaskDefinitionInput) String() string {
15229	return awsutil.Prettify(s)
15230}
15231
15232// GoString returns the string representation
15233func (s RegisterTaskDefinitionInput) GoString() string {
15234	return s.String()
15235}
15236
15237// Validate inspects the fields of the type to determine if they are valid.
15238func (s *RegisterTaskDefinitionInput) Validate() error {
15239	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
15240	if s.ContainerDefinitions == nil {
15241		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
15242	}
15243	if s.Family == nil {
15244		invalidParams.Add(request.NewErrParamRequired("Family"))
15245	}
15246	if s.ContainerDefinitions != nil {
15247		for i, v := range s.ContainerDefinitions {
15248			if v == nil {
15249				continue
15250			}
15251			if err := v.Validate(); err != nil {
15252				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
15253			}
15254		}
15255	}
15256	if s.InferenceAccelerators != nil {
15257		for i, v := range s.InferenceAccelerators {
15258			if v == nil {
15259				continue
15260			}
15261			if err := v.Validate(); err != nil {
15262				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
15263			}
15264		}
15265	}
15266	if s.ProxyConfiguration != nil {
15267		if err := s.ProxyConfiguration.Validate(); err != nil {
15268			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
15269		}
15270	}
15271	if s.Tags != nil {
15272		for i, v := range s.Tags {
15273			if v == nil {
15274				continue
15275			}
15276			if err := v.Validate(); err != nil {
15277				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15278			}
15279		}
15280	}
15281	if s.Volumes != nil {
15282		for i, v := range s.Volumes {
15283			if v == nil {
15284				continue
15285			}
15286			if err := v.Validate(); err != nil {
15287				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
15288			}
15289		}
15290	}
15291
15292	if invalidParams.Len() > 0 {
15293		return invalidParams
15294	}
15295	return nil
15296}
15297
15298// SetContainerDefinitions sets the ContainerDefinitions field's value.
15299func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
15300	s.ContainerDefinitions = v
15301	return s
15302}
15303
15304// SetCpu sets the Cpu field's value.
15305func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
15306	s.Cpu = &v
15307	return s
15308}
15309
15310// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
15311func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
15312	s.ExecutionRoleArn = &v
15313	return s
15314}
15315
15316// SetFamily sets the Family field's value.
15317func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
15318	s.Family = &v
15319	return s
15320}
15321
15322// SetInferenceAccelerators sets the InferenceAccelerators field's value.
15323func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
15324	s.InferenceAccelerators = v
15325	return s
15326}
15327
15328// SetIpcMode sets the IpcMode field's value.
15329func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
15330	s.IpcMode = &v
15331	return s
15332}
15333
15334// SetMemory sets the Memory field's value.
15335func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
15336	s.Memory = &v
15337	return s
15338}
15339
15340// SetNetworkMode sets the NetworkMode field's value.
15341func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
15342	s.NetworkMode = &v
15343	return s
15344}
15345
15346// SetPidMode sets the PidMode field's value.
15347func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
15348	s.PidMode = &v
15349	return s
15350}
15351
15352// SetPlacementConstraints sets the PlacementConstraints field's value.
15353func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
15354	s.PlacementConstraints = v
15355	return s
15356}
15357
15358// SetProxyConfiguration sets the ProxyConfiguration field's value.
15359func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
15360	s.ProxyConfiguration = v
15361	return s
15362}
15363
15364// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
15365func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
15366	s.RequiresCompatibilities = v
15367	return s
15368}
15369
15370// SetTags sets the Tags field's value.
15371func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
15372	s.Tags = v
15373	return s
15374}
15375
15376// SetTaskRoleArn sets the TaskRoleArn field's value.
15377func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
15378	s.TaskRoleArn = &v
15379	return s
15380}
15381
15382// SetVolumes sets the Volumes field's value.
15383func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
15384	s.Volumes = v
15385	return s
15386}
15387
15388type RegisterTaskDefinitionOutput struct {
15389	_ struct{} `type:"structure"`
15390
15391	// The list of tags associated with the task definition.
15392	Tags []*Tag `locationName:"tags" type:"list"`
15393
15394	// The full description of the registered task definition.
15395	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
15396}
15397
15398// String returns the string representation
15399func (s RegisterTaskDefinitionOutput) String() string {
15400	return awsutil.Prettify(s)
15401}
15402
15403// GoString returns the string representation
15404func (s RegisterTaskDefinitionOutput) GoString() string {
15405	return s.String()
15406}
15407
15408// SetTags sets the Tags field's value.
15409func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
15410	s.Tags = v
15411	return s
15412}
15413
15414// SetTaskDefinition sets the TaskDefinition field's value.
15415func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
15416	s.TaskDefinition = v
15417	return s
15418}
15419
15420// The repository credentials for private registry authentication.
15421type RepositoryCredentials struct {
15422	_ struct{} `type:"structure"`
15423
15424	// The Amazon Resource Name (ARN) of the secret containing the private repository
15425	// credentials.
15426	//
15427	// When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret
15428	// exists in the same Region as the task that you are launching then you can
15429	// use either the full ARN or the name of the secret. When you are using the
15430	// AWS Management Console, you must specify the full ARN of the secret.
15431	//
15432	// CredentialsParameter is a required field
15433	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
15434}
15435
15436// String returns the string representation
15437func (s RepositoryCredentials) String() string {
15438	return awsutil.Prettify(s)
15439}
15440
15441// GoString returns the string representation
15442func (s RepositoryCredentials) GoString() string {
15443	return s.String()
15444}
15445
15446// Validate inspects the fields of the type to determine if they are valid.
15447func (s *RepositoryCredentials) Validate() error {
15448	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
15449	if s.CredentialsParameter == nil {
15450		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
15451	}
15452
15453	if invalidParams.Len() > 0 {
15454		return invalidParams
15455	}
15456	return nil
15457}
15458
15459// SetCredentialsParameter sets the CredentialsParameter field's value.
15460func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
15461	s.CredentialsParameter = &v
15462	return s
15463}
15464
15465// Describes the resources available for a container instance.
15466type Resource struct {
15467	_ struct{} `type:"structure"`
15468
15469	// When the doubleValue type is set, the value of the resource must be a double
15470	// precision floating-point type.
15471	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
15472
15473	// When the integerValue type is set, the value of the resource must be an integer.
15474	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
15475
15476	// When the longValue type is set, the value of the resource must be an extended
15477	// precision floating-point type.
15478	LongValue *int64 `locationName:"longValue" type:"long"`
15479
15480	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
15481	// resource.
15482	Name *string `locationName:"name" type:"string"`
15483
15484	// When the stringSetValue type is set, the value of the resource must be a
15485	// string type.
15486	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
15487
15488	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
15489	Type *string `locationName:"type" type:"string"`
15490}
15491
15492// String returns the string representation
15493func (s Resource) String() string {
15494	return awsutil.Prettify(s)
15495}
15496
15497// GoString returns the string representation
15498func (s Resource) GoString() string {
15499	return s.String()
15500}
15501
15502// SetDoubleValue sets the DoubleValue field's value.
15503func (s *Resource) SetDoubleValue(v float64) *Resource {
15504	s.DoubleValue = &v
15505	return s
15506}
15507
15508// SetIntegerValue sets the IntegerValue field's value.
15509func (s *Resource) SetIntegerValue(v int64) *Resource {
15510	s.IntegerValue = &v
15511	return s
15512}
15513
15514// SetLongValue sets the LongValue field's value.
15515func (s *Resource) SetLongValue(v int64) *Resource {
15516	s.LongValue = &v
15517	return s
15518}
15519
15520// SetName sets the Name field's value.
15521func (s *Resource) SetName(v string) *Resource {
15522	s.Name = &v
15523	return s
15524}
15525
15526// SetStringSetValue sets the StringSetValue field's value.
15527func (s *Resource) SetStringSetValue(v []*string) *Resource {
15528	s.StringSetValue = v
15529	return s
15530}
15531
15532// SetType sets the Type field's value.
15533func (s *Resource) SetType(v string) *Resource {
15534	s.Type = &v
15535	return s
15536}
15537
15538// The specified resource is in-use and cannot be removed.
15539type ResourceInUseException struct {
15540	_            struct{}                  `type:"structure"`
15541	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15542
15543	Message_ *string `locationName:"message" type:"string"`
15544}
15545
15546// String returns the string representation
15547func (s ResourceInUseException) String() string {
15548	return awsutil.Prettify(s)
15549}
15550
15551// GoString returns the string representation
15552func (s ResourceInUseException) GoString() string {
15553	return s.String()
15554}
15555
15556func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
15557	return &ResourceInUseException{
15558		RespMetadata: v,
15559	}
15560}
15561
15562// Code returns the exception type name.
15563func (s *ResourceInUseException) Code() string {
15564	return "ResourceInUseException"
15565}
15566
15567// Message returns the exception's message.
15568func (s *ResourceInUseException) Message() string {
15569	if s.Message_ != nil {
15570		return *s.Message_
15571	}
15572	return ""
15573}
15574
15575// OrigErr always returns nil, satisfies awserr.Error interface.
15576func (s *ResourceInUseException) OrigErr() error {
15577	return nil
15578}
15579
15580func (s *ResourceInUseException) Error() string {
15581	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15582}
15583
15584// Status code returns the HTTP status code for the request's response error.
15585func (s *ResourceInUseException) StatusCode() int {
15586	return s.RespMetadata.StatusCode
15587}
15588
15589// RequestID returns the service's response RequestID for request.
15590func (s *ResourceInUseException) RequestID() string {
15591	return s.RespMetadata.RequestID
15592}
15593
15594// The specified resource could not be found.
15595type ResourceNotFoundException struct {
15596	_            struct{}                  `type:"structure"`
15597	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15598
15599	Message_ *string `locationName:"message" type:"string"`
15600}
15601
15602// String returns the string representation
15603func (s ResourceNotFoundException) String() string {
15604	return awsutil.Prettify(s)
15605}
15606
15607// GoString returns the string representation
15608func (s ResourceNotFoundException) GoString() string {
15609	return s.String()
15610}
15611
15612func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
15613	return &ResourceNotFoundException{
15614		RespMetadata: v,
15615	}
15616}
15617
15618// Code returns the exception type name.
15619func (s *ResourceNotFoundException) Code() string {
15620	return "ResourceNotFoundException"
15621}
15622
15623// Message returns the exception's message.
15624func (s *ResourceNotFoundException) Message() string {
15625	if s.Message_ != nil {
15626		return *s.Message_
15627	}
15628	return ""
15629}
15630
15631// OrigErr always returns nil, satisfies awserr.Error interface.
15632func (s *ResourceNotFoundException) OrigErr() error {
15633	return nil
15634}
15635
15636func (s *ResourceNotFoundException) Error() string {
15637	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15638}
15639
15640// Status code returns the HTTP status code for the request's response error.
15641func (s *ResourceNotFoundException) StatusCode() int {
15642	return s.RespMetadata.StatusCode
15643}
15644
15645// RequestID returns the service's response RequestID for request.
15646func (s *ResourceNotFoundException) RequestID() string {
15647	return s.RespMetadata.RequestID
15648}
15649
15650// The type and amount of a resource to assign to a container. The supported
15651// resource types are GPUs and Elastic Inference accelerators. For more information,
15652// see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
15653// or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
15654// in the Amazon Elastic Container Service Developer Guide
15655type ResourceRequirement struct {
15656	_ struct{} `type:"structure"`
15657
15658	// The type of resource to assign to a container. The supported values are GPU
15659	// or InferenceAccelerator.
15660	//
15661	// Type is a required field
15662	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
15663
15664	// The value for the specified resource type.
15665	//
15666	// If the GPU type is used, the value is the number of physical GPUs the Amazon
15667	// ECS container agent will reserve for the container. The number of GPUs reserved
15668	// for all containers in a task should not exceed the number of available GPUs
15669	// on the container instance the task is launched on.
15670	//
15671	// If the InferenceAccelerator type is used, the value should match the deviceName
15672	// for an InferenceAccelerator specified in a task definition.
15673	//
15674	// Value is a required field
15675	Value *string `locationName:"value" type:"string" required:"true"`
15676}
15677
15678// String returns the string representation
15679func (s ResourceRequirement) String() string {
15680	return awsutil.Prettify(s)
15681}
15682
15683// GoString returns the string representation
15684func (s ResourceRequirement) GoString() string {
15685	return s.String()
15686}
15687
15688// Validate inspects the fields of the type to determine if they are valid.
15689func (s *ResourceRequirement) Validate() error {
15690	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
15691	if s.Type == nil {
15692		invalidParams.Add(request.NewErrParamRequired("Type"))
15693	}
15694	if s.Value == nil {
15695		invalidParams.Add(request.NewErrParamRequired("Value"))
15696	}
15697
15698	if invalidParams.Len() > 0 {
15699		return invalidParams
15700	}
15701	return nil
15702}
15703
15704// SetType sets the Type field's value.
15705func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
15706	s.Type = &v
15707	return s
15708}
15709
15710// SetValue sets the Value field's value.
15711func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
15712	s.Value = &v
15713	return s
15714}
15715
15716type RunTaskInput struct {
15717	_ struct{} `type:"structure"`
15718
15719	// The capacity provider strategy to use for the task.
15720	//
15721	// A capacity provider strategy consists of one or more capacity providers along
15722	// with the base and weight to assign to them. A capacity provider must be associated
15723	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
15724	// API is used to associate a capacity provider with a cluster. Only capacity
15725	// providers with an ACTIVE or UPDATING status can be used.
15726	//
15727	// If a capacityProviderStrategy is specified, the launchType parameter must
15728	// be omitted. If no capacityProviderStrategy or launchType is specified, the
15729	// defaultCapacityProviderStrategy for the cluster is used.
15730	//
15731	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
15732	// provider must already be created. New capacity providers can be created with
15733	// the CreateCapacityProvider API operation.
15734	//
15735	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
15736	// capacity providers. The AWS Fargate capacity providers are available to all
15737	// accounts and only need to be associated with a cluster to be used.
15738	//
15739	// The PutClusterCapacityProviders API operation is used to update the list
15740	// of available capacity providers for a cluster after the cluster is created.
15741	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
15742
15743	// The short name or full Amazon Resource Name (ARN) of the cluster on which
15744	// to run your task. If you do not specify a cluster, the default cluster is
15745	// assumed.
15746	Cluster *string `locationName:"cluster" type:"string"`
15747
15748	// The number of instantiations of the specified task to place on your cluster.
15749	// You can specify up to 10 tasks per call.
15750	Count *int64 `locationName:"count" type:"integer"`
15751
15752	// Specifies whether to enable Amazon ECS managed tags for the task. For more
15753	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
15754	// in the Amazon Elastic Container Service Developer Guide.
15755	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
15756
15757	// The name of the task group to associate with the task. The default value
15758	// is the family name of the task definition (for example, family:my-family-name).
15759	Group *string `locationName:"group" type:"string"`
15760
15761	// The launch type on which to run your task. For more information, see Amazon
15762	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
15763	// in the Amazon Elastic Container Service Developer Guide.
15764	//
15765	// If a launchType is specified, the capacityProviderStrategy parameter must
15766	// be omitted.
15767	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
15768
15769	// The network configuration for the task. This parameter is required for task
15770	// definitions that use the awsvpc network mode to receive their own elastic
15771	// network interface, and it is not supported for other network modes. For more
15772	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15773	// in the Amazon Elastic Container Service Developer Guide.
15774	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
15775
15776	// A list of container overrides in JSON format that specify the name of a container
15777	// in the specified task definition and the overrides it should receive. You
15778	// can override the default command for a container (that is specified in the
15779	// task definition or Docker image) with a command override. You can also override
15780	// existing environment variables (that are specified in the task definition
15781	// or Docker image) on a container or add new environment variables to it with
15782	// an environment override.
15783	//
15784	// A total of 8192 characters are allowed for overrides. This limit includes
15785	// the JSON formatting characters of the override structure.
15786	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
15787
15788	// An array of placement constraint objects to use for the task. You can specify
15789	// up to 10 constraints per task (including constraints in the task definition
15790	// and those specified at runtime).
15791	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
15792
15793	// The placement strategy objects to use for the task. You can specify a maximum
15794	// of five strategy rules per task.
15795	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
15796
15797	// The platform version the task should run. A platform version is only specified
15798	// for tasks using the Fargate launch type. If one is not specified, the LATEST
15799	// platform version is used by default. For more information, see AWS Fargate
15800	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
15801	// in the Amazon Elastic Container Service Developer Guide.
15802	PlatformVersion *string `locationName:"platformVersion" type:"string"`
15803
15804	// Specifies whether to propagate the tags from the task definition to the task.
15805	// If no value is specified, the tags are not propagated. Tags can only be propagated
15806	// to the task during task creation. To add tags to a task after task creation,
15807	// use the TagResource API action.
15808	//
15809	// An error will be received if you specify the SERVICE option when running
15810	// a task.
15811	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
15812
15813	// The reference ID to use for the task.
15814	ReferenceId *string `locationName:"referenceId" type:"string"`
15815
15816	// An optional tag specified when a task is started. For example, if you automatically
15817	// trigger a task to run a batch process job, you could apply a unique identifier
15818	// for that job to your task with the startedBy parameter. You can then identify
15819	// which tasks belong to that job by filtering the results of a ListTasks call
15820	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
15821	// hyphens, and underscores are allowed.
15822	//
15823	// If a task is started by an Amazon ECS service, then the startedBy parameter
15824	// contains the deployment ID of the service that starts it.
15825	StartedBy *string `locationName:"startedBy" type:"string"`
15826
15827	// The metadata that you apply to the task to help you categorize and organize
15828	// them. Each tag consists of a key and an optional value, both of which you
15829	// define.
15830	//
15831	// The following basic restrictions apply to tags:
15832	//
15833	//    * Maximum number of tags per resource - 50
15834	//
15835	//    * For each resource, each tag key must be unique, and each tag key can
15836	//    have only one value.
15837	//
15838	//    * Maximum key length - 128 Unicode characters in UTF-8
15839	//
15840	//    * Maximum value length - 256 Unicode characters in UTF-8
15841	//
15842	//    * If your tagging schema is used across multiple services and resources,
15843	//    remember that other services may have restrictions on allowed characters.
15844	//    Generally allowed characters are: letters, numbers, and spaces representable
15845	//    in UTF-8, and the following characters: + - = . _ : / @.
15846	//
15847	//    * Tag keys and values are case-sensitive.
15848	//
15849	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15850	//    as a prefix for either keys or values as it is reserved for AWS use. You
15851	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15852	//    prefix do not count against your tags per resource limit.
15853	Tags []*Tag `locationName:"tags" type:"list"`
15854
15855	// The family and revision (family:revision) or full ARN of the task definition
15856	// to run. If a revision is not specified, the latest ACTIVE revision is used.
15857	//
15858	// TaskDefinition is a required field
15859	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
15860}
15861
15862// String returns the string representation
15863func (s RunTaskInput) String() string {
15864	return awsutil.Prettify(s)
15865}
15866
15867// GoString returns the string representation
15868func (s RunTaskInput) GoString() string {
15869	return s.String()
15870}
15871
15872// Validate inspects the fields of the type to determine if they are valid.
15873func (s *RunTaskInput) Validate() error {
15874	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
15875	if s.TaskDefinition == nil {
15876		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
15877	}
15878	if s.CapacityProviderStrategy != nil {
15879		for i, v := range s.CapacityProviderStrategy {
15880			if v == nil {
15881				continue
15882			}
15883			if err := v.Validate(); err != nil {
15884				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
15885			}
15886		}
15887	}
15888	if s.NetworkConfiguration != nil {
15889		if err := s.NetworkConfiguration.Validate(); err != nil {
15890			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
15891		}
15892	}
15893	if s.Overrides != nil {
15894		if err := s.Overrides.Validate(); err != nil {
15895			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
15896		}
15897	}
15898	if s.Tags != nil {
15899		for i, v := range s.Tags {
15900			if v == nil {
15901				continue
15902			}
15903			if err := v.Validate(); err != nil {
15904				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15905			}
15906		}
15907	}
15908
15909	if invalidParams.Len() > 0 {
15910		return invalidParams
15911	}
15912	return nil
15913}
15914
15915// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
15916func (s *RunTaskInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *RunTaskInput {
15917	s.CapacityProviderStrategy = v
15918	return s
15919}
15920
15921// SetCluster sets the Cluster field's value.
15922func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
15923	s.Cluster = &v
15924	return s
15925}
15926
15927// SetCount sets the Count field's value.
15928func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
15929	s.Count = &v
15930	return s
15931}
15932
15933// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
15934func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
15935	s.EnableECSManagedTags = &v
15936	return s
15937}
15938
15939// SetGroup sets the Group field's value.
15940func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
15941	s.Group = &v
15942	return s
15943}
15944
15945// SetLaunchType sets the LaunchType field's value.
15946func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
15947	s.LaunchType = &v
15948	return s
15949}
15950
15951// SetNetworkConfiguration sets the NetworkConfiguration field's value.
15952func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
15953	s.NetworkConfiguration = v
15954	return s
15955}
15956
15957// SetOverrides sets the Overrides field's value.
15958func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
15959	s.Overrides = v
15960	return s
15961}
15962
15963// SetPlacementConstraints sets the PlacementConstraints field's value.
15964func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
15965	s.PlacementConstraints = v
15966	return s
15967}
15968
15969// SetPlacementStrategy sets the PlacementStrategy field's value.
15970func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
15971	s.PlacementStrategy = v
15972	return s
15973}
15974
15975// SetPlatformVersion sets the PlatformVersion field's value.
15976func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
15977	s.PlatformVersion = &v
15978	return s
15979}
15980
15981// SetPropagateTags sets the PropagateTags field's value.
15982func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
15983	s.PropagateTags = &v
15984	return s
15985}
15986
15987// SetReferenceId sets the ReferenceId field's value.
15988func (s *RunTaskInput) SetReferenceId(v string) *RunTaskInput {
15989	s.ReferenceId = &v
15990	return s
15991}
15992
15993// SetStartedBy sets the StartedBy field's value.
15994func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
15995	s.StartedBy = &v
15996	return s
15997}
15998
15999// SetTags sets the Tags field's value.
16000func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
16001	s.Tags = v
16002	return s
16003}
16004
16005// SetTaskDefinition sets the TaskDefinition field's value.
16006func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
16007	s.TaskDefinition = &v
16008	return s
16009}
16010
16011type RunTaskOutput struct {
16012	_ struct{} `type:"structure"`
16013
16014	// Any failures associated with the call.
16015	Failures []*Failure `locationName:"failures" type:"list"`
16016
16017	// A full description of the tasks that were run. The tasks that were successfully
16018	// placed on your cluster are described here.
16019	Tasks []*Task `locationName:"tasks" type:"list"`
16020}
16021
16022// String returns the string representation
16023func (s RunTaskOutput) String() string {
16024	return awsutil.Prettify(s)
16025}
16026
16027// GoString returns the string representation
16028func (s RunTaskOutput) GoString() string {
16029	return s.String()
16030}
16031
16032// SetFailures sets the Failures field's value.
16033func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
16034	s.Failures = v
16035	return s
16036}
16037
16038// SetTasks sets the Tasks field's value.
16039func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
16040	s.Tasks = v
16041	return s
16042}
16043
16044// A floating-point percentage of the desired number of tasks to place and keep
16045// running in the task set.
16046type Scale struct {
16047	_ struct{} `type:"structure"`
16048
16049	// The unit of measure for the scale value.
16050	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
16051
16052	// The value, specified as a percent total of a service's desiredCount, to scale
16053	// the task set. Accepted values are numbers between 0 and 100.
16054	Value *float64 `locationName:"value" type:"double"`
16055}
16056
16057// String returns the string representation
16058func (s Scale) String() string {
16059	return awsutil.Prettify(s)
16060}
16061
16062// GoString returns the string representation
16063func (s Scale) GoString() string {
16064	return s.String()
16065}
16066
16067// SetUnit sets the Unit field's value.
16068func (s *Scale) SetUnit(v string) *Scale {
16069	s.Unit = &v
16070	return s
16071}
16072
16073// SetValue sets the Value field's value.
16074func (s *Scale) SetValue(v float64) *Scale {
16075	s.Value = &v
16076	return s
16077}
16078
16079// An object representing the secret to expose to your container. Secrets can
16080// be exposed to a container in the following ways:
16081//
16082//    * To inject sensitive data into your containers as environment variables,
16083//    use the secrets container definition parameter.
16084//
16085//    * To reference sensitive information in the log configuration of a container,
16086//    use the secretOptions container definition parameter.
16087//
16088// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
16089// in the Amazon Elastic Container Service Developer Guide.
16090type Secret struct {
16091	_ struct{} `type:"structure"`
16092
16093	// The name of the secret.
16094	//
16095	// Name is a required field
16096	Name *string `locationName:"name" type:"string" required:"true"`
16097
16098	// The secret to expose to the container. The supported values are either the
16099	// full ARN of the AWS Secrets Manager secret or the full ARN of the parameter
16100	// in the AWS Systems Manager Parameter Store.
16101	//
16102	// If the AWS Systems Manager Parameter Store parameter exists in the same Region
16103	// as the task you are launching, then you can use either the full ARN or name
16104	// of the parameter. If the parameter exists in a different Region, then the
16105	// full ARN must be specified.
16106	//
16107	// ValueFrom is a required field
16108	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
16109}
16110
16111// String returns the string representation
16112func (s Secret) String() string {
16113	return awsutil.Prettify(s)
16114}
16115
16116// GoString returns the string representation
16117func (s Secret) GoString() string {
16118	return s.String()
16119}
16120
16121// Validate inspects the fields of the type to determine if they are valid.
16122func (s *Secret) Validate() error {
16123	invalidParams := request.ErrInvalidParams{Context: "Secret"}
16124	if s.Name == nil {
16125		invalidParams.Add(request.NewErrParamRequired("Name"))
16126	}
16127	if s.ValueFrom == nil {
16128		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
16129	}
16130
16131	if invalidParams.Len() > 0 {
16132		return invalidParams
16133	}
16134	return nil
16135}
16136
16137// SetName sets the Name field's value.
16138func (s *Secret) SetName(v string) *Secret {
16139	s.Name = &v
16140	return s
16141}
16142
16143// SetValueFrom sets the ValueFrom field's value.
16144func (s *Secret) SetValueFrom(v string) *Secret {
16145	s.ValueFrom = &v
16146	return s
16147}
16148
16149// These errors are usually caused by a server issue.
16150type ServerException struct {
16151	_            struct{}                  `type:"structure"`
16152	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16153
16154	Message_ *string `locationName:"message" type:"string"`
16155}
16156
16157// String returns the string representation
16158func (s ServerException) String() string {
16159	return awsutil.Prettify(s)
16160}
16161
16162// GoString returns the string representation
16163func (s ServerException) GoString() string {
16164	return s.String()
16165}
16166
16167func newErrorServerException(v protocol.ResponseMetadata) error {
16168	return &ServerException{
16169		RespMetadata: v,
16170	}
16171}
16172
16173// Code returns the exception type name.
16174func (s *ServerException) Code() string {
16175	return "ServerException"
16176}
16177
16178// Message returns the exception's message.
16179func (s *ServerException) Message() string {
16180	if s.Message_ != nil {
16181		return *s.Message_
16182	}
16183	return ""
16184}
16185
16186// OrigErr always returns nil, satisfies awserr.Error interface.
16187func (s *ServerException) OrigErr() error {
16188	return nil
16189}
16190
16191func (s *ServerException) Error() string {
16192	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16193}
16194
16195// Status code returns the HTTP status code for the request's response error.
16196func (s *ServerException) StatusCode() int {
16197	return s.RespMetadata.StatusCode
16198}
16199
16200// RequestID returns the service's response RequestID for request.
16201func (s *ServerException) RequestID() string {
16202	return s.RespMetadata.RequestID
16203}
16204
16205// Details on a service within a cluster
16206type Service struct {
16207	_ struct{} `type:"structure"`
16208
16209	// The capacity provider strategy associated with the service.
16210	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
16211
16212	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
16213	ClusterArn *string `locationName:"clusterArn" type:"string"`
16214
16215	// The Unix timestamp for when the service was created.
16216	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16217
16218	// The principal that created the service.
16219	CreatedBy *string `locationName:"createdBy" type:"string"`
16220
16221	// Optional deployment parameters that control how many tasks run during the
16222	// deployment and the ordering of stopping and starting tasks.
16223	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
16224
16225	// The deployment controller type the service is using. When using the DescribeServices
16226	// API, this field is omitted if the service is using the ECS deployment controller
16227	// type.
16228	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
16229
16230	// The current state of deployments for the service.
16231	Deployments []*Deployment `locationName:"deployments" type:"list"`
16232
16233	// The desired number of instantiations of the task definition to keep running
16234	// on the service. This value is specified when the service is created with
16235	// CreateService, and it can be modified with UpdateService.
16236	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
16237
16238	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
16239	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16240	// in the Amazon Elastic Container Service Developer Guide.
16241	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16242
16243	// The event stream for your service. A maximum of 100 of the latest events
16244	// are displayed.
16245	Events []*ServiceEvent `locationName:"events" type:"list"`
16246
16247	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
16248	// unhealthy Elastic Load Balancing target health checks after a task has first
16249	// started.
16250	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
16251
16252	// The launch type on which your service is running. If no value is specified,
16253	// it will default to EC2. Valid values include EC2 and FARGATE. For more information,
16254	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16255	// in the Amazon Elastic Container Service Developer Guide.
16256	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
16257
16258	// A list of Elastic Load Balancing load balancer objects, containing the load
16259	// balancer name, the container name (as it appears in a container definition),
16260	// and the container port to access from the load balancer.
16261	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
16262
16263	// The VPC subnet and security group configuration for tasks that receive their
16264	// own elastic network interface by using the awsvpc networking mode.
16265	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16266
16267	// The number of tasks in the cluster that are in the PENDING state.
16268	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
16269
16270	// The placement constraints for the tasks in the service.
16271	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
16272
16273	// The placement strategy that determines how tasks for the service are placed.
16274	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
16275
16276	// The platform version on which to run your service. A platform version is
16277	// only specified for tasks using the Fargate launch type. If one is not specified,
16278	// the LATEST platform version is used by default. For more information, see
16279	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16280	// in the Amazon Elastic Container Service Developer Guide.
16281	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16282
16283	// Specifies whether to propagate the tags from the task definition or the service
16284	// to the task. If no value is specified, the tags are not propagated.
16285	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16286
16287	// The ARN of the IAM role associated with the service that allows the Amazon
16288	// ECS container agent to register container instances with an Elastic Load
16289	// Balancing load balancer.
16290	RoleArn *string `locationName:"roleArn" type:"string"`
16291
16292	// The number of tasks in the cluster that are in the RUNNING state.
16293	RunningCount *int64 `locationName:"runningCount" type:"integer"`
16294
16295	// The scheduling strategy to use for the service. For more information, see
16296	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
16297	//
16298	// There are two service scheduler strategies available:
16299	//
16300	//    * REPLICA-The replica scheduling strategy places and maintains the desired
16301	//    number of tasks across your cluster. By default, the service scheduler
16302	//    spreads tasks across Availability Zones. You can use task placement strategies
16303	//    and constraints to customize task placement decisions.
16304	//
16305	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
16306	//    active container instance that meets all of the task placement constraints
16307	//    that you specify in your cluster. The service scheduler also evaluates
16308	//    the task placement constraints for running tasks and will stop tasks that
16309	//    do not meet the placement constraints. Fargate tasks do not support the
16310	//    DAEMON scheduling strategy.
16311	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
16312
16313	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
16314	// followed by the Region of the service, the AWS account ID of the service
16315	// owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.
16316	ServiceArn *string `locationName:"serviceArn" type:"string"`
16317
16318	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
16319	// and hyphens are allowed. Service names must be unique within a cluster, but
16320	// you can have similarly named services in multiple clusters within a Region
16321	// or across multiple Regions.
16322	ServiceName *string `locationName:"serviceName" type:"string"`
16323
16324	// The details of the service discovery registries to assign to this service.
16325	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
16326	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
16327
16328	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
16329	Status *string `locationName:"status" type:"string"`
16330
16331	// The metadata that you apply to the service to help you categorize and organize
16332	// them. Each tag consists of a key and an optional value, both of which you
16333	// define.
16334	//
16335	// The following basic restrictions apply to tags:
16336	//
16337	//    * Maximum number of tags per resource - 50
16338	//
16339	//    * For each resource, each tag key must be unique, and each tag key can
16340	//    have only one value.
16341	//
16342	//    * Maximum key length - 128 Unicode characters in UTF-8
16343	//
16344	//    * Maximum value length - 256 Unicode characters in UTF-8
16345	//
16346	//    * If your tagging schema is used across multiple services and resources,
16347	//    remember that other services may have restrictions on allowed characters.
16348	//    Generally allowed characters are: letters, numbers, and spaces representable
16349	//    in UTF-8, and the following characters: + - = . _ : / @.
16350	//
16351	//    * Tag keys and values are case-sensitive.
16352	//
16353	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16354	//    as a prefix for either keys or values as it is reserved for AWS use. You
16355	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16356	//    prefix do not count against your tags per resource limit.
16357	Tags []*Tag `locationName:"tags" type:"list"`
16358
16359	// The task definition to use for tasks in the service. This value is specified
16360	// when the service is created with CreateService, and it can be modified with
16361	// UpdateService.
16362	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
16363
16364	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
16365	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
16366	// desired number of tasks, how many tasks are running, and whether the task
16367	// set serves production traffic.
16368	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
16369}
16370
16371// String returns the string representation
16372func (s Service) String() string {
16373	return awsutil.Prettify(s)
16374}
16375
16376// GoString returns the string representation
16377func (s Service) GoString() string {
16378	return s.String()
16379}
16380
16381// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
16382func (s *Service) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Service {
16383	s.CapacityProviderStrategy = v
16384	return s
16385}
16386
16387// SetClusterArn sets the ClusterArn field's value.
16388func (s *Service) SetClusterArn(v string) *Service {
16389	s.ClusterArn = &v
16390	return s
16391}
16392
16393// SetCreatedAt sets the CreatedAt field's value.
16394func (s *Service) SetCreatedAt(v time.Time) *Service {
16395	s.CreatedAt = &v
16396	return s
16397}
16398
16399// SetCreatedBy sets the CreatedBy field's value.
16400func (s *Service) SetCreatedBy(v string) *Service {
16401	s.CreatedBy = &v
16402	return s
16403}
16404
16405// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
16406func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
16407	s.DeploymentConfiguration = v
16408	return s
16409}
16410
16411// SetDeploymentController sets the DeploymentController field's value.
16412func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
16413	s.DeploymentController = v
16414	return s
16415}
16416
16417// SetDeployments sets the Deployments field's value.
16418func (s *Service) SetDeployments(v []*Deployment) *Service {
16419	s.Deployments = v
16420	return s
16421}
16422
16423// SetDesiredCount sets the DesiredCount field's value.
16424func (s *Service) SetDesiredCount(v int64) *Service {
16425	s.DesiredCount = &v
16426	return s
16427}
16428
16429// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16430func (s *Service) SetEnableECSManagedTags(v bool) *Service {
16431	s.EnableECSManagedTags = &v
16432	return s
16433}
16434
16435// SetEvents sets the Events field's value.
16436func (s *Service) SetEvents(v []*ServiceEvent) *Service {
16437	s.Events = v
16438	return s
16439}
16440
16441// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
16442func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
16443	s.HealthCheckGracePeriodSeconds = &v
16444	return s
16445}
16446
16447// SetLaunchType sets the LaunchType field's value.
16448func (s *Service) SetLaunchType(v string) *Service {
16449	s.LaunchType = &v
16450	return s
16451}
16452
16453// SetLoadBalancers sets the LoadBalancers field's value.
16454func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
16455	s.LoadBalancers = v
16456	return s
16457}
16458
16459// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16460func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
16461	s.NetworkConfiguration = v
16462	return s
16463}
16464
16465// SetPendingCount sets the PendingCount field's value.
16466func (s *Service) SetPendingCount(v int64) *Service {
16467	s.PendingCount = &v
16468	return s
16469}
16470
16471// SetPlacementConstraints sets the PlacementConstraints field's value.
16472func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
16473	s.PlacementConstraints = v
16474	return s
16475}
16476
16477// SetPlacementStrategy sets the PlacementStrategy field's value.
16478func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
16479	s.PlacementStrategy = v
16480	return s
16481}
16482
16483// SetPlatformVersion sets the PlatformVersion field's value.
16484func (s *Service) SetPlatformVersion(v string) *Service {
16485	s.PlatformVersion = &v
16486	return s
16487}
16488
16489// SetPropagateTags sets the PropagateTags field's value.
16490func (s *Service) SetPropagateTags(v string) *Service {
16491	s.PropagateTags = &v
16492	return s
16493}
16494
16495// SetRoleArn sets the RoleArn field's value.
16496func (s *Service) SetRoleArn(v string) *Service {
16497	s.RoleArn = &v
16498	return s
16499}
16500
16501// SetRunningCount sets the RunningCount field's value.
16502func (s *Service) SetRunningCount(v int64) *Service {
16503	s.RunningCount = &v
16504	return s
16505}
16506
16507// SetSchedulingStrategy sets the SchedulingStrategy field's value.
16508func (s *Service) SetSchedulingStrategy(v string) *Service {
16509	s.SchedulingStrategy = &v
16510	return s
16511}
16512
16513// SetServiceArn sets the ServiceArn field's value.
16514func (s *Service) SetServiceArn(v string) *Service {
16515	s.ServiceArn = &v
16516	return s
16517}
16518
16519// SetServiceName sets the ServiceName field's value.
16520func (s *Service) SetServiceName(v string) *Service {
16521	s.ServiceName = &v
16522	return s
16523}
16524
16525// SetServiceRegistries sets the ServiceRegistries field's value.
16526func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
16527	s.ServiceRegistries = v
16528	return s
16529}
16530
16531// SetStatus sets the Status field's value.
16532func (s *Service) SetStatus(v string) *Service {
16533	s.Status = &v
16534	return s
16535}
16536
16537// SetTags sets the Tags field's value.
16538func (s *Service) SetTags(v []*Tag) *Service {
16539	s.Tags = v
16540	return s
16541}
16542
16543// SetTaskDefinition sets the TaskDefinition field's value.
16544func (s *Service) SetTaskDefinition(v string) *Service {
16545	s.TaskDefinition = &v
16546	return s
16547}
16548
16549// SetTaskSets sets the TaskSets field's value.
16550func (s *Service) SetTaskSets(v []*TaskSet) *Service {
16551	s.TaskSets = v
16552	return s
16553}
16554
16555// Details on an event associated with a service.
16556type ServiceEvent struct {
16557	_ struct{} `type:"structure"`
16558
16559	// The Unix timestamp for when the event was triggered.
16560	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16561
16562	// The ID string of the event.
16563	Id *string `locationName:"id" type:"string"`
16564
16565	// The event message.
16566	Message *string `locationName:"message" type:"string"`
16567}
16568
16569// String returns the string representation
16570func (s ServiceEvent) String() string {
16571	return awsutil.Prettify(s)
16572}
16573
16574// GoString returns the string representation
16575func (s ServiceEvent) GoString() string {
16576	return s.String()
16577}
16578
16579// SetCreatedAt sets the CreatedAt field's value.
16580func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
16581	s.CreatedAt = &v
16582	return s
16583}
16584
16585// SetId sets the Id field's value.
16586func (s *ServiceEvent) SetId(v string) *ServiceEvent {
16587	s.Id = &v
16588	return s
16589}
16590
16591// SetMessage sets the Message field's value.
16592func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
16593	s.Message = &v
16594	return s
16595}
16596
16597// The specified service is not active. You can't update a service that is inactive.
16598// If you have previously deleted a service, you can re-create it with CreateService.
16599type ServiceNotActiveException struct {
16600	_            struct{}                  `type:"structure"`
16601	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16602
16603	Message_ *string `locationName:"message" type:"string"`
16604}
16605
16606// String returns the string representation
16607func (s ServiceNotActiveException) String() string {
16608	return awsutil.Prettify(s)
16609}
16610
16611// GoString returns the string representation
16612func (s ServiceNotActiveException) GoString() string {
16613	return s.String()
16614}
16615
16616func newErrorServiceNotActiveException(v protocol.ResponseMetadata) error {
16617	return &ServiceNotActiveException{
16618		RespMetadata: v,
16619	}
16620}
16621
16622// Code returns the exception type name.
16623func (s *ServiceNotActiveException) Code() string {
16624	return "ServiceNotActiveException"
16625}
16626
16627// Message returns the exception's message.
16628func (s *ServiceNotActiveException) Message() string {
16629	if s.Message_ != nil {
16630		return *s.Message_
16631	}
16632	return ""
16633}
16634
16635// OrigErr always returns nil, satisfies awserr.Error interface.
16636func (s *ServiceNotActiveException) OrigErr() error {
16637	return nil
16638}
16639
16640func (s *ServiceNotActiveException) Error() string {
16641	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16642}
16643
16644// Status code returns the HTTP status code for the request's response error.
16645func (s *ServiceNotActiveException) StatusCode() int {
16646	return s.RespMetadata.StatusCode
16647}
16648
16649// RequestID returns the service's response RequestID for request.
16650func (s *ServiceNotActiveException) RequestID() string {
16651	return s.RespMetadata.RequestID
16652}
16653
16654// The specified service could not be found. You can view your available services
16655// with ListServices. Amazon ECS services are cluster-specific and Region-specific.
16656type ServiceNotFoundException struct {
16657	_            struct{}                  `type:"structure"`
16658	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16659
16660	Message_ *string `locationName:"message" type:"string"`
16661}
16662
16663// String returns the string representation
16664func (s ServiceNotFoundException) String() string {
16665	return awsutil.Prettify(s)
16666}
16667
16668// GoString returns the string representation
16669func (s ServiceNotFoundException) GoString() string {
16670	return s.String()
16671}
16672
16673func newErrorServiceNotFoundException(v protocol.ResponseMetadata) error {
16674	return &ServiceNotFoundException{
16675		RespMetadata: v,
16676	}
16677}
16678
16679// Code returns the exception type name.
16680func (s *ServiceNotFoundException) Code() string {
16681	return "ServiceNotFoundException"
16682}
16683
16684// Message returns the exception's message.
16685func (s *ServiceNotFoundException) Message() string {
16686	if s.Message_ != nil {
16687		return *s.Message_
16688	}
16689	return ""
16690}
16691
16692// OrigErr always returns nil, satisfies awserr.Error interface.
16693func (s *ServiceNotFoundException) OrigErr() error {
16694	return nil
16695}
16696
16697func (s *ServiceNotFoundException) Error() string {
16698	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16699}
16700
16701// Status code returns the HTTP status code for the request's response error.
16702func (s *ServiceNotFoundException) StatusCode() int {
16703	return s.RespMetadata.StatusCode
16704}
16705
16706// RequestID returns the service's response RequestID for request.
16707func (s *ServiceNotFoundException) RequestID() string {
16708	return s.RespMetadata.RequestID
16709}
16710
16711// Details of the service registry.
16712type ServiceRegistry struct {
16713	_ struct{} `type:"structure"`
16714
16715	// The container name value, already specified in the task definition, to be
16716	// used for your service discovery service. If the task definition that your
16717	// service task specifies uses the bridge or host network mode, you must specify
16718	// a containerName and containerPort combination from the task definition. If
16719	// the task definition that your service task specifies uses the awsvpc network
16720	// mode and a type SRV DNS record is used, you must specify either a containerName
16721	// and containerPort combination or a port value, but not both.
16722	ContainerName *string `locationName:"containerName" type:"string"`
16723
16724	// The port value, already specified in the task definition, to be used for
16725	// your service discovery service. If the task definition your service task
16726	// specifies uses the bridge or host network mode, you must specify a containerName
16727	// and containerPort combination from the task definition. If the task definition
16728	// your service task specifies uses the awsvpc network mode and a type SRV DNS
16729	// record is used, you must specify either a containerName and containerPort
16730	// combination or a port value, but not both.
16731	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
16732
16733	// The port value used if your service discovery service specified an SRV record.
16734	// This field may be used if both the awsvpc network mode and SRV records are
16735	// used.
16736	Port *int64 `locationName:"port" type:"integer"`
16737
16738	// The Amazon Resource Name (ARN) of the service registry. The currently supported
16739	// service registry is AWS Cloud Map. For more information, see CreateService
16740	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
16741	RegistryArn *string `locationName:"registryArn" type:"string"`
16742}
16743
16744// String returns the string representation
16745func (s ServiceRegistry) String() string {
16746	return awsutil.Prettify(s)
16747}
16748
16749// GoString returns the string representation
16750func (s ServiceRegistry) GoString() string {
16751	return s.String()
16752}
16753
16754// SetContainerName sets the ContainerName field's value.
16755func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
16756	s.ContainerName = &v
16757	return s
16758}
16759
16760// SetContainerPort sets the ContainerPort field's value.
16761func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
16762	s.ContainerPort = &v
16763	return s
16764}
16765
16766// SetPort sets the Port field's value.
16767func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
16768	s.Port = &v
16769	return s
16770}
16771
16772// SetRegistryArn sets the RegistryArn field's value.
16773func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
16774	s.RegistryArn = &v
16775	return s
16776}
16777
16778// The current account setting for a resource.
16779type Setting struct {
16780	_ struct{} `type:"structure"`
16781
16782	// The Amazon ECS resource name.
16783	Name *string `locationName:"name" type:"string" enum:"SettingName"`
16784
16785	// The ARN of the principal, which can be an IAM user, IAM role, or the root
16786	// user. If this field is omitted, the authenticated user is assumed.
16787	PrincipalArn *string `locationName:"principalArn" type:"string"`
16788
16789	// Whether the account setting is enabled or disabled for the specified resource.
16790	Value *string `locationName:"value" type:"string"`
16791}
16792
16793// String returns the string representation
16794func (s Setting) String() string {
16795	return awsutil.Prettify(s)
16796}
16797
16798// GoString returns the string representation
16799func (s Setting) GoString() string {
16800	return s.String()
16801}
16802
16803// SetName sets the Name field's value.
16804func (s *Setting) SetName(v string) *Setting {
16805	s.Name = &v
16806	return s
16807}
16808
16809// SetPrincipalArn sets the PrincipalArn field's value.
16810func (s *Setting) SetPrincipalArn(v string) *Setting {
16811	s.PrincipalArn = &v
16812	return s
16813}
16814
16815// SetValue sets the Value field's value.
16816func (s *Setting) SetValue(v string) *Setting {
16817	s.Value = &v
16818	return s
16819}
16820
16821type StartTaskInput struct {
16822	_ struct{} `type:"structure"`
16823
16824	// The short name or full Amazon Resource Name (ARN) of the cluster on which
16825	// to start your task. If you do not specify a cluster, the default cluster
16826	// is assumed.
16827	Cluster *string `locationName:"cluster" type:"string"`
16828
16829	// The container instance IDs or full ARN entries for the container instances
16830	// on which you would like to place your task. You can specify up to 10 container
16831	// instances.
16832	//
16833	// ContainerInstances is a required field
16834	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
16835
16836	// Specifies whether to enable Amazon ECS managed tags for the task. For more
16837	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16838	// in the Amazon Elastic Container Service Developer Guide.
16839	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16840
16841	// The name of the task group to associate with the task. The default value
16842	// is the family name of the task definition (for example, family:my-family-name).
16843	Group *string `locationName:"group" type:"string"`
16844
16845	// The VPC subnet and security group configuration for tasks that receive their
16846	// own elastic network interface by using the awsvpc networking mode.
16847	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16848
16849	// A list of container overrides in JSON format that specify the name of a container
16850	// in the specified task definition and the overrides it should receive. You
16851	// can override the default command for a container (that is specified in the
16852	// task definition or Docker image) with a command override. You can also override
16853	// existing environment variables (that are specified in the task definition
16854	// or Docker image) on a container or add new environment variables to it with
16855	// an environment override.
16856	//
16857	// A total of 8192 characters are allowed for overrides. This limit includes
16858	// the JSON formatting characters of the override structure.
16859	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
16860
16861	// Specifies whether to propagate the tags from the task definition or the service
16862	// to the task. If no value is specified, the tags are not propagated.
16863	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16864
16865	// The reference ID to use for the task.
16866	ReferenceId *string `locationName:"referenceId" type:"string"`
16867
16868	// An optional tag specified when a task is started. For example, if you automatically
16869	// trigger a task to run a batch process job, you could apply a unique identifier
16870	// for that job to your task with the startedBy parameter. You can then identify
16871	// which tasks belong to that job by filtering the results of a ListTasks call
16872	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
16873	// hyphens, and underscores are allowed.
16874	//
16875	// If a task is started by an Amazon ECS service, then the startedBy parameter
16876	// contains the deployment ID of the service that starts it.
16877	StartedBy *string `locationName:"startedBy" type:"string"`
16878
16879	// The metadata that you apply to the task to help you categorize and organize
16880	// them. Each tag consists of a key and an optional value, both of which you
16881	// define.
16882	//
16883	// The following basic restrictions apply to tags:
16884	//
16885	//    * Maximum number of tags per resource - 50
16886	//
16887	//    * For each resource, each tag key must be unique, and each tag key can
16888	//    have only one value.
16889	//
16890	//    * Maximum key length - 128 Unicode characters in UTF-8
16891	//
16892	//    * Maximum value length - 256 Unicode characters in UTF-8
16893	//
16894	//    * If your tagging schema is used across multiple services and resources,
16895	//    remember that other services may have restrictions on allowed characters.
16896	//    Generally allowed characters are: letters, numbers, and spaces representable
16897	//    in UTF-8, and the following characters: + - = . _ : / @.
16898	//
16899	//    * Tag keys and values are case-sensitive.
16900	//
16901	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16902	//    as a prefix for either keys or values as it is reserved for AWS use. You
16903	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16904	//    prefix do not count against your tags per resource limit.
16905	Tags []*Tag `locationName:"tags" type:"list"`
16906
16907	// The family and revision (family:revision) or full ARN of the task definition
16908	// to start. If a revision is not specified, the latest ACTIVE revision is used.
16909	//
16910	// TaskDefinition is a required field
16911	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
16912}
16913
16914// String returns the string representation
16915func (s StartTaskInput) String() string {
16916	return awsutil.Prettify(s)
16917}
16918
16919// GoString returns the string representation
16920func (s StartTaskInput) GoString() string {
16921	return s.String()
16922}
16923
16924// Validate inspects the fields of the type to determine if they are valid.
16925func (s *StartTaskInput) Validate() error {
16926	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
16927	if s.ContainerInstances == nil {
16928		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
16929	}
16930	if s.TaskDefinition == nil {
16931		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
16932	}
16933	if s.NetworkConfiguration != nil {
16934		if err := s.NetworkConfiguration.Validate(); err != nil {
16935			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
16936		}
16937	}
16938	if s.Overrides != nil {
16939		if err := s.Overrides.Validate(); err != nil {
16940			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
16941		}
16942	}
16943	if s.Tags != nil {
16944		for i, v := range s.Tags {
16945			if v == nil {
16946				continue
16947			}
16948			if err := v.Validate(); err != nil {
16949				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16950			}
16951		}
16952	}
16953
16954	if invalidParams.Len() > 0 {
16955		return invalidParams
16956	}
16957	return nil
16958}
16959
16960// SetCluster sets the Cluster field's value.
16961func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
16962	s.Cluster = &v
16963	return s
16964}
16965
16966// SetContainerInstances sets the ContainerInstances field's value.
16967func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
16968	s.ContainerInstances = v
16969	return s
16970}
16971
16972// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16973func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
16974	s.EnableECSManagedTags = &v
16975	return s
16976}
16977
16978// SetGroup sets the Group field's value.
16979func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
16980	s.Group = &v
16981	return s
16982}
16983
16984// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16985func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
16986	s.NetworkConfiguration = v
16987	return s
16988}
16989
16990// SetOverrides sets the Overrides field's value.
16991func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
16992	s.Overrides = v
16993	return s
16994}
16995
16996// SetPropagateTags sets the PropagateTags field's value.
16997func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
16998	s.PropagateTags = &v
16999	return s
17000}
17001
17002// SetReferenceId sets the ReferenceId field's value.
17003func (s *StartTaskInput) SetReferenceId(v string) *StartTaskInput {
17004	s.ReferenceId = &v
17005	return s
17006}
17007
17008// SetStartedBy sets the StartedBy field's value.
17009func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
17010	s.StartedBy = &v
17011	return s
17012}
17013
17014// SetTags sets the Tags field's value.
17015func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
17016	s.Tags = v
17017	return s
17018}
17019
17020// SetTaskDefinition sets the TaskDefinition field's value.
17021func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
17022	s.TaskDefinition = &v
17023	return s
17024}
17025
17026type StartTaskOutput struct {
17027	_ struct{} `type:"structure"`
17028
17029	// Any failures associated with the call.
17030	Failures []*Failure `locationName:"failures" type:"list"`
17031
17032	// A full description of the tasks that were started. Each task that was successfully
17033	// placed on your container instances is described.
17034	Tasks []*Task `locationName:"tasks" type:"list"`
17035}
17036
17037// String returns the string representation
17038func (s StartTaskOutput) String() string {
17039	return awsutil.Prettify(s)
17040}
17041
17042// GoString returns the string representation
17043func (s StartTaskOutput) GoString() string {
17044	return s.String()
17045}
17046
17047// SetFailures sets the Failures field's value.
17048func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
17049	s.Failures = v
17050	return s
17051}
17052
17053// SetTasks sets the Tasks field's value.
17054func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
17055	s.Tasks = v
17056	return s
17057}
17058
17059type StopTaskInput struct {
17060	_ struct{} `type:"structure"`
17061
17062	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17063	// the task to stop. If you do not specify a cluster, the default cluster is
17064	// assumed.
17065	Cluster *string `locationName:"cluster" type:"string"`
17066
17067	// An optional message specified when a task is stopped. For example, if you
17068	// are using a custom scheduler, you can use this parameter to specify the reason
17069	// for stopping the task here, and the message appears in subsequent DescribeTasks
17070	// API operations on this task. Up to 255 characters are allowed in this message.
17071	Reason *string `locationName:"reason" type:"string"`
17072
17073	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
17074	//
17075	// Task is a required field
17076	Task *string `locationName:"task" type:"string" required:"true"`
17077}
17078
17079// String returns the string representation
17080func (s StopTaskInput) String() string {
17081	return awsutil.Prettify(s)
17082}
17083
17084// GoString returns the string representation
17085func (s StopTaskInput) GoString() string {
17086	return s.String()
17087}
17088
17089// Validate inspects the fields of the type to determine if they are valid.
17090func (s *StopTaskInput) Validate() error {
17091	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
17092	if s.Task == nil {
17093		invalidParams.Add(request.NewErrParamRequired("Task"))
17094	}
17095
17096	if invalidParams.Len() > 0 {
17097		return invalidParams
17098	}
17099	return nil
17100}
17101
17102// SetCluster sets the Cluster field's value.
17103func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
17104	s.Cluster = &v
17105	return s
17106}
17107
17108// SetReason sets the Reason field's value.
17109func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
17110	s.Reason = &v
17111	return s
17112}
17113
17114// SetTask sets the Task field's value.
17115func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
17116	s.Task = &v
17117	return s
17118}
17119
17120type StopTaskOutput struct {
17121	_ struct{} `type:"structure"`
17122
17123	// The task that was stopped.
17124	Task *Task `locationName:"task" type:"structure"`
17125}
17126
17127// String returns the string representation
17128func (s StopTaskOutput) String() string {
17129	return awsutil.Prettify(s)
17130}
17131
17132// GoString returns the string representation
17133func (s StopTaskOutput) GoString() string {
17134	return s.String()
17135}
17136
17137// SetTask sets the Task field's value.
17138func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
17139	s.Task = v
17140	return s
17141}
17142
17143type SubmitAttachmentStateChangesInput struct {
17144	_ struct{} `type:"structure"`
17145
17146	// Any attachments associated with the state change request.
17147	//
17148	// Attachments is a required field
17149	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
17150
17151	// The short name or full ARN of the cluster that hosts the container instance
17152	// the attachment belongs to.
17153	Cluster *string `locationName:"cluster" type:"string"`
17154}
17155
17156// String returns the string representation
17157func (s SubmitAttachmentStateChangesInput) String() string {
17158	return awsutil.Prettify(s)
17159}
17160
17161// GoString returns the string representation
17162func (s SubmitAttachmentStateChangesInput) GoString() string {
17163	return s.String()
17164}
17165
17166// Validate inspects the fields of the type to determine if they are valid.
17167func (s *SubmitAttachmentStateChangesInput) Validate() error {
17168	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
17169	if s.Attachments == nil {
17170		invalidParams.Add(request.NewErrParamRequired("Attachments"))
17171	}
17172	if s.Attachments != nil {
17173		for i, v := range s.Attachments {
17174			if v == nil {
17175				continue
17176			}
17177			if err := v.Validate(); err != nil {
17178				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
17179			}
17180		}
17181	}
17182
17183	if invalidParams.Len() > 0 {
17184		return invalidParams
17185	}
17186	return nil
17187}
17188
17189// SetAttachments sets the Attachments field's value.
17190func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
17191	s.Attachments = v
17192	return s
17193}
17194
17195// SetCluster sets the Cluster field's value.
17196func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
17197	s.Cluster = &v
17198	return s
17199}
17200
17201type SubmitAttachmentStateChangesOutput struct {
17202	_ struct{} `type:"structure"`
17203
17204	// Acknowledgement of the state change.
17205	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17206}
17207
17208// String returns the string representation
17209func (s SubmitAttachmentStateChangesOutput) String() string {
17210	return awsutil.Prettify(s)
17211}
17212
17213// GoString returns the string representation
17214func (s SubmitAttachmentStateChangesOutput) GoString() string {
17215	return s.String()
17216}
17217
17218// SetAcknowledgment sets the Acknowledgment field's value.
17219func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
17220	s.Acknowledgment = &v
17221	return s
17222}
17223
17224type SubmitContainerStateChangeInput struct {
17225	_ struct{} `type:"structure"`
17226
17227	// The short name or full ARN of the cluster that hosts the container.
17228	Cluster *string `locationName:"cluster" type:"string"`
17229
17230	// The name of the container.
17231	ContainerName *string `locationName:"containerName" type:"string"`
17232
17233	// The exit code returned for the state change request.
17234	ExitCode *int64 `locationName:"exitCode" type:"integer"`
17235
17236	// The network bindings of the container.
17237	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
17238
17239	// The reason for the state change request.
17240	Reason *string `locationName:"reason" type:"string"`
17241
17242	// The ID of the Docker container.
17243	RuntimeId *string `locationName:"runtimeId" type:"string"`
17244
17245	// The status of the state change request.
17246	Status *string `locationName:"status" type:"string"`
17247
17248	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
17249	// container.
17250	Task *string `locationName:"task" type:"string"`
17251}
17252
17253// String returns the string representation
17254func (s SubmitContainerStateChangeInput) String() string {
17255	return awsutil.Prettify(s)
17256}
17257
17258// GoString returns the string representation
17259func (s SubmitContainerStateChangeInput) GoString() string {
17260	return s.String()
17261}
17262
17263// SetCluster sets the Cluster field's value.
17264func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
17265	s.Cluster = &v
17266	return s
17267}
17268
17269// SetContainerName sets the ContainerName field's value.
17270func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
17271	s.ContainerName = &v
17272	return s
17273}
17274
17275// SetExitCode sets the ExitCode field's value.
17276func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
17277	s.ExitCode = &v
17278	return s
17279}
17280
17281// SetNetworkBindings sets the NetworkBindings field's value.
17282func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
17283	s.NetworkBindings = v
17284	return s
17285}
17286
17287// SetReason sets the Reason field's value.
17288func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
17289	s.Reason = &v
17290	return s
17291}
17292
17293// SetRuntimeId sets the RuntimeId field's value.
17294func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
17295	s.RuntimeId = &v
17296	return s
17297}
17298
17299// SetStatus sets the Status field's value.
17300func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
17301	s.Status = &v
17302	return s
17303}
17304
17305// SetTask sets the Task field's value.
17306func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
17307	s.Task = &v
17308	return s
17309}
17310
17311type SubmitContainerStateChangeOutput struct {
17312	_ struct{} `type:"structure"`
17313
17314	// Acknowledgement of the state change.
17315	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17316}
17317
17318// String returns the string representation
17319func (s SubmitContainerStateChangeOutput) String() string {
17320	return awsutil.Prettify(s)
17321}
17322
17323// GoString returns the string representation
17324func (s SubmitContainerStateChangeOutput) GoString() string {
17325	return s.String()
17326}
17327
17328// SetAcknowledgment sets the Acknowledgment field's value.
17329func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
17330	s.Acknowledgment = &v
17331	return s
17332}
17333
17334type SubmitTaskStateChangeInput struct {
17335	_ struct{} `type:"structure"`
17336
17337	// Any attachments associated with the state change request.
17338	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
17339
17340	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17341	// the task.
17342	Cluster *string `locationName:"cluster" type:"string"`
17343
17344	// Any containers associated with the state change request.
17345	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
17346
17347	// The Unix timestamp for when the task execution stopped.
17348	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
17349
17350	// The Unix timestamp for when the container image pull began.
17351	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
17352
17353	// The Unix timestamp for when the container image pull completed.
17354	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
17355
17356	// The reason for the state change request.
17357	Reason *string `locationName:"reason" type:"string"`
17358
17359	// The status of the state change request.
17360	Status *string `locationName:"status" type:"string"`
17361
17362	// The task ID or full ARN of the task in the state change request.
17363	Task *string `locationName:"task" type:"string"`
17364}
17365
17366// String returns the string representation
17367func (s SubmitTaskStateChangeInput) String() string {
17368	return awsutil.Prettify(s)
17369}
17370
17371// GoString returns the string representation
17372func (s SubmitTaskStateChangeInput) GoString() string {
17373	return s.String()
17374}
17375
17376// Validate inspects the fields of the type to determine if they are valid.
17377func (s *SubmitTaskStateChangeInput) Validate() error {
17378	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
17379	if s.Attachments != nil {
17380		for i, v := range s.Attachments {
17381			if v == nil {
17382				continue
17383			}
17384			if err := v.Validate(); err != nil {
17385				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
17386			}
17387		}
17388	}
17389
17390	if invalidParams.Len() > 0 {
17391		return invalidParams
17392	}
17393	return nil
17394}
17395
17396// SetAttachments sets the Attachments field's value.
17397func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
17398	s.Attachments = v
17399	return s
17400}
17401
17402// SetCluster sets the Cluster field's value.
17403func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
17404	s.Cluster = &v
17405	return s
17406}
17407
17408// SetContainers sets the Containers field's value.
17409func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
17410	s.Containers = v
17411	return s
17412}
17413
17414// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
17415func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17416	s.ExecutionStoppedAt = &v
17417	return s
17418}
17419
17420// SetPullStartedAt sets the PullStartedAt field's value.
17421func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
17422	s.PullStartedAt = &v
17423	return s
17424}
17425
17426// SetPullStoppedAt sets the PullStoppedAt field's value.
17427func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17428	s.PullStoppedAt = &v
17429	return s
17430}
17431
17432// SetReason sets the Reason field's value.
17433func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
17434	s.Reason = &v
17435	return s
17436}
17437
17438// SetStatus sets the Status field's value.
17439func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
17440	s.Status = &v
17441	return s
17442}
17443
17444// SetTask sets the Task field's value.
17445func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
17446	s.Task = &v
17447	return s
17448}
17449
17450type SubmitTaskStateChangeOutput struct {
17451	_ struct{} `type:"structure"`
17452
17453	// Acknowledgement of the state change.
17454	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17455}
17456
17457// String returns the string representation
17458func (s SubmitTaskStateChangeOutput) String() string {
17459	return awsutil.Prettify(s)
17460}
17461
17462// GoString returns the string representation
17463func (s SubmitTaskStateChangeOutput) GoString() string {
17464	return s.String()
17465}
17466
17467// SetAcknowledgment sets the Acknowledgment field's value.
17468func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
17469	s.Acknowledgment = &v
17470	return s
17471}
17472
17473// A list of namespaced kernel parameters to set in the container. This parameter
17474// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
17475// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
17476// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
17477//
17478// It is not recommended that you specify network-related systemControls parameters
17479// for multiple containers in a single task that also uses either the awsvpc
17480// or host network mode for the following reasons:
17481//
17482//    * For tasks that use the awsvpc network mode, if you set systemControls
17483//    for any container, it applies to all containers in the task. If you set
17484//    different systemControls for multiple containers in a single task, the
17485//    container that is started last determines which systemControls take effect.
17486//
17487//    * For tasks that use the host network mode, the systemControls parameter
17488//    applies to the container instance's kernel parameter as well as that of
17489//    all containers of any tasks running on that container instance.
17490type SystemControl struct {
17491	_ struct{} `type:"structure"`
17492
17493	// The namespaced kernel parameter for which to set a value.
17494	Namespace *string `locationName:"namespace" type:"string"`
17495
17496	// The value for the namespaced kernel parameter specified in namespace.
17497	Value *string `locationName:"value" type:"string"`
17498}
17499
17500// String returns the string representation
17501func (s SystemControl) String() string {
17502	return awsutil.Prettify(s)
17503}
17504
17505// GoString returns the string representation
17506func (s SystemControl) GoString() string {
17507	return s.String()
17508}
17509
17510// SetNamespace sets the Namespace field's value.
17511func (s *SystemControl) SetNamespace(v string) *SystemControl {
17512	s.Namespace = &v
17513	return s
17514}
17515
17516// SetValue sets the Value field's value.
17517func (s *SystemControl) SetValue(v string) *SystemControl {
17518	s.Value = &v
17519	return s
17520}
17521
17522// The metadata that you apply to a resource to help you categorize and organize
17523// them. Each tag consists of a key and an optional value, both of which you
17524// define.
17525//
17526// The following basic restrictions apply to tags:
17527//
17528//    * Maximum number of tags per resource - 50
17529//
17530//    * For each resource, each tag key must be unique, and each tag key can
17531//    have only one value.
17532//
17533//    * Maximum key length - 128 Unicode characters in UTF-8
17534//
17535//    * Maximum value length - 256 Unicode characters in UTF-8
17536//
17537//    * If your tagging schema is used across multiple services and resources,
17538//    remember that other services may have restrictions on allowed characters.
17539//    Generally allowed characters are: letters, numbers, and spaces representable
17540//    in UTF-8, and the following characters: + - = . _ : / @.
17541//
17542//    * Tag keys and values are case-sensitive.
17543//
17544//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17545//    as a prefix for either keys or values as it is reserved for AWS use. You
17546//    cannot edit or delete tag keys or values with this prefix. Tags with this
17547//    prefix do not count against your tags per resource limit.
17548type Tag struct {
17549	_ struct{} `type:"structure"`
17550
17551	// One part of a key-value pair that make up a tag. A key is a general label
17552	// that acts like a category for more specific tag values.
17553	Key *string `locationName:"key" min:"1" type:"string"`
17554
17555	// The optional part of a key-value pair that make up a tag. A value acts as
17556	// a descriptor within a tag category (key).
17557	Value *string `locationName:"value" type:"string"`
17558}
17559
17560// String returns the string representation
17561func (s Tag) String() string {
17562	return awsutil.Prettify(s)
17563}
17564
17565// GoString returns the string representation
17566func (s Tag) GoString() string {
17567	return s.String()
17568}
17569
17570// Validate inspects the fields of the type to determine if they are valid.
17571func (s *Tag) Validate() error {
17572	invalidParams := request.ErrInvalidParams{Context: "Tag"}
17573	if s.Key != nil && len(*s.Key) < 1 {
17574		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
17575	}
17576
17577	if invalidParams.Len() > 0 {
17578		return invalidParams
17579	}
17580	return nil
17581}
17582
17583// SetKey sets the Key field's value.
17584func (s *Tag) SetKey(v string) *Tag {
17585	s.Key = &v
17586	return s
17587}
17588
17589// SetValue sets the Value field's value.
17590func (s *Tag) SetValue(v string) *Tag {
17591	s.Value = &v
17592	return s
17593}
17594
17595type TagResourceInput struct {
17596	_ struct{} `type:"structure"`
17597
17598	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
17599	// the supported resources are Amazon ECS capacity providers, tasks, services,
17600	// task definitions, clusters, and container instances.
17601	//
17602	// ResourceArn is a required field
17603	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
17604
17605	// The tags to add to the resource. A tag is an array of key-value pairs.
17606	//
17607	// The following basic restrictions apply to tags:
17608	//
17609	//    * Maximum number of tags per resource - 50
17610	//
17611	//    * For each resource, each tag key must be unique, and each tag key can
17612	//    have only one value.
17613	//
17614	//    * Maximum key length - 128 Unicode characters in UTF-8
17615	//
17616	//    * Maximum value length - 256 Unicode characters in UTF-8
17617	//
17618	//    * If your tagging schema is used across multiple services and resources,
17619	//    remember that other services may have restrictions on allowed characters.
17620	//    Generally allowed characters are: letters, numbers, and spaces representable
17621	//    in UTF-8, and the following characters: + - = . _ : / @.
17622	//
17623	//    * Tag keys and values are case-sensitive.
17624	//
17625	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17626	//    as a prefix for either keys or values as it is reserved for AWS use. You
17627	//    cannot edit or delete tag keys or values with this prefix. Tags with this
17628	//    prefix do not count against your tags per resource limit.
17629	//
17630	// Tags is a required field
17631	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
17632}
17633
17634// String returns the string representation
17635func (s TagResourceInput) String() string {
17636	return awsutil.Prettify(s)
17637}
17638
17639// GoString returns the string representation
17640func (s TagResourceInput) GoString() string {
17641	return s.String()
17642}
17643
17644// Validate inspects the fields of the type to determine if they are valid.
17645func (s *TagResourceInput) Validate() error {
17646	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
17647	if s.ResourceArn == nil {
17648		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
17649	}
17650	if s.Tags == nil {
17651		invalidParams.Add(request.NewErrParamRequired("Tags"))
17652	}
17653	if s.Tags != nil {
17654		for i, v := range s.Tags {
17655			if v == nil {
17656				continue
17657			}
17658			if err := v.Validate(); err != nil {
17659				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17660			}
17661		}
17662	}
17663
17664	if invalidParams.Len() > 0 {
17665		return invalidParams
17666	}
17667	return nil
17668}
17669
17670// SetResourceArn sets the ResourceArn field's value.
17671func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
17672	s.ResourceArn = &v
17673	return s
17674}
17675
17676// SetTags sets the Tags field's value.
17677func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
17678	s.Tags = v
17679	return s
17680}
17681
17682type TagResourceOutput struct {
17683	_ struct{} `type:"structure"`
17684}
17685
17686// String returns the string representation
17687func (s TagResourceOutput) String() string {
17688	return awsutil.Prettify(s)
17689}
17690
17691// GoString returns the string representation
17692func (s TagResourceOutput) GoString() string {
17693	return s.String()
17694}
17695
17696// The specified target could not be found. You can view your available container
17697// instances with ListContainerInstances. Amazon ECS container instances are
17698// cluster-specific and Region-specific.
17699type TargetNotFoundException struct {
17700	_            struct{}                  `type:"structure"`
17701	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17702
17703	Message_ *string `locationName:"message" type:"string"`
17704}
17705
17706// String returns the string representation
17707func (s TargetNotFoundException) String() string {
17708	return awsutil.Prettify(s)
17709}
17710
17711// GoString returns the string representation
17712func (s TargetNotFoundException) GoString() string {
17713	return s.String()
17714}
17715
17716func newErrorTargetNotFoundException(v protocol.ResponseMetadata) error {
17717	return &TargetNotFoundException{
17718		RespMetadata: v,
17719	}
17720}
17721
17722// Code returns the exception type name.
17723func (s *TargetNotFoundException) Code() string {
17724	return "TargetNotFoundException"
17725}
17726
17727// Message returns the exception's message.
17728func (s *TargetNotFoundException) Message() string {
17729	if s.Message_ != nil {
17730		return *s.Message_
17731	}
17732	return ""
17733}
17734
17735// OrigErr always returns nil, satisfies awserr.Error interface.
17736func (s *TargetNotFoundException) OrigErr() error {
17737	return nil
17738}
17739
17740func (s *TargetNotFoundException) Error() string {
17741	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17742}
17743
17744// Status code returns the HTTP status code for the request's response error.
17745func (s *TargetNotFoundException) StatusCode() int {
17746	return s.RespMetadata.StatusCode
17747}
17748
17749// RequestID returns the service's response RequestID for request.
17750func (s *TargetNotFoundException) RequestID() string {
17751	return s.RespMetadata.RequestID
17752}
17753
17754// Details on a task in a cluster.
17755type Task struct {
17756	_ struct{} `type:"structure"`
17757
17758	// The Elastic Network Adapter associated with the task if the task uses the
17759	// awsvpc network mode.
17760	Attachments []*Attachment `locationName:"attachments" type:"list"`
17761
17762	// The attributes of the task
17763	Attributes []*Attribute `locationName:"attributes" type:"list"`
17764
17765	// The availability zone of the task.
17766	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
17767
17768	// The capacity provider associated with the task.
17769	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
17770
17771	// The ARN of the cluster that hosts the task.
17772	ClusterArn *string `locationName:"clusterArn" type:"string"`
17773
17774	// The connectivity status of a task.
17775	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
17776
17777	// The Unix timestamp for when the task last went into CONNECTED status.
17778	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
17779
17780	// The ARN of the container instances that host the task.
17781	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
17782
17783	// The containers associated with the task.
17784	Containers []*Container `locationName:"containers" type:"list"`
17785
17786	// The number of CPU units used by the task as expressed in a task definition.
17787	// It can be expressed as an integer using CPU units, for example 1024. It can
17788	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
17789	// String values are converted to an integer indicating the CPU units when the
17790	// task definition is registered.
17791	//
17792	// If you are using the EC2 launch type, this field is optional. Supported values
17793	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
17794	//
17795	// If you are using the Fargate launch type, this field is required and you
17796	// must use one of the following values, which determines your range of supported
17797	// values for the memory parameter:
17798	//
17799	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
17800	//    2048 (2 GB)
17801	//
17802	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
17803	//    (3 GB), 4096 (4 GB)
17804	//
17805	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
17806	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
17807	//
17808	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
17809	//    (16 GB) in increments of 1024 (1 GB)
17810	//
17811	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
17812	//    (30 GB) in increments of 1024 (1 GB)
17813	Cpu *string `locationName:"cpu" type:"string"`
17814
17815	// The Unix timestamp for when the task was created (the task entered the PENDING
17816	// state).
17817	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
17818
17819	// The desired status of the task. For more information, see Task Lifecycle
17820	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
17821	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
17822
17823	// The Unix timestamp for when the task execution stopped.
17824	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
17825
17826	// The name of the task group associated with the task.
17827	Group *string `locationName:"group" type:"string"`
17828
17829	// The health status for the task, which is determined by the health of the
17830	// essential containers in the task. If all essential containers in the task
17831	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
17832	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
17833	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
17834	//
17835	// The Amazon ECS container agent does not monitor or report on Docker health
17836	// checks that are embedded in a container image (such as those specified in
17837	// a parent image or from the image's Dockerfile) and not specified in the container
17838	// definition. Health check parameters that are specified in a container definition
17839	// override any Docker health checks that exist in the container image.
17840	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
17841
17842	// The Elastic Inference accelerator associated with the task.
17843	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
17844
17845	// The last known status of the task. For more information, see Task Lifecycle
17846	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
17847	LastStatus *string `locationName:"lastStatus" type:"string"`
17848
17849	// The launch type on which your task is running. For more information, see
17850	// Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
17851	// in the Amazon Elastic Container Service Developer Guide.
17852	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
17853
17854	// The amount of memory (in MiB) used by the task as expressed in a task definition.
17855	// It can be expressed as an integer using MiB, for example 1024. It can also
17856	// be expressed as a string using GB, for example 1GB or 1 GB. String values
17857	// are converted to an integer indicating the MiB when the task definition is
17858	// registered.
17859	//
17860	// If you are using the EC2 launch type, this field is optional.
17861	//
17862	// If you are using the Fargate launch type, this field is required and you
17863	// must use one of the following values, which determines your range of supported
17864	// values for the cpu parameter:
17865	//
17866	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
17867	//    vCPU)
17868	//
17869	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
17870	//    512 (.5 vCPU)
17871	//
17872	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
17873	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
17874	//
17875	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
17876	//    Available cpu values: 2048 (2 vCPU)
17877	//
17878	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
17879	//    Available cpu values: 4096 (4 vCPU)
17880	Memory *string `locationName:"memory" type:"string"`
17881
17882	// One or more container overrides.
17883	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
17884
17885	// The platform version on which your task is running. A platform version is
17886	// only specified for tasks using the Fargate launch type. If one is not specified,
17887	// the LATEST platform version is used by default. For more information, see
17888	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
17889	// in the Amazon Elastic Container Service Developer Guide.
17890	PlatformVersion *string `locationName:"platformVersion" type:"string"`
17891
17892	// The Unix timestamp for when the container image pull began.
17893	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
17894
17895	// The Unix timestamp for when the container image pull completed.
17896	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
17897
17898	// The Unix timestamp for when the task started (the task transitioned from
17899	// the PENDING state to the RUNNING state).
17900	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
17901
17902	// The tag specified when a task is started. If the task is started by an Amazon
17903	// ECS service, then the startedBy parameter contains the deployment ID of the
17904	// service that starts it.
17905	StartedBy *string `locationName:"startedBy" type:"string"`
17906
17907	// The stop code indicating why a task was stopped. The stoppedReason may contain
17908	// additional details.
17909	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
17910
17911	// The Unix timestamp for when the task was stopped (the task transitioned from
17912	// the RUNNING state to the STOPPED state).
17913	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
17914
17915	// The reason that the task was stopped.
17916	StoppedReason *string `locationName:"stoppedReason" type:"string"`
17917
17918	// The Unix timestamp for when the task stops (transitions from the RUNNING
17919	// state to STOPPED).
17920	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
17921
17922	// The metadata that you apply to the task to help you categorize and organize
17923	// them. Each tag consists of a key and an optional value, both of which you
17924	// define.
17925	//
17926	// The following basic restrictions apply to tags:
17927	//
17928	//    * Maximum number of tags per resource - 50
17929	//
17930	//    * For each resource, each tag key must be unique, and each tag key can
17931	//    have only one value.
17932	//
17933	//    * Maximum key length - 128 Unicode characters in UTF-8
17934	//
17935	//    * Maximum value length - 256 Unicode characters in UTF-8
17936	//
17937	//    * If your tagging schema is used across multiple services and resources,
17938	//    remember that other services may have restrictions on allowed characters.
17939	//    Generally allowed characters are: letters, numbers, and spaces representable
17940	//    in UTF-8, and the following characters: + - = . _ : / @.
17941	//
17942	//    * Tag keys and values are case-sensitive.
17943	//
17944	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17945	//    as a prefix for either keys or values as it is reserved for AWS use. You
17946	//    cannot edit or delete tag keys or values with this prefix. Tags with this
17947	//    prefix do not count against your tags per resource limit.
17948	Tags []*Tag `locationName:"tags" type:"list"`
17949
17950	// The Amazon Resource Name (ARN) of the task.
17951	TaskArn *string `locationName:"taskArn" type:"string"`
17952
17953	// The ARN of the task definition that creates the task.
17954	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
17955
17956	// The version counter for the task. Every time a task experiences a change
17957	// that triggers a CloudWatch event, the version counter is incremented. If
17958	// you are replicating your Amazon ECS task state with CloudWatch Events, you
17959	// can compare the version of a task reported by the Amazon ECS API actions
17960	// with the version reported in CloudWatch Events for the task (inside the detail
17961	// object) to verify that the version in your event stream is current.
17962	Version *int64 `locationName:"version" type:"long"`
17963}
17964
17965// String returns the string representation
17966func (s Task) String() string {
17967	return awsutil.Prettify(s)
17968}
17969
17970// GoString returns the string representation
17971func (s Task) GoString() string {
17972	return s.String()
17973}
17974
17975// SetAttachments sets the Attachments field's value.
17976func (s *Task) SetAttachments(v []*Attachment) *Task {
17977	s.Attachments = v
17978	return s
17979}
17980
17981// SetAttributes sets the Attributes field's value.
17982func (s *Task) SetAttributes(v []*Attribute) *Task {
17983	s.Attributes = v
17984	return s
17985}
17986
17987// SetAvailabilityZone sets the AvailabilityZone field's value.
17988func (s *Task) SetAvailabilityZone(v string) *Task {
17989	s.AvailabilityZone = &v
17990	return s
17991}
17992
17993// SetCapacityProviderName sets the CapacityProviderName field's value.
17994func (s *Task) SetCapacityProviderName(v string) *Task {
17995	s.CapacityProviderName = &v
17996	return s
17997}
17998
17999// SetClusterArn sets the ClusterArn field's value.
18000func (s *Task) SetClusterArn(v string) *Task {
18001	s.ClusterArn = &v
18002	return s
18003}
18004
18005// SetConnectivity sets the Connectivity field's value.
18006func (s *Task) SetConnectivity(v string) *Task {
18007	s.Connectivity = &v
18008	return s
18009}
18010
18011// SetConnectivityAt sets the ConnectivityAt field's value.
18012func (s *Task) SetConnectivityAt(v time.Time) *Task {
18013	s.ConnectivityAt = &v
18014	return s
18015}
18016
18017// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
18018func (s *Task) SetContainerInstanceArn(v string) *Task {
18019	s.ContainerInstanceArn = &v
18020	return s
18021}
18022
18023// SetContainers sets the Containers field's value.
18024func (s *Task) SetContainers(v []*Container) *Task {
18025	s.Containers = v
18026	return s
18027}
18028
18029// SetCpu sets the Cpu field's value.
18030func (s *Task) SetCpu(v string) *Task {
18031	s.Cpu = &v
18032	return s
18033}
18034
18035// SetCreatedAt sets the CreatedAt field's value.
18036func (s *Task) SetCreatedAt(v time.Time) *Task {
18037	s.CreatedAt = &v
18038	return s
18039}
18040
18041// SetDesiredStatus sets the DesiredStatus field's value.
18042func (s *Task) SetDesiredStatus(v string) *Task {
18043	s.DesiredStatus = &v
18044	return s
18045}
18046
18047// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
18048func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
18049	s.ExecutionStoppedAt = &v
18050	return s
18051}
18052
18053// SetGroup sets the Group field's value.
18054func (s *Task) SetGroup(v string) *Task {
18055	s.Group = &v
18056	return s
18057}
18058
18059// SetHealthStatus sets the HealthStatus field's value.
18060func (s *Task) SetHealthStatus(v string) *Task {
18061	s.HealthStatus = &v
18062	return s
18063}
18064
18065// SetInferenceAccelerators sets the InferenceAccelerators field's value.
18066func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
18067	s.InferenceAccelerators = v
18068	return s
18069}
18070
18071// SetLastStatus sets the LastStatus field's value.
18072func (s *Task) SetLastStatus(v string) *Task {
18073	s.LastStatus = &v
18074	return s
18075}
18076
18077// SetLaunchType sets the LaunchType field's value.
18078func (s *Task) SetLaunchType(v string) *Task {
18079	s.LaunchType = &v
18080	return s
18081}
18082
18083// SetMemory sets the Memory field's value.
18084func (s *Task) SetMemory(v string) *Task {
18085	s.Memory = &v
18086	return s
18087}
18088
18089// SetOverrides sets the Overrides field's value.
18090func (s *Task) SetOverrides(v *TaskOverride) *Task {
18091	s.Overrides = v
18092	return s
18093}
18094
18095// SetPlatformVersion sets the PlatformVersion field's value.
18096func (s *Task) SetPlatformVersion(v string) *Task {
18097	s.PlatformVersion = &v
18098	return s
18099}
18100
18101// SetPullStartedAt sets the PullStartedAt field's value.
18102func (s *Task) SetPullStartedAt(v time.Time) *Task {
18103	s.PullStartedAt = &v
18104	return s
18105}
18106
18107// SetPullStoppedAt sets the PullStoppedAt field's value.
18108func (s *Task) SetPullStoppedAt(v time.Time) *Task {
18109	s.PullStoppedAt = &v
18110	return s
18111}
18112
18113// SetStartedAt sets the StartedAt field's value.
18114func (s *Task) SetStartedAt(v time.Time) *Task {
18115	s.StartedAt = &v
18116	return s
18117}
18118
18119// SetStartedBy sets the StartedBy field's value.
18120func (s *Task) SetStartedBy(v string) *Task {
18121	s.StartedBy = &v
18122	return s
18123}
18124
18125// SetStopCode sets the StopCode field's value.
18126func (s *Task) SetStopCode(v string) *Task {
18127	s.StopCode = &v
18128	return s
18129}
18130
18131// SetStoppedAt sets the StoppedAt field's value.
18132func (s *Task) SetStoppedAt(v time.Time) *Task {
18133	s.StoppedAt = &v
18134	return s
18135}
18136
18137// SetStoppedReason sets the StoppedReason field's value.
18138func (s *Task) SetStoppedReason(v string) *Task {
18139	s.StoppedReason = &v
18140	return s
18141}
18142
18143// SetStoppingAt sets the StoppingAt field's value.
18144func (s *Task) SetStoppingAt(v time.Time) *Task {
18145	s.StoppingAt = &v
18146	return s
18147}
18148
18149// SetTags sets the Tags field's value.
18150func (s *Task) SetTags(v []*Tag) *Task {
18151	s.Tags = v
18152	return s
18153}
18154
18155// SetTaskArn sets the TaskArn field's value.
18156func (s *Task) SetTaskArn(v string) *Task {
18157	s.TaskArn = &v
18158	return s
18159}
18160
18161// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
18162func (s *Task) SetTaskDefinitionArn(v string) *Task {
18163	s.TaskDefinitionArn = &v
18164	return s
18165}
18166
18167// SetVersion sets the Version field's value.
18168func (s *Task) SetVersion(v int64) *Task {
18169	s.Version = &v
18170	return s
18171}
18172
18173// The details of a task definition which describes the container and volume
18174// definitions of an Amazon Elastic Container Service task. You can specify
18175// which Docker images to use, the required resources, and other configurations
18176// related to launching the task definition through an Amazon ECS service or
18177// task.
18178type TaskDefinition struct {
18179	_ struct{} `type:"structure"`
18180
18181	// The launch type to use with your task. For more information, see Amazon ECS
18182	// Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
18183	// in the Amazon Elastic Container Service Developer Guide.
18184	Compatibilities []*string `locationName:"compatibilities" type:"list"`
18185
18186	// A list of container definitions in JSON format that describe the different
18187	// containers that make up your task. For more information about container definition
18188	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
18189	// in the Amazon Elastic Container Service Developer Guide.
18190	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
18191
18192	// The number of cpu units used by the task. If you are using the EC2 launch
18193	// type, this field is optional and any value can be used. If you are using
18194	// the Fargate launch type, this field is required and you must use one of the
18195	// following values, which determines your range of valid values for the memory
18196	// parameter:
18197	//
18198	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
18199	//    2048 (2 GB)
18200	//
18201	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
18202	//    (3 GB), 4096 (4 GB)
18203	//
18204	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
18205	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
18206	//
18207	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
18208	//    (16 GB) in increments of 1024 (1 GB)
18209	//
18210	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
18211	//    (30 GB) in increments of 1024 (1 GB)
18212	Cpu *string `locationName:"cpu" type:"string"`
18213
18214	// The Amazon Resource Name (ARN) of the task execution role that grants the
18215	// Amazon ECS container agent permission to make AWS API calls on your behalf.
18216	// The task execution IAM role is required depending on the requirements of
18217	// your task. For more information, see Amazon ECS task execution IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
18218	// in the Amazon Elastic Container Service Developer Guide.
18219	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
18220
18221	// The name of a family that this task definition is registered to. Up to 255
18222	// letters (uppercase and lowercase), numbers, hyphens, and underscores are
18223	// allowed.
18224	//
18225	// A family groups multiple versions of a task definition. Amazon ECS gives
18226	// the first task definition that you registered to a family a revision number
18227	// of 1. Amazon ECS gives sequential revision numbers to each task definition
18228	// that you add.
18229	Family *string `locationName:"family" type:"string"`
18230
18231	// The Elastic Inference accelerator associated with the task.
18232	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
18233
18234	// The IPC resource namespace to use for the containers in the task. The valid
18235	// values are host, task, or none. If host is specified, then all containers
18236	// within the tasks that specified the host IPC mode on the same container instance
18237	// share the same IPC resources with the host Amazon EC2 instance. If task is
18238	// specified, all containers within the specified task share the same IPC resources.
18239	// If none is specified, then IPC resources within the containers of a task
18240	// are private and not shared with other containers in a task or on the container
18241	// instance. If no value is specified, then the IPC resource namespace sharing
18242	// depends on the Docker daemon setting on the container instance. For more
18243	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
18244	// in the Docker run reference.
18245	//
18246	// If the host IPC mode is used, be aware that there is a heightened risk of
18247	// undesired IPC namespace expose. For more information, see Docker security
18248	// (https://docs.docker.com/engine/security/security/).
18249	//
18250	// If you are setting namespaced kernel parameters using systemControls for
18251	// the containers in the task, the following will apply to your IPC resource
18252	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
18253	// in the Amazon Elastic Container Service Developer Guide.
18254	//
18255	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
18256	//    are not supported.
18257	//
18258	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
18259	//    will apply to all containers within a task.
18260	//
18261	// This parameter is not supported for Windows containers or tasks using the
18262	// Fargate launch type.
18263	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
18264
18265	// The amount (in MiB) of memory used by the task.
18266	//
18267	// If using the EC2 launch type, this field is optional and any value can be
18268	// used. If a task-level memory value is specified then the container-level
18269	// memory value is optional.
18270	//
18271	// If using the Fargate launch type, this field is required and you must use
18272	// one of the following values, which determines your range of valid values
18273	// for the cpu parameter:
18274	//
18275	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
18276	//    vCPU)
18277	//
18278	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
18279	//    512 (.5 vCPU)
18280	//
18281	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
18282	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
18283	//
18284	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
18285	//    Available cpu values: 2048 (2 vCPU)
18286	//
18287	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
18288	//    Available cpu values: 4096 (4 vCPU)
18289	Memory *string `locationName:"memory" type:"string"`
18290
18291	// The Docker networking mode to use for the containers in the task. The valid
18292	// values are none, bridge, awsvpc, and host. The default Docker network mode
18293	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
18294	// is required. If you are using the EC2 launch type, any network mode can be
18295	// used. If the network mode is set to none, you cannot specify port mappings
18296	// in your container definitions, and the tasks containers do not have external
18297	// connectivity. The host and awsvpc network modes offer the highest networking
18298	// performance for containers because they use the EC2 network stack instead
18299	// of the virtualized network stack provided by the bridge mode.
18300	//
18301	// With the host and awsvpc network modes, exposed container ports are mapped
18302	// directly to the corresponding host port (for the host network mode) or the
18303	// attached elastic network interface port (for the awsvpc network mode), so
18304	// you cannot take advantage of dynamic host port mappings.
18305	//
18306	// If the network mode is awsvpc, the task is allocated an elastic network interface,
18307	// and you must specify a NetworkConfiguration value when you create a service
18308	// or run a task with the task definition. For more information, see Task Networking
18309	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
18310	// in the Amazon Elastic Container Service Developer Guide.
18311	//
18312	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
18313	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
18314	// mode.
18315	//
18316	// If the network mode is host, you cannot run multiple instantiations of the
18317	// same task on a single container instance when port mappings are used.
18318	//
18319	// Docker for Windows uses different network modes than Docker for Linux. When
18320	// you register a task definition with Windows containers, you must not specify
18321	// a network mode. If you use the console to register a task definition with
18322	// Windows containers, you must choose the <default> network mode object.
18323	//
18324	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
18325	// in the Docker run reference.
18326	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
18327
18328	// The process namespace to use for the containers in the task. The valid values
18329	// are host or task. If host is specified, then all containers within the tasks
18330	// that specified the host PID mode on the same container instance share the
18331	// same process namespace with the host Amazon EC2 instance. If task is specified,
18332	// all containers within the specified task share the same process namespace.
18333	// If no value is specified, the default is a private namespace. For more information,
18334	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
18335	// in the Docker run reference.
18336	//
18337	// If the host PID mode is used, be aware that there is a heightened risk of
18338	// undesired process namespace expose. For more information, see Docker security
18339	// (https://docs.docker.com/engine/security/security/).
18340	//
18341	// This parameter is not supported for Windows containers or tasks using the
18342	// Fargate launch type.
18343	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
18344
18345	// An array of placement constraint objects to use for tasks. This field is
18346	// not valid if you are using the Fargate launch type for your task.
18347	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
18348
18349	// The configuration details for the App Mesh proxy.
18350	//
18351	// Your Amazon ECS container instances require at least version 1.26.0 of the
18352	// container agent and at least version 1.26.0-1 of the ecs-init package to
18353	// enable a proxy configuration. If your container instances are launched from
18354	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
18355	// the required versions of the container agent and ecs-init. For more information,
18356	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
18357	// in the Amazon Elastic Container Service Developer Guide.
18358	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
18359
18360	// The container instance attributes required by your task. This field is not
18361	// valid if you are using the Fargate launch type for your task.
18362	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
18363
18364	// The launch type the task requires. If no value is specified, it will default
18365	// to EC2. Valid values include EC2 and FARGATE.
18366	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
18367
18368	// The revision of the task in a particular family. The revision is a version
18369	// number of a task definition in a family. When you register a task definition
18370	// for the first time, the revision is 1. Each time that you register a new
18371	// revision of a task definition in the same family, the revision value always
18372	// increases by one, even if you have deregistered previous revisions in this
18373	// family.
18374	Revision *int64 `locationName:"revision" type:"integer"`
18375
18376	// The status of the task definition.
18377	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
18378
18379	// The full Amazon Resource Name (ARN) of the task definition.
18380	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
18381
18382	// The short name or full Amazon Resource Name (ARN) of the AWS Identity and
18383	// Access Management (IAM) role that grants containers in the task permission
18384	// to call AWS APIs on your behalf. For more information, see Amazon ECS Task
18385	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
18386	// in the Amazon Elastic Container Service Developer Guide.
18387	//
18388	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
18389	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
18390	// must also run some configuration code in order to take advantage of the feature.
18391	// For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
18392	// in the Amazon Elastic Container Service Developer Guide.
18393	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
18394
18395	// The list of volume definitions for the task.
18396	//
18397	// If your tasks are using the Fargate launch type, the host and sourcePath
18398	// parameters are not supported.
18399	//
18400	// For more information about volume definition parameters and defaults, see
18401	// Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
18402	// in the Amazon Elastic Container Service Developer Guide.
18403	Volumes []*Volume `locationName:"volumes" type:"list"`
18404}
18405
18406// String returns the string representation
18407func (s TaskDefinition) String() string {
18408	return awsutil.Prettify(s)
18409}
18410
18411// GoString returns the string representation
18412func (s TaskDefinition) GoString() string {
18413	return s.String()
18414}
18415
18416// SetCompatibilities sets the Compatibilities field's value.
18417func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
18418	s.Compatibilities = v
18419	return s
18420}
18421
18422// SetContainerDefinitions sets the ContainerDefinitions field's value.
18423func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
18424	s.ContainerDefinitions = v
18425	return s
18426}
18427
18428// SetCpu sets the Cpu field's value.
18429func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
18430	s.Cpu = &v
18431	return s
18432}
18433
18434// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
18435func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
18436	s.ExecutionRoleArn = &v
18437	return s
18438}
18439
18440// SetFamily sets the Family field's value.
18441func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
18442	s.Family = &v
18443	return s
18444}
18445
18446// SetInferenceAccelerators sets the InferenceAccelerators field's value.
18447func (s *TaskDefinition) SetInferenceAccelerators(v []*InferenceAccelerator) *TaskDefinition {
18448	s.InferenceAccelerators = v
18449	return s
18450}
18451
18452// SetIpcMode sets the IpcMode field's value.
18453func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
18454	s.IpcMode = &v
18455	return s
18456}
18457
18458// SetMemory sets the Memory field's value.
18459func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
18460	s.Memory = &v
18461	return s
18462}
18463
18464// SetNetworkMode sets the NetworkMode field's value.
18465func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
18466	s.NetworkMode = &v
18467	return s
18468}
18469
18470// SetPidMode sets the PidMode field's value.
18471func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
18472	s.PidMode = &v
18473	return s
18474}
18475
18476// SetPlacementConstraints sets the PlacementConstraints field's value.
18477func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
18478	s.PlacementConstraints = v
18479	return s
18480}
18481
18482// SetProxyConfiguration sets the ProxyConfiguration field's value.
18483func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
18484	s.ProxyConfiguration = v
18485	return s
18486}
18487
18488// SetRequiresAttributes sets the RequiresAttributes field's value.
18489func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
18490	s.RequiresAttributes = v
18491	return s
18492}
18493
18494// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
18495func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
18496	s.RequiresCompatibilities = v
18497	return s
18498}
18499
18500// SetRevision sets the Revision field's value.
18501func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
18502	s.Revision = &v
18503	return s
18504}
18505
18506// SetStatus sets the Status field's value.
18507func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
18508	s.Status = &v
18509	return s
18510}
18511
18512// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
18513func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
18514	s.TaskDefinitionArn = &v
18515	return s
18516}
18517
18518// SetTaskRoleArn sets the TaskRoleArn field's value.
18519func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
18520	s.TaskRoleArn = &v
18521	return s
18522}
18523
18524// SetVolumes sets the Volumes field's value.
18525func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
18526	s.Volumes = v
18527	return s
18528}
18529
18530// An object representing a constraint on task placement in the task definition.
18531// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
18532// in the Amazon Elastic Container Service Developer Guide.
18533//
18534// If you are using the Fargate launch type, task placement constraints are
18535// not supported.
18536type TaskDefinitionPlacementConstraint struct {
18537	_ struct{} `type:"structure"`
18538
18539	// A cluster query language expression to apply to the constraint. For more
18540	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
18541	// in the Amazon Elastic Container Service Developer Guide.
18542	Expression *string `locationName:"expression" type:"string"`
18543
18544	// The type of constraint. The MemberOf constraint restricts selection to be
18545	// from a group of valid candidates.
18546	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
18547}
18548
18549// String returns the string representation
18550func (s TaskDefinitionPlacementConstraint) String() string {
18551	return awsutil.Prettify(s)
18552}
18553
18554// GoString returns the string representation
18555func (s TaskDefinitionPlacementConstraint) GoString() string {
18556	return s.String()
18557}
18558
18559// SetExpression sets the Expression field's value.
18560func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
18561	s.Expression = &v
18562	return s
18563}
18564
18565// SetType sets the Type field's value.
18566func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
18567	s.Type = &v
18568	return s
18569}
18570
18571// The overrides associated with a task.
18572type TaskOverride struct {
18573	_ struct{} `type:"structure"`
18574
18575	// One or more container overrides sent to a task.
18576	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
18577
18578	// The cpu override for the task.
18579	Cpu *string `locationName:"cpu" type:"string"`
18580
18581	// The Amazon Resource Name (ARN) of the task execution IAM role override for
18582	// the task.
18583	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
18584
18585	// The Elastic Inference accelerator override for the task.
18586	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
18587
18588	// The memory override for the task.
18589	Memory *string `locationName:"memory" type:"string"`
18590
18591	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
18592	// can assume. All containers in this task are granted the permissions that
18593	// are specified in this role.
18594	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
18595}
18596
18597// String returns the string representation
18598func (s TaskOverride) String() string {
18599	return awsutil.Prettify(s)
18600}
18601
18602// GoString returns the string representation
18603func (s TaskOverride) GoString() string {
18604	return s.String()
18605}
18606
18607// Validate inspects the fields of the type to determine if they are valid.
18608func (s *TaskOverride) Validate() error {
18609	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
18610	if s.ContainerOverrides != nil {
18611		for i, v := range s.ContainerOverrides {
18612			if v == nil {
18613				continue
18614			}
18615			if err := v.Validate(); err != nil {
18616				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
18617			}
18618		}
18619	}
18620
18621	if invalidParams.Len() > 0 {
18622		return invalidParams
18623	}
18624	return nil
18625}
18626
18627// SetContainerOverrides sets the ContainerOverrides field's value.
18628func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
18629	s.ContainerOverrides = v
18630	return s
18631}
18632
18633// SetCpu sets the Cpu field's value.
18634func (s *TaskOverride) SetCpu(v string) *TaskOverride {
18635	s.Cpu = &v
18636	return s
18637}
18638
18639// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
18640func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
18641	s.ExecutionRoleArn = &v
18642	return s
18643}
18644
18645// SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
18646func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
18647	s.InferenceAcceleratorOverrides = v
18648	return s
18649}
18650
18651// SetMemory sets the Memory field's value.
18652func (s *TaskOverride) SetMemory(v string) *TaskOverride {
18653	s.Memory = &v
18654	return s
18655}
18656
18657// SetTaskRoleArn sets the TaskRoleArn field's value.
18658func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
18659	s.TaskRoleArn = &v
18660	return s
18661}
18662
18663// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
18664// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
18665// desired number of tasks, how many tasks are running, and whether the task
18666// set serves production traffic.
18667type TaskSet struct {
18668	_ struct{} `type:"structure"`
18669
18670	// The capacity provider strategy associated with the task set.
18671	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
18672
18673	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
18674	// the task set exists in.
18675	ClusterArn *string `locationName:"clusterArn" type:"string"`
18676
18677	// The computed desired count for the task set. This is calculated by multiplying
18678	// the service's desiredCount by the task set's scale percentage. The result
18679	// is always rounded up. For example, if the computed desired count is 1.2,
18680	// it rounds up to 2 tasks.
18681	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
18682
18683	// The Unix timestamp for when the task set was created.
18684	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
18685
18686	// The external ID associated with the task set.
18687	//
18688	// If a task set is created by an AWS CodeDeploy deployment, the externalId
18689	// parameter contains the AWS CodeDeploy deployment ID.
18690	//
18691	// If a task set is created for an external deployment and is associated with
18692	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
18693	// AWS Cloud Map attribute.
18694	ExternalId *string `locationName:"externalId" type:"string"`
18695
18696	// The ID of the task set.
18697	Id *string `locationName:"id" type:"string"`
18698
18699	// The launch type the tasks in the task set are using. For more information,
18700	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
18701	// in the Amazon Elastic Container Service Developer Guide.
18702	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
18703
18704	// Details on a load balancer that is used with a task set.
18705	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
18706
18707	// The network configuration for the task set.
18708	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
18709
18710	// The number of tasks in the task set that are in the PENDING status during
18711	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
18712	// state. A task set enters the PENDING status when it launches for the first
18713	// time or when it is restarted after being in the STOPPED state.
18714	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
18715
18716	// The platform version on which the tasks in the task set are running. A platform
18717	// version is only specified for tasks using the Fargate launch type. If one
18718	// is not specified, the LATEST platform version is used by default. For more
18719	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
18720	// in the Amazon Elastic Container Service Developer Guide.
18721	PlatformVersion *string `locationName:"platformVersion" type:"string"`
18722
18723	// The number of tasks in the task set that are in the RUNNING status during
18724	// a deployment. A task in the RUNNING state is running and ready for use.
18725	RunningCount *int64 `locationName:"runningCount" type:"integer"`
18726
18727	// A floating-point percentage of the desired number of tasks to place and keep
18728	// running in the task set.
18729	Scale *Scale `locationName:"scale" type:"structure"`
18730
18731	// The Amazon Resource Name (ARN) of the service the task set exists in.
18732	ServiceArn *string `locationName:"serviceArn" type:"string"`
18733
18734	// The details of the service discovery registries to assign to this task set.
18735	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
18736	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
18737
18738	// The stability status, which indicates whether the task set has reached a
18739	// steady state. If the following conditions are met, the task set will be in
18740	// STEADY_STATE:
18741	//
18742	//    * The task runningCount is equal to the computedDesiredCount.
18743	//
18744	//    * The pendingCount is 0.
18745	//
18746	//    * There are no tasks running on container instances in the DRAINING status.
18747	//
18748	//    * All tasks are reporting a healthy status from the load balancers, service
18749	//    discovery, and container health checks.
18750	//
18751	// If any of those conditions are not met, the stability status returns STABILIZING.
18752	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
18753
18754	// The Unix timestamp for when the task set stability status was retrieved.
18755	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
18756
18757	// The tag specified when a task set is started. If the task set is created
18758	// by an AWS CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY.
18759	// For a task set created for an external deployment, the startedBy field isn't
18760	// used.
18761	StartedBy *string `locationName:"startedBy" type:"string"`
18762
18763	// The status of the task set. The following describes each state:
18764	//
18765	// PRIMARY
18766	//
18767	// The task set is serving production traffic.
18768	//
18769	// ACTIVE
18770	//
18771	// The task set is not serving production traffic.
18772	//
18773	// DRAINING
18774	//
18775	// The tasks in the task set are being stopped and their corresponding targets
18776	// are being deregistered from their target group.
18777	Status *string `locationName:"status" type:"string"`
18778
18779	// The metadata that you apply to the task set to help you categorize and organize
18780	// them. Each tag consists of a key and an optional value, both of which you
18781	// define.
18782	//
18783	// The following basic restrictions apply to tags:
18784	//
18785	//    * Maximum number of tags per resource - 50
18786	//
18787	//    * For each resource, each tag key must be unique, and each tag key can
18788	//    have only one value.
18789	//
18790	//    * Maximum key length - 128 Unicode characters in UTF-8
18791	//
18792	//    * Maximum value length - 256 Unicode characters in UTF-8
18793	//
18794	//    * If your tagging schema is used across multiple services and resources,
18795	//    remember that other services may have restrictions on allowed characters.
18796	//    Generally allowed characters are: letters, numbers, and spaces representable
18797	//    in UTF-8, and the following characters: + - = . _ : / @.
18798	//
18799	//    * Tag keys and values are case-sensitive.
18800	//
18801	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18802	//    as a prefix for either keys or values as it is reserved for AWS use. You
18803	//    cannot edit or delete tag keys or values with this prefix. Tags with this
18804	//    prefix do not count against your tags per resource limit.
18805	Tags []*Tag `locationName:"tags" type:"list"`
18806
18807	// The task definition the task set is using.
18808	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
18809
18810	// The Amazon Resource Name (ARN) of the task set.
18811	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
18812
18813	// The Unix timestamp for when the task set was last updated.
18814	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
18815}
18816
18817// String returns the string representation
18818func (s TaskSet) String() string {
18819	return awsutil.Prettify(s)
18820}
18821
18822// GoString returns the string representation
18823func (s TaskSet) GoString() string {
18824	return s.String()
18825}
18826
18827// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
18828func (s *TaskSet) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *TaskSet {
18829	s.CapacityProviderStrategy = v
18830	return s
18831}
18832
18833// SetClusterArn sets the ClusterArn field's value.
18834func (s *TaskSet) SetClusterArn(v string) *TaskSet {
18835	s.ClusterArn = &v
18836	return s
18837}
18838
18839// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
18840func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
18841	s.ComputedDesiredCount = &v
18842	return s
18843}
18844
18845// SetCreatedAt sets the CreatedAt field's value.
18846func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
18847	s.CreatedAt = &v
18848	return s
18849}
18850
18851// SetExternalId sets the ExternalId field's value.
18852func (s *TaskSet) SetExternalId(v string) *TaskSet {
18853	s.ExternalId = &v
18854	return s
18855}
18856
18857// SetId sets the Id field's value.
18858func (s *TaskSet) SetId(v string) *TaskSet {
18859	s.Id = &v
18860	return s
18861}
18862
18863// SetLaunchType sets the LaunchType field's value.
18864func (s *TaskSet) SetLaunchType(v string) *TaskSet {
18865	s.LaunchType = &v
18866	return s
18867}
18868
18869// SetLoadBalancers sets the LoadBalancers field's value.
18870func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
18871	s.LoadBalancers = v
18872	return s
18873}
18874
18875// SetNetworkConfiguration sets the NetworkConfiguration field's value.
18876func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
18877	s.NetworkConfiguration = v
18878	return s
18879}
18880
18881// SetPendingCount sets the PendingCount field's value.
18882func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
18883	s.PendingCount = &v
18884	return s
18885}
18886
18887// SetPlatformVersion sets the PlatformVersion field's value.
18888func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
18889	s.PlatformVersion = &v
18890	return s
18891}
18892
18893// SetRunningCount sets the RunningCount field's value.
18894func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
18895	s.RunningCount = &v
18896	return s
18897}
18898
18899// SetScale sets the Scale field's value.
18900func (s *TaskSet) SetScale(v *Scale) *TaskSet {
18901	s.Scale = v
18902	return s
18903}
18904
18905// SetServiceArn sets the ServiceArn field's value.
18906func (s *TaskSet) SetServiceArn(v string) *TaskSet {
18907	s.ServiceArn = &v
18908	return s
18909}
18910
18911// SetServiceRegistries sets the ServiceRegistries field's value.
18912func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
18913	s.ServiceRegistries = v
18914	return s
18915}
18916
18917// SetStabilityStatus sets the StabilityStatus field's value.
18918func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
18919	s.StabilityStatus = &v
18920	return s
18921}
18922
18923// SetStabilityStatusAt sets the StabilityStatusAt field's value.
18924func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
18925	s.StabilityStatusAt = &v
18926	return s
18927}
18928
18929// SetStartedBy sets the StartedBy field's value.
18930func (s *TaskSet) SetStartedBy(v string) *TaskSet {
18931	s.StartedBy = &v
18932	return s
18933}
18934
18935// SetStatus sets the Status field's value.
18936func (s *TaskSet) SetStatus(v string) *TaskSet {
18937	s.Status = &v
18938	return s
18939}
18940
18941// SetTags sets the Tags field's value.
18942func (s *TaskSet) SetTags(v []*Tag) *TaskSet {
18943	s.Tags = v
18944	return s
18945}
18946
18947// SetTaskDefinition sets the TaskDefinition field's value.
18948func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
18949	s.TaskDefinition = &v
18950	return s
18951}
18952
18953// SetTaskSetArn sets the TaskSetArn field's value.
18954func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
18955	s.TaskSetArn = &v
18956	return s
18957}
18958
18959// SetUpdatedAt sets the UpdatedAt field's value.
18960func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
18961	s.UpdatedAt = &v
18962	return s
18963}
18964
18965// The specified task set could not be found. You can view your available task
18966// sets with DescribeTaskSets. Task sets are specific to each cluster, service
18967// and Region.
18968type TaskSetNotFoundException struct {
18969	_            struct{}                  `type:"structure"`
18970	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18971
18972	Message_ *string `locationName:"message" type:"string"`
18973}
18974
18975// String returns the string representation
18976func (s TaskSetNotFoundException) String() string {
18977	return awsutil.Prettify(s)
18978}
18979
18980// GoString returns the string representation
18981func (s TaskSetNotFoundException) GoString() string {
18982	return s.String()
18983}
18984
18985func newErrorTaskSetNotFoundException(v protocol.ResponseMetadata) error {
18986	return &TaskSetNotFoundException{
18987		RespMetadata: v,
18988	}
18989}
18990
18991// Code returns the exception type name.
18992func (s *TaskSetNotFoundException) Code() string {
18993	return "TaskSetNotFoundException"
18994}
18995
18996// Message returns the exception's message.
18997func (s *TaskSetNotFoundException) Message() string {
18998	if s.Message_ != nil {
18999		return *s.Message_
19000	}
19001	return ""
19002}
19003
19004// OrigErr always returns nil, satisfies awserr.Error interface.
19005func (s *TaskSetNotFoundException) OrigErr() error {
19006	return nil
19007}
19008
19009func (s *TaskSetNotFoundException) Error() string {
19010	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19011}
19012
19013// Status code returns the HTTP status code for the request's response error.
19014func (s *TaskSetNotFoundException) StatusCode() int {
19015	return s.RespMetadata.StatusCode
19016}
19017
19018// RequestID returns the service's response RequestID for request.
19019func (s *TaskSetNotFoundException) RequestID() string {
19020	return s.RespMetadata.RequestID
19021}
19022
19023// The container path, mount options, and size of the tmpfs mount.
19024type Tmpfs struct {
19025	_ struct{} `type:"structure"`
19026
19027	// The absolute file path where the tmpfs volume is to be mounted.
19028	//
19029	// ContainerPath is a required field
19030	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
19031
19032	// The list of tmpfs volume mount options.
19033	//
19034	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
19035	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
19036	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
19037	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
19038	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
19039	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
19040	MountOptions []*string `locationName:"mountOptions" type:"list"`
19041
19042	// The size (in MiB) of the tmpfs volume.
19043	//
19044	// Size is a required field
19045	Size *int64 `locationName:"size" type:"integer" required:"true"`
19046}
19047
19048// String returns the string representation
19049func (s Tmpfs) String() string {
19050	return awsutil.Prettify(s)
19051}
19052
19053// GoString returns the string representation
19054func (s Tmpfs) GoString() string {
19055	return s.String()
19056}
19057
19058// Validate inspects the fields of the type to determine if they are valid.
19059func (s *Tmpfs) Validate() error {
19060	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
19061	if s.ContainerPath == nil {
19062		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
19063	}
19064	if s.Size == nil {
19065		invalidParams.Add(request.NewErrParamRequired("Size"))
19066	}
19067
19068	if invalidParams.Len() > 0 {
19069		return invalidParams
19070	}
19071	return nil
19072}
19073
19074// SetContainerPath sets the ContainerPath field's value.
19075func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
19076	s.ContainerPath = &v
19077	return s
19078}
19079
19080// SetMountOptions sets the MountOptions field's value.
19081func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
19082	s.MountOptions = v
19083	return s
19084}
19085
19086// SetSize sets the Size field's value.
19087func (s *Tmpfs) SetSize(v int64) *Tmpfs {
19088	s.Size = &v
19089	return s
19090}
19091
19092// The ulimit settings to pass to the container.
19093type Ulimit struct {
19094	_ struct{} `type:"structure"`
19095
19096	// The hard limit for the ulimit type.
19097	//
19098	// HardLimit is a required field
19099	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
19100
19101	// The type of the ulimit.
19102	//
19103	// Name is a required field
19104	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
19105
19106	// The soft limit for the ulimit type.
19107	//
19108	// SoftLimit is a required field
19109	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
19110}
19111
19112// String returns the string representation
19113func (s Ulimit) String() string {
19114	return awsutil.Prettify(s)
19115}
19116
19117// GoString returns the string representation
19118func (s Ulimit) GoString() string {
19119	return s.String()
19120}
19121
19122// Validate inspects the fields of the type to determine if they are valid.
19123func (s *Ulimit) Validate() error {
19124	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
19125	if s.HardLimit == nil {
19126		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
19127	}
19128	if s.Name == nil {
19129		invalidParams.Add(request.NewErrParamRequired("Name"))
19130	}
19131	if s.SoftLimit == nil {
19132		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
19133	}
19134
19135	if invalidParams.Len() > 0 {
19136		return invalidParams
19137	}
19138	return nil
19139}
19140
19141// SetHardLimit sets the HardLimit field's value.
19142func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
19143	s.HardLimit = &v
19144	return s
19145}
19146
19147// SetName sets the Name field's value.
19148func (s *Ulimit) SetName(v string) *Ulimit {
19149	s.Name = &v
19150	return s
19151}
19152
19153// SetSoftLimit sets the SoftLimit field's value.
19154func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
19155	s.SoftLimit = &v
19156	return s
19157}
19158
19159// The specified task is not supported in this Region.
19160type UnsupportedFeatureException struct {
19161	_            struct{}                  `type:"structure"`
19162	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19163
19164	Message_ *string `locationName:"message" type:"string"`
19165}
19166
19167// String returns the string representation
19168func (s UnsupportedFeatureException) String() string {
19169	return awsutil.Prettify(s)
19170}
19171
19172// GoString returns the string representation
19173func (s UnsupportedFeatureException) GoString() string {
19174	return s.String()
19175}
19176
19177func newErrorUnsupportedFeatureException(v protocol.ResponseMetadata) error {
19178	return &UnsupportedFeatureException{
19179		RespMetadata: v,
19180	}
19181}
19182
19183// Code returns the exception type name.
19184func (s *UnsupportedFeatureException) Code() string {
19185	return "UnsupportedFeatureException"
19186}
19187
19188// Message returns the exception's message.
19189func (s *UnsupportedFeatureException) Message() string {
19190	if s.Message_ != nil {
19191		return *s.Message_
19192	}
19193	return ""
19194}
19195
19196// OrigErr always returns nil, satisfies awserr.Error interface.
19197func (s *UnsupportedFeatureException) OrigErr() error {
19198	return nil
19199}
19200
19201func (s *UnsupportedFeatureException) Error() string {
19202	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19203}
19204
19205// Status code returns the HTTP status code for the request's response error.
19206func (s *UnsupportedFeatureException) StatusCode() int {
19207	return s.RespMetadata.StatusCode
19208}
19209
19210// RequestID returns the service's response RequestID for request.
19211func (s *UnsupportedFeatureException) RequestID() string {
19212	return s.RespMetadata.RequestID
19213}
19214
19215type UntagResourceInput struct {
19216	_ struct{} `type:"structure"`
19217
19218	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
19219	// Currently, the supported resources are Amazon ECS capacity providers, tasks,
19220	// services, task definitions, clusters, and container instances.
19221	//
19222	// ResourceArn is a required field
19223	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
19224
19225	// The keys of the tags to be removed.
19226	//
19227	// TagKeys is a required field
19228	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
19229}
19230
19231// String returns the string representation
19232func (s UntagResourceInput) String() string {
19233	return awsutil.Prettify(s)
19234}
19235
19236// GoString returns the string representation
19237func (s UntagResourceInput) GoString() string {
19238	return s.String()
19239}
19240
19241// Validate inspects the fields of the type to determine if they are valid.
19242func (s *UntagResourceInput) Validate() error {
19243	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
19244	if s.ResourceArn == nil {
19245		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
19246	}
19247	if s.TagKeys == nil {
19248		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
19249	}
19250
19251	if invalidParams.Len() > 0 {
19252		return invalidParams
19253	}
19254	return nil
19255}
19256
19257// SetResourceArn sets the ResourceArn field's value.
19258func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
19259	s.ResourceArn = &v
19260	return s
19261}
19262
19263// SetTagKeys sets the TagKeys field's value.
19264func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
19265	s.TagKeys = v
19266	return s
19267}
19268
19269type UntagResourceOutput struct {
19270	_ struct{} `type:"structure"`
19271}
19272
19273// String returns the string representation
19274func (s UntagResourceOutput) String() string {
19275	return awsutil.Prettify(s)
19276}
19277
19278// GoString returns the string representation
19279func (s UntagResourceOutput) GoString() string {
19280	return s.String()
19281}
19282
19283type UpdateClusterSettingsInput struct {
19284	_ struct{} `type:"structure"`
19285
19286	// The name of the cluster to modify the settings for.
19287	//
19288	// Cluster is a required field
19289	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19290
19291	// The setting to use by default for a cluster. This parameter is used to enable
19292	// CloudWatch Container Insights for a cluster. If this value is specified,
19293	// it will override the containerInsights value set with PutAccountSetting or
19294	// PutAccountSettingDefault.
19295	//
19296	// Settings is a required field
19297	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
19298}
19299
19300// String returns the string representation
19301func (s UpdateClusterSettingsInput) String() string {
19302	return awsutil.Prettify(s)
19303}
19304
19305// GoString returns the string representation
19306func (s UpdateClusterSettingsInput) GoString() string {
19307	return s.String()
19308}
19309
19310// Validate inspects the fields of the type to determine if they are valid.
19311func (s *UpdateClusterSettingsInput) Validate() error {
19312	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
19313	if s.Cluster == nil {
19314		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19315	}
19316	if s.Settings == nil {
19317		invalidParams.Add(request.NewErrParamRequired("Settings"))
19318	}
19319
19320	if invalidParams.Len() > 0 {
19321		return invalidParams
19322	}
19323	return nil
19324}
19325
19326// SetCluster sets the Cluster field's value.
19327func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
19328	s.Cluster = &v
19329	return s
19330}
19331
19332// SetSettings sets the Settings field's value.
19333func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
19334	s.Settings = v
19335	return s
19336}
19337
19338type UpdateClusterSettingsOutput struct {
19339	_ struct{} `type:"structure"`
19340
19341	// A regional grouping of one or more container instances on which you can run
19342	// task requests. Each account receives a default cluster the first time you
19343	// use the Amazon ECS service, but you may also create other clusters. Clusters
19344	// may contain more than one instance type simultaneously.
19345	Cluster *Cluster `locationName:"cluster" type:"structure"`
19346}
19347
19348// String returns the string representation
19349func (s UpdateClusterSettingsOutput) String() string {
19350	return awsutil.Prettify(s)
19351}
19352
19353// GoString returns the string representation
19354func (s UpdateClusterSettingsOutput) GoString() string {
19355	return s.String()
19356}
19357
19358// SetCluster sets the Cluster field's value.
19359func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
19360	s.Cluster = v
19361	return s
19362}
19363
19364type UpdateContainerAgentInput struct {
19365	_ struct{} `type:"structure"`
19366
19367	// The short name or full Amazon Resource Name (ARN) of the cluster that your
19368	// container instance is running on. If you do not specify a cluster, the default
19369	// cluster is assumed.
19370	Cluster *string `locationName:"cluster" type:"string"`
19371
19372	// The container instance ID or full ARN entries for the container instance
19373	// on which you would like to update the Amazon ECS container agent.
19374	//
19375	// ContainerInstance is a required field
19376	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
19377}
19378
19379// String returns the string representation
19380func (s UpdateContainerAgentInput) String() string {
19381	return awsutil.Prettify(s)
19382}
19383
19384// GoString returns the string representation
19385func (s UpdateContainerAgentInput) GoString() string {
19386	return s.String()
19387}
19388
19389// Validate inspects the fields of the type to determine if they are valid.
19390func (s *UpdateContainerAgentInput) Validate() error {
19391	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
19392	if s.ContainerInstance == nil {
19393		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
19394	}
19395
19396	if invalidParams.Len() > 0 {
19397		return invalidParams
19398	}
19399	return nil
19400}
19401
19402// SetCluster sets the Cluster field's value.
19403func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
19404	s.Cluster = &v
19405	return s
19406}
19407
19408// SetContainerInstance sets the ContainerInstance field's value.
19409func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
19410	s.ContainerInstance = &v
19411	return s
19412}
19413
19414type UpdateContainerAgentOutput struct {
19415	_ struct{} `type:"structure"`
19416
19417	// The container instance for which the container agent was updated.
19418	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
19419}
19420
19421// String returns the string representation
19422func (s UpdateContainerAgentOutput) String() string {
19423	return awsutil.Prettify(s)
19424}
19425
19426// GoString returns the string representation
19427func (s UpdateContainerAgentOutput) GoString() string {
19428	return s.String()
19429}
19430
19431// SetContainerInstance sets the ContainerInstance field's value.
19432func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
19433	s.ContainerInstance = v
19434	return s
19435}
19436
19437type UpdateContainerInstancesStateInput struct {
19438	_ struct{} `type:"structure"`
19439
19440	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19441	// the container instance to update. If you do not specify a cluster, the default
19442	// cluster is assumed.
19443	Cluster *string `locationName:"cluster" type:"string"`
19444
19445	// A list of container instance IDs or full ARN entries.
19446	//
19447	// ContainerInstances is a required field
19448	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
19449
19450	// The container instance state with which to update the container instance.
19451	// The only valid values for this action are ACTIVE and DRAINING. A container
19452	// instance can only be updated to DRAINING status once it has reached an ACTIVE
19453	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
19454	// state you can describe the container instance but will be unable to update
19455	// the container instance state.
19456	//
19457	// Status is a required field
19458	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
19459}
19460
19461// String returns the string representation
19462func (s UpdateContainerInstancesStateInput) String() string {
19463	return awsutil.Prettify(s)
19464}
19465
19466// GoString returns the string representation
19467func (s UpdateContainerInstancesStateInput) GoString() string {
19468	return s.String()
19469}
19470
19471// Validate inspects the fields of the type to determine if they are valid.
19472func (s *UpdateContainerInstancesStateInput) Validate() error {
19473	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
19474	if s.ContainerInstances == nil {
19475		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
19476	}
19477	if s.Status == nil {
19478		invalidParams.Add(request.NewErrParamRequired("Status"))
19479	}
19480
19481	if invalidParams.Len() > 0 {
19482		return invalidParams
19483	}
19484	return nil
19485}
19486
19487// SetCluster sets the Cluster field's value.
19488func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
19489	s.Cluster = &v
19490	return s
19491}
19492
19493// SetContainerInstances sets the ContainerInstances field's value.
19494func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
19495	s.ContainerInstances = v
19496	return s
19497}
19498
19499// SetStatus sets the Status field's value.
19500func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
19501	s.Status = &v
19502	return s
19503}
19504
19505type UpdateContainerInstancesStateOutput struct {
19506	_ struct{} `type:"structure"`
19507
19508	// The list of container instances.
19509	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
19510
19511	// Any failures associated with the call.
19512	Failures []*Failure `locationName:"failures" type:"list"`
19513}
19514
19515// String returns the string representation
19516func (s UpdateContainerInstancesStateOutput) String() string {
19517	return awsutil.Prettify(s)
19518}
19519
19520// GoString returns the string representation
19521func (s UpdateContainerInstancesStateOutput) GoString() string {
19522	return s.String()
19523}
19524
19525// SetContainerInstances sets the ContainerInstances field's value.
19526func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
19527	s.ContainerInstances = v
19528	return s
19529}
19530
19531// SetFailures sets the Failures field's value.
19532func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
19533	s.Failures = v
19534	return s
19535}
19536
19537// There is already a current Amazon ECS container agent update in progress
19538// on the specified container instance. If the container agent becomes disconnected
19539// while it is in a transitional stage, such as PENDING or STAGING, the update
19540// process can get stuck in that state. However, when the agent reconnects,
19541// it resumes where it stopped previously.
19542type UpdateInProgressException struct {
19543	_            struct{}                  `type:"structure"`
19544	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19545
19546	Message_ *string `locationName:"message" type:"string"`
19547}
19548
19549// String returns the string representation
19550func (s UpdateInProgressException) String() string {
19551	return awsutil.Prettify(s)
19552}
19553
19554// GoString returns the string representation
19555func (s UpdateInProgressException) GoString() string {
19556	return s.String()
19557}
19558
19559func newErrorUpdateInProgressException(v protocol.ResponseMetadata) error {
19560	return &UpdateInProgressException{
19561		RespMetadata: v,
19562	}
19563}
19564
19565// Code returns the exception type name.
19566func (s *UpdateInProgressException) Code() string {
19567	return "UpdateInProgressException"
19568}
19569
19570// Message returns the exception's message.
19571func (s *UpdateInProgressException) Message() string {
19572	if s.Message_ != nil {
19573		return *s.Message_
19574	}
19575	return ""
19576}
19577
19578// OrigErr always returns nil, satisfies awserr.Error interface.
19579func (s *UpdateInProgressException) OrigErr() error {
19580	return nil
19581}
19582
19583func (s *UpdateInProgressException) Error() string {
19584	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19585}
19586
19587// Status code returns the HTTP status code for the request's response error.
19588func (s *UpdateInProgressException) StatusCode() int {
19589	return s.RespMetadata.StatusCode
19590}
19591
19592// RequestID returns the service's response RequestID for request.
19593func (s *UpdateInProgressException) RequestID() string {
19594	return s.RespMetadata.RequestID
19595}
19596
19597type UpdateServiceInput struct {
19598	_ struct{} `type:"structure"`
19599
19600	// The capacity provider strategy to update the service to use.
19601	//
19602	// If the service is using the default capacity provider strategy for the cluster,
19603	// the service can be updated to use one or more capacity providers as opposed
19604	// to the default capacity provider strategy. However, when a service is using
19605	// a capacity provider strategy that is not the default capacity provider strategy,
19606	// the service cannot be updated to use the cluster's default capacity provider
19607	// strategy.
19608	//
19609	// A capacity provider strategy consists of one or more capacity providers along
19610	// with the base and weight to assign to them. A capacity provider must be associated
19611	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
19612	// API is used to associate a capacity provider with a cluster. Only capacity
19613	// providers with an ACTIVE or UPDATING status can be used.
19614	//
19615	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
19616	// provider must already be created. New capacity providers can be created with
19617	// the CreateCapacityProvider API operation.
19618	//
19619	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
19620	// capacity providers. The AWS Fargate capacity providers are available to all
19621	// accounts and only need to be associated with a cluster to be used.
19622	//
19623	// The PutClusterCapacityProviders API operation is used to update the list
19624	// of available capacity providers for a cluster after the cluster is created.
19625	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
19626
19627	// The short name or full Amazon Resource Name (ARN) of the cluster that your
19628	// service is running on. If you do not specify a cluster, the default cluster
19629	// is assumed.
19630	Cluster *string `locationName:"cluster" type:"string"`
19631
19632	// Optional deployment parameters that control how many tasks run during the
19633	// deployment and the ordering of stopping and starting tasks.
19634	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
19635
19636	// The number of instantiations of the task to place and keep running in your
19637	// service.
19638	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
19639
19640	// Whether to force a new deployment of the service. Deployments are not forced
19641	// by default. You can use this option to trigger a new deployment with no service
19642	// definition changes. For example, you can update a service's tasks to use
19643	// a newer Docker image with the same image/tag combination (my_image:latest)
19644	// or to roll Fargate tasks onto a newer platform version.
19645	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
19646
19647	// The period of time, in seconds, that the Amazon ECS service scheduler should
19648	// ignore unhealthy Elastic Load Balancing target health checks after a task
19649	// has first started. This is only valid if your service is configured to use
19650	// a load balancer. If your service's tasks take a while to start and respond
19651	// to Elastic Load Balancing health checks, you can specify a health check grace
19652	// period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service
19653	// scheduler ignores the Elastic Load Balancing health check status. This grace
19654	// period can prevent the ECS service scheduler from marking tasks as unhealthy
19655	// and stopping them before they have time to come up.
19656	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
19657
19658	// An object representing the network configuration for a task or service.
19659	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
19660
19661	// An array of task placement constraint objects to update the service to use.
19662	// If no value is specified, the existing placement constraints for the service
19663	// will remain unchanged. If this value is specified, it will override any existing
19664	// placement constraints defined for the service. To remove all existing placement
19665	// constraints, specify an empty array.
19666	//
19667	// You can specify a maximum of 10 constraints per task (this limit includes
19668	// constraints in the task definition and those specified at runtime).
19669	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
19670
19671	// The task placement strategy objects to update the service to use. If no value
19672	// is specified, the existing placement strategy for the service will remain
19673	// unchanged. If this value is specified, it will override the existing placement
19674	// strategy defined for the service. To remove an existing placement strategy,
19675	// specify an empty object.
19676	//
19677	// You can specify a maximum of five strategy rules per service.
19678	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
19679
19680	// The platform version on which your tasks in the service are running. A platform
19681	// version is only specified for tasks using the Fargate launch type. If a platform
19682	// version is not specified, the LATEST platform version is used by default.
19683	// For more information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
19684	// in the Amazon Elastic Container Service Developer Guide.
19685	PlatformVersion *string `locationName:"platformVersion" type:"string"`
19686
19687	// The name of the service to update.
19688	//
19689	// Service is a required field
19690	Service *string `locationName:"service" type:"string" required:"true"`
19691
19692	// The family and revision (family:revision) or full ARN of the task definition
19693	// to run in your service. If a revision is not specified, the latest ACTIVE
19694	// revision is used. If you modify the task definition with UpdateService, Amazon
19695	// ECS spawns a task with the new version of the task definition and then stops
19696	// an old task after the new version is running.
19697	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
19698}
19699
19700// String returns the string representation
19701func (s UpdateServiceInput) String() string {
19702	return awsutil.Prettify(s)
19703}
19704
19705// GoString returns the string representation
19706func (s UpdateServiceInput) GoString() string {
19707	return s.String()
19708}
19709
19710// Validate inspects the fields of the type to determine if they are valid.
19711func (s *UpdateServiceInput) Validate() error {
19712	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
19713	if s.Service == nil {
19714		invalidParams.Add(request.NewErrParamRequired("Service"))
19715	}
19716	if s.CapacityProviderStrategy != nil {
19717		for i, v := range s.CapacityProviderStrategy {
19718			if v == nil {
19719				continue
19720			}
19721			if err := v.Validate(); err != nil {
19722				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
19723			}
19724		}
19725	}
19726	if s.NetworkConfiguration != nil {
19727		if err := s.NetworkConfiguration.Validate(); err != nil {
19728			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
19729		}
19730	}
19731
19732	if invalidParams.Len() > 0 {
19733		return invalidParams
19734	}
19735	return nil
19736}
19737
19738// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
19739func (s *UpdateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *UpdateServiceInput {
19740	s.CapacityProviderStrategy = v
19741	return s
19742}
19743
19744// SetCluster sets the Cluster field's value.
19745func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
19746	s.Cluster = &v
19747	return s
19748}
19749
19750// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
19751func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
19752	s.DeploymentConfiguration = v
19753	return s
19754}
19755
19756// SetDesiredCount sets the DesiredCount field's value.
19757func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
19758	s.DesiredCount = &v
19759	return s
19760}
19761
19762// SetForceNewDeployment sets the ForceNewDeployment field's value.
19763func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
19764	s.ForceNewDeployment = &v
19765	return s
19766}
19767
19768// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
19769func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
19770	s.HealthCheckGracePeriodSeconds = &v
19771	return s
19772}
19773
19774// SetNetworkConfiguration sets the NetworkConfiguration field's value.
19775func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
19776	s.NetworkConfiguration = v
19777	return s
19778}
19779
19780// SetPlacementConstraints sets the PlacementConstraints field's value.
19781func (s *UpdateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *UpdateServiceInput {
19782	s.PlacementConstraints = v
19783	return s
19784}
19785
19786// SetPlacementStrategy sets the PlacementStrategy field's value.
19787func (s *UpdateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *UpdateServiceInput {
19788	s.PlacementStrategy = v
19789	return s
19790}
19791
19792// SetPlatformVersion sets the PlatformVersion field's value.
19793func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
19794	s.PlatformVersion = &v
19795	return s
19796}
19797
19798// SetService sets the Service field's value.
19799func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
19800	s.Service = &v
19801	return s
19802}
19803
19804// SetTaskDefinition sets the TaskDefinition field's value.
19805func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
19806	s.TaskDefinition = &v
19807	return s
19808}
19809
19810type UpdateServiceOutput struct {
19811	_ struct{} `type:"structure"`
19812
19813	// The full description of your service following the update call.
19814	Service *Service `locationName:"service" type:"structure"`
19815}
19816
19817// String returns the string representation
19818func (s UpdateServiceOutput) String() string {
19819	return awsutil.Prettify(s)
19820}
19821
19822// GoString returns the string representation
19823func (s UpdateServiceOutput) GoString() string {
19824	return s.String()
19825}
19826
19827// SetService sets the Service field's value.
19828func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
19829	s.Service = v
19830	return s
19831}
19832
19833type UpdateServicePrimaryTaskSetInput struct {
19834	_ struct{} `type:"structure"`
19835
19836	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19837	// the service that the task set exists in.
19838	//
19839	// Cluster is a required field
19840	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19841
19842	// The short name or full Amazon Resource Name (ARN) of the task set to set
19843	// as the primary task set in the deployment.
19844	//
19845	// PrimaryTaskSet is a required field
19846	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
19847
19848	// The short name or full Amazon Resource Name (ARN) of the service that the
19849	// task set exists in.
19850	//
19851	// Service is a required field
19852	Service *string `locationName:"service" type:"string" required:"true"`
19853}
19854
19855// String returns the string representation
19856func (s UpdateServicePrimaryTaskSetInput) String() string {
19857	return awsutil.Prettify(s)
19858}
19859
19860// GoString returns the string representation
19861func (s UpdateServicePrimaryTaskSetInput) GoString() string {
19862	return s.String()
19863}
19864
19865// Validate inspects the fields of the type to determine if they are valid.
19866func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
19867	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
19868	if s.Cluster == nil {
19869		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19870	}
19871	if s.PrimaryTaskSet == nil {
19872		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
19873	}
19874	if s.Service == nil {
19875		invalidParams.Add(request.NewErrParamRequired("Service"))
19876	}
19877
19878	if invalidParams.Len() > 0 {
19879		return invalidParams
19880	}
19881	return nil
19882}
19883
19884// SetCluster sets the Cluster field's value.
19885func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
19886	s.Cluster = &v
19887	return s
19888}
19889
19890// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
19891func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
19892	s.PrimaryTaskSet = &v
19893	return s
19894}
19895
19896// SetService sets the Service field's value.
19897func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
19898	s.Service = &v
19899	return s
19900}
19901
19902type UpdateServicePrimaryTaskSetOutput struct {
19903	_ struct{} `type:"structure"`
19904
19905	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
19906	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
19907	// desired number of tasks, how many tasks are running, and whether the task
19908	// set serves production traffic.
19909	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
19910}
19911
19912// String returns the string representation
19913func (s UpdateServicePrimaryTaskSetOutput) String() string {
19914	return awsutil.Prettify(s)
19915}
19916
19917// GoString returns the string representation
19918func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
19919	return s.String()
19920}
19921
19922// SetTaskSet sets the TaskSet field's value.
19923func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
19924	s.TaskSet = v
19925	return s
19926}
19927
19928type UpdateTaskSetInput struct {
19929	_ struct{} `type:"structure"`
19930
19931	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19932	// the service that the task set exists in.
19933	//
19934	// Cluster is a required field
19935	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19936
19937	// A floating-point percentage of the desired number of tasks to place and keep
19938	// running in the task set.
19939	//
19940	// Scale is a required field
19941	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
19942
19943	// The short name or full Amazon Resource Name (ARN) of the service that the
19944	// task set exists in.
19945	//
19946	// Service is a required field
19947	Service *string `locationName:"service" type:"string" required:"true"`
19948
19949	// The short name or full Amazon Resource Name (ARN) of the task set to update.
19950	//
19951	// TaskSet is a required field
19952	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
19953}
19954
19955// String returns the string representation
19956func (s UpdateTaskSetInput) String() string {
19957	return awsutil.Prettify(s)
19958}
19959
19960// GoString returns the string representation
19961func (s UpdateTaskSetInput) GoString() string {
19962	return s.String()
19963}
19964
19965// Validate inspects the fields of the type to determine if they are valid.
19966func (s *UpdateTaskSetInput) Validate() error {
19967	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
19968	if s.Cluster == nil {
19969		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19970	}
19971	if s.Scale == nil {
19972		invalidParams.Add(request.NewErrParamRequired("Scale"))
19973	}
19974	if s.Service == nil {
19975		invalidParams.Add(request.NewErrParamRequired("Service"))
19976	}
19977	if s.TaskSet == nil {
19978		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
19979	}
19980
19981	if invalidParams.Len() > 0 {
19982		return invalidParams
19983	}
19984	return nil
19985}
19986
19987// SetCluster sets the Cluster field's value.
19988func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
19989	s.Cluster = &v
19990	return s
19991}
19992
19993// SetScale sets the Scale field's value.
19994func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
19995	s.Scale = v
19996	return s
19997}
19998
19999// SetService sets the Service field's value.
20000func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
20001	s.Service = &v
20002	return s
20003}
20004
20005// SetTaskSet sets the TaskSet field's value.
20006func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
20007	s.TaskSet = &v
20008	return s
20009}
20010
20011type UpdateTaskSetOutput struct {
20012	_ struct{} `type:"structure"`
20013
20014	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
20015	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
20016	// desired number of tasks, how many tasks are running, and whether the task
20017	// set serves production traffic.
20018	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
20019}
20020
20021// String returns the string representation
20022func (s UpdateTaskSetOutput) String() string {
20023	return awsutil.Prettify(s)
20024}
20025
20026// GoString returns the string representation
20027func (s UpdateTaskSetOutput) GoString() string {
20028	return s.String()
20029}
20030
20031// SetTaskSet sets the TaskSet field's value.
20032func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
20033	s.TaskSet = v
20034	return s
20035}
20036
20037// The Docker and Amazon ECS container agent version information about a container
20038// instance.
20039type VersionInfo struct {
20040	_ struct{} `type:"structure"`
20041
20042	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
20043	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
20044	AgentHash *string `locationName:"agentHash" type:"string"`
20045
20046	// The version number of the Amazon ECS container agent.
20047	AgentVersion *string `locationName:"agentVersion" type:"string"`
20048
20049	// The Docker version running on the container instance.
20050	DockerVersion *string `locationName:"dockerVersion" type:"string"`
20051}
20052
20053// String returns the string representation
20054func (s VersionInfo) String() string {
20055	return awsutil.Prettify(s)
20056}
20057
20058// GoString returns the string representation
20059func (s VersionInfo) GoString() string {
20060	return s.String()
20061}
20062
20063// SetAgentHash sets the AgentHash field's value.
20064func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
20065	s.AgentHash = &v
20066	return s
20067}
20068
20069// SetAgentVersion sets the AgentVersion field's value.
20070func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
20071	s.AgentVersion = &v
20072	return s
20073}
20074
20075// SetDockerVersion sets the DockerVersion field's value.
20076func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
20077	s.DockerVersion = &v
20078	return s
20079}
20080
20081// A data volume used in a task definition. For tasks that use Amazon Elastic
20082// File System (Amazon EFS) file storage, specify an efsVolumeConfiguration.
20083// For tasks that use a Docker volume, specify a DockerVolumeConfiguration.
20084// For tasks that use a bind mount host volume, specify a host and optional
20085// sourcePath. For more information, see Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
20086type Volume struct {
20087	_ struct{} `type:"structure"`
20088
20089	// This parameter is specified when you are using Docker volumes. Docker volumes
20090	// are only supported when you are using the EC2 launch type. Windows containers
20091	// only support the use of the local driver. To use bind mounts, specify the
20092	// host parameter instead.
20093	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
20094
20095	// This parameter is specified when you are using an Amazon Elastic File System
20096	// file system for task storage.
20097	EfsVolumeConfiguration *EFSVolumeConfiguration `locationName:"efsVolumeConfiguration" type:"structure"`
20098
20099	// This parameter is specified when you are using bind mount host volumes. The
20100	// contents of the host parameter determine whether your bind mount host volume
20101	// persists on the host container instance and where it is stored. If the host
20102	// parameter is empty, then the Docker daemon assigns a host path for your data
20103	// volume. However, the data is not guaranteed to persist after the containers
20104	// associated with it stop running.
20105	//
20106	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
20107	// Windows containers cannot mount directories on a different drive, and mount
20108	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
20109	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
20110	Host *HostVolumeProperties `locationName:"host" type:"structure"`
20111
20112	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
20113	// and hyphens are allowed. This name is referenced in the sourceVolume parameter
20114	// of container definition mountPoints.
20115	Name *string `locationName:"name" type:"string"`
20116}
20117
20118// String returns the string representation
20119func (s Volume) String() string {
20120	return awsutil.Prettify(s)
20121}
20122
20123// GoString returns the string representation
20124func (s Volume) GoString() string {
20125	return s.String()
20126}
20127
20128// Validate inspects the fields of the type to determine if they are valid.
20129func (s *Volume) Validate() error {
20130	invalidParams := request.ErrInvalidParams{Context: "Volume"}
20131	if s.EfsVolumeConfiguration != nil {
20132		if err := s.EfsVolumeConfiguration.Validate(); err != nil {
20133			invalidParams.AddNested("EfsVolumeConfiguration", err.(request.ErrInvalidParams))
20134		}
20135	}
20136
20137	if invalidParams.Len() > 0 {
20138		return invalidParams
20139	}
20140	return nil
20141}
20142
20143// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
20144func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
20145	s.DockerVolumeConfiguration = v
20146	return s
20147}
20148
20149// SetEfsVolumeConfiguration sets the EfsVolumeConfiguration field's value.
20150func (s *Volume) SetEfsVolumeConfiguration(v *EFSVolumeConfiguration) *Volume {
20151	s.EfsVolumeConfiguration = v
20152	return s
20153}
20154
20155// SetHost sets the Host field's value.
20156func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
20157	s.Host = v
20158	return s
20159}
20160
20161// SetName sets the Name field's value.
20162func (s *Volume) SetName(v string) *Volume {
20163	s.Name = &v
20164	return s
20165}
20166
20167// Details on a data volume from another container in the same task definition.
20168type VolumeFrom struct {
20169	_ struct{} `type:"structure"`
20170
20171	// If this value is true, the container has read-only access to the volume.
20172	// If this value is false, then the container can write to the volume. The default
20173	// value is false.
20174	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
20175
20176	// The name of another container within the same task definition from which
20177	// to mount volumes.
20178	SourceContainer *string `locationName:"sourceContainer" type:"string"`
20179}
20180
20181// String returns the string representation
20182func (s VolumeFrom) String() string {
20183	return awsutil.Prettify(s)
20184}
20185
20186// GoString returns the string representation
20187func (s VolumeFrom) GoString() string {
20188	return s.String()
20189}
20190
20191// SetReadOnly sets the ReadOnly field's value.
20192func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
20193	s.ReadOnly = &v
20194	return s
20195}
20196
20197// SetSourceContainer sets the SourceContainer field's value.
20198func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
20199	s.SourceContainer = &v
20200	return s
20201}
20202
20203const (
20204	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
20205	AgentUpdateStatusPending = "PENDING"
20206
20207	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
20208	AgentUpdateStatusStaging = "STAGING"
20209
20210	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
20211	AgentUpdateStatusStaged = "STAGED"
20212
20213	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
20214	AgentUpdateStatusUpdating = "UPDATING"
20215
20216	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
20217	AgentUpdateStatusUpdated = "UPDATED"
20218
20219	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
20220	AgentUpdateStatusFailed = "FAILED"
20221)
20222
20223const (
20224	// AssignPublicIpEnabled is a AssignPublicIp enum value
20225	AssignPublicIpEnabled = "ENABLED"
20226
20227	// AssignPublicIpDisabled is a AssignPublicIp enum value
20228	AssignPublicIpDisabled = "DISABLED"
20229)
20230
20231const (
20232	// CapacityProviderFieldTags is a CapacityProviderField enum value
20233	CapacityProviderFieldTags = "TAGS"
20234)
20235
20236const (
20237	// CapacityProviderStatusActive is a CapacityProviderStatus enum value
20238	CapacityProviderStatusActive = "ACTIVE"
20239
20240	// CapacityProviderStatusInactive is a CapacityProviderStatus enum value
20241	CapacityProviderStatusInactive = "INACTIVE"
20242)
20243
20244const (
20245	// CapacityProviderUpdateStatusDeleteInProgress is a CapacityProviderUpdateStatus enum value
20246	CapacityProviderUpdateStatusDeleteInProgress = "DELETE_IN_PROGRESS"
20247
20248	// CapacityProviderUpdateStatusDeleteComplete is a CapacityProviderUpdateStatus enum value
20249	CapacityProviderUpdateStatusDeleteComplete = "DELETE_COMPLETE"
20250
20251	// CapacityProviderUpdateStatusDeleteFailed is a CapacityProviderUpdateStatus enum value
20252	CapacityProviderUpdateStatusDeleteFailed = "DELETE_FAILED"
20253)
20254
20255const (
20256	// ClusterFieldAttachments is a ClusterField enum value
20257	ClusterFieldAttachments = "ATTACHMENTS"
20258
20259	// ClusterFieldSettings is a ClusterField enum value
20260	ClusterFieldSettings = "SETTINGS"
20261
20262	// ClusterFieldStatistics is a ClusterField enum value
20263	ClusterFieldStatistics = "STATISTICS"
20264
20265	// ClusterFieldTags is a ClusterField enum value
20266	ClusterFieldTags = "TAGS"
20267)
20268
20269const (
20270	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
20271	ClusterSettingNameContainerInsights = "containerInsights"
20272)
20273
20274const (
20275	// CompatibilityEc2 is a Compatibility enum value
20276	CompatibilityEc2 = "EC2"
20277
20278	// CompatibilityFargate is a Compatibility enum value
20279	CompatibilityFargate = "FARGATE"
20280)
20281
20282const (
20283	// ConnectivityConnected is a Connectivity enum value
20284	ConnectivityConnected = "CONNECTED"
20285
20286	// ConnectivityDisconnected is a Connectivity enum value
20287	ConnectivityDisconnected = "DISCONNECTED"
20288)
20289
20290const (
20291	// ContainerConditionStart is a ContainerCondition enum value
20292	ContainerConditionStart = "START"
20293
20294	// ContainerConditionComplete is a ContainerCondition enum value
20295	ContainerConditionComplete = "COMPLETE"
20296
20297	// ContainerConditionSuccess is a ContainerCondition enum value
20298	ContainerConditionSuccess = "SUCCESS"
20299
20300	// ContainerConditionHealthy is a ContainerCondition enum value
20301	ContainerConditionHealthy = "HEALTHY"
20302)
20303
20304const (
20305	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
20306	ContainerInstanceFieldTags = "TAGS"
20307)
20308
20309const (
20310	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
20311	ContainerInstanceStatusActive = "ACTIVE"
20312
20313	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
20314	ContainerInstanceStatusDraining = "DRAINING"
20315
20316	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
20317	ContainerInstanceStatusRegistering = "REGISTERING"
20318
20319	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
20320	ContainerInstanceStatusDeregistering = "DEREGISTERING"
20321
20322	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
20323	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
20324)
20325
20326const (
20327	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
20328	DeploymentControllerTypeEcs = "ECS"
20329
20330	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
20331	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
20332
20333	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
20334	DeploymentControllerTypeExternal = "EXTERNAL"
20335)
20336
20337const (
20338	// DesiredStatusRunning is a DesiredStatus enum value
20339	DesiredStatusRunning = "RUNNING"
20340
20341	// DesiredStatusPending is a DesiredStatus enum value
20342	DesiredStatusPending = "PENDING"
20343
20344	// DesiredStatusStopped is a DesiredStatus enum value
20345	DesiredStatusStopped = "STOPPED"
20346)
20347
20348const (
20349	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
20350	DeviceCgroupPermissionRead = "read"
20351
20352	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
20353	DeviceCgroupPermissionWrite = "write"
20354
20355	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
20356	DeviceCgroupPermissionMknod = "mknod"
20357)
20358
20359const (
20360	// EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value
20361	EFSAuthorizationConfigIAMEnabled = "ENABLED"
20362
20363	// EFSAuthorizationConfigIAMDisabled is a EFSAuthorizationConfigIAM enum value
20364	EFSAuthorizationConfigIAMDisabled = "DISABLED"
20365)
20366
20367const (
20368	// EFSTransitEncryptionEnabled is a EFSTransitEncryption enum value
20369	EFSTransitEncryptionEnabled = "ENABLED"
20370
20371	// EFSTransitEncryptionDisabled is a EFSTransitEncryption enum value
20372	EFSTransitEncryptionDisabled = "DISABLED"
20373)
20374
20375const (
20376	// EnvironmentFileTypeS3 is a EnvironmentFileType enum value
20377	EnvironmentFileTypeS3 = "s3"
20378)
20379
20380const (
20381	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
20382	FirelensConfigurationTypeFluentd = "fluentd"
20383
20384	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
20385	FirelensConfigurationTypeFluentbit = "fluentbit"
20386)
20387
20388const (
20389	// HealthStatusHealthy is a HealthStatus enum value
20390	HealthStatusHealthy = "HEALTHY"
20391
20392	// HealthStatusUnhealthy is a HealthStatus enum value
20393	HealthStatusUnhealthy = "UNHEALTHY"
20394
20395	// HealthStatusUnknown is a HealthStatus enum value
20396	HealthStatusUnknown = "UNKNOWN"
20397)
20398
20399const (
20400	// IpcModeHost is a IpcMode enum value
20401	IpcModeHost = "host"
20402
20403	// IpcModeTask is a IpcMode enum value
20404	IpcModeTask = "task"
20405
20406	// IpcModeNone is a IpcMode enum value
20407	IpcModeNone = "none"
20408)
20409
20410const (
20411	// LaunchTypeEc2 is a LaunchType enum value
20412	LaunchTypeEc2 = "EC2"
20413
20414	// LaunchTypeFargate is a LaunchType enum value
20415	LaunchTypeFargate = "FARGATE"
20416)
20417
20418const (
20419	// LogDriverJsonFile is a LogDriver enum value
20420	LogDriverJsonFile = "json-file"
20421
20422	// LogDriverSyslog is a LogDriver enum value
20423	LogDriverSyslog = "syslog"
20424
20425	// LogDriverJournald is a LogDriver enum value
20426	LogDriverJournald = "journald"
20427
20428	// LogDriverGelf is a LogDriver enum value
20429	LogDriverGelf = "gelf"
20430
20431	// LogDriverFluentd is a LogDriver enum value
20432	LogDriverFluentd = "fluentd"
20433
20434	// LogDriverAwslogs is a LogDriver enum value
20435	LogDriverAwslogs = "awslogs"
20436
20437	// LogDriverSplunk is a LogDriver enum value
20438	LogDriverSplunk = "splunk"
20439
20440	// LogDriverAwsfirelens is a LogDriver enum value
20441	LogDriverAwsfirelens = "awsfirelens"
20442)
20443
20444const (
20445	// ManagedScalingStatusEnabled is a ManagedScalingStatus enum value
20446	ManagedScalingStatusEnabled = "ENABLED"
20447
20448	// ManagedScalingStatusDisabled is a ManagedScalingStatus enum value
20449	ManagedScalingStatusDisabled = "DISABLED"
20450)
20451
20452const (
20453	// ManagedTerminationProtectionEnabled is a ManagedTerminationProtection enum value
20454	ManagedTerminationProtectionEnabled = "ENABLED"
20455
20456	// ManagedTerminationProtectionDisabled is a ManagedTerminationProtection enum value
20457	ManagedTerminationProtectionDisabled = "DISABLED"
20458)
20459
20460const (
20461	// NetworkModeBridge is a NetworkMode enum value
20462	NetworkModeBridge = "bridge"
20463
20464	// NetworkModeHost is a NetworkMode enum value
20465	NetworkModeHost = "host"
20466
20467	// NetworkModeAwsvpc is a NetworkMode enum value
20468	NetworkModeAwsvpc = "awsvpc"
20469
20470	// NetworkModeNone is a NetworkMode enum value
20471	NetworkModeNone = "none"
20472)
20473
20474const (
20475	// PidModeHost is a PidMode enum value
20476	PidModeHost = "host"
20477
20478	// PidModeTask is a PidMode enum value
20479	PidModeTask = "task"
20480)
20481
20482const (
20483	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
20484	PlacementConstraintTypeDistinctInstance = "distinctInstance"
20485
20486	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
20487	PlacementConstraintTypeMemberOf = "memberOf"
20488)
20489
20490const (
20491	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
20492	PlacementStrategyTypeRandom = "random"
20493
20494	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
20495	PlacementStrategyTypeSpread = "spread"
20496
20497	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
20498	PlacementStrategyTypeBinpack = "binpack"
20499)
20500
20501const (
20502	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
20503	PlatformDeviceTypeGpu = "GPU"
20504)
20505
20506const (
20507	// PropagateTagsTaskDefinition is a PropagateTags enum value
20508	PropagateTagsTaskDefinition = "TASK_DEFINITION"
20509
20510	// PropagateTagsService is a PropagateTags enum value
20511	PropagateTagsService = "SERVICE"
20512)
20513
20514const (
20515	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
20516	ProxyConfigurationTypeAppmesh = "APPMESH"
20517)
20518
20519const (
20520	// ResourceTypeGpu is a ResourceType enum value
20521	ResourceTypeGpu = "GPU"
20522
20523	// ResourceTypeInferenceAccelerator is a ResourceType enum value
20524	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
20525)
20526
20527const (
20528	// ScaleUnitPercent is a ScaleUnit enum value
20529	ScaleUnitPercent = "PERCENT"
20530)
20531
20532const (
20533	// SchedulingStrategyReplica is a SchedulingStrategy enum value
20534	SchedulingStrategyReplica = "REPLICA"
20535
20536	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
20537	SchedulingStrategyDaemon = "DAEMON"
20538)
20539
20540const (
20541	// ScopeTask is a Scope enum value
20542	ScopeTask = "task"
20543
20544	// ScopeShared is a Scope enum value
20545	ScopeShared = "shared"
20546)
20547
20548const (
20549	// ServiceFieldTags is a ServiceField enum value
20550	ServiceFieldTags = "TAGS"
20551)
20552
20553const (
20554	// SettingNameServiceLongArnFormat is a SettingName enum value
20555	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
20556
20557	// SettingNameTaskLongArnFormat is a SettingName enum value
20558	SettingNameTaskLongArnFormat = "taskLongArnFormat"
20559
20560	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
20561	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
20562
20563	// SettingNameAwsvpcTrunking is a SettingName enum value
20564	SettingNameAwsvpcTrunking = "awsvpcTrunking"
20565
20566	// SettingNameContainerInsights is a SettingName enum value
20567	SettingNameContainerInsights = "containerInsights"
20568)
20569
20570const (
20571	// SortOrderAsc is a SortOrder enum value
20572	SortOrderAsc = "ASC"
20573
20574	// SortOrderDesc is a SortOrder enum value
20575	SortOrderDesc = "DESC"
20576)
20577
20578const (
20579	// StabilityStatusSteadyState is a StabilityStatus enum value
20580	StabilityStatusSteadyState = "STEADY_STATE"
20581
20582	// StabilityStatusStabilizing is a StabilityStatus enum value
20583	StabilityStatusStabilizing = "STABILIZING"
20584)
20585
20586const (
20587	// TargetTypeContainerInstance is a TargetType enum value
20588	TargetTypeContainerInstance = "container-instance"
20589)
20590
20591const (
20592	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
20593	TaskDefinitionFamilyStatusActive = "ACTIVE"
20594
20595	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
20596	TaskDefinitionFamilyStatusInactive = "INACTIVE"
20597
20598	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
20599	TaskDefinitionFamilyStatusAll = "ALL"
20600)
20601
20602const (
20603	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
20604	TaskDefinitionFieldTags = "TAGS"
20605)
20606
20607const (
20608	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
20609	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
20610)
20611
20612const (
20613	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
20614	TaskDefinitionStatusActive = "ACTIVE"
20615
20616	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
20617	TaskDefinitionStatusInactive = "INACTIVE"
20618)
20619
20620const (
20621	// TaskFieldTags is a TaskField enum value
20622	TaskFieldTags = "TAGS"
20623)
20624
20625const (
20626	// TaskSetFieldTags is a TaskSetField enum value
20627	TaskSetFieldTags = "TAGS"
20628)
20629
20630const (
20631	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
20632	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
20633
20634	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
20635	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
20636
20637	// TaskStopCodeUserInitiated is a TaskStopCode enum value
20638	TaskStopCodeUserInitiated = "UserInitiated"
20639)
20640
20641const (
20642	// TransportProtocolTcp is a TransportProtocol enum value
20643	TransportProtocolTcp = "tcp"
20644
20645	// TransportProtocolUdp is a TransportProtocol enum value
20646	TransportProtocolUdp = "udp"
20647)
20648
20649const (
20650	// UlimitNameCore is a UlimitName enum value
20651	UlimitNameCore = "core"
20652
20653	// UlimitNameCpu is a UlimitName enum value
20654	UlimitNameCpu = "cpu"
20655
20656	// UlimitNameData is a UlimitName enum value
20657	UlimitNameData = "data"
20658
20659	// UlimitNameFsize is a UlimitName enum value
20660	UlimitNameFsize = "fsize"
20661
20662	// UlimitNameLocks is a UlimitName enum value
20663	UlimitNameLocks = "locks"
20664
20665	// UlimitNameMemlock is a UlimitName enum value
20666	UlimitNameMemlock = "memlock"
20667
20668	// UlimitNameMsgqueue is a UlimitName enum value
20669	UlimitNameMsgqueue = "msgqueue"
20670
20671	// UlimitNameNice is a UlimitName enum value
20672	UlimitNameNice = "nice"
20673
20674	// UlimitNameNofile is a UlimitName enum value
20675	UlimitNameNofile = "nofile"
20676
20677	// UlimitNameNproc is a UlimitName enum value
20678	UlimitNameNproc = "nproc"
20679
20680	// UlimitNameRss is a UlimitName enum value
20681	UlimitNameRss = "rss"
20682
20683	// UlimitNameRtprio is a UlimitName enum value
20684	UlimitNameRtprio = "rtprio"
20685
20686	// UlimitNameRttime is a UlimitName enum value
20687	UlimitNameRttime = "rttime"
20688
20689	// UlimitNameSigpending is a UlimitName enum value
20690	UlimitNameSigpending = "sigpending"
20691
20692	// UlimitNameStack is a UlimitName enum value
20693	UlimitNameStack = "stack"
20694)
20695