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 Codes:
77//   * ErrCodeServerException "ServerException"
78//   These errors are usually caused by a server issue.
79//
80//   * ErrCodeClientException "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//   * ErrCodeInvalidParameterException "InvalidParameterException"
86//   The specified parameter is invalid. Review the available parameters for the
87//   API request.
88//
89//   * ErrCodeLimitExceededException "LimitExceededException"
90//   The limit for the resource has been exceeded.
91//
92// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider
93func (c *ECS) CreateCapacityProvider(input *CreateCapacityProviderInput) (*CreateCapacityProviderOutput, error) {
94	req, out := c.CreateCapacityProviderRequest(input)
95	return out, req.Send()
96}
97
98// CreateCapacityProviderWithContext is the same as CreateCapacityProvider with the addition of
99// the ability to pass a context and additional request options.
100//
101// See CreateCapacityProvider for details on how to use this API operation.
102//
103// The context must be non-nil and will be used for request cancellation. If
104// the context is nil a panic will occur. In the future the SDK may create
105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
106// for more information on using Contexts.
107func (c *ECS) CreateCapacityProviderWithContext(ctx aws.Context, input *CreateCapacityProviderInput, opts ...request.Option) (*CreateCapacityProviderOutput, error) {
108	req, out := c.CreateCapacityProviderRequest(input)
109	req.SetContext(ctx)
110	req.ApplyOptions(opts...)
111	return out, req.Send()
112}
113
114const opCreateCluster = "CreateCluster"
115
116// CreateClusterRequest generates a "aws/request.Request" representing the
117// client's request for the CreateCluster operation. The "output" return
118// value will be populated with the request's response once the request completes
119// successfully.
120//
121// Use "Send" method on the returned Request to send the API call to the service.
122// the "output" return value is not valid until after Send returns without error.
123//
124// See CreateCluster for more information on using the CreateCluster
125// API call, and error handling.
126//
127// This method is useful when you want to inject custom logic or configuration
128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
129//
130//
131//    // Example sending a request using the CreateClusterRequest method.
132//    req, resp := client.CreateClusterRequest(params)
133//
134//    err := req.Send()
135//    if err == nil { // resp is now filled
136//        fmt.Println(resp)
137//    }
138//
139// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
140func (c *ECS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
141	op := &request.Operation{
142		Name:       opCreateCluster,
143		HTTPMethod: "POST",
144		HTTPPath:   "/",
145	}
146
147	if input == nil {
148		input = &CreateClusterInput{}
149	}
150
151	output = &CreateClusterOutput{}
152	req = c.newRequest(op, input, output)
153	return
154}
155
156// CreateCluster API operation for Amazon EC2 Container Service.
157//
158// Creates a new Amazon ECS cluster. By default, your account receives a default
159// cluster when you launch your first container instance. However, you can create
160// your own cluster with a unique name with the CreateCluster action.
161//
162// When you call the CreateCluster API operation, Amazon ECS attempts to create
163// the Amazon ECS service-linked role for your account so that required resources
164// in other AWS services can be managed on your behalf. However, if the IAM
165// user that makes the call does not have permissions to create the service-linked
166// role, it is not created. For more information, see Using Service-Linked Roles
167// for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
168// in the Amazon Elastic Container Service Developer Guide.
169//
170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
171// with awserr.Error's Code and Message methods to get detailed information about
172// the error.
173//
174// See the AWS API reference guide for Amazon EC2 Container Service's
175// API operation CreateCluster for usage and error information.
176//
177// Returned Error Codes:
178//   * ErrCodeServerException "ServerException"
179//   These errors are usually caused by a server issue.
180//
181//   * ErrCodeClientException "ClientException"
182//   These errors are usually caused by a client action, such as using an action
183//   or resource on behalf of a user that doesn't have permissions to use the
184//   action or resource, or specifying an identifier that is not valid.
185//
186//   * ErrCodeInvalidParameterException "InvalidParameterException"
187//   The specified parameter is invalid. Review the available parameters for the
188//   API request.
189//
190// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
191func (c *ECS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
192	req, out := c.CreateClusterRequest(input)
193	return out, req.Send()
194}
195
196// CreateClusterWithContext is the same as CreateCluster with the addition of
197// the ability to pass a context and additional request options.
198//
199// See CreateCluster for details on how to use this API operation.
200//
201// The context must be non-nil and will be used for request cancellation. If
202// the context is nil a panic will occur. In the future the SDK may create
203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
204// for more information on using Contexts.
205func (c *ECS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
206	req, out := c.CreateClusterRequest(input)
207	req.SetContext(ctx)
208	req.ApplyOptions(opts...)
209	return out, req.Send()
210}
211
212const opCreateService = "CreateService"
213
214// CreateServiceRequest generates a "aws/request.Request" representing the
215// client's request for the CreateService operation. The "output" return
216// value will be populated with the request's response once the request completes
217// successfully.
218//
219// Use "Send" method on the returned Request to send the API call to the service.
220// the "output" return value is not valid until after Send returns without error.
221//
222// See CreateService for more information on using the CreateService
223// API call, and error handling.
224//
225// This method is useful when you want to inject custom logic or configuration
226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
227//
228//
229//    // Example sending a request using the CreateServiceRequest method.
230//    req, resp := client.CreateServiceRequest(params)
231//
232//    err := req.Send()
233//    if err == nil { // resp is now filled
234//        fmt.Println(resp)
235//    }
236//
237// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
238func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
239	op := &request.Operation{
240		Name:       opCreateService,
241		HTTPMethod: "POST",
242		HTTPPath:   "/",
243	}
244
245	if input == nil {
246		input = &CreateServiceInput{}
247	}
248
249	output = &CreateServiceOutput{}
250	req = c.newRequest(op, input, output)
251	return
252}
253
254// CreateService API operation for Amazon EC2 Container Service.
255//
256// Runs and maintains a desired number of tasks from a specified task definition.
257// If the number of tasks running in a service drops below the desiredCount,
258// Amazon ECS runs another copy of the task in the specified cluster. To update
259// an existing service, see UpdateService.
260//
261// In addition to maintaining the desired count of tasks in your service, you
262// can optionally run your service behind one or more load balancers. The load
263// balancers distribute traffic across the tasks that are associated with the
264// service. For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
265// in the Amazon Elastic Container Service Developer Guide.
266//
267// Tasks for services that do not use a load balancer are considered healthy
268// if they're in the RUNNING state. Tasks for services that do use a load balancer
269// are considered healthy if they're in the RUNNING state and the container
270// instance that they're hosted on is reported as healthy by the load balancer.
271//
272// There are two service scheduler strategies available:
273//
274//    * REPLICA - The replica scheduling strategy places and maintains the desired
275//    number of tasks across your cluster. By default, the service scheduler
276//    spreads tasks across Availability Zones. You can use task placement strategies
277//    and constraints to customize task placement decisions. For more information,
278//    see Service Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
279//    in the Amazon Elastic Container Service Developer Guide.
280//
281//    * DAEMON - The daemon scheduling strategy deploys exactly one task on
282//    each active container instance that meets all of the task placement constraints
283//    that you specify in your cluster. When using this strategy, you don't
284//    need to specify a desired number of tasks, a task placement strategy,
285//    or use Service Auto Scaling policies. For more information, see Service
286//    Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
287//    in the Amazon Elastic Container Service Developer Guide.
288//
289// You can optionally specify a deployment configuration for your service. The
290// deployment is triggered by changing properties, such as the task definition
291// or the desired count of a service, with an UpdateService operation. The default
292// value for a replica service for minimumHealthyPercent is 100%. The default
293// value for a daemon service for minimumHealthyPercent is 0%.
294//
295// If a service is using the ECS deployment controller, the minimum healthy
296// percent represents a lower limit on the number of tasks in a service that
297// must remain in the RUNNING state during a deployment, as a percentage of
298// the desired number of tasks (rounded up to the nearest integer), and while
299// any container instances are in the DRAINING state if the service contains
300// tasks using the EC2 launch type. This parameter enables you to deploy without
301// using additional cluster capacity. For example, if your service has a desired
302// number of four tasks and a minimum healthy percent of 50%, the scheduler
303// might stop two existing tasks to free up cluster capacity before starting
304// two new tasks. Tasks for services that do not use a load balancer are considered
305// healthy if they're in the RUNNING state. Tasks for services that do use a
306// load balancer are considered healthy if they're in the RUNNING state and
307// they're reported as healthy by the load balancer. The default value for minimum
308// healthy percent is 100%.
309//
310// If a service is using the ECS deployment controller, the maximum percent
311// parameter represents an upper limit on the number of tasks in a service that
312// are allowed in the RUNNING or PENDING state during a deployment, as a percentage
313// of the desired number of tasks (rounded down to the nearest integer), and
314// while any container instances are in the DRAINING state if the service contains
315// tasks using the EC2 launch type. This parameter enables you to define the
316// deployment batch size. For example, if your service has a desired number
317// of four tasks and a maximum percent value of 200%, the scheduler may start
318// four new tasks before stopping the four older tasks (provided that the cluster
319// resources required to do this are available). The default value for maximum
320// percent is 200%.
321//
322// If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller
323// types and tasks that use the EC2 launch type, the minimum healthy percent
324// and maximum percent values are used only to define the lower and upper limit
325// on the number of the tasks in the service that remain in the RUNNING state
326// while the container instances are in the DRAINING state. If the tasks in
327// the service use the Fargate launch type, the minimum healthy percent and
328// maximum percent values aren't used, although they're currently visible when
329// describing your service.
330//
331// When creating a service that uses the EXTERNAL deployment controller, you
332// can specify only parameters that aren't controlled at the task set level.
333// The only required parameter is the service name. You control your services
334// using the CreateTaskSet operation. For more information, see Amazon ECS Deployment
335// Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
336// in the Amazon Elastic Container Service Developer Guide.
337//
338// When the service scheduler launches new tasks, it determines task placement
339// in your cluster using the following logic:
340//
341//    * Determine which of the container instances in your cluster can support
342//    your service's task definition (for example, they have the required CPU,
343//    memory, ports, and container instance attributes).
344//
345//    * By default, the service scheduler attempts to balance tasks across Availability
346//    Zones in this manner (although you can choose a different placement strategy)
347//    with the placementStrategy parameter): Sort the valid container instances,
348//    giving priority to instances that have the fewest number of running tasks
349//    for this service in their respective Availability Zone. For example, if
350//    zone A has one running service task and zones B and C each have zero,
351//    valid container instances in either zone B or C are considered optimal
352//    for placement. Place the new service task on a valid container instance
353//    in an optimal Availability Zone (based on the previous steps), favoring
354//    container instances with the fewest number of running tasks for this service.
355//
356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
357// with awserr.Error's Code and Message methods to get detailed information about
358// the error.
359//
360// See the AWS API reference guide for Amazon EC2 Container Service's
361// API operation CreateService for usage and error information.
362//
363// Returned Error Codes:
364//   * ErrCodeServerException "ServerException"
365//   These errors are usually caused by a server issue.
366//
367//   * ErrCodeClientException "ClientException"
368//   These errors are usually caused by a client action, such as using an action
369//   or resource on behalf of a user that doesn't have permissions to use the
370//   action or resource, or specifying an identifier that is not valid.
371//
372//   * ErrCodeInvalidParameterException "InvalidParameterException"
373//   The specified parameter is invalid. Review the available parameters for the
374//   API request.
375//
376//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
377//   The specified cluster could not be found. You can view your available clusters
378//   with ListClusters. Amazon ECS clusters are Region-specific.
379//
380//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
381//   The specified task is not supported in this Region.
382//
383//   * ErrCodePlatformUnknownException "PlatformUnknownException"
384//   The specified platform version does not exist.
385//
386//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
387//   The specified platform version does not satisfy the task definition's required
388//   capabilities.
389//
390//   * ErrCodeAccessDeniedException "AccessDeniedException"
391//   You do not have authorization to perform the requested action.
392//
393// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
394func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
395	req, out := c.CreateServiceRequest(input)
396	return out, req.Send()
397}
398
399// CreateServiceWithContext is the same as CreateService with the addition of
400// the ability to pass a context and additional request options.
401//
402// See CreateService for details on how to use this API operation.
403//
404// The context must be non-nil and will be used for request cancellation. If
405// the context is nil a panic will occur. In the future the SDK may create
406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
407// for more information on using Contexts.
408func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
409	req, out := c.CreateServiceRequest(input)
410	req.SetContext(ctx)
411	req.ApplyOptions(opts...)
412	return out, req.Send()
413}
414
415const opCreateTaskSet = "CreateTaskSet"
416
417// CreateTaskSetRequest generates a "aws/request.Request" representing the
418// client's request for the CreateTaskSet operation. The "output" return
419// value will be populated with the request's response once the request completes
420// successfully.
421//
422// Use "Send" method on the returned Request to send the API call to the service.
423// the "output" return value is not valid until after Send returns without error.
424//
425// See CreateTaskSet for more information on using the CreateTaskSet
426// API call, and error handling.
427//
428// This method is useful when you want to inject custom logic or configuration
429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
430//
431//
432//    // Example sending a request using the CreateTaskSetRequest method.
433//    req, resp := client.CreateTaskSetRequest(params)
434//
435//    err := req.Send()
436//    if err == nil { // resp is now filled
437//        fmt.Println(resp)
438//    }
439//
440// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
441func (c *ECS) CreateTaskSetRequest(input *CreateTaskSetInput) (req *request.Request, output *CreateTaskSetOutput) {
442	op := &request.Operation{
443		Name:       opCreateTaskSet,
444		HTTPMethod: "POST",
445		HTTPPath:   "/",
446	}
447
448	if input == nil {
449		input = &CreateTaskSetInput{}
450	}
451
452	output = &CreateTaskSetOutput{}
453	req = c.newRequest(op, input, output)
454	return
455}
456
457// CreateTaskSet API operation for Amazon EC2 Container Service.
458//
459// Create a task set in the specified cluster and service. This is used when
460// a service uses the EXTERNAL deployment controller type. For more information,
461// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
462// in the Amazon Elastic Container Service Developer Guide.
463//
464// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
465// with awserr.Error's Code and Message methods to get detailed information about
466// the error.
467//
468// See the AWS API reference guide for Amazon EC2 Container Service's
469// API operation CreateTaskSet for usage and error information.
470//
471// Returned Error Codes:
472//   * ErrCodeServerException "ServerException"
473//   These errors are usually caused by a server issue.
474//
475//   * ErrCodeClientException "ClientException"
476//   These errors are usually caused by a client action, such as using an action
477//   or resource on behalf of a user that doesn't have permissions to use the
478//   action or resource, or specifying an identifier that is not valid.
479//
480//   * ErrCodeInvalidParameterException "InvalidParameterException"
481//   The specified parameter is invalid. Review the available parameters for the
482//   API request.
483//
484//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
485//   The specified cluster could not be found. You can view your available clusters
486//   with ListClusters. Amazon ECS clusters are Region-specific.
487//
488//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
489//   The specified task is not supported in this Region.
490//
491//   * ErrCodePlatformUnknownException "PlatformUnknownException"
492//   The specified platform version does not exist.
493//
494//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
495//   The specified platform version does not satisfy the task definition's required
496//   capabilities.
497//
498//   * ErrCodeAccessDeniedException "AccessDeniedException"
499//   You do not have authorization to perform the requested action.
500//
501//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
502//   The specified service could not be found. You can view your available services
503//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
504//
505//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
506//   The specified service is not active. You can't update a service that is inactive.
507//   If you have previously deleted a service, you can re-create it with CreateService.
508//
509// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
510func (c *ECS) CreateTaskSet(input *CreateTaskSetInput) (*CreateTaskSetOutput, error) {
511	req, out := c.CreateTaskSetRequest(input)
512	return out, req.Send()
513}
514
515// CreateTaskSetWithContext is the same as CreateTaskSet with the addition of
516// the ability to pass a context and additional request options.
517//
518// See CreateTaskSet for details on how to use this API operation.
519//
520// The context must be non-nil and will be used for request cancellation. If
521// the context is nil a panic will occur. In the future the SDK may create
522// sub-contexts for http.Requests. See https://golang.org/pkg/context/
523// for more information on using Contexts.
524func (c *ECS) CreateTaskSetWithContext(ctx aws.Context, input *CreateTaskSetInput, opts ...request.Option) (*CreateTaskSetOutput, error) {
525	req, out := c.CreateTaskSetRequest(input)
526	req.SetContext(ctx)
527	req.ApplyOptions(opts...)
528	return out, req.Send()
529}
530
531const opDeleteAccountSetting = "DeleteAccountSetting"
532
533// DeleteAccountSettingRequest generates a "aws/request.Request" representing the
534// client's request for the DeleteAccountSetting operation. The "output" return
535// value will be populated with the request's response once the request completes
536// successfully.
537//
538// Use "Send" method on the returned Request to send the API call to the service.
539// the "output" return value is not valid until after Send returns without error.
540//
541// See DeleteAccountSetting for more information on using the DeleteAccountSetting
542// API call, and error handling.
543//
544// This method is useful when you want to inject custom logic or configuration
545// into the SDK's request lifecycle. Such as custom headers, or retry logic.
546//
547//
548//    // Example sending a request using the DeleteAccountSettingRequest method.
549//    req, resp := client.DeleteAccountSettingRequest(params)
550//
551//    err := req.Send()
552//    if err == nil { // resp is now filled
553//        fmt.Println(resp)
554//    }
555//
556// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
557func (c *ECS) DeleteAccountSettingRequest(input *DeleteAccountSettingInput) (req *request.Request, output *DeleteAccountSettingOutput) {
558	op := &request.Operation{
559		Name:       opDeleteAccountSetting,
560		HTTPMethod: "POST",
561		HTTPPath:   "/",
562	}
563
564	if input == nil {
565		input = &DeleteAccountSettingInput{}
566	}
567
568	output = &DeleteAccountSettingOutput{}
569	req = c.newRequest(op, input, output)
570	return
571}
572
573// DeleteAccountSetting API operation for Amazon EC2 Container Service.
574//
575// Disables an account setting for a specified IAM user, IAM role, or the root
576// user for an account.
577//
578// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
579// with awserr.Error's Code and Message methods to get detailed information about
580// the error.
581//
582// See the AWS API reference guide for Amazon EC2 Container Service's
583// API operation DeleteAccountSetting for usage and error information.
584//
585// Returned Error Codes:
586//   * ErrCodeServerException "ServerException"
587//   These errors are usually caused by a server issue.
588//
589//   * ErrCodeClientException "ClientException"
590//   These errors are usually caused by a client action, such as using an action
591//   or resource on behalf of a user that doesn't have permissions to use the
592//   action or resource, or specifying an identifier that is not valid.
593//
594//   * ErrCodeInvalidParameterException "InvalidParameterException"
595//   The specified parameter is invalid. Review the available parameters for the
596//   API request.
597//
598// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
599func (c *ECS) DeleteAccountSetting(input *DeleteAccountSettingInput) (*DeleteAccountSettingOutput, error) {
600	req, out := c.DeleteAccountSettingRequest(input)
601	return out, req.Send()
602}
603
604// DeleteAccountSettingWithContext is the same as DeleteAccountSetting with the addition of
605// the ability to pass a context and additional request options.
606//
607// See DeleteAccountSetting for details on how to use this API operation.
608//
609// The context must be non-nil and will be used for request cancellation. If
610// the context is nil a panic will occur. In the future the SDK may create
611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
612// for more information on using Contexts.
613func (c *ECS) DeleteAccountSettingWithContext(ctx aws.Context, input *DeleteAccountSettingInput, opts ...request.Option) (*DeleteAccountSettingOutput, error) {
614	req, out := c.DeleteAccountSettingRequest(input)
615	req.SetContext(ctx)
616	req.ApplyOptions(opts...)
617	return out, req.Send()
618}
619
620const opDeleteAttributes = "DeleteAttributes"
621
622// DeleteAttributesRequest generates a "aws/request.Request" representing the
623// client's request for the DeleteAttributes operation. The "output" return
624// value will be populated with the request's response once the request completes
625// successfully.
626//
627// Use "Send" method on the returned Request to send the API call to the service.
628// the "output" return value is not valid until after Send returns without error.
629//
630// See DeleteAttributes for more information on using the DeleteAttributes
631// API call, and error handling.
632//
633// This method is useful when you want to inject custom logic or configuration
634// into the SDK's request lifecycle. Such as custom headers, or retry logic.
635//
636//
637//    // Example sending a request using the DeleteAttributesRequest method.
638//    req, resp := client.DeleteAttributesRequest(params)
639//
640//    err := req.Send()
641//    if err == nil { // resp is now filled
642//        fmt.Println(resp)
643//    }
644//
645// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
646func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
647	op := &request.Operation{
648		Name:       opDeleteAttributes,
649		HTTPMethod: "POST",
650		HTTPPath:   "/",
651	}
652
653	if input == nil {
654		input = &DeleteAttributesInput{}
655	}
656
657	output = &DeleteAttributesOutput{}
658	req = c.newRequest(op, input, output)
659	return
660}
661
662// DeleteAttributes API operation for Amazon EC2 Container Service.
663//
664// Deletes one or more custom attributes from an Amazon ECS resource.
665//
666// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
667// with awserr.Error's Code and Message methods to get detailed information about
668// the error.
669//
670// See the AWS API reference guide for Amazon EC2 Container Service's
671// API operation DeleteAttributes for usage and error information.
672//
673// Returned Error Codes:
674//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
675//   The specified cluster could not be found. You can view your available clusters
676//   with ListClusters. Amazon ECS clusters are Region-specific.
677//
678//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
679//   The specified target could not be found. You can view your available container
680//   instances with ListContainerInstances. Amazon ECS container instances are
681//   cluster-specific and Region-specific.
682//
683//   * ErrCodeInvalidParameterException "InvalidParameterException"
684//   The specified parameter is invalid. Review the available parameters for the
685//   API request.
686//
687// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
688func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
689	req, out := c.DeleteAttributesRequest(input)
690	return out, req.Send()
691}
692
693// DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
694// the ability to pass a context and additional request options.
695//
696// See DeleteAttributes for details on how to use this API operation.
697//
698// The context must be non-nil and will be used for request cancellation. If
699// the context is nil a panic will occur. In the future the SDK may create
700// sub-contexts for http.Requests. See https://golang.org/pkg/context/
701// for more information on using Contexts.
702func (c *ECS) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
703	req, out := c.DeleteAttributesRequest(input)
704	req.SetContext(ctx)
705	req.ApplyOptions(opts...)
706	return out, req.Send()
707}
708
709const opDeleteCluster = "DeleteCluster"
710
711// DeleteClusterRequest generates a "aws/request.Request" representing the
712// client's request for the DeleteCluster operation. The "output" return
713// value will be populated with the request's response once the request completes
714// successfully.
715//
716// Use "Send" method on the returned Request to send the API call to the service.
717// the "output" return value is not valid until after Send returns without error.
718//
719// See DeleteCluster for more information on using the DeleteCluster
720// API call, and error handling.
721//
722// This method is useful when you want to inject custom logic or configuration
723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
724//
725//
726//    // Example sending a request using the DeleteClusterRequest method.
727//    req, resp := client.DeleteClusterRequest(params)
728//
729//    err := req.Send()
730//    if err == nil { // resp is now filled
731//        fmt.Println(resp)
732//    }
733//
734// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
735func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
736	op := &request.Operation{
737		Name:       opDeleteCluster,
738		HTTPMethod: "POST",
739		HTTPPath:   "/",
740	}
741
742	if input == nil {
743		input = &DeleteClusterInput{}
744	}
745
746	output = &DeleteClusterOutput{}
747	req = c.newRequest(op, input, output)
748	return
749}
750
751// DeleteCluster API operation for Amazon EC2 Container Service.
752//
753// Deletes the specified cluster. You must deregister all container instances
754// from this cluster before you may delete it. You can list the container instances
755// in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.
756//
757// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
758// with awserr.Error's Code and Message methods to get detailed information about
759// the error.
760//
761// See the AWS API reference guide for Amazon EC2 Container Service's
762// API operation DeleteCluster for usage and error information.
763//
764// Returned Error Codes:
765//   * ErrCodeServerException "ServerException"
766//   These errors are usually caused by a server issue.
767//
768//   * ErrCodeClientException "ClientException"
769//   These errors are usually caused by a client action, such as using an action
770//   or resource on behalf of a user that doesn't have permissions to use the
771//   action or resource, or specifying an identifier that is not valid.
772//
773//   * ErrCodeInvalidParameterException "InvalidParameterException"
774//   The specified parameter is invalid. Review the available parameters for the
775//   API request.
776//
777//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
778//   The specified cluster could not be found. You can view your available clusters
779//   with ListClusters. Amazon ECS clusters are Region-specific.
780//
781//   * ErrCodeClusterContainsContainerInstancesException "ClusterContainsContainerInstancesException"
782//   You cannot delete a cluster that has registered container instances. First,
783//   deregister the container instances before you can delete the cluster. For
784//   more information, see DeregisterContainerInstance.
785//
786//   * ErrCodeClusterContainsServicesException "ClusterContainsServicesException"
787//   You cannot delete a cluster that contains services. First, update the service
788//   to reduce its desired task count to 0 and then delete the service. For more
789//   information, see UpdateService and DeleteService.
790//
791//   * ErrCodeClusterContainsTasksException "ClusterContainsTasksException"
792//   You cannot delete a cluster that has active tasks.
793//
794//   * ErrCodeUpdateInProgressException "UpdateInProgressException"
795//   There is already a current Amazon ECS container agent update in progress
796//   on the specified container instance. If the container agent becomes disconnected
797//   while it is in a transitional stage, such as PENDING or STAGING, the update
798//   process can get stuck in that state. However, when the agent reconnects,
799//   it resumes where it stopped previously.
800//
801// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
802func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
803	req, out := c.DeleteClusterRequest(input)
804	return out, req.Send()
805}
806
807// DeleteClusterWithContext is the same as DeleteCluster with the addition of
808// the ability to pass a context and additional request options.
809//
810// See DeleteCluster for details on how to use this API operation.
811//
812// The context must be non-nil and will be used for request cancellation. If
813// the context is nil a panic will occur. In the future the SDK may create
814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
815// for more information on using Contexts.
816func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
817	req, out := c.DeleteClusterRequest(input)
818	req.SetContext(ctx)
819	req.ApplyOptions(opts...)
820	return out, req.Send()
821}
822
823const opDeleteService = "DeleteService"
824
825// DeleteServiceRequest generates a "aws/request.Request" representing the
826// client's request for the DeleteService operation. The "output" return
827// value will be populated with the request's response once the request completes
828// successfully.
829//
830// Use "Send" method on the returned Request to send the API call to the service.
831// the "output" return value is not valid until after Send returns without error.
832//
833// See DeleteService for more information on using the DeleteService
834// API call, and error handling.
835//
836// This method is useful when you want to inject custom logic or configuration
837// into the SDK's request lifecycle. Such as custom headers, or retry logic.
838//
839//
840//    // Example sending a request using the DeleteServiceRequest method.
841//    req, resp := client.DeleteServiceRequest(params)
842//
843//    err := req.Send()
844//    if err == nil { // resp is now filled
845//        fmt.Println(resp)
846//    }
847//
848// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
849func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
850	op := &request.Operation{
851		Name:       opDeleteService,
852		HTTPMethod: "POST",
853		HTTPPath:   "/",
854	}
855
856	if input == nil {
857		input = &DeleteServiceInput{}
858	}
859
860	output = &DeleteServiceOutput{}
861	req = c.newRequest(op, input, output)
862	return
863}
864
865// DeleteService API operation for Amazon EC2 Container Service.
866//
867// Deletes a specified service within a cluster. You can delete a service if
868// you have no running tasks in it and the desired task count is zero. If the
869// service is actively maintaining tasks, you cannot delete it, and you must
870// update the service to a desired task count of zero. For more information,
871// see UpdateService.
872//
873// When you delete a service, if there are still running tasks that require
874// cleanup, the service status moves from ACTIVE to DRAINING, and the service
875// is no longer visible in the console or in the ListServices API operation.
876// After all tasks have transitioned to either STOPPING or STOPPED status, the
877// service status moves from DRAINING to INACTIVE. Services in the DRAINING
878// or INACTIVE status can still be viewed with the DescribeServices API operation.
879// However, in the future, INACTIVE services may be cleaned up and purged from
880// Amazon ECS record keeping, and DescribeServices calls on those services return
881// a ServiceNotFoundException error.
882//
883// If you attempt to create a new service with the same name as an existing
884// service in either ACTIVE or DRAINING status, you receive an error.
885//
886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
887// with awserr.Error's Code and Message methods to get detailed information about
888// the error.
889//
890// See the AWS API reference guide for Amazon EC2 Container Service's
891// API operation DeleteService for usage and error information.
892//
893// Returned Error Codes:
894//   * ErrCodeServerException "ServerException"
895//   These errors are usually caused by a server issue.
896//
897//   * ErrCodeClientException "ClientException"
898//   These errors are usually caused by a client action, such as using an action
899//   or resource on behalf of a user that doesn't have permissions to use the
900//   action or resource, or specifying an identifier that is not valid.
901//
902//   * ErrCodeInvalidParameterException "InvalidParameterException"
903//   The specified parameter is invalid. Review the available parameters for the
904//   API request.
905//
906//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
907//   The specified cluster could not be found. You can view your available clusters
908//   with ListClusters. Amazon ECS clusters are Region-specific.
909//
910//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
911//   The specified service could not be found. You can view your available services
912//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
913//
914// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
915func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
916	req, out := c.DeleteServiceRequest(input)
917	return out, req.Send()
918}
919
920// DeleteServiceWithContext is the same as DeleteService with the addition of
921// the ability to pass a context and additional request options.
922//
923// See DeleteService for details on how to use this API operation.
924//
925// The context must be non-nil and will be used for request cancellation. If
926// the context is nil a panic will occur. In the future the SDK may create
927// sub-contexts for http.Requests. See https://golang.org/pkg/context/
928// for more information on using Contexts.
929func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
930	req, out := c.DeleteServiceRequest(input)
931	req.SetContext(ctx)
932	req.ApplyOptions(opts...)
933	return out, req.Send()
934}
935
936const opDeleteTaskSet = "DeleteTaskSet"
937
938// DeleteTaskSetRequest generates a "aws/request.Request" representing the
939// client's request for the DeleteTaskSet operation. The "output" return
940// value will be populated with the request's response once the request completes
941// successfully.
942//
943// Use "Send" method on the returned Request to send the API call to the service.
944// the "output" return value is not valid until after Send returns without error.
945//
946// See DeleteTaskSet for more information on using the DeleteTaskSet
947// API call, and error handling.
948//
949// This method is useful when you want to inject custom logic or configuration
950// into the SDK's request lifecycle. Such as custom headers, or retry logic.
951//
952//
953//    // Example sending a request using the DeleteTaskSetRequest method.
954//    req, resp := client.DeleteTaskSetRequest(params)
955//
956//    err := req.Send()
957//    if err == nil { // resp is now filled
958//        fmt.Println(resp)
959//    }
960//
961// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
962func (c *ECS) DeleteTaskSetRequest(input *DeleteTaskSetInput) (req *request.Request, output *DeleteTaskSetOutput) {
963	op := &request.Operation{
964		Name:       opDeleteTaskSet,
965		HTTPMethod: "POST",
966		HTTPPath:   "/",
967	}
968
969	if input == nil {
970		input = &DeleteTaskSetInput{}
971	}
972
973	output = &DeleteTaskSetOutput{}
974	req = c.newRequest(op, input, output)
975	return
976}
977
978// DeleteTaskSet API operation for Amazon EC2 Container Service.
979//
980// Deletes a specified task set within a service. This is used when a service
981// uses the EXTERNAL deployment controller type. For more information, see Amazon
982// ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
983// in the Amazon Elastic Container Service Developer Guide.
984//
985// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
986// with awserr.Error's Code and Message methods to get detailed information about
987// the error.
988//
989// See the AWS API reference guide for Amazon EC2 Container Service's
990// API operation DeleteTaskSet for usage and error information.
991//
992// Returned Error Codes:
993//   * ErrCodeServerException "ServerException"
994//   These errors are usually caused by a server issue.
995//
996//   * ErrCodeClientException "ClientException"
997//   These errors are usually caused by a client action, such as using an action
998//   or resource on behalf of a user that doesn't have permissions to use the
999//   action or resource, or specifying an identifier that is not valid.
1000//
1001//   * ErrCodeInvalidParameterException "InvalidParameterException"
1002//   The specified parameter is invalid. Review the available parameters for the
1003//   API request.
1004//
1005//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1006//   The specified cluster could not be found. You can view your available clusters
1007//   with ListClusters. Amazon ECS clusters are Region-specific.
1008//
1009//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
1010//   The specified task is not supported in this Region.
1011//
1012//   * ErrCodeAccessDeniedException "AccessDeniedException"
1013//   You do not have authorization to perform the requested action.
1014//
1015//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
1016//   The specified service could not be found. You can view your available services
1017//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1018//
1019//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
1020//   The specified service is not active. You can't update a service that is inactive.
1021//   If you have previously deleted a service, you can re-create it with CreateService.
1022//
1023//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
1024//   The specified task set could not be found. You can view your available task
1025//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
1026//   and Region.
1027//
1028// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
1029func (c *ECS) DeleteTaskSet(input *DeleteTaskSetInput) (*DeleteTaskSetOutput, error) {
1030	req, out := c.DeleteTaskSetRequest(input)
1031	return out, req.Send()
1032}
1033
1034// DeleteTaskSetWithContext is the same as DeleteTaskSet with the addition of
1035// the ability to pass a context and additional request options.
1036//
1037// See DeleteTaskSet for details on how to use this API operation.
1038//
1039// The context must be non-nil and will be used for request cancellation. If
1040// the context is nil a panic will occur. In the future the SDK may create
1041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1042// for more information on using Contexts.
1043func (c *ECS) DeleteTaskSetWithContext(ctx aws.Context, input *DeleteTaskSetInput, opts ...request.Option) (*DeleteTaskSetOutput, error) {
1044	req, out := c.DeleteTaskSetRequest(input)
1045	req.SetContext(ctx)
1046	req.ApplyOptions(opts...)
1047	return out, req.Send()
1048}
1049
1050const opDeregisterContainerInstance = "DeregisterContainerInstance"
1051
1052// DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
1053// client's request for the DeregisterContainerInstance operation. The "output" return
1054// value will be populated with the request's response once the request completes
1055// successfully.
1056//
1057// Use "Send" method on the returned Request to send the API call to the service.
1058// the "output" return value is not valid until after Send returns without error.
1059//
1060// See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
1061// API call, and error handling.
1062//
1063// This method is useful when you want to inject custom logic or configuration
1064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1065//
1066//
1067//    // Example sending a request using the DeregisterContainerInstanceRequest method.
1068//    req, resp := client.DeregisterContainerInstanceRequest(params)
1069//
1070//    err := req.Send()
1071//    if err == nil { // resp is now filled
1072//        fmt.Println(resp)
1073//    }
1074//
1075// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1076func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
1077	op := &request.Operation{
1078		Name:       opDeregisterContainerInstance,
1079		HTTPMethod: "POST",
1080		HTTPPath:   "/",
1081	}
1082
1083	if input == nil {
1084		input = &DeregisterContainerInstanceInput{}
1085	}
1086
1087	output = &DeregisterContainerInstanceOutput{}
1088	req = c.newRequest(op, input, output)
1089	return
1090}
1091
1092// DeregisterContainerInstance API operation for Amazon EC2 Container Service.
1093//
1094// Deregisters an Amazon ECS container instance from the specified cluster.
1095// This instance is no longer available to run tasks.
1096//
1097// If you intend to use the container instance for some other purpose after
1098// deregistration, you should stop all of the tasks running on the container
1099// instance before deregistration. That prevents any orphaned tasks from consuming
1100// resources.
1101//
1102// Deregistering a container instance removes the instance from a cluster, but
1103// it does not terminate the EC2 instance. If you are finished using the instance,
1104// be sure to terminate it in the Amazon EC2 console to stop billing.
1105//
1106// If you terminate a running container instance, Amazon ECS automatically deregisters
1107// the instance from your cluster (stopped container instances or instances
1108// with disconnected agents are not automatically deregistered when terminated).
1109//
1110// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1111// with awserr.Error's Code and Message methods to get detailed information about
1112// the error.
1113//
1114// See the AWS API reference guide for Amazon EC2 Container Service's
1115// API operation DeregisterContainerInstance for usage and error information.
1116//
1117// Returned Error Codes:
1118//   * ErrCodeServerException "ServerException"
1119//   These errors are usually caused by a server issue.
1120//
1121//   * ErrCodeClientException "ClientException"
1122//   These errors are usually caused by a client action, such as using an action
1123//   or resource on behalf of a user that doesn't have permissions to use the
1124//   action or resource, or specifying an identifier that is not valid.
1125//
1126//   * ErrCodeInvalidParameterException "InvalidParameterException"
1127//   The specified parameter is invalid. Review the available parameters for the
1128//   API request.
1129//
1130//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1131//   The specified cluster could not be found. You can view your available clusters
1132//   with ListClusters. Amazon ECS clusters are Region-specific.
1133//
1134// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1135func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
1136	req, out := c.DeregisterContainerInstanceRequest(input)
1137	return out, req.Send()
1138}
1139
1140// DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
1141// the ability to pass a context and additional request options.
1142//
1143// See DeregisterContainerInstance for details on how to use this API operation.
1144//
1145// The context must be non-nil and will be used for request cancellation. If
1146// the context is nil a panic will occur. In the future the SDK may create
1147// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1148// for more information on using Contexts.
1149func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
1150	req, out := c.DeregisterContainerInstanceRequest(input)
1151	req.SetContext(ctx)
1152	req.ApplyOptions(opts...)
1153	return out, req.Send()
1154}
1155
1156const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
1157
1158// DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
1159// client's request for the DeregisterTaskDefinition operation. The "output" return
1160// value will be populated with the request's response once the request completes
1161// successfully.
1162//
1163// Use "Send" method on the returned Request to send the API call to the service.
1164// the "output" return value is not valid until after Send returns without error.
1165//
1166// See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
1167// API call, and error handling.
1168//
1169// This method is useful when you want to inject custom logic or configuration
1170// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1171//
1172//
1173//    // Example sending a request using the DeregisterTaskDefinitionRequest method.
1174//    req, resp := client.DeregisterTaskDefinitionRequest(params)
1175//
1176//    err := req.Send()
1177//    if err == nil { // resp is now filled
1178//        fmt.Println(resp)
1179//    }
1180//
1181// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1182func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
1183	op := &request.Operation{
1184		Name:       opDeregisterTaskDefinition,
1185		HTTPMethod: "POST",
1186		HTTPPath:   "/",
1187	}
1188
1189	if input == nil {
1190		input = &DeregisterTaskDefinitionInput{}
1191	}
1192
1193	output = &DeregisterTaskDefinitionOutput{}
1194	req = c.newRequest(op, input, output)
1195	return
1196}
1197
1198// DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
1199//
1200// Deregisters the specified task definition by family and revision. Upon deregistration,
1201// the task definition is marked as INACTIVE. Existing tasks and services that
1202// reference an INACTIVE task definition continue to run without disruption.
1203// Existing services that reference an INACTIVE task definition can still scale
1204// up or down by modifying the service's desired count.
1205//
1206// You cannot use an INACTIVE task definition to run new tasks or create new
1207// services, and you cannot update an existing service to reference an INACTIVE
1208// task definition. However, there may be up to a 10-minute window following
1209// deregistration where these restrictions have not yet taken effect.
1210//
1211// At this time, INACTIVE task definitions remain discoverable in your account
1212// indefinitely. However, this behavior is subject to change in the future,
1213// so you should not rely on INACTIVE task definitions persisting beyond the
1214// lifecycle of any associated tasks and services.
1215//
1216// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1217// with awserr.Error's Code and Message methods to get detailed information about
1218// the error.
1219//
1220// See the AWS API reference guide for Amazon EC2 Container Service's
1221// API operation DeregisterTaskDefinition for usage and error information.
1222//
1223// Returned Error Codes:
1224//   * ErrCodeServerException "ServerException"
1225//   These errors are usually caused by a server issue.
1226//
1227//   * ErrCodeClientException "ClientException"
1228//   These errors are usually caused by a client action, such as using an action
1229//   or resource on behalf of a user that doesn't have permissions to use the
1230//   action or resource, or specifying an identifier that is not valid.
1231//
1232//   * ErrCodeInvalidParameterException "InvalidParameterException"
1233//   The specified parameter is invalid. Review the available parameters for the
1234//   API request.
1235//
1236// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1237func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
1238	req, out := c.DeregisterTaskDefinitionRequest(input)
1239	return out, req.Send()
1240}
1241
1242// DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
1243// the ability to pass a context and additional request options.
1244//
1245// See DeregisterTaskDefinition for details on how to use this API operation.
1246//
1247// The context must be non-nil and will be used for request cancellation. If
1248// the context is nil a panic will occur. In the future the SDK may create
1249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1250// for more information on using Contexts.
1251func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
1252	req, out := c.DeregisterTaskDefinitionRequest(input)
1253	req.SetContext(ctx)
1254	req.ApplyOptions(opts...)
1255	return out, req.Send()
1256}
1257
1258const opDescribeCapacityProviders = "DescribeCapacityProviders"
1259
1260// DescribeCapacityProvidersRequest generates a "aws/request.Request" representing the
1261// client's request for the DescribeCapacityProviders operation. The "output" return
1262// value will be populated with the request's response once the request completes
1263// successfully.
1264//
1265// Use "Send" method on the returned Request to send the API call to the service.
1266// the "output" return value is not valid until after Send returns without error.
1267//
1268// See DescribeCapacityProviders for more information on using the DescribeCapacityProviders
1269// API call, and error handling.
1270//
1271// This method is useful when you want to inject custom logic or configuration
1272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1273//
1274//
1275//    // Example sending a request using the DescribeCapacityProvidersRequest method.
1276//    req, resp := client.DescribeCapacityProvidersRequest(params)
1277//
1278//    err := req.Send()
1279//    if err == nil { // resp is now filled
1280//        fmt.Println(resp)
1281//    }
1282//
1283// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1284func (c *ECS) DescribeCapacityProvidersRequest(input *DescribeCapacityProvidersInput) (req *request.Request, output *DescribeCapacityProvidersOutput) {
1285	op := &request.Operation{
1286		Name:       opDescribeCapacityProviders,
1287		HTTPMethod: "POST",
1288		HTTPPath:   "/",
1289	}
1290
1291	if input == nil {
1292		input = &DescribeCapacityProvidersInput{}
1293	}
1294
1295	output = &DescribeCapacityProvidersOutput{}
1296	req = c.newRequest(op, input, output)
1297	return
1298}
1299
1300// DescribeCapacityProviders API operation for Amazon EC2 Container Service.
1301//
1302// Describes one or more of your capacity providers.
1303//
1304// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1305// with awserr.Error's Code and Message methods to get detailed information about
1306// the error.
1307//
1308// See the AWS API reference guide for Amazon EC2 Container Service's
1309// API operation DescribeCapacityProviders for usage and error information.
1310//
1311// Returned Error Codes:
1312//   * ErrCodeServerException "ServerException"
1313//   These errors are usually caused by a server issue.
1314//
1315//   * ErrCodeClientException "ClientException"
1316//   These errors are usually caused by a client action, such as using an action
1317//   or resource on behalf of a user that doesn't have permissions to use the
1318//   action or resource, or specifying an identifier that is not valid.
1319//
1320//   * ErrCodeInvalidParameterException "InvalidParameterException"
1321//   The specified parameter is invalid. Review the available parameters for the
1322//   API request.
1323//
1324// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1325func (c *ECS) DescribeCapacityProviders(input *DescribeCapacityProvidersInput) (*DescribeCapacityProvidersOutput, error) {
1326	req, out := c.DescribeCapacityProvidersRequest(input)
1327	return out, req.Send()
1328}
1329
1330// DescribeCapacityProvidersWithContext is the same as DescribeCapacityProviders with the addition of
1331// the ability to pass a context and additional request options.
1332//
1333// See DescribeCapacityProviders for details on how to use this API operation.
1334//
1335// The context must be non-nil and will be used for request cancellation. If
1336// the context is nil a panic will occur. In the future the SDK may create
1337// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1338// for more information on using Contexts.
1339func (c *ECS) DescribeCapacityProvidersWithContext(ctx aws.Context, input *DescribeCapacityProvidersInput, opts ...request.Option) (*DescribeCapacityProvidersOutput, error) {
1340	req, out := c.DescribeCapacityProvidersRequest(input)
1341	req.SetContext(ctx)
1342	req.ApplyOptions(opts...)
1343	return out, req.Send()
1344}
1345
1346const opDescribeClusters = "DescribeClusters"
1347
1348// DescribeClustersRequest generates a "aws/request.Request" representing the
1349// client's request for the DescribeClusters operation. The "output" return
1350// value will be populated with the request's response once the request completes
1351// successfully.
1352//
1353// Use "Send" method on the returned Request to send the API call to the service.
1354// the "output" return value is not valid until after Send returns without error.
1355//
1356// See DescribeClusters for more information on using the DescribeClusters
1357// API call, and error handling.
1358//
1359// This method is useful when you want to inject custom logic or configuration
1360// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1361//
1362//
1363//    // Example sending a request using the DescribeClustersRequest method.
1364//    req, resp := client.DescribeClustersRequest(params)
1365//
1366//    err := req.Send()
1367//    if err == nil { // resp is now filled
1368//        fmt.Println(resp)
1369//    }
1370//
1371// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1372func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
1373	op := &request.Operation{
1374		Name:       opDescribeClusters,
1375		HTTPMethod: "POST",
1376		HTTPPath:   "/",
1377	}
1378
1379	if input == nil {
1380		input = &DescribeClustersInput{}
1381	}
1382
1383	output = &DescribeClustersOutput{}
1384	req = c.newRequest(op, input, output)
1385	return
1386}
1387
1388// DescribeClusters API operation for Amazon EC2 Container Service.
1389//
1390// Describes one or more of your clusters.
1391//
1392// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1393// with awserr.Error's Code and Message methods to get detailed information about
1394// the error.
1395//
1396// See the AWS API reference guide for Amazon EC2 Container Service's
1397// API operation DescribeClusters for usage and error information.
1398//
1399// Returned Error Codes:
1400//   * ErrCodeServerException "ServerException"
1401//   These errors are usually caused by a server issue.
1402//
1403//   * ErrCodeClientException "ClientException"
1404//   These errors are usually caused by a client action, such as using an action
1405//   or resource on behalf of a user that doesn't have permissions to use the
1406//   action or resource, or specifying an identifier that is not valid.
1407//
1408//   * ErrCodeInvalidParameterException "InvalidParameterException"
1409//   The specified parameter is invalid. Review the available parameters for the
1410//   API request.
1411//
1412// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1413func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
1414	req, out := c.DescribeClustersRequest(input)
1415	return out, req.Send()
1416}
1417
1418// DescribeClustersWithContext is the same as DescribeClusters with the addition of
1419// the ability to pass a context and additional request options.
1420//
1421// See DescribeClusters for details on how to use this API operation.
1422//
1423// The context must be non-nil and will be used for request cancellation. If
1424// the context is nil a panic will occur. In the future the SDK may create
1425// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1426// for more information on using Contexts.
1427func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
1428	req, out := c.DescribeClustersRequest(input)
1429	req.SetContext(ctx)
1430	req.ApplyOptions(opts...)
1431	return out, req.Send()
1432}
1433
1434const opDescribeContainerInstances = "DescribeContainerInstances"
1435
1436// DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
1437// client's request for the DescribeContainerInstances operation. The "output" return
1438// value will be populated with the request's response once the request completes
1439// successfully.
1440//
1441// Use "Send" method on the returned Request to send the API call to the service.
1442// the "output" return value is not valid until after Send returns without error.
1443//
1444// See DescribeContainerInstances for more information on using the DescribeContainerInstances
1445// API call, and error handling.
1446//
1447// This method is useful when you want to inject custom logic or configuration
1448// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1449//
1450//
1451//    // Example sending a request using the DescribeContainerInstancesRequest method.
1452//    req, resp := client.DescribeContainerInstancesRequest(params)
1453//
1454//    err := req.Send()
1455//    if err == nil { // resp is now filled
1456//        fmt.Println(resp)
1457//    }
1458//
1459// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1460func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
1461	op := &request.Operation{
1462		Name:       opDescribeContainerInstances,
1463		HTTPMethod: "POST",
1464		HTTPPath:   "/",
1465	}
1466
1467	if input == nil {
1468		input = &DescribeContainerInstancesInput{}
1469	}
1470
1471	output = &DescribeContainerInstancesOutput{}
1472	req = c.newRequest(op, input, output)
1473	return
1474}
1475
1476// DescribeContainerInstances API operation for Amazon EC2 Container Service.
1477//
1478// Describes Amazon Elastic Container Service container instances. Returns metadata
1479// about registered and remaining resources on each container instance requested.
1480//
1481// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1482// with awserr.Error's Code and Message methods to get detailed information about
1483// the error.
1484//
1485// See the AWS API reference guide for Amazon EC2 Container Service's
1486// API operation DescribeContainerInstances for usage and error information.
1487//
1488// Returned Error Codes:
1489//   * ErrCodeServerException "ServerException"
1490//   These errors are usually caused by a server issue.
1491//
1492//   * ErrCodeClientException "ClientException"
1493//   These errors are usually caused by a client action, such as using an action
1494//   or resource on behalf of a user that doesn't have permissions to use the
1495//   action or resource, or specifying an identifier that is not valid.
1496//
1497//   * ErrCodeInvalidParameterException "InvalidParameterException"
1498//   The specified parameter is invalid. Review the available parameters for the
1499//   API request.
1500//
1501//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1502//   The specified cluster could not be found. You can view your available clusters
1503//   with ListClusters. Amazon ECS clusters are Region-specific.
1504//
1505// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1506func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
1507	req, out := c.DescribeContainerInstancesRequest(input)
1508	return out, req.Send()
1509}
1510
1511// DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
1512// the ability to pass a context and additional request options.
1513//
1514// See DescribeContainerInstances for details on how to use this API operation.
1515//
1516// The context must be non-nil and will be used for request cancellation. If
1517// the context is nil a panic will occur. In the future the SDK may create
1518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1519// for more information on using Contexts.
1520func (c *ECS) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
1521	req, out := c.DescribeContainerInstancesRequest(input)
1522	req.SetContext(ctx)
1523	req.ApplyOptions(opts...)
1524	return out, req.Send()
1525}
1526
1527const opDescribeServices = "DescribeServices"
1528
1529// DescribeServicesRequest generates a "aws/request.Request" representing the
1530// client's request for the DescribeServices operation. The "output" return
1531// value will be populated with the request's response once the request completes
1532// successfully.
1533//
1534// Use "Send" method on the returned Request to send the API call to the service.
1535// the "output" return value is not valid until after Send returns without error.
1536//
1537// See DescribeServices for more information on using the DescribeServices
1538// API call, and error handling.
1539//
1540// This method is useful when you want to inject custom logic or configuration
1541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1542//
1543//
1544//    // Example sending a request using the DescribeServicesRequest method.
1545//    req, resp := client.DescribeServicesRequest(params)
1546//
1547//    err := req.Send()
1548//    if err == nil { // resp is now filled
1549//        fmt.Println(resp)
1550//    }
1551//
1552// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1553func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
1554	op := &request.Operation{
1555		Name:       opDescribeServices,
1556		HTTPMethod: "POST",
1557		HTTPPath:   "/",
1558	}
1559
1560	if input == nil {
1561		input = &DescribeServicesInput{}
1562	}
1563
1564	output = &DescribeServicesOutput{}
1565	req = c.newRequest(op, input, output)
1566	return
1567}
1568
1569// DescribeServices API operation for Amazon EC2 Container Service.
1570//
1571// Describes the specified services running in your cluster.
1572//
1573// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1574// with awserr.Error's Code and Message methods to get detailed information about
1575// the error.
1576//
1577// See the AWS API reference guide for Amazon EC2 Container Service's
1578// API operation DescribeServices for usage and error information.
1579//
1580// Returned Error Codes:
1581//   * ErrCodeServerException "ServerException"
1582//   These errors are usually caused by a server issue.
1583//
1584//   * ErrCodeClientException "ClientException"
1585//   These errors are usually caused by a client action, such as using an action
1586//   or resource on behalf of a user that doesn't have permissions to use the
1587//   action or resource, or specifying an identifier that is not valid.
1588//
1589//   * ErrCodeInvalidParameterException "InvalidParameterException"
1590//   The specified parameter is invalid. Review the available parameters for the
1591//   API request.
1592//
1593//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1594//   The specified cluster could not be found. You can view your available clusters
1595//   with ListClusters. Amazon ECS clusters are Region-specific.
1596//
1597// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1598func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
1599	req, out := c.DescribeServicesRequest(input)
1600	return out, req.Send()
1601}
1602
1603// DescribeServicesWithContext is the same as DescribeServices with the addition of
1604// the ability to pass a context and additional request options.
1605//
1606// See DescribeServices for details on how to use this API operation.
1607//
1608// The context must be non-nil and will be used for request cancellation. If
1609// the context is nil a panic will occur. In the future the SDK may create
1610// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1611// for more information on using Contexts.
1612func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
1613	req, out := c.DescribeServicesRequest(input)
1614	req.SetContext(ctx)
1615	req.ApplyOptions(opts...)
1616	return out, req.Send()
1617}
1618
1619const opDescribeTaskDefinition = "DescribeTaskDefinition"
1620
1621// DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
1622// client's request for the DescribeTaskDefinition operation. The "output" return
1623// value will be populated with the request's response once the request completes
1624// successfully.
1625//
1626// Use "Send" method on the returned Request to send the API call to the service.
1627// the "output" return value is not valid until after Send returns without error.
1628//
1629// See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
1630// API call, and error handling.
1631//
1632// This method is useful when you want to inject custom logic or configuration
1633// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1634//
1635//
1636//    // Example sending a request using the DescribeTaskDefinitionRequest method.
1637//    req, resp := client.DescribeTaskDefinitionRequest(params)
1638//
1639//    err := req.Send()
1640//    if err == nil { // resp is now filled
1641//        fmt.Println(resp)
1642//    }
1643//
1644// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1645func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
1646	op := &request.Operation{
1647		Name:       opDescribeTaskDefinition,
1648		HTTPMethod: "POST",
1649		HTTPPath:   "/",
1650	}
1651
1652	if input == nil {
1653		input = &DescribeTaskDefinitionInput{}
1654	}
1655
1656	output = &DescribeTaskDefinitionOutput{}
1657	req = c.newRequest(op, input, output)
1658	return
1659}
1660
1661// DescribeTaskDefinition API operation for Amazon EC2 Container Service.
1662//
1663// Describes a task definition. You can specify a family and revision to find
1664// information about a specific task definition, or you can simply specify the
1665// family to find the latest ACTIVE revision in that family.
1666//
1667// You can only describe INACTIVE task definitions while an active task or service
1668// references them.
1669//
1670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1671// with awserr.Error's Code and Message methods to get detailed information about
1672// the error.
1673//
1674// See the AWS API reference guide for Amazon EC2 Container Service's
1675// API operation DescribeTaskDefinition for usage and error information.
1676//
1677// Returned Error Codes:
1678//   * ErrCodeServerException "ServerException"
1679//   These errors are usually caused by a server issue.
1680//
1681//   * ErrCodeClientException "ClientException"
1682//   These errors are usually caused by a client action, such as using an action
1683//   or resource on behalf of a user that doesn't have permissions to use the
1684//   action or resource, or specifying an identifier that is not valid.
1685//
1686//   * ErrCodeInvalidParameterException "InvalidParameterException"
1687//   The specified parameter is invalid. Review the available parameters for the
1688//   API request.
1689//
1690// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1691func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
1692	req, out := c.DescribeTaskDefinitionRequest(input)
1693	return out, req.Send()
1694}
1695
1696// DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
1697// the ability to pass a context and additional request options.
1698//
1699// See DescribeTaskDefinition for details on how to use this API operation.
1700//
1701// The context must be non-nil and will be used for request cancellation. If
1702// the context is nil a panic will occur. In the future the SDK may create
1703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1704// for more information on using Contexts.
1705func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
1706	req, out := c.DescribeTaskDefinitionRequest(input)
1707	req.SetContext(ctx)
1708	req.ApplyOptions(opts...)
1709	return out, req.Send()
1710}
1711
1712const opDescribeTaskSets = "DescribeTaskSets"
1713
1714// DescribeTaskSetsRequest generates a "aws/request.Request" representing the
1715// client's request for the DescribeTaskSets operation. The "output" return
1716// value will be populated with the request's response once the request completes
1717// successfully.
1718//
1719// Use "Send" method on the returned Request to send the API call to the service.
1720// the "output" return value is not valid until after Send returns without error.
1721//
1722// See DescribeTaskSets for more information on using the DescribeTaskSets
1723// API call, and error handling.
1724//
1725// This method is useful when you want to inject custom logic or configuration
1726// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1727//
1728//
1729//    // Example sending a request using the DescribeTaskSetsRequest method.
1730//    req, resp := client.DescribeTaskSetsRequest(params)
1731//
1732//    err := req.Send()
1733//    if err == nil { // resp is now filled
1734//        fmt.Println(resp)
1735//    }
1736//
1737// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1738func (c *ECS) DescribeTaskSetsRequest(input *DescribeTaskSetsInput) (req *request.Request, output *DescribeTaskSetsOutput) {
1739	op := &request.Operation{
1740		Name:       opDescribeTaskSets,
1741		HTTPMethod: "POST",
1742		HTTPPath:   "/",
1743	}
1744
1745	if input == nil {
1746		input = &DescribeTaskSetsInput{}
1747	}
1748
1749	output = &DescribeTaskSetsOutput{}
1750	req = c.newRequest(op, input, output)
1751	return
1752}
1753
1754// DescribeTaskSets API operation for Amazon EC2 Container Service.
1755//
1756// Describes the task sets in the specified cluster and service. This is used
1757// when a service uses the EXTERNAL deployment controller type. For more information,
1758// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1759// in the Amazon Elastic Container Service Developer Guide.
1760//
1761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1762// with awserr.Error's Code and Message methods to get detailed information about
1763// the error.
1764//
1765// See the AWS API reference guide for Amazon EC2 Container Service's
1766// API operation DescribeTaskSets for usage and error information.
1767//
1768// Returned Error Codes:
1769//   * ErrCodeServerException "ServerException"
1770//   These errors are usually caused by a server issue.
1771//
1772//   * ErrCodeClientException "ClientException"
1773//   These errors are usually caused by a client action, such as using an action
1774//   or resource on behalf of a user that doesn't have permissions to use the
1775//   action or resource, or specifying an identifier that is not valid.
1776//
1777//   * ErrCodeInvalidParameterException "InvalidParameterException"
1778//   The specified parameter is invalid. Review the available parameters for the
1779//   API request.
1780//
1781//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1782//   The specified cluster could not be found. You can view your available clusters
1783//   with ListClusters. Amazon ECS clusters are Region-specific.
1784//
1785//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
1786//   The specified task is not supported in this Region.
1787//
1788//   * ErrCodeAccessDeniedException "AccessDeniedException"
1789//   You do not have authorization to perform the requested action.
1790//
1791//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
1792//   The specified service could not be found. You can view your available services
1793//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1794//
1795//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
1796//   The specified service is not active. You can't update a service that is inactive.
1797//   If you have previously deleted a service, you can re-create it with CreateService.
1798//
1799// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1800func (c *ECS) DescribeTaskSets(input *DescribeTaskSetsInput) (*DescribeTaskSetsOutput, error) {
1801	req, out := c.DescribeTaskSetsRequest(input)
1802	return out, req.Send()
1803}
1804
1805// DescribeTaskSetsWithContext is the same as DescribeTaskSets with the addition of
1806// the ability to pass a context and additional request options.
1807//
1808// See DescribeTaskSets for details on how to use this API operation.
1809//
1810// The context must be non-nil and will be used for request cancellation. If
1811// the context is nil a panic will occur. In the future the SDK may create
1812// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1813// for more information on using Contexts.
1814func (c *ECS) DescribeTaskSetsWithContext(ctx aws.Context, input *DescribeTaskSetsInput, opts ...request.Option) (*DescribeTaskSetsOutput, error) {
1815	req, out := c.DescribeTaskSetsRequest(input)
1816	req.SetContext(ctx)
1817	req.ApplyOptions(opts...)
1818	return out, req.Send()
1819}
1820
1821const opDescribeTasks = "DescribeTasks"
1822
1823// DescribeTasksRequest generates a "aws/request.Request" representing the
1824// client's request for the DescribeTasks operation. The "output" return
1825// value will be populated with the request's response once the request completes
1826// successfully.
1827//
1828// Use "Send" method on the returned Request to send the API call to the service.
1829// the "output" return value is not valid until after Send returns without error.
1830//
1831// See DescribeTasks for more information on using the DescribeTasks
1832// API call, and error handling.
1833//
1834// This method is useful when you want to inject custom logic or configuration
1835// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1836//
1837//
1838//    // Example sending a request using the DescribeTasksRequest method.
1839//    req, resp := client.DescribeTasksRequest(params)
1840//
1841//    err := req.Send()
1842//    if err == nil { // resp is now filled
1843//        fmt.Println(resp)
1844//    }
1845//
1846// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1847func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
1848	op := &request.Operation{
1849		Name:       opDescribeTasks,
1850		HTTPMethod: "POST",
1851		HTTPPath:   "/",
1852	}
1853
1854	if input == nil {
1855		input = &DescribeTasksInput{}
1856	}
1857
1858	output = &DescribeTasksOutput{}
1859	req = c.newRequest(op, input, output)
1860	return
1861}
1862
1863// DescribeTasks API operation for Amazon EC2 Container Service.
1864//
1865// Describes a specified task or tasks.
1866//
1867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1868// with awserr.Error's Code and Message methods to get detailed information about
1869// the error.
1870//
1871// See the AWS API reference guide for Amazon EC2 Container Service's
1872// API operation DescribeTasks for usage and error information.
1873//
1874// Returned Error Codes:
1875//   * ErrCodeServerException "ServerException"
1876//   These errors are usually caused by a server issue.
1877//
1878//   * ErrCodeClientException "ClientException"
1879//   These errors are usually caused by a client action, such as using an action
1880//   or resource on behalf of a user that doesn't have permissions to use the
1881//   action or resource, or specifying an identifier that is not valid.
1882//
1883//   * ErrCodeInvalidParameterException "InvalidParameterException"
1884//   The specified parameter is invalid. Review the available parameters for the
1885//   API request.
1886//
1887//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1888//   The specified cluster could not be found. You can view your available clusters
1889//   with ListClusters. Amazon ECS clusters are Region-specific.
1890//
1891// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1892func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
1893	req, out := c.DescribeTasksRequest(input)
1894	return out, req.Send()
1895}
1896
1897// DescribeTasksWithContext is the same as DescribeTasks with the addition of
1898// the ability to pass a context and additional request options.
1899//
1900// See DescribeTasks for details on how to use this API operation.
1901//
1902// The context must be non-nil and will be used for request cancellation. If
1903// the context is nil a panic will occur. In the future the SDK may create
1904// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1905// for more information on using Contexts.
1906func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
1907	req, out := c.DescribeTasksRequest(input)
1908	req.SetContext(ctx)
1909	req.ApplyOptions(opts...)
1910	return out, req.Send()
1911}
1912
1913const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
1914
1915// DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
1916// client's request for the DiscoverPollEndpoint operation. The "output" return
1917// value will be populated with the request's response once the request completes
1918// successfully.
1919//
1920// Use "Send" method on the returned Request to send the API call to the service.
1921// the "output" return value is not valid until after Send returns without error.
1922//
1923// See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
1924// API call, and error handling.
1925//
1926// This method is useful when you want to inject custom logic or configuration
1927// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1928//
1929//
1930//    // Example sending a request using the DiscoverPollEndpointRequest method.
1931//    req, resp := client.DiscoverPollEndpointRequest(params)
1932//
1933//    err := req.Send()
1934//    if err == nil { // resp is now filled
1935//        fmt.Println(resp)
1936//    }
1937//
1938// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1939func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
1940	op := &request.Operation{
1941		Name:       opDiscoverPollEndpoint,
1942		HTTPMethod: "POST",
1943		HTTPPath:   "/",
1944	}
1945
1946	if input == nil {
1947		input = &DiscoverPollEndpointInput{}
1948	}
1949
1950	output = &DiscoverPollEndpointOutput{}
1951	req = c.newRequest(op, input, output)
1952	return
1953}
1954
1955// DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
1956//
1957//
1958// This action is only used by the Amazon ECS agent, and it is not intended
1959// for use outside of the agent.
1960//
1961// Returns an endpoint for the Amazon ECS agent to poll for updates.
1962//
1963// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1964// with awserr.Error's Code and Message methods to get detailed information about
1965// the error.
1966//
1967// See the AWS API reference guide for Amazon EC2 Container Service's
1968// API operation DiscoverPollEndpoint for usage and error information.
1969//
1970// Returned Error Codes:
1971//   * ErrCodeServerException "ServerException"
1972//   These errors are usually caused by a server issue.
1973//
1974//   * ErrCodeClientException "ClientException"
1975//   These errors are usually caused by a client action, such as using an action
1976//   or resource on behalf of a user that doesn't have permissions to use the
1977//   action or resource, or specifying an identifier that is not valid.
1978//
1979// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1980func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
1981	req, out := c.DiscoverPollEndpointRequest(input)
1982	return out, req.Send()
1983}
1984
1985// DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
1986// the ability to pass a context and additional request options.
1987//
1988// See DiscoverPollEndpoint for details on how to use this API operation.
1989//
1990// The context must be non-nil and will be used for request cancellation. If
1991// the context is nil a panic will occur. In the future the SDK may create
1992// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1993// for more information on using Contexts.
1994func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
1995	req, out := c.DiscoverPollEndpointRequest(input)
1996	req.SetContext(ctx)
1997	req.ApplyOptions(opts...)
1998	return out, req.Send()
1999}
2000
2001const opListAccountSettings = "ListAccountSettings"
2002
2003// ListAccountSettingsRequest generates a "aws/request.Request" representing the
2004// client's request for the ListAccountSettings operation. The "output" return
2005// value will be populated with the request's response once the request completes
2006// successfully.
2007//
2008// Use "Send" method on the returned Request to send the API call to the service.
2009// the "output" return value is not valid until after Send returns without error.
2010//
2011// See ListAccountSettings for more information on using the ListAccountSettings
2012// API call, and error handling.
2013//
2014// This method is useful when you want to inject custom logic or configuration
2015// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2016//
2017//
2018//    // Example sending a request using the ListAccountSettingsRequest method.
2019//    req, resp := client.ListAccountSettingsRequest(params)
2020//
2021//    err := req.Send()
2022//    if err == nil { // resp is now filled
2023//        fmt.Println(resp)
2024//    }
2025//
2026// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2027func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
2028	op := &request.Operation{
2029		Name:       opListAccountSettings,
2030		HTTPMethod: "POST",
2031		HTTPPath:   "/",
2032	}
2033
2034	if input == nil {
2035		input = &ListAccountSettingsInput{}
2036	}
2037
2038	output = &ListAccountSettingsOutput{}
2039	req = c.newRequest(op, input, output)
2040	return
2041}
2042
2043// ListAccountSettings API operation for Amazon EC2 Container Service.
2044//
2045// Lists the account settings for a specified principal.
2046//
2047// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2048// with awserr.Error's Code and Message methods to get detailed information about
2049// the error.
2050//
2051// See the AWS API reference guide for Amazon EC2 Container Service's
2052// API operation ListAccountSettings for usage and error information.
2053//
2054// Returned Error Codes:
2055//   * ErrCodeServerException "ServerException"
2056//   These errors are usually caused by a server issue.
2057//
2058//   * ErrCodeClientException "ClientException"
2059//   These errors are usually caused by a client action, such as using an action
2060//   or resource on behalf of a user that doesn't have permissions to use the
2061//   action or resource, or specifying an identifier that is not valid.
2062//
2063//   * ErrCodeInvalidParameterException "InvalidParameterException"
2064//   The specified parameter is invalid. Review the available parameters for the
2065//   API request.
2066//
2067// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2068func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
2069	req, out := c.ListAccountSettingsRequest(input)
2070	return out, req.Send()
2071}
2072
2073// ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
2074// the ability to pass a context and additional request options.
2075//
2076// See ListAccountSettings for details on how to use this API operation.
2077//
2078// The context must be non-nil and will be used for request cancellation. If
2079// the context is nil a panic will occur. In the future the SDK may create
2080// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2081// for more information on using Contexts.
2082func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
2083	req, out := c.ListAccountSettingsRequest(input)
2084	req.SetContext(ctx)
2085	req.ApplyOptions(opts...)
2086	return out, req.Send()
2087}
2088
2089const opListAttributes = "ListAttributes"
2090
2091// ListAttributesRequest generates a "aws/request.Request" representing the
2092// client's request for the ListAttributes operation. The "output" return
2093// value will be populated with the request's response once the request completes
2094// successfully.
2095//
2096// Use "Send" method on the returned Request to send the API call to the service.
2097// the "output" return value is not valid until after Send returns without error.
2098//
2099// See ListAttributes for more information on using the ListAttributes
2100// API call, and error handling.
2101//
2102// This method is useful when you want to inject custom logic or configuration
2103// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2104//
2105//
2106//    // Example sending a request using the ListAttributesRequest method.
2107//    req, resp := client.ListAttributesRequest(params)
2108//
2109//    err := req.Send()
2110//    if err == nil { // resp is now filled
2111//        fmt.Println(resp)
2112//    }
2113//
2114// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2115func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
2116	op := &request.Operation{
2117		Name:       opListAttributes,
2118		HTTPMethod: "POST",
2119		HTTPPath:   "/",
2120		Paginator: &request.Paginator{
2121			InputTokens:     []string{"nextToken"},
2122			OutputTokens:    []string{"nextToken"},
2123			LimitToken:      "maxResults",
2124			TruncationToken: "",
2125		},
2126	}
2127
2128	if input == nil {
2129		input = &ListAttributesInput{}
2130	}
2131
2132	output = &ListAttributesOutput{}
2133	req = c.newRequest(op, input, output)
2134	return
2135}
2136
2137// ListAttributes API operation for Amazon EC2 Container Service.
2138//
2139// Lists the attributes for Amazon ECS resources within a specified target type
2140// and cluster. When you specify a target type and cluster, ListAttributes returns
2141// a list of attribute objects, one for each attribute on each resource. You
2142// can filter the list of results to a single attribute name to only return
2143// results that have that name. You can also filter the results by attribute
2144// name and value, for example, to see which container instances in a cluster
2145// are running a Linux AMI (ecs.os-type=linux).
2146//
2147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2148// with awserr.Error's Code and Message methods to get detailed information about
2149// the error.
2150//
2151// See the AWS API reference guide for Amazon EC2 Container Service's
2152// API operation ListAttributes for usage and error information.
2153//
2154// Returned Error Codes:
2155//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2156//   The specified cluster could not be found. You can view your available clusters
2157//   with ListClusters. Amazon ECS clusters are Region-specific.
2158//
2159//   * ErrCodeInvalidParameterException "InvalidParameterException"
2160//   The specified parameter is invalid. Review the available parameters for the
2161//   API request.
2162//
2163// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2164func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
2165	req, out := c.ListAttributesRequest(input)
2166	return out, req.Send()
2167}
2168
2169// ListAttributesWithContext is the same as ListAttributes with the addition of
2170// the ability to pass a context and additional request options.
2171//
2172// See ListAttributes for details on how to use this API operation.
2173//
2174// The context must be non-nil and will be used for request cancellation. If
2175// the context is nil a panic will occur. In the future the SDK may create
2176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2177// for more information on using Contexts.
2178func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
2179	req, out := c.ListAttributesRequest(input)
2180	req.SetContext(ctx)
2181	req.ApplyOptions(opts...)
2182	return out, req.Send()
2183}
2184
2185// ListAttributesPages iterates over the pages of a ListAttributes operation,
2186// calling the "fn" function with the response data for each page. To stop
2187// iterating, return false from the fn function.
2188//
2189// See ListAttributes method for more information on how to use this operation.
2190//
2191// Note: This operation can generate multiple requests to a service.
2192//
2193//    // Example iterating over at most 3 pages of a ListAttributes operation.
2194//    pageNum := 0
2195//    err := client.ListAttributesPages(params,
2196//        func(page *ecs.ListAttributesOutput, lastPage bool) bool {
2197//            pageNum++
2198//            fmt.Println(page)
2199//            return pageNum <= 3
2200//        })
2201//
2202func (c *ECS) ListAttributesPages(input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool) error {
2203	return c.ListAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
2204}
2205
2206// ListAttributesPagesWithContext same as ListAttributesPages except
2207// it takes a Context and allows setting request options on the pages.
2208//
2209// The context must be non-nil and will be used for request cancellation. If
2210// the context is nil a panic will occur. In the future the SDK may create
2211// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2212// for more information on using Contexts.
2213func (c *ECS) ListAttributesPagesWithContext(ctx aws.Context, input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool, opts ...request.Option) error {
2214	p := request.Pagination{
2215		NewRequest: func() (*request.Request, error) {
2216			var inCpy *ListAttributesInput
2217			if input != nil {
2218				tmp := *input
2219				inCpy = &tmp
2220			}
2221			req, _ := c.ListAttributesRequest(inCpy)
2222			req.SetContext(ctx)
2223			req.ApplyOptions(opts...)
2224			return req, nil
2225		},
2226	}
2227
2228	for p.Next() {
2229		if !fn(p.Page().(*ListAttributesOutput), !p.HasNextPage()) {
2230			break
2231		}
2232	}
2233
2234	return p.Err()
2235}
2236
2237const opListClusters = "ListClusters"
2238
2239// ListClustersRequest generates a "aws/request.Request" representing the
2240// client's request for the ListClusters operation. The "output" return
2241// value will be populated with the request's response once the request completes
2242// successfully.
2243//
2244// Use "Send" method on the returned Request to send the API call to the service.
2245// the "output" return value is not valid until after Send returns without error.
2246//
2247// See ListClusters for more information on using the ListClusters
2248// API call, and error handling.
2249//
2250// This method is useful when you want to inject custom logic or configuration
2251// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2252//
2253//
2254//    // Example sending a request using the ListClustersRequest method.
2255//    req, resp := client.ListClustersRequest(params)
2256//
2257//    err := req.Send()
2258//    if err == nil { // resp is now filled
2259//        fmt.Println(resp)
2260//    }
2261//
2262// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2263func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2264	op := &request.Operation{
2265		Name:       opListClusters,
2266		HTTPMethod: "POST",
2267		HTTPPath:   "/",
2268		Paginator: &request.Paginator{
2269			InputTokens:     []string{"nextToken"},
2270			OutputTokens:    []string{"nextToken"},
2271			LimitToken:      "maxResults",
2272			TruncationToken: "",
2273		},
2274	}
2275
2276	if input == nil {
2277		input = &ListClustersInput{}
2278	}
2279
2280	output = &ListClustersOutput{}
2281	req = c.newRequest(op, input, output)
2282	return
2283}
2284
2285// ListClusters API operation for Amazon EC2 Container Service.
2286//
2287// Returns a list of existing clusters.
2288//
2289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2290// with awserr.Error's Code and Message methods to get detailed information about
2291// the error.
2292//
2293// See the AWS API reference guide for Amazon EC2 Container Service's
2294// API operation ListClusters for usage and error information.
2295//
2296// Returned Error Codes:
2297//   * ErrCodeServerException "ServerException"
2298//   These errors are usually caused by a server issue.
2299//
2300//   * ErrCodeClientException "ClientException"
2301//   These errors are usually caused by a client action, such as using an action
2302//   or resource on behalf of a user that doesn't have permissions to use the
2303//   action or resource, or specifying an identifier that is not valid.
2304//
2305//   * ErrCodeInvalidParameterException "InvalidParameterException"
2306//   The specified parameter is invalid. Review the available parameters for the
2307//   API request.
2308//
2309// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2310func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2311	req, out := c.ListClustersRequest(input)
2312	return out, req.Send()
2313}
2314
2315// ListClustersWithContext is the same as ListClusters with the addition of
2316// the ability to pass a context and additional request options.
2317//
2318// See ListClusters for details on how to use this API operation.
2319//
2320// The context must be non-nil and will be used for request cancellation. If
2321// the context is nil a panic will occur. In the future the SDK may create
2322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2323// for more information on using Contexts.
2324func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2325	req, out := c.ListClustersRequest(input)
2326	req.SetContext(ctx)
2327	req.ApplyOptions(opts...)
2328	return out, req.Send()
2329}
2330
2331// ListClustersPages iterates over the pages of a ListClusters operation,
2332// calling the "fn" function with the response data for each page. To stop
2333// iterating, return false from the fn function.
2334//
2335// See ListClusters method for more information on how to use this operation.
2336//
2337// Note: This operation can generate multiple requests to a service.
2338//
2339//    // Example iterating over at most 3 pages of a ListClusters operation.
2340//    pageNum := 0
2341//    err := client.ListClustersPages(params,
2342//        func(page *ecs.ListClustersOutput, lastPage bool) bool {
2343//            pageNum++
2344//            fmt.Println(page)
2345//            return pageNum <= 3
2346//        })
2347//
2348func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2349	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2350}
2351
2352// ListClustersPagesWithContext same as ListClustersPages except
2353// it takes a Context and allows setting request options on the pages.
2354//
2355// The context must be non-nil and will be used for request cancellation. If
2356// the context is nil a panic will occur. In the future the SDK may create
2357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2358// for more information on using Contexts.
2359func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2360	p := request.Pagination{
2361		NewRequest: func() (*request.Request, error) {
2362			var inCpy *ListClustersInput
2363			if input != nil {
2364				tmp := *input
2365				inCpy = &tmp
2366			}
2367			req, _ := c.ListClustersRequest(inCpy)
2368			req.SetContext(ctx)
2369			req.ApplyOptions(opts...)
2370			return req, nil
2371		},
2372	}
2373
2374	for p.Next() {
2375		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2376			break
2377		}
2378	}
2379
2380	return p.Err()
2381}
2382
2383const opListContainerInstances = "ListContainerInstances"
2384
2385// ListContainerInstancesRequest generates a "aws/request.Request" representing the
2386// client's request for the ListContainerInstances operation. The "output" return
2387// value will be populated with the request's response once the request completes
2388// successfully.
2389//
2390// Use "Send" method on the returned Request to send the API call to the service.
2391// the "output" return value is not valid until after Send returns without error.
2392//
2393// See ListContainerInstances for more information on using the ListContainerInstances
2394// API call, and error handling.
2395//
2396// This method is useful when you want to inject custom logic or configuration
2397// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2398//
2399//
2400//    // Example sending a request using the ListContainerInstancesRequest method.
2401//    req, resp := client.ListContainerInstancesRequest(params)
2402//
2403//    err := req.Send()
2404//    if err == nil { // resp is now filled
2405//        fmt.Println(resp)
2406//    }
2407//
2408// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2409func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
2410	op := &request.Operation{
2411		Name:       opListContainerInstances,
2412		HTTPMethod: "POST",
2413		HTTPPath:   "/",
2414		Paginator: &request.Paginator{
2415			InputTokens:     []string{"nextToken"},
2416			OutputTokens:    []string{"nextToken"},
2417			LimitToken:      "maxResults",
2418			TruncationToken: "",
2419		},
2420	}
2421
2422	if input == nil {
2423		input = &ListContainerInstancesInput{}
2424	}
2425
2426	output = &ListContainerInstancesOutput{}
2427	req = c.newRequest(op, input, output)
2428	return
2429}
2430
2431// ListContainerInstances API operation for Amazon EC2 Container Service.
2432//
2433// Returns a list of container instances in a specified cluster. You can filter
2434// the results of a ListContainerInstances operation with cluster query language
2435// statements inside the filter parameter. For more information, see Cluster
2436// Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
2437// in the Amazon Elastic Container Service Developer Guide.
2438//
2439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2440// with awserr.Error's Code and Message methods to get detailed information about
2441// the error.
2442//
2443// See the AWS API reference guide for Amazon EC2 Container Service's
2444// API operation ListContainerInstances for usage and error information.
2445//
2446// Returned Error Codes:
2447//   * ErrCodeServerException "ServerException"
2448//   These errors are usually caused by a server issue.
2449//
2450//   * ErrCodeClientException "ClientException"
2451//   These errors are usually caused by a client action, such as using an action
2452//   or resource on behalf of a user that doesn't have permissions to use the
2453//   action or resource, or specifying an identifier that is not valid.
2454//
2455//   * ErrCodeInvalidParameterException "InvalidParameterException"
2456//   The specified parameter is invalid. Review the available parameters for the
2457//   API request.
2458//
2459//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2460//   The specified cluster could not be found. You can view your available clusters
2461//   with ListClusters. Amazon ECS clusters are Region-specific.
2462//
2463// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2464func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
2465	req, out := c.ListContainerInstancesRequest(input)
2466	return out, req.Send()
2467}
2468
2469// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
2470// the ability to pass a context and additional request options.
2471//
2472// See ListContainerInstances for details on how to use this API operation.
2473//
2474// The context must be non-nil and will be used for request cancellation. If
2475// the context is nil a panic will occur. In the future the SDK may create
2476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2477// for more information on using Contexts.
2478func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
2479	req, out := c.ListContainerInstancesRequest(input)
2480	req.SetContext(ctx)
2481	req.ApplyOptions(opts...)
2482	return out, req.Send()
2483}
2484
2485// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
2486// calling the "fn" function with the response data for each page. To stop
2487// iterating, return false from the fn function.
2488//
2489// See ListContainerInstances method for more information on how to use this operation.
2490//
2491// Note: This operation can generate multiple requests to a service.
2492//
2493//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
2494//    pageNum := 0
2495//    err := client.ListContainerInstancesPages(params,
2496//        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
2497//            pageNum++
2498//            fmt.Println(page)
2499//            return pageNum <= 3
2500//        })
2501//
2502func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
2503	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2504}
2505
2506// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
2507// it takes a Context and allows setting request options on the pages.
2508//
2509// The context must be non-nil and will be used for request cancellation. If
2510// the context is nil a panic will occur. In the future the SDK may create
2511// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2512// for more information on using Contexts.
2513func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
2514	p := request.Pagination{
2515		NewRequest: func() (*request.Request, error) {
2516			var inCpy *ListContainerInstancesInput
2517			if input != nil {
2518				tmp := *input
2519				inCpy = &tmp
2520			}
2521			req, _ := c.ListContainerInstancesRequest(inCpy)
2522			req.SetContext(ctx)
2523			req.ApplyOptions(opts...)
2524			return req, nil
2525		},
2526	}
2527
2528	for p.Next() {
2529		if !fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage()) {
2530			break
2531		}
2532	}
2533
2534	return p.Err()
2535}
2536
2537const opListServices = "ListServices"
2538
2539// ListServicesRequest generates a "aws/request.Request" representing the
2540// client's request for the ListServices operation. The "output" return
2541// value will be populated with the request's response once the request completes
2542// successfully.
2543//
2544// Use "Send" method on the returned Request to send the API call to the service.
2545// the "output" return value is not valid until after Send returns without error.
2546//
2547// See ListServices for more information on using the ListServices
2548// API call, and error handling.
2549//
2550// This method is useful when you want to inject custom logic or configuration
2551// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2552//
2553//
2554//    // Example sending a request using the ListServicesRequest method.
2555//    req, resp := client.ListServicesRequest(params)
2556//
2557//    err := req.Send()
2558//    if err == nil { // resp is now filled
2559//        fmt.Println(resp)
2560//    }
2561//
2562// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2563func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
2564	op := &request.Operation{
2565		Name:       opListServices,
2566		HTTPMethod: "POST",
2567		HTTPPath:   "/",
2568		Paginator: &request.Paginator{
2569			InputTokens:     []string{"nextToken"},
2570			OutputTokens:    []string{"nextToken"},
2571			LimitToken:      "maxResults",
2572			TruncationToken: "",
2573		},
2574	}
2575
2576	if input == nil {
2577		input = &ListServicesInput{}
2578	}
2579
2580	output = &ListServicesOutput{}
2581	req = c.newRequest(op, input, output)
2582	return
2583}
2584
2585// ListServices API operation for Amazon EC2 Container Service.
2586//
2587// Lists the services that are running in a specified cluster.
2588//
2589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2590// with awserr.Error's Code and Message methods to get detailed information about
2591// the error.
2592//
2593// See the AWS API reference guide for Amazon EC2 Container Service's
2594// API operation ListServices for usage and error information.
2595//
2596// Returned Error Codes:
2597//   * ErrCodeServerException "ServerException"
2598//   These errors are usually caused by a server issue.
2599//
2600//   * ErrCodeClientException "ClientException"
2601//   These errors are usually caused by a client action, such as using an action
2602//   or resource on behalf of a user that doesn't have permissions to use the
2603//   action or resource, or specifying an identifier that is not valid.
2604//
2605//   * ErrCodeInvalidParameterException "InvalidParameterException"
2606//   The specified parameter is invalid. Review the available parameters for the
2607//   API request.
2608//
2609//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2610//   The specified cluster could not be found. You can view your available clusters
2611//   with ListClusters. Amazon ECS clusters are Region-specific.
2612//
2613// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2614func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
2615	req, out := c.ListServicesRequest(input)
2616	return out, req.Send()
2617}
2618
2619// ListServicesWithContext is the same as ListServices with the addition of
2620// the ability to pass a context and additional request options.
2621//
2622// See ListServices for details on how to use this API operation.
2623//
2624// The context must be non-nil and will be used for request cancellation. If
2625// the context is nil a panic will occur. In the future the SDK may create
2626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2627// for more information on using Contexts.
2628func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
2629	req, out := c.ListServicesRequest(input)
2630	req.SetContext(ctx)
2631	req.ApplyOptions(opts...)
2632	return out, req.Send()
2633}
2634
2635// ListServicesPages iterates over the pages of a ListServices operation,
2636// calling the "fn" function with the response data for each page. To stop
2637// iterating, return false from the fn function.
2638//
2639// See ListServices method for more information on how to use this operation.
2640//
2641// Note: This operation can generate multiple requests to a service.
2642//
2643//    // Example iterating over at most 3 pages of a ListServices operation.
2644//    pageNum := 0
2645//    err := client.ListServicesPages(params,
2646//        func(page *ecs.ListServicesOutput, lastPage bool) bool {
2647//            pageNum++
2648//            fmt.Println(page)
2649//            return pageNum <= 3
2650//        })
2651//
2652func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
2653	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2654}
2655
2656// ListServicesPagesWithContext same as ListServicesPages except
2657// it takes a Context and allows setting request options on the pages.
2658//
2659// The context must be non-nil and will be used for request cancellation. If
2660// the context is nil a panic will occur. In the future the SDK may create
2661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2662// for more information on using Contexts.
2663func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
2664	p := request.Pagination{
2665		NewRequest: func() (*request.Request, error) {
2666			var inCpy *ListServicesInput
2667			if input != nil {
2668				tmp := *input
2669				inCpy = &tmp
2670			}
2671			req, _ := c.ListServicesRequest(inCpy)
2672			req.SetContext(ctx)
2673			req.ApplyOptions(opts...)
2674			return req, nil
2675		},
2676	}
2677
2678	for p.Next() {
2679		if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) {
2680			break
2681		}
2682	}
2683
2684	return p.Err()
2685}
2686
2687const opListTagsForResource = "ListTagsForResource"
2688
2689// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2690// client's request for the ListTagsForResource operation. The "output" return
2691// value will be populated with the request's response once the request completes
2692// successfully.
2693//
2694// Use "Send" method on the returned Request to send the API call to the service.
2695// the "output" return value is not valid until after Send returns without error.
2696//
2697// See ListTagsForResource for more information on using the ListTagsForResource
2698// API call, and error handling.
2699//
2700// This method is useful when you want to inject custom logic or configuration
2701// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2702//
2703//
2704//    // Example sending a request using the ListTagsForResourceRequest method.
2705//    req, resp := client.ListTagsForResourceRequest(params)
2706//
2707//    err := req.Send()
2708//    if err == nil { // resp is now filled
2709//        fmt.Println(resp)
2710//    }
2711//
2712// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2713func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2714	op := &request.Operation{
2715		Name:       opListTagsForResource,
2716		HTTPMethod: "POST",
2717		HTTPPath:   "/",
2718	}
2719
2720	if input == nil {
2721		input = &ListTagsForResourceInput{}
2722	}
2723
2724	output = &ListTagsForResourceOutput{}
2725	req = c.newRequest(op, input, output)
2726	return
2727}
2728
2729// ListTagsForResource API operation for Amazon EC2 Container Service.
2730//
2731// List the tags for an Amazon ECS resource.
2732//
2733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2734// with awserr.Error's Code and Message methods to get detailed information about
2735// the error.
2736//
2737// See the AWS API reference guide for Amazon EC2 Container Service's
2738// API operation ListTagsForResource for usage and error information.
2739//
2740// Returned Error Codes:
2741//   * ErrCodeServerException "ServerException"
2742//   These errors are usually caused by a server issue.
2743//
2744//   * ErrCodeClientException "ClientException"
2745//   These errors are usually caused by a client action, such as using an action
2746//   or resource on behalf of a user that doesn't have permissions to use the
2747//   action or resource, or specifying an identifier that is not valid.
2748//
2749//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2750//   The specified cluster could not be found. You can view your available clusters
2751//   with ListClusters. Amazon ECS clusters are Region-specific.
2752//
2753//   * ErrCodeInvalidParameterException "InvalidParameterException"
2754//   The specified parameter is invalid. Review the available parameters for the
2755//   API request.
2756//
2757// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2758func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2759	req, out := c.ListTagsForResourceRequest(input)
2760	return out, req.Send()
2761}
2762
2763// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2764// the ability to pass a context and additional request options.
2765//
2766// See ListTagsForResource for details on how to use this API operation.
2767//
2768// The context must be non-nil and will be used for request cancellation. If
2769// the context is nil a panic will occur. In the future the SDK may create
2770// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2771// for more information on using Contexts.
2772func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2773	req, out := c.ListTagsForResourceRequest(input)
2774	req.SetContext(ctx)
2775	req.ApplyOptions(opts...)
2776	return out, req.Send()
2777}
2778
2779const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
2780
2781// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
2782// client's request for the ListTaskDefinitionFamilies operation. The "output" return
2783// value will be populated with the request's response once the request completes
2784// successfully.
2785//
2786// Use "Send" method on the returned Request to send the API call to the service.
2787// the "output" return value is not valid until after Send returns without error.
2788//
2789// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
2790// API call, and error handling.
2791//
2792// This method is useful when you want to inject custom logic or configuration
2793// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2794//
2795//
2796//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
2797//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
2798//
2799//    err := req.Send()
2800//    if err == nil { // resp is now filled
2801//        fmt.Println(resp)
2802//    }
2803//
2804// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2805func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
2806	op := &request.Operation{
2807		Name:       opListTaskDefinitionFamilies,
2808		HTTPMethod: "POST",
2809		HTTPPath:   "/",
2810		Paginator: &request.Paginator{
2811			InputTokens:     []string{"nextToken"},
2812			OutputTokens:    []string{"nextToken"},
2813			LimitToken:      "maxResults",
2814			TruncationToken: "",
2815		},
2816	}
2817
2818	if input == nil {
2819		input = &ListTaskDefinitionFamiliesInput{}
2820	}
2821
2822	output = &ListTaskDefinitionFamiliesOutput{}
2823	req = c.newRequest(op, input, output)
2824	return
2825}
2826
2827// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
2828//
2829// Returns a list of task definition families that are registered to your account
2830// (which may include task definition families that no longer have any ACTIVE
2831// task definition revisions).
2832//
2833// You can filter out task definition families that do not contain any ACTIVE
2834// task definition revisions by setting the status parameter to ACTIVE. You
2835// can also filter the results with the familyPrefix parameter.
2836//
2837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2838// with awserr.Error's Code and Message methods to get detailed information about
2839// the error.
2840//
2841// See the AWS API reference guide for Amazon EC2 Container Service's
2842// API operation ListTaskDefinitionFamilies for usage and error information.
2843//
2844// Returned Error Codes:
2845//   * ErrCodeServerException "ServerException"
2846//   These errors are usually caused by a server issue.
2847//
2848//   * ErrCodeClientException "ClientException"
2849//   These errors are usually caused by a client action, such as using an action
2850//   or resource on behalf of a user that doesn't have permissions to use the
2851//   action or resource, or specifying an identifier that is not valid.
2852//
2853//   * ErrCodeInvalidParameterException "InvalidParameterException"
2854//   The specified parameter is invalid. Review the available parameters for the
2855//   API request.
2856//
2857// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2858func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
2859	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2860	return out, req.Send()
2861}
2862
2863// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
2864// the ability to pass a context and additional request options.
2865//
2866// See ListTaskDefinitionFamilies for details on how to use this API operation.
2867//
2868// The context must be non-nil and will be used for request cancellation. If
2869// the context is nil a panic will occur. In the future the SDK may create
2870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2871// for more information on using Contexts.
2872func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
2873	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2874	req.SetContext(ctx)
2875	req.ApplyOptions(opts...)
2876	return out, req.Send()
2877}
2878
2879// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
2880// calling the "fn" function with the response data for each page. To stop
2881// iterating, return false from the fn function.
2882//
2883// See ListTaskDefinitionFamilies method for more information on how to use this operation.
2884//
2885// Note: This operation can generate multiple requests to a service.
2886//
2887//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
2888//    pageNum := 0
2889//    err := client.ListTaskDefinitionFamiliesPages(params,
2890//        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
2891//            pageNum++
2892//            fmt.Println(page)
2893//            return pageNum <= 3
2894//        })
2895//
2896func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
2897	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
2898}
2899
2900// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
2901// it takes a Context and allows setting request options on the pages.
2902//
2903// The context must be non-nil and will be used for request cancellation. If
2904// the context is nil a panic will occur. In the future the SDK may create
2905// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2906// for more information on using Contexts.
2907func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
2908	p := request.Pagination{
2909		NewRequest: func() (*request.Request, error) {
2910			var inCpy *ListTaskDefinitionFamiliesInput
2911			if input != nil {
2912				tmp := *input
2913				inCpy = &tmp
2914			}
2915			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
2916			req.SetContext(ctx)
2917			req.ApplyOptions(opts...)
2918			return req, nil
2919		},
2920	}
2921
2922	for p.Next() {
2923		if !fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage()) {
2924			break
2925		}
2926	}
2927
2928	return p.Err()
2929}
2930
2931const opListTaskDefinitions = "ListTaskDefinitions"
2932
2933// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
2934// client's request for the ListTaskDefinitions operation. The "output" return
2935// value will be populated with the request's response once the request completes
2936// successfully.
2937//
2938// Use "Send" method on the returned Request to send the API call to the service.
2939// the "output" return value is not valid until after Send returns without error.
2940//
2941// See ListTaskDefinitions for more information on using the ListTaskDefinitions
2942// API call, and error handling.
2943//
2944// This method is useful when you want to inject custom logic or configuration
2945// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2946//
2947//
2948//    // Example sending a request using the ListTaskDefinitionsRequest method.
2949//    req, resp := client.ListTaskDefinitionsRequest(params)
2950//
2951//    err := req.Send()
2952//    if err == nil { // resp is now filled
2953//        fmt.Println(resp)
2954//    }
2955//
2956// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
2957func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
2958	op := &request.Operation{
2959		Name:       opListTaskDefinitions,
2960		HTTPMethod: "POST",
2961		HTTPPath:   "/",
2962		Paginator: &request.Paginator{
2963			InputTokens:     []string{"nextToken"},
2964			OutputTokens:    []string{"nextToken"},
2965			LimitToken:      "maxResults",
2966			TruncationToken: "",
2967		},
2968	}
2969
2970	if input == nil {
2971		input = &ListTaskDefinitionsInput{}
2972	}
2973
2974	output = &ListTaskDefinitionsOutput{}
2975	req = c.newRequest(op, input, output)
2976	return
2977}
2978
2979// ListTaskDefinitions API operation for Amazon EC2 Container Service.
2980//
2981// Returns a list of task definitions that are registered to your account. You
2982// can filter the results by family name with the familyPrefix parameter or
2983// by status with the status parameter.
2984//
2985// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2986// with awserr.Error's Code and Message methods to get detailed information about
2987// the error.
2988//
2989// See the AWS API reference guide for Amazon EC2 Container Service's
2990// API operation ListTaskDefinitions for usage and error information.
2991//
2992// Returned Error Codes:
2993//   * ErrCodeServerException "ServerException"
2994//   These errors are usually caused by a server issue.
2995//
2996//   * ErrCodeClientException "ClientException"
2997//   These errors are usually caused by a client action, such as using an action
2998//   or resource on behalf of a user that doesn't have permissions to use the
2999//   action or resource, or specifying an identifier that is not valid.
3000//
3001//   * ErrCodeInvalidParameterException "InvalidParameterException"
3002//   The specified parameter is invalid. Review the available parameters for the
3003//   API request.
3004//
3005// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3006func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
3007	req, out := c.ListTaskDefinitionsRequest(input)
3008	return out, req.Send()
3009}
3010
3011// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
3012// the ability to pass a context and additional request options.
3013//
3014// See ListTaskDefinitions for details on how to use this API operation.
3015//
3016// The context must be non-nil and will be used for request cancellation. If
3017// the context is nil a panic will occur. In the future the SDK may create
3018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3019// for more information on using Contexts.
3020func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
3021	req, out := c.ListTaskDefinitionsRequest(input)
3022	req.SetContext(ctx)
3023	req.ApplyOptions(opts...)
3024	return out, req.Send()
3025}
3026
3027// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
3028// calling the "fn" function with the response data for each page. To stop
3029// iterating, return false from the fn function.
3030//
3031// See ListTaskDefinitions method for more information on how to use this operation.
3032//
3033// Note: This operation can generate multiple requests to a service.
3034//
3035//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
3036//    pageNum := 0
3037//    err := client.ListTaskDefinitionsPages(params,
3038//        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
3039//            pageNum++
3040//            fmt.Println(page)
3041//            return pageNum <= 3
3042//        })
3043//
3044func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
3045	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
3046}
3047
3048// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
3049// it takes a Context and allows setting request options on the pages.
3050//
3051// The context must be non-nil and will be used for request cancellation. If
3052// the context is nil a panic will occur. In the future the SDK may create
3053// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3054// for more information on using Contexts.
3055func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
3056	p := request.Pagination{
3057		NewRequest: func() (*request.Request, error) {
3058			var inCpy *ListTaskDefinitionsInput
3059			if input != nil {
3060				tmp := *input
3061				inCpy = &tmp
3062			}
3063			req, _ := c.ListTaskDefinitionsRequest(inCpy)
3064			req.SetContext(ctx)
3065			req.ApplyOptions(opts...)
3066			return req, nil
3067		},
3068	}
3069
3070	for p.Next() {
3071		if !fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage()) {
3072			break
3073		}
3074	}
3075
3076	return p.Err()
3077}
3078
3079const opListTasks = "ListTasks"
3080
3081// ListTasksRequest generates a "aws/request.Request" representing the
3082// client's request for the ListTasks operation. The "output" return
3083// value will be populated with the request's response once the request completes
3084// successfully.
3085//
3086// Use "Send" method on the returned Request to send the API call to the service.
3087// the "output" return value is not valid until after Send returns without error.
3088//
3089// See ListTasks for more information on using the ListTasks
3090// API call, and error handling.
3091//
3092// This method is useful when you want to inject custom logic or configuration
3093// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3094//
3095//
3096//    // Example sending a request using the ListTasksRequest method.
3097//    req, resp := client.ListTasksRequest(params)
3098//
3099//    err := req.Send()
3100//    if err == nil { // resp is now filled
3101//        fmt.Println(resp)
3102//    }
3103//
3104// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3105func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
3106	op := &request.Operation{
3107		Name:       opListTasks,
3108		HTTPMethod: "POST",
3109		HTTPPath:   "/",
3110		Paginator: &request.Paginator{
3111			InputTokens:     []string{"nextToken"},
3112			OutputTokens:    []string{"nextToken"},
3113			LimitToken:      "maxResults",
3114			TruncationToken: "",
3115		},
3116	}
3117
3118	if input == nil {
3119		input = &ListTasksInput{}
3120	}
3121
3122	output = &ListTasksOutput{}
3123	req = c.newRequest(op, input, output)
3124	return
3125}
3126
3127// ListTasks API operation for Amazon EC2 Container Service.
3128//
3129// Returns a list of tasks for a specified cluster. You can filter the results
3130// by family name, by a particular container instance, or by the desired status
3131// of the task with the family, containerInstance, and desiredStatus parameters.
3132//
3133// Recently stopped tasks might appear in the returned results. Currently, stopped
3134// tasks appear in the returned results for at least one hour.
3135//
3136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3137// with awserr.Error's Code and Message methods to get detailed information about
3138// the error.
3139//
3140// See the AWS API reference guide for Amazon EC2 Container Service's
3141// API operation ListTasks for usage and error information.
3142//
3143// Returned Error Codes:
3144//   * ErrCodeServerException "ServerException"
3145//   These errors are usually caused by a server issue.
3146//
3147//   * ErrCodeClientException "ClientException"
3148//   These errors are usually caused by a client action, such as using an action
3149//   or resource on behalf of a user that doesn't have permissions to use the
3150//   action or resource, or specifying an identifier that is not valid.
3151//
3152//   * ErrCodeInvalidParameterException "InvalidParameterException"
3153//   The specified parameter is invalid. Review the available parameters for the
3154//   API request.
3155//
3156//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3157//   The specified cluster could not be found. You can view your available clusters
3158//   with ListClusters. Amazon ECS clusters are Region-specific.
3159//
3160//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
3161//   The specified service could not be found. You can view your available services
3162//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
3163//
3164// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3165func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
3166	req, out := c.ListTasksRequest(input)
3167	return out, req.Send()
3168}
3169
3170// ListTasksWithContext is the same as ListTasks with the addition of
3171// the ability to pass a context and additional request options.
3172//
3173// See ListTasks for details on how to use this API operation.
3174//
3175// The context must be non-nil and will be used for request cancellation. If
3176// the context is nil a panic will occur. In the future the SDK may create
3177// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3178// for more information on using Contexts.
3179func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
3180	req, out := c.ListTasksRequest(input)
3181	req.SetContext(ctx)
3182	req.ApplyOptions(opts...)
3183	return out, req.Send()
3184}
3185
3186// ListTasksPages iterates over the pages of a ListTasks operation,
3187// calling the "fn" function with the response data for each page. To stop
3188// iterating, return false from the fn function.
3189//
3190// See ListTasks method for more information on how to use this operation.
3191//
3192// Note: This operation can generate multiple requests to a service.
3193//
3194//    // Example iterating over at most 3 pages of a ListTasks operation.
3195//    pageNum := 0
3196//    err := client.ListTasksPages(params,
3197//        func(page *ecs.ListTasksOutput, lastPage bool) bool {
3198//            pageNum++
3199//            fmt.Println(page)
3200//            return pageNum <= 3
3201//        })
3202//
3203func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
3204	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
3205}
3206
3207// ListTasksPagesWithContext same as ListTasksPages except
3208// it takes a Context and allows setting request options on the pages.
3209//
3210// The context must be non-nil and will be used for request cancellation. If
3211// the context is nil a panic will occur. In the future the SDK may create
3212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3213// for more information on using Contexts.
3214func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
3215	p := request.Pagination{
3216		NewRequest: func() (*request.Request, error) {
3217			var inCpy *ListTasksInput
3218			if input != nil {
3219				tmp := *input
3220				inCpy = &tmp
3221			}
3222			req, _ := c.ListTasksRequest(inCpy)
3223			req.SetContext(ctx)
3224			req.ApplyOptions(opts...)
3225			return req, nil
3226		},
3227	}
3228
3229	for p.Next() {
3230		if !fn(p.Page().(*ListTasksOutput), !p.HasNextPage()) {
3231			break
3232		}
3233	}
3234
3235	return p.Err()
3236}
3237
3238const opPutAccountSetting = "PutAccountSetting"
3239
3240// PutAccountSettingRequest generates a "aws/request.Request" representing the
3241// client's request for the PutAccountSetting operation. The "output" return
3242// value will be populated with the request's response once the request completes
3243// successfully.
3244//
3245// Use "Send" method on the returned Request to send the API call to the service.
3246// the "output" return value is not valid until after Send returns without error.
3247//
3248// See PutAccountSetting for more information on using the PutAccountSetting
3249// API call, and error handling.
3250//
3251// This method is useful when you want to inject custom logic or configuration
3252// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3253//
3254//
3255//    // Example sending a request using the PutAccountSettingRequest method.
3256//    req, resp := client.PutAccountSettingRequest(params)
3257//
3258//    err := req.Send()
3259//    if err == nil { // resp is now filled
3260//        fmt.Println(resp)
3261//    }
3262//
3263// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3264func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
3265	op := &request.Operation{
3266		Name:       opPutAccountSetting,
3267		HTTPMethod: "POST",
3268		HTTPPath:   "/",
3269	}
3270
3271	if input == nil {
3272		input = &PutAccountSettingInput{}
3273	}
3274
3275	output = &PutAccountSettingOutput{}
3276	req = c.newRequest(op, input, output)
3277	return
3278}
3279
3280// PutAccountSetting API operation for Amazon EC2 Container Service.
3281//
3282// Modifies an account setting. Account settings are set on a per-Region basis.
3283//
3284// If you change the account setting for the root user, the default settings
3285// for all of the IAM users and roles for which no individual account setting
3286// has been specified are reset. For more information, see Account Settings
3287// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
3288// in the Amazon Elastic Container Service Developer Guide.
3289//
3290// When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
3291// are specified, the Amazon Resource Name (ARN) and resource ID format of the
3292// resource type for a specified IAM user, IAM role, or the root user for an
3293// account is affected. The opt-in and opt-out account setting must be set for
3294// each Amazon ECS resource separately. The ARN and resource ID format of a
3295// resource will be defined by the opt-in status of the IAM user or role that
3296// created the resource. You must enable this setting to use Amazon ECS features
3297// such as resource tagging.
3298//
3299// When awsvpcTrunking is specified, the elastic network interface (ENI) limit
3300// for any new container instances that support the feature is changed. If awsvpcTrunking
3301// is enabled, any new container instances that support the feature are launched
3302// have the increased ENI limits available to them. For more information, see
3303// Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
3304// in the Amazon Elastic Container Service Developer Guide.
3305//
3306// When containerInsights is specified, the default setting indicating whether
3307// CloudWatch Container Insights is enabled for your clusters is changed. If
3308// containerInsights is enabled, any new clusters that are created will have
3309// Container Insights enabled unless you disable it during cluster creation.
3310// For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
3311// in the Amazon Elastic Container Service Developer Guide.
3312//
3313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3314// with awserr.Error's Code and Message methods to get detailed information about
3315// the error.
3316//
3317// See the AWS API reference guide for Amazon EC2 Container Service's
3318// API operation PutAccountSetting for usage and error information.
3319//
3320// Returned Error Codes:
3321//   * ErrCodeServerException "ServerException"
3322//   These errors are usually caused by a server issue.
3323//
3324//   * ErrCodeClientException "ClientException"
3325//   These errors are usually caused by a client action, such as using an action
3326//   or resource on behalf of a user that doesn't have permissions to use the
3327//   action or resource, or specifying an identifier that is not valid.
3328//
3329//   * ErrCodeInvalidParameterException "InvalidParameterException"
3330//   The specified parameter is invalid. Review the available parameters for the
3331//   API request.
3332//
3333// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3334func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
3335	req, out := c.PutAccountSettingRequest(input)
3336	return out, req.Send()
3337}
3338
3339// PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
3340// the ability to pass a context and additional request options.
3341//
3342// See PutAccountSetting for details on how to use this API operation.
3343//
3344// The context must be non-nil and will be used for request cancellation. If
3345// the context is nil a panic will occur. In the future the SDK may create
3346// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3347// for more information on using Contexts.
3348func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
3349	req, out := c.PutAccountSettingRequest(input)
3350	req.SetContext(ctx)
3351	req.ApplyOptions(opts...)
3352	return out, req.Send()
3353}
3354
3355const opPutAccountSettingDefault = "PutAccountSettingDefault"
3356
3357// PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
3358// client's request for the PutAccountSettingDefault operation. The "output" return
3359// value will be populated with the request's response once the request completes
3360// successfully.
3361//
3362// Use "Send" method on the returned Request to send the API call to the service.
3363// the "output" return value is not valid until after Send returns without error.
3364//
3365// See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
3366// API call, and error handling.
3367//
3368// This method is useful when you want to inject custom logic or configuration
3369// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3370//
3371//
3372//    // Example sending a request using the PutAccountSettingDefaultRequest method.
3373//    req, resp := client.PutAccountSettingDefaultRequest(params)
3374//
3375//    err := req.Send()
3376//    if err == nil { // resp is now filled
3377//        fmt.Println(resp)
3378//    }
3379//
3380// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3381func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
3382	op := &request.Operation{
3383		Name:       opPutAccountSettingDefault,
3384		HTTPMethod: "POST",
3385		HTTPPath:   "/",
3386	}
3387
3388	if input == nil {
3389		input = &PutAccountSettingDefaultInput{}
3390	}
3391
3392	output = &PutAccountSettingDefaultOutput{}
3393	req = c.newRequest(op, input, output)
3394	return
3395}
3396
3397// PutAccountSettingDefault API operation for Amazon EC2 Container Service.
3398//
3399// Modifies an account setting for all IAM users on an account for whom no individual
3400// account setting has been specified. Account settings are set on a per-Region
3401// basis.
3402//
3403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3404// with awserr.Error's Code and Message methods to get detailed information about
3405// the error.
3406//
3407// See the AWS API reference guide for Amazon EC2 Container Service's
3408// API operation PutAccountSettingDefault for usage and error information.
3409//
3410// Returned Error Codes:
3411//   * ErrCodeServerException "ServerException"
3412//   These errors are usually caused by a server issue.
3413//
3414//   * ErrCodeClientException "ClientException"
3415//   These errors are usually caused by a client action, such as using an action
3416//   or resource on behalf of a user that doesn't have permissions to use the
3417//   action or resource, or specifying an identifier that is not valid.
3418//
3419//   * ErrCodeInvalidParameterException "InvalidParameterException"
3420//   The specified parameter is invalid. Review the available parameters for the
3421//   API request.
3422//
3423// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3424func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
3425	req, out := c.PutAccountSettingDefaultRequest(input)
3426	return out, req.Send()
3427}
3428
3429// PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
3430// the ability to pass a context and additional request options.
3431//
3432// See PutAccountSettingDefault for details on how to use this API operation.
3433//
3434// The context must be non-nil and will be used for request cancellation. If
3435// the context is nil a panic will occur. In the future the SDK may create
3436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3437// for more information on using Contexts.
3438func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
3439	req, out := c.PutAccountSettingDefaultRequest(input)
3440	req.SetContext(ctx)
3441	req.ApplyOptions(opts...)
3442	return out, req.Send()
3443}
3444
3445const opPutAttributes = "PutAttributes"
3446
3447// PutAttributesRequest generates a "aws/request.Request" representing the
3448// client's request for the PutAttributes operation. The "output" return
3449// value will be populated with the request's response once the request completes
3450// successfully.
3451//
3452// Use "Send" method on the returned Request to send the API call to the service.
3453// the "output" return value is not valid until after Send returns without error.
3454//
3455// See PutAttributes for more information on using the PutAttributes
3456// API call, and error handling.
3457//
3458// This method is useful when you want to inject custom logic or configuration
3459// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3460//
3461//
3462//    // Example sending a request using the PutAttributesRequest method.
3463//    req, resp := client.PutAttributesRequest(params)
3464//
3465//    err := req.Send()
3466//    if err == nil { // resp is now filled
3467//        fmt.Println(resp)
3468//    }
3469//
3470// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3471func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
3472	op := &request.Operation{
3473		Name:       opPutAttributes,
3474		HTTPMethod: "POST",
3475		HTTPPath:   "/",
3476	}
3477
3478	if input == nil {
3479		input = &PutAttributesInput{}
3480	}
3481
3482	output = &PutAttributesOutput{}
3483	req = c.newRequest(op, input, output)
3484	return
3485}
3486
3487// PutAttributes API operation for Amazon EC2 Container Service.
3488//
3489// Create or update an attribute on an Amazon ECS resource. If the attribute
3490// does not exist, it is created. If the attribute exists, its value is replaced
3491// with the specified value. To delete an attribute, use DeleteAttributes. For
3492// more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3493// in the Amazon Elastic Container Service Developer Guide.
3494//
3495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3496// with awserr.Error's Code and Message methods to get detailed information about
3497// the error.
3498//
3499// See the AWS API reference guide for Amazon EC2 Container Service's
3500// API operation PutAttributes for usage and error information.
3501//
3502// Returned Error Codes:
3503//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3504//   The specified cluster could not be found. You can view your available clusters
3505//   with ListClusters. Amazon ECS clusters are Region-specific.
3506//
3507//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
3508//   The specified target could not be found. You can view your available container
3509//   instances with ListContainerInstances. Amazon ECS container instances are
3510//   cluster-specific and Region-specific.
3511//
3512//   * ErrCodeAttributeLimitExceededException "AttributeLimitExceededException"
3513//   You can apply up to 10 custom attributes per resource. You can view the attributes
3514//   of a resource with ListAttributes. You can remove existing attributes on
3515//   a resource with DeleteAttributes.
3516//
3517//   * ErrCodeInvalidParameterException "InvalidParameterException"
3518//   The specified parameter is invalid. Review the available parameters for the
3519//   API request.
3520//
3521// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3522func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
3523	req, out := c.PutAttributesRequest(input)
3524	return out, req.Send()
3525}
3526
3527// PutAttributesWithContext is the same as PutAttributes with the addition of
3528// the ability to pass a context and additional request options.
3529//
3530// See PutAttributes for details on how to use this API operation.
3531//
3532// The context must be non-nil and will be used for request cancellation. If
3533// the context is nil a panic will occur. In the future the SDK may create
3534// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3535// for more information on using Contexts.
3536func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
3537	req, out := c.PutAttributesRequest(input)
3538	req.SetContext(ctx)
3539	req.ApplyOptions(opts...)
3540	return out, req.Send()
3541}
3542
3543const opPutClusterCapacityProviders = "PutClusterCapacityProviders"
3544
3545// PutClusterCapacityProvidersRequest generates a "aws/request.Request" representing the
3546// client's request for the PutClusterCapacityProviders operation. The "output" return
3547// value will be populated with the request's response once the request completes
3548// successfully.
3549//
3550// Use "Send" method on the returned Request to send the API call to the service.
3551// the "output" return value is not valid until after Send returns without error.
3552//
3553// See PutClusterCapacityProviders for more information on using the PutClusterCapacityProviders
3554// API call, and error handling.
3555//
3556// This method is useful when you want to inject custom logic or configuration
3557// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3558//
3559//
3560//    // Example sending a request using the PutClusterCapacityProvidersRequest method.
3561//    req, resp := client.PutClusterCapacityProvidersRequest(params)
3562//
3563//    err := req.Send()
3564//    if err == nil { // resp is now filled
3565//        fmt.Println(resp)
3566//    }
3567//
3568// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3569func (c *ECS) PutClusterCapacityProvidersRequest(input *PutClusterCapacityProvidersInput) (req *request.Request, output *PutClusterCapacityProvidersOutput) {
3570	op := &request.Operation{
3571		Name:       opPutClusterCapacityProviders,
3572		HTTPMethod: "POST",
3573		HTTPPath:   "/",
3574	}
3575
3576	if input == nil {
3577		input = &PutClusterCapacityProvidersInput{}
3578	}
3579
3580	output = &PutClusterCapacityProvidersOutput{}
3581	req = c.newRequest(op, input, output)
3582	return
3583}
3584
3585// PutClusterCapacityProviders API operation for Amazon EC2 Container Service.
3586//
3587// Modifies the available capacity providers and the default capacity provider
3588// strategy for a cluster.
3589//
3590// You must specify both the available capacity providers and a default capacity
3591// provider strategy for the cluster. If the specified cluster has existing
3592// capacity providers associated with it, you must specify all existing capacity
3593// providers in addition to any new ones you want to add. Any existing capacity
3594// providers associated with a cluster that are omitted from a PutClusterCapacityProviders
3595// API call will be disassociated with the cluster. You can only disassociate
3596// an existing capacity provider from a cluster if it's not being used by any
3597// existing tasks.
3598//
3599// When creating a service or running a task on a cluster, if no capacity provider
3600// or launch type is specified, then the cluster's default capacity provider
3601// strategy is used. It is recommended to define a default capacity provider
3602// strategy for your cluster, however you may specify an empty array ([]) to
3603// bypass defining a default strategy.
3604//
3605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3606// with awserr.Error's Code and Message methods to get detailed information about
3607// the error.
3608//
3609// See the AWS API reference guide for Amazon EC2 Container Service's
3610// API operation PutClusterCapacityProviders for usage and error information.
3611//
3612// Returned Error Codes:
3613//   * ErrCodeServerException "ServerException"
3614//   These errors are usually caused by a server issue.
3615//
3616//   * ErrCodeClientException "ClientException"
3617//   These errors are usually caused by a client action, such as using an action
3618//   or resource on behalf of a user that doesn't have permissions to use the
3619//   action or resource, or specifying an identifier that is not valid.
3620//
3621//   * ErrCodeInvalidParameterException "InvalidParameterException"
3622//   The specified parameter is invalid. Review the available parameters for the
3623//   API request.
3624//
3625//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3626//   The specified cluster could not be found. You can view your available clusters
3627//   with ListClusters. Amazon ECS clusters are Region-specific.
3628//
3629//   * ErrCodeResourceInUseException "ResourceInUseException"
3630//   The specified resource is in-use and cannot be removed.
3631//
3632//   * ErrCodeUpdateInProgressException "UpdateInProgressException"
3633//   There is already a current Amazon ECS container agent update in progress
3634//   on the specified container instance. If the container agent becomes disconnected
3635//   while it is in a transitional stage, such as PENDING or STAGING, the update
3636//   process can get stuck in that state. However, when the agent reconnects,
3637//   it resumes where it stopped previously.
3638//
3639// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3640func (c *ECS) PutClusterCapacityProviders(input *PutClusterCapacityProvidersInput) (*PutClusterCapacityProvidersOutput, error) {
3641	req, out := c.PutClusterCapacityProvidersRequest(input)
3642	return out, req.Send()
3643}
3644
3645// PutClusterCapacityProvidersWithContext is the same as PutClusterCapacityProviders with the addition of
3646// the ability to pass a context and additional request options.
3647//
3648// See PutClusterCapacityProviders for details on how to use this API operation.
3649//
3650// The context must be non-nil and will be used for request cancellation. If
3651// the context is nil a panic will occur. In the future the SDK may create
3652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3653// for more information on using Contexts.
3654func (c *ECS) PutClusterCapacityProvidersWithContext(ctx aws.Context, input *PutClusterCapacityProvidersInput, opts ...request.Option) (*PutClusterCapacityProvidersOutput, error) {
3655	req, out := c.PutClusterCapacityProvidersRequest(input)
3656	req.SetContext(ctx)
3657	req.ApplyOptions(opts...)
3658	return out, req.Send()
3659}
3660
3661const opRegisterContainerInstance = "RegisterContainerInstance"
3662
3663// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
3664// client's request for the RegisterContainerInstance operation. The "output" return
3665// value will be populated with the request's response once the request completes
3666// successfully.
3667//
3668// Use "Send" method on the returned Request to send the API call to the service.
3669// the "output" return value is not valid until after Send returns without error.
3670//
3671// See RegisterContainerInstance for more information on using the RegisterContainerInstance
3672// API call, and error handling.
3673//
3674// This method is useful when you want to inject custom logic or configuration
3675// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3676//
3677//
3678//    // Example sending a request using the RegisterContainerInstanceRequest method.
3679//    req, resp := client.RegisterContainerInstanceRequest(params)
3680//
3681//    err := req.Send()
3682//    if err == nil { // resp is now filled
3683//        fmt.Println(resp)
3684//    }
3685//
3686// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3687func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
3688	op := &request.Operation{
3689		Name:       opRegisterContainerInstance,
3690		HTTPMethod: "POST",
3691		HTTPPath:   "/",
3692	}
3693
3694	if input == nil {
3695		input = &RegisterContainerInstanceInput{}
3696	}
3697
3698	output = &RegisterContainerInstanceOutput{}
3699	req = c.newRequest(op, input, output)
3700	return
3701}
3702
3703// RegisterContainerInstance API operation for Amazon EC2 Container Service.
3704//
3705//
3706// This action is only used by the Amazon ECS agent, and it is not intended
3707// for use outside of the agent.
3708//
3709// Registers an EC2 instance into the specified cluster. This instance becomes
3710// available to place containers on.
3711//
3712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3713// with awserr.Error's Code and Message methods to get detailed information about
3714// the error.
3715//
3716// See the AWS API reference guide for Amazon EC2 Container Service's
3717// API operation RegisterContainerInstance for usage and error information.
3718//
3719// Returned Error Codes:
3720//   * ErrCodeServerException "ServerException"
3721//   These errors are usually caused by a server issue.
3722//
3723//   * ErrCodeClientException "ClientException"
3724//   These errors are usually caused by a client action, such as using an action
3725//   or resource on behalf of a user that doesn't have permissions to use the
3726//   action or resource, or specifying an identifier that is not valid.
3727//
3728//   * ErrCodeInvalidParameterException "InvalidParameterException"
3729//   The specified parameter is invalid. Review the available parameters for the
3730//   API request.
3731//
3732// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3733func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
3734	req, out := c.RegisterContainerInstanceRequest(input)
3735	return out, req.Send()
3736}
3737
3738// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
3739// the ability to pass a context and additional request options.
3740//
3741// See RegisterContainerInstance for details on how to use this API operation.
3742//
3743// The context must be non-nil and will be used for request cancellation. If
3744// the context is nil a panic will occur. In the future the SDK may create
3745// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3746// for more information on using Contexts.
3747func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
3748	req, out := c.RegisterContainerInstanceRequest(input)
3749	req.SetContext(ctx)
3750	req.ApplyOptions(opts...)
3751	return out, req.Send()
3752}
3753
3754const opRegisterTaskDefinition = "RegisterTaskDefinition"
3755
3756// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
3757// client's request for the RegisterTaskDefinition operation. The "output" return
3758// value will be populated with the request's response once the request completes
3759// successfully.
3760//
3761// Use "Send" method on the returned Request to send the API call to the service.
3762// the "output" return value is not valid until after Send returns without error.
3763//
3764// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
3765// API call, and error handling.
3766//
3767// This method is useful when you want to inject custom logic or configuration
3768// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3769//
3770//
3771//    // Example sending a request using the RegisterTaskDefinitionRequest method.
3772//    req, resp := client.RegisterTaskDefinitionRequest(params)
3773//
3774//    err := req.Send()
3775//    if err == nil { // resp is now filled
3776//        fmt.Println(resp)
3777//    }
3778//
3779// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3780func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
3781	op := &request.Operation{
3782		Name:       opRegisterTaskDefinition,
3783		HTTPMethod: "POST",
3784		HTTPPath:   "/",
3785	}
3786
3787	if input == nil {
3788		input = &RegisterTaskDefinitionInput{}
3789	}
3790
3791	output = &RegisterTaskDefinitionOutput{}
3792	req = c.newRequest(op, input, output)
3793	return
3794}
3795
3796// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
3797//
3798// Registers a new task definition from the supplied family and containerDefinitions.
3799// Optionally, you can add data volumes to your containers with the volumes
3800// parameter. For more information about task definition parameters and defaults,
3801// see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
3802// in the Amazon Elastic Container Service Developer Guide.
3803//
3804// You can specify an IAM role for your task with the taskRoleArn parameter.
3805// When you specify an IAM role for a task, its containers can then use the
3806// latest versions of the AWS CLI or SDKs to make API requests to the AWS services
3807// that are specified in the IAM policy associated with the role. For more information,
3808// see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
3809// in the Amazon Elastic Container Service Developer Guide.
3810//
3811// You can specify a Docker networking mode for the containers in your task
3812// definition with the networkMode parameter. The available network modes correspond
3813// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
3814// in the Docker run reference. If you specify the awsvpc network mode, the
3815// task is allocated an elastic network interface, and you must specify a NetworkConfiguration
3816// when you create a service or run a task with the task definition. For more
3817// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
3818// in the Amazon Elastic Container Service Developer Guide.
3819//
3820// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3821// with awserr.Error's Code and Message methods to get detailed information about
3822// the error.
3823//
3824// See the AWS API reference guide for Amazon EC2 Container Service's
3825// API operation RegisterTaskDefinition for usage and error information.
3826//
3827// Returned Error Codes:
3828//   * ErrCodeServerException "ServerException"
3829//   These errors are usually caused by a server issue.
3830//
3831//   * ErrCodeClientException "ClientException"
3832//   These errors are usually caused by a client action, such as using an action
3833//   or resource on behalf of a user that doesn't have permissions to use the
3834//   action or resource, or specifying an identifier that is not valid.
3835//
3836//   * ErrCodeInvalidParameterException "InvalidParameterException"
3837//   The specified parameter is invalid. Review the available parameters for the
3838//   API request.
3839//
3840// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3841func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
3842	req, out := c.RegisterTaskDefinitionRequest(input)
3843	return out, req.Send()
3844}
3845
3846// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
3847// the ability to pass a context and additional request options.
3848//
3849// See RegisterTaskDefinition for details on how to use this API operation.
3850//
3851// The context must be non-nil and will be used for request cancellation. If
3852// the context is nil a panic will occur. In the future the SDK may create
3853// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3854// for more information on using Contexts.
3855func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
3856	req, out := c.RegisterTaskDefinitionRequest(input)
3857	req.SetContext(ctx)
3858	req.ApplyOptions(opts...)
3859	return out, req.Send()
3860}
3861
3862const opRunTask = "RunTask"
3863
3864// RunTaskRequest generates a "aws/request.Request" representing the
3865// client's request for the RunTask operation. The "output" return
3866// value will be populated with the request's response once the request completes
3867// successfully.
3868//
3869// Use "Send" method on the returned Request to send the API call to the service.
3870// the "output" return value is not valid until after Send returns without error.
3871//
3872// See RunTask for more information on using the RunTask
3873// API call, and error handling.
3874//
3875// This method is useful when you want to inject custom logic or configuration
3876// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3877//
3878//
3879//    // Example sending a request using the RunTaskRequest method.
3880//    req, resp := client.RunTaskRequest(params)
3881//
3882//    err := req.Send()
3883//    if err == nil { // resp is now filled
3884//        fmt.Println(resp)
3885//    }
3886//
3887// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
3888func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
3889	op := &request.Operation{
3890		Name:       opRunTask,
3891		HTTPMethod: "POST",
3892		HTTPPath:   "/",
3893	}
3894
3895	if input == nil {
3896		input = &RunTaskInput{}
3897	}
3898
3899	output = &RunTaskOutput{}
3900	req = c.newRequest(op, input, output)
3901	return
3902}
3903
3904// RunTask API operation for Amazon EC2 Container Service.
3905//
3906// Starts a new task using the specified task definition.
3907//
3908// You can allow Amazon ECS to place tasks for you, or you can customize how
3909// Amazon ECS places tasks using placement constraints and placement strategies.
3910// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
3911// in the Amazon Elastic Container Service Developer Guide.
3912//
3913// Alternatively, you can use StartTask to use your own scheduler or place tasks
3914// manually on specific container instances.
3915//
3916// The Amazon ECS API follows an eventual consistency model, due to the distributed
3917// nature of the system supporting the API. This means that the result of an
3918// API command you run that affects your Amazon ECS resources might not be immediately
3919// visible to all subsequent commands you run. Keep this in mind when you carry
3920// out an API command that immediately follows a previous API command.
3921//
3922// To manage eventual consistency, you can do the following:
3923//
3924//    * Confirm the state of the resource before you run a command to modify
3925//    it. Run the DescribeTasks command using an exponential backoff algorithm
3926//    to ensure that you allow enough time for the previous command to propagate
3927//    through the system. To do this, run the DescribeTasks command repeatedly,
3928//    starting with a couple of seconds of wait time and increasing gradually
3929//    up to five minutes of wait time.
3930//
3931//    * Add wait time between subsequent commands, even if the DescribeTasks
3932//    command returns an accurate response. Apply an exponential backoff algorithm
3933//    starting with a couple of seconds of wait time, and increase gradually
3934//    up to about five minutes of wait time.
3935//
3936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3937// with awserr.Error's Code and Message methods to get detailed information about
3938// the error.
3939//
3940// See the AWS API reference guide for Amazon EC2 Container Service's
3941// API operation RunTask for usage and error information.
3942//
3943// Returned Error Codes:
3944//   * ErrCodeServerException "ServerException"
3945//   These errors are usually caused by a server issue.
3946//
3947//   * ErrCodeClientException "ClientException"
3948//   These errors are usually caused by a client action, such as using an action
3949//   or resource on behalf of a user that doesn't have permissions to use the
3950//   action or resource, or specifying an identifier that is not valid.
3951//
3952//   * ErrCodeInvalidParameterException "InvalidParameterException"
3953//   The specified parameter is invalid. Review the available parameters for the
3954//   API request.
3955//
3956//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3957//   The specified cluster could not be found. You can view your available clusters
3958//   with ListClusters. Amazon ECS clusters are Region-specific.
3959//
3960//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
3961//   The specified task is not supported in this Region.
3962//
3963//   * ErrCodePlatformUnknownException "PlatformUnknownException"
3964//   The specified platform version does not exist.
3965//
3966//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
3967//   The specified platform version does not satisfy the task definition's required
3968//   capabilities.
3969//
3970//   * ErrCodeAccessDeniedException "AccessDeniedException"
3971//   You do not have authorization to perform the requested action.
3972//
3973//   * ErrCodeBlockedException "BlockedException"
3974//   Your AWS account has been blocked. For more information, contact AWS Support
3975//   (http://aws.amazon.com/contact-us/).
3976//
3977// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
3978func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
3979	req, out := c.RunTaskRequest(input)
3980	return out, req.Send()
3981}
3982
3983// RunTaskWithContext is the same as RunTask with the addition of
3984// the ability to pass a context and additional request options.
3985//
3986// See RunTask for details on how to use this API operation.
3987//
3988// The context must be non-nil and will be used for request cancellation. If
3989// the context is nil a panic will occur. In the future the SDK may create
3990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3991// for more information on using Contexts.
3992func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
3993	req, out := c.RunTaskRequest(input)
3994	req.SetContext(ctx)
3995	req.ApplyOptions(opts...)
3996	return out, req.Send()
3997}
3998
3999const opStartTask = "StartTask"
4000
4001// StartTaskRequest generates a "aws/request.Request" representing the
4002// client's request for the StartTask operation. The "output" return
4003// value will be populated with the request's response once the request completes
4004// successfully.
4005//
4006// Use "Send" method on the returned Request to send the API call to the service.
4007// the "output" return value is not valid until after Send returns without error.
4008//
4009// See StartTask for more information on using the StartTask
4010// API call, and error handling.
4011//
4012// This method is useful when you want to inject custom logic or configuration
4013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4014//
4015//
4016//    // Example sending a request using the StartTaskRequest method.
4017//    req, resp := client.StartTaskRequest(params)
4018//
4019//    err := req.Send()
4020//    if err == nil { // resp is now filled
4021//        fmt.Println(resp)
4022//    }
4023//
4024// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4025func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
4026	op := &request.Operation{
4027		Name:       opStartTask,
4028		HTTPMethod: "POST",
4029		HTTPPath:   "/",
4030	}
4031
4032	if input == nil {
4033		input = &StartTaskInput{}
4034	}
4035
4036	output = &StartTaskOutput{}
4037	req = c.newRequest(op, input, output)
4038	return
4039}
4040
4041// StartTask API operation for Amazon EC2 Container Service.
4042//
4043// Starts a new task from the specified task definition on the specified container
4044// instance or instances.
4045//
4046// Alternatively, you can use RunTask to place tasks for you. For more information,
4047// see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4048// in the Amazon Elastic Container Service Developer Guide.
4049//
4050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4051// with awserr.Error's Code and Message methods to get detailed information about
4052// the error.
4053//
4054// See the AWS API reference guide for Amazon EC2 Container Service's
4055// API operation StartTask for usage and error information.
4056//
4057// Returned Error Codes:
4058//   * ErrCodeServerException "ServerException"
4059//   These errors are usually caused by a server issue.
4060//
4061//   * ErrCodeClientException "ClientException"
4062//   These errors are usually caused by a client action, such as using an action
4063//   or resource on behalf of a user that doesn't have permissions to use the
4064//   action or resource, or specifying an identifier that is not valid.
4065//
4066//   * ErrCodeInvalidParameterException "InvalidParameterException"
4067//   The specified parameter is invalid. Review the available parameters for the
4068//   API request.
4069//
4070//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4071//   The specified cluster could not be found. You can view your available clusters
4072//   with ListClusters. Amazon ECS clusters are Region-specific.
4073//
4074// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4075func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
4076	req, out := c.StartTaskRequest(input)
4077	return out, req.Send()
4078}
4079
4080// StartTaskWithContext is the same as StartTask with the addition of
4081// the ability to pass a context and additional request options.
4082//
4083// See StartTask for details on how to use this API operation.
4084//
4085// The context must be non-nil and will be used for request cancellation. If
4086// the context is nil a panic will occur. In the future the SDK may create
4087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4088// for more information on using Contexts.
4089func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
4090	req, out := c.StartTaskRequest(input)
4091	req.SetContext(ctx)
4092	req.ApplyOptions(opts...)
4093	return out, req.Send()
4094}
4095
4096const opStopTask = "StopTask"
4097
4098// StopTaskRequest generates a "aws/request.Request" representing the
4099// client's request for the StopTask operation. The "output" return
4100// value will be populated with the request's response once the request completes
4101// successfully.
4102//
4103// Use "Send" method on the returned Request to send the API call to the service.
4104// the "output" return value is not valid until after Send returns without error.
4105//
4106// See StopTask for more information on using the StopTask
4107// API call, and error handling.
4108//
4109// This method is useful when you want to inject custom logic or configuration
4110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4111//
4112//
4113//    // Example sending a request using the StopTaskRequest method.
4114//    req, resp := client.StopTaskRequest(params)
4115//
4116//    err := req.Send()
4117//    if err == nil { // resp is now filled
4118//        fmt.Println(resp)
4119//    }
4120//
4121// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4122func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
4123	op := &request.Operation{
4124		Name:       opStopTask,
4125		HTTPMethod: "POST",
4126		HTTPPath:   "/",
4127	}
4128
4129	if input == nil {
4130		input = &StopTaskInput{}
4131	}
4132
4133	output = &StopTaskOutput{}
4134	req = c.newRequest(op, input, output)
4135	return
4136}
4137
4138// StopTask API operation for Amazon EC2 Container Service.
4139//
4140// Stops a running task. Any tags associated with the task will be deleted.
4141//
4142// When StopTask is called on a task, the equivalent of docker stop is issued
4143// to the containers running in the task. This results in a SIGTERM value and
4144// a default 30-second timeout, after which the SIGKILL value is sent and the
4145// containers are forcibly stopped. If the container handles the SIGTERM value
4146// gracefully and exits within 30 seconds from receiving it, no SIGKILL value
4147// is sent.
4148//
4149// The default 30-second timeout can be configured on the Amazon ECS container
4150// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
4151// see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
4152// in the Amazon Elastic Container Service Developer Guide.
4153//
4154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4155// with awserr.Error's Code and Message methods to get detailed information about
4156// the error.
4157//
4158// See the AWS API reference guide for Amazon EC2 Container Service's
4159// API operation StopTask for usage and error information.
4160//
4161// Returned Error Codes:
4162//   * ErrCodeServerException "ServerException"
4163//   These errors are usually caused by a server issue.
4164//
4165//   * ErrCodeClientException "ClientException"
4166//   These errors are usually caused by a client action, such as using an action
4167//   or resource on behalf of a user that doesn't have permissions to use the
4168//   action or resource, or specifying an identifier that is not valid.
4169//
4170//   * ErrCodeInvalidParameterException "InvalidParameterException"
4171//   The specified parameter is invalid. Review the available parameters for the
4172//   API request.
4173//
4174//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4175//   The specified cluster could not be found. You can view your available clusters
4176//   with ListClusters. Amazon ECS clusters are Region-specific.
4177//
4178// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4179func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
4180	req, out := c.StopTaskRequest(input)
4181	return out, req.Send()
4182}
4183
4184// StopTaskWithContext is the same as StopTask with the addition of
4185// the ability to pass a context and additional request options.
4186//
4187// See StopTask for details on how to use this API operation.
4188//
4189// The context must be non-nil and will be used for request cancellation. If
4190// the context is nil a panic will occur. In the future the SDK may create
4191// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4192// for more information on using Contexts.
4193func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
4194	req, out := c.StopTaskRequest(input)
4195	req.SetContext(ctx)
4196	req.ApplyOptions(opts...)
4197	return out, req.Send()
4198}
4199
4200const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
4201
4202// SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
4203// client's request for the SubmitAttachmentStateChanges operation. The "output" return
4204// value will be populated with the request's response once the request completes
4205// successfully.
4206//
4207// Use "Send" method on the returned Request to send the API call to the service.
4208// the "output" return value is not valid until after Send returns without error.
4209//
4210// See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
4211// API call, and error handling.
4212//
4213// This method is useful when you want to inject custom logic or configuration
4214// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4215//
4216//
4217//    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
4218//    req, resp := client.SubmitAttachmentStateChangesRequest(params)
4219//
4220//    err := req.Send()
4221//    if err == nil { // resp is now filled
4222//        fmt.Println(resp)
4223//    }
4224//
4225// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4226func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
4227	op := &request.Operation{
4228		Name:       opSubmitAttachmentStateChanges,
4229		HTTPMethod: "POST",
4230		HTTPPath:   "/",
4231	}
4232
4233	if input == nil {
4234		input = &SubmitAttachmentStateChangesInput{}
4235	}
4236
4237	output = &SubmitAttachmentStateChangesOutput{}
4238	req = c.newRequest(op, input, output)
4239	return
4240}
4241
4242// SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
4243//
4244//
4245// This action is only used by the Amazon ECS agent, and it is not intended
4246// for use outside of the agent.
4247//
4248// Sent to acknowledge that an attachment changed states.
4249//
4250// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4251// with awserr.Error's Code and Message methods to get detailed information about
4252// the error.
4253//
4254// See the AWS API reference guide for Amazon EC2 Container Service's
4255// API operation SubmitAttachmentStateChanges for usage and error information.
4256//
4257// Returned Error Codes:
4258//   * ErrCodeServerException "ServerException"
4259//   These errors are usually caused by a server issue.
4260//
4261//   * ErrCodeClientException "ClientException"
4262//   These errors are usually caused by a client action, such as using an action
4263//   or resource on behalf of a user that doesn't have permissions to use the
4264//   action or resource, or specifying an identifier that is not valid.
4265//
4266//   * ErrCodeAccessDeniedException "AccessDeniedException"
4267//   You do not have authorization to perform the requested action.
4268//
4269//   * ErrCodeInvalidParameterException "InvalidParameterException"
4270//   The specified parameter is invalid. Review the available parameters for the
4271//   API request.
4272//
4273// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4274func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
4275	req, out := c.SubmitAttachmentStateChangesRequest(input)
4276	return out, req.Send()
4277}
4278
4279// SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
4280// the ability to pass a context and additional request options.
4281//
4282// See SubmitAttachmentStateChanges for details on how to use this API operation.
4283//
4284// The context must be non-nil and will be used for request cancellation. If
4285// the context is nil a panic will occur. In the future the SDK may create
4286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4287// for more information on using Contexts.
4288func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
4289	req, out := c.SubmitAttachmentStateChangesRequest(input)
4290	req.SetContext(ctx)
4291	req.ApplyOptions(opts...)
4292	return out, req.Send()
4293}
4294
4295const opSubmitContainerStateChange = "SubmitContainerStateChange"
4296
4297// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
4298// client's request for the SubmitContainerStateChange operation. The "output" return
4299// value will be populated with the request's response once the request completes
4300// successfully.
4301//
4302// Use "Send" method on the returned Request to send the API call to the service.
4303// the "output" return value is not valid until after Send returns without error.
4304//
4305// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
4306// API call, and error handling.
4307//
4308// This method is useful when you want to inject custom logic or configuration
4309// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4310//
4311//
4312//    // Example sending a request using the SubmitContainerStateChangeRequest method.
4313//    req, resp := client.SubmitContainerStateChangeRequest(params)
4314//
4315//    err := req.Send()
4316//    if err == nil { // resp is now filled
4317//        fmt.Println(resp)
4318//    }
4319//
4320// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4321func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
4322	op := &request.Operation{
4323		Name:       opSubmitContainerStateChange,
4324		HTTPMethod: "POST",
4325		HTTPPath:   "/",
4326	}
4327
4328	if input == nil {
4329		input = &SubmitContainerStateChangeInput{}
4330	}
4331
4332	output = &SubmitContainerStateChangeOutput{}
4333	req = c.newRequest(op, input, output)
4334	return
4335}
4336
4337// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
4338//
4339//
4340// This action is only used by the Amazon ECS agent, and it is not intended
4341// for use outside of the agent.
4342//
4343// Sent to acknowledge that a container changed states.
4344//
4345// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4346// with awserr.Error's Code and Message methods to get detailed information about
4347// the error.
4348//
4349// See the AWS API reference guide for Amazon EC2 Container Service's
4350// API operation SubmitContainerStateChange for usage and error information.
4351//
4352// Returned Error Codes:
4353//   * ErrCodeServerException "ServerException"
4354//   These errors are usually caused by a server issue.
4355//
4356//   * ErrCodeClientException "ClientException"
4357//   These errors are usually caused by a client action, such as using an action
4358//   or resource on behalf of a user that doesn't have permissions to use the
4359//   action or resource, or specifying an identifier that is not valid.
4360//
4361//   * ErrCodeAccessDeniedException "AccessDeniedException"
4362//   You do not have authorization to perform the requested action.
4363//
4364// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4365func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
4366	req, out := c.SubmitContainerStateChangeRequest(input)
4367	return out, req.Send()
4368}
4369
4370// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
4371// the ability to pass a context and additional request options.
4372//
4373// See SubmitContainerStateChange for details on how to use this API operation.
4374//
4375// The context must be non-nil and will be used for request cancellation. If
4376// the context is nil a panic will occur. In the future the SDK may create
4377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4378// for more information on using Contexts.
4379func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
4380	req, out := c.SubmitContainerStateChangeRequest(input)
4381	req.SetContext(ctx)
4382	req.ApplyOptions(opts...)
4383	return out, req.Send()
4384}
4385
4386const opSubmitTaskStateChange = "SubmitTaskStateChange"
4387
4388// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
4389// client's request for the SubmitTaskStateChange operation. The "output" return
4390// value will be populated with the request's response once the request completes
4391// successfully.
4392//
4393// Use "Send" method on the returned Request to send the API call to the service.
4394// the "output" return value is not valid until after Send returns without error.
4395//
4396// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
4397// API call, and error handling.
4398//
4399// This method is useful when you want to inject custom logic or configuration
4400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4401//
4402//
4403//    // Example sending a request using the SubmitTaskStateChangeRequest method.
4404//    req, resp := client.SubmitTaskStateChangeRequest(params)
4405//
4406//    err := req.Send()
4407//    if err == nil { // resp is now filled
4408//        fmt.Println(resp)
4409//    }
4410//
4411// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4412func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
4413	op := &request.Operation{
4414		Name:       opSubmitTaskStateChange,
4415		HTTPMethod: "POST",
4416		HTTPPath:   "/",
4417	}
4418
4419	if input == nil {
4420		input = &SubmitTaskStateChangeInput{}
4421	}
4422
4423	output = &SubmitTaskStateChangeOutput{}
4424	req = c.newRequest(op, input, output)
4425	return
4426}
4427
4428// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
4429//
4430//
4431// This action is only used by the Amazon ECS agent, and it is not intended
4432// for use outside of the agent.
4433//
4434// Sent to acknowledge that a task changed states.
4435//
4436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4437// with awserr.Error's Code and Message methods to get detailed information about
4438// the error.
4439//
4440// See the AWS API reference guide for Amazon EC2 Container Service's
4441// API operation SubmitTaskStateChange for usage and error information.
4442//
4443// Returned Error Codes:
4444//   * ErrCodeServerException "ServerException"
4445//   These errors are usually caused by a server issue.
4446//
4447//   * ErrCodeClientException "ClientException"
4448//   These errors are usually caused by a client action, such as using an action
4449//   or resource on behalf of a user that doesn't have permissions to use the
4450//   action or resource, or specifying an identifier that is not valid.
4451//
4452//   * ErrCodeAccessDeniedException "AccessDeniedException"
4453//   You do not have authorization to perform the requested action.
4454//
4455//   * ErrCodeInvalidParameterException "InvalidParameterException"
4456//   The specified parameter is invalid. Review the available parameters for the
4457//   API request.
4458//
4459// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4460func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
4461	req, out := c.SubmitTaskStateChangeRequest(input)
4462	return out, req.Send()
4463}
4464
4465// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
4466// the ability to pass a context and additional request options.
4467//
4468// See SubmitTaskStateChange for details on how to use this API operation.
4469//
4470// The context must be non-nil and will be used for request cancellation. If
4471// the context is nil a panic will occur. In the future the SDK may create
4472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4473// for more information on using Contexts.
4474func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
4475	req, out := c.SubmitTaskStateChangeRequest(input)
4476	req.SetContext(ctx)
4477	req.ApplyOptions(opts...)
4478	return out, req.Send()
4479}
4480
4481const opTagResource = "TagResource"
4482
4483// TagResourceRequest generates a "aws/request.Request" representing the
4484// client's request for the TagResource operation. The "output" return
4485// value will be populated with the request's response once the request completes
4486// successfully.
4487//
4488// Use "Send" method on the returned Request to send the API call to the service.
4489// the "output" return value is not valid until after Send returns without error.
4490//
4491// See TagResource for more information on using the TagResource
4492// API call, and error handling.
4493//
4494// This method is useful when you want to inject custom logic or configuration
4495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4496//
4497//
4498//    // Example sending a request using the TagResourceRequest method.
4499//    req, resp := client.TagResourceRequest(params)
4500//
4501//    err := req.Send()
4502//    if err == nil { // resp is now filled
4503//        fmt.Println(resp)
4504//    }
4505//
4506// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4507func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4508	op := &request.Operation{
4509		Name:       opTagResource,
4510		HTTPMethod: "POST",
4511		HTTPPath:   "/",
4512	}
4513
4514	if input == nil {
4515		input = &TagResourceInput{}
4516	}
4517
4518	output = &TagResourceOutput{}
4519	req = c.newRequest(op, input, output)
4520	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4521	return
4522}
4523
4524// TagResource API operation for Amazon EC2 Container Service.
4525//
4526// Associates the specified tags to a resource with the specified resourceArn.
4527// If existing tags on a resource are not specified in the request parameters,
4528// they are not changed. When a resource is deleted, the tags associated with
4529// that resource are deleted as well.
4530//
4531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4532// with awserr.Error's Code and Message methods to get detailed information about
4533// the error.
4534//
4535// See the AWS API reference guide for Amazon EC2 Container Service's
4536// API operation TagResource for usage and error information.
4537//
4538// Returned Error Codes:
4539//   * ErrCodeServerException "ServerException"
4540//   These errors are usually caused by a server issue.
4541//
4542//   * ErrCodeClientException "ClientException"
4543//   These errors are usually caused by a client action, such as using an action
4544//   or resource on behalf of a user that doesn't have permissions to use the
4545//   action or resource, or specifying an identifier that is not valid.
4546//
4547//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4548//   The specified cluster could not be found. You can view your available clusters
4549//   with ListClusters. Amazon ECS clusters are Region-specific.
4550//
4551//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4552//   The specified resource could not be found.
4553//
4554//   * ErrCodeInvalidParameterException "InvalidParameterException"
4555//   The specified parameter is invalid. Review the available parameters for the
4556//   API request.
4557//
4558// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4559func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4560	req, out := c.TagResourceRequest(input)
4561	return out, req.Send()
4562}
4563
4564// TagResourceWithContext is the same as TagResource with the addition of
4565// the ability to pass a context and additional request options.
4566//
4567// See TagResource for details on how to use this API operation.
4568//
4569// The context must be non-nil and will be used for request cancellation. If
4570// the context is nil a panic will occur. In the future the SDK may create
4571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4572// for more information on using Contexts.
4573func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4574	req, out := c.TagResourceRequest(input)
4575	req.SetContext(ctx)
4576	req.ApplyOptions(opts...)
4577	return out, req.Send()
4578}
4579
4580const opUntagResource = "UntagResource"
4581
4582// UntagResourceRequest generates a "aws/request.Request" representing the
4583// client's request for the UntagResource operation. The "output" return
4584// value will be populated with the request's response once the request completes
4585// successfully.
4586//
4587// Use "Send" method on the returned Request to send the API call to the service.
4588// the "output" return value is not valid until after Send returns without error.
4589//
4590// See UntagResource for more information on using the UntagResource
4591// API call, and error handling.
4592//
4593// This method is useful when you want to inject custom logic or configuration
4594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4595//
4596//
4597//    // Example sending a request using the UntagResourceRequest method.
4598//    req, resp := client.UntagResourceRequest(params)
4599//
4600//    err := req.Send()
4601//    if err == nil { // resp is now filled
4602//        fmt.Println(resp)
4603//    }
4604//
4605// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4606func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4607	op := &request.Operation{
4608		Name:       opUntagResource,
4609		HTTPMethod: "POST",
4610		HTTPPath:   "/",
4611	}
4612
4613	if input == nil {
4614		input = &UntagResourceInput{}
4615	}
4616
4617	output = &UntagResourceOutput{}
4618	req = c.newRequest(op, input, output)
4619	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4620	return
4621}
4622
4623// UntagResource API operation for Amazon EC2 Container Service.
4624//
4625// Deletes specified tags from a resource.
4626//
4627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4628// with awserr.Error's Code and Message methods to get detailed information about
4629// the error.
4630//
4631// See the AWS API reference guide for Amazon EC2 Container Service's
4632// API operation UntagResource for usage and error information.
4633//
4634// Returned Error Codes:
4635//   * ErrCodeServerException "ServerException"
4636//   These errors are usually caused by a server issue.
4637//
4638//   * ErrCodeClientException "ClientException"
4639//   These errors are usually caused by a client action, such as using an action
4640//   or resource on behalf of a user that doesn't have permissions to use the
4641//   action or resource, or specifying an identifier that is not valid.
4642//
4643//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4644//   The specified cluster could not be found. You can view your available clusters
4645//   with ListClusters. Amazon ECS clusters are Region-specific.
4646//
4647//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4648//   The specified resource could not be found.
4649//
4650//   * ErrCodeInvalidParameterException "InvalidParameterException"
4651//   The specified parameter is invalid. Review the available parameters for the
4652//   API request.
4653//
4654// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4655func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4656	req, out := c.UntagResourceRequest(input)
4657	return out, req.Send()
4658}
4659
4660// UntagResourceWithContext is the same as UntagResource with the addition of
4661// the ability to pass a context and additional request options.
4662//
4663// See UntagResource for details on how to use this API operation.
4664//
4665// The context must be non-nil and will be used for request cancellation. If
4666// the context is nil a panic will occur. In the future the SDK may create
4667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4668// for more information on using Contexts.
4669func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4670	req, out := c.UntagResourceRequest(input)
4671	req.SetContext(ctx)
4672	req.ApplyOptions(opts...)
4673	return out, req.Send()
4674}
4675
4676const opUpdateClusterSettings = "UpdateClusterSettings"
4677
4678// UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
4679// client's request for the UpdateClusterSettings operation. The "output" return
4680// value will be populated with the request's response once the request completes
4681// successfully.
4682//
4683// Use "Send" method on the returned Request to send the API call to the service.
4684// the "output" return value is not valid until after Send returns without error.
4685//
4686// See UpdateClusterSettings for more information on using the UpdateClusterSettings
4687// API call, and error handling.
4688//
4689// This method is useful when you want to inject custom logic or configuration
4690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4691//
4692//
4693//    // Example sending a request using the UpdateClusterSettingsRequest method.
4694//    req, resp := client.UpdateClusterSettingsRequest(params)
4695//
4696//    err := req.Send()
4697//    if err == nil { // resp is now filled
4698//        fmt.Println(resp)
4699//    }
4700//
4701// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4702func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
4703	op := &request.Operation{
4704		Name:       opUpdateClusterSettings,
4705		HTTPMethod: "POST",
4706		HTTPPath:   "/",
4707	}
4708
4709	if input == nil {
4710		input = &UpdateClusterSettingsInput{}
4711	}
4712
4713	output = &UpdateClusterSettingsOutput{}
4714	req = c.newRequest(op, input, output)
4715	return
4716}
4717
4718// UpdateClusterSettings API operation for Amazon EC2 Container Service.
4719//
4720// Modifies the settings to use for a cluster.
4721//
4722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4723// with awserr.Error's Code and Message methods to get detailed information about
4724// the error.
4725//
4726// See the AWS API reference guide for Amazon EC2 Container Service's
4727// API operation UpdateClusterSettings for usage and error information.
4728//
4729// Returned Error Codes:
4730//   * ErrCodeServerException "ServerException"
4731//   These errors are usually caused by a server issue.
4732//
4733//   * ErrCodeClientException "ClientException"
4734//   These errors are usually caused by a client action, such as using an action
4735//   or resource on behalf of a user that doesn't have permissions to use the
4736//   action or resource, or specifying an identifier that is not valid.
4737//
4738//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4739//   The specified cluster could not be found. You can view your available clusters
4740//   with ListClusters. Amazon ECS clusters are Region-specific.
4741//
4742//   * ErrCodeInvalidParameterException "InvalidParameterException"
4743//   The specified parameter is invalid. Review the available parameters for the
4744//   API request.
4745//
4746// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4747func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
4748	req, out := c.UpdateClusterSettingsRequest(input)
4749	return out, req.Send()
4750}
4751
4752// UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
4753// the ability to pass a context and additional request options.
4754//
4755// See UpdateClusterSettings for details on how to use this API operation.
4756//
4757// The context must be non-nil and will be used for request cancellation. If
4758// the context is nil a panic will occur. In the future the SDK may create
4759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4760// for more information on using Contexts.
4761func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
4762	req, out := c.UpdateClusterSettingsRequest(input)
4763	req.SetContext(ctx)
4764	req.ApplyOptions(opts...)
4765	return out, req.Send()
4766}
4767
4768const opUpdateContainerAgent = "UpdateContainerAgent"
4769
4770// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
4771// client's request for the UpdateContainerAgent operation. The "output" return
4772// value will be populated with the request's response once the request completes
4773// successfully.
4774//
4775// Use "Send" method on the returned Request to send the API call to the service.
4776// the "output" return value is not valid until after Send returns without error.
4777//
4778// See UpdateContainerAgent for more information on using the UpdateContainerAgent
4779// API call, and error handling.
4780//
4781// This method is useful when you want to inject custom logic or configuration
4782// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4783//
4784//
4785//    // Example sending a request using the UpdateContainerAgentRequest method.
4786//    req, resp := client.UpdateContainerAgentRequest(params)
4787//
4788//    err := req.Send()
4789//    if err == nil { // resp is now filled
4790//        fmt.Println(resp)
4791//    }
4792//
4793// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4794func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
4795	op := &request.Operation{
4796		Name:       opUpdateContainerAgent,
4797		HTTPMethod: "POST",
4798		HTTPPath:   "/",
4799	}
4800
4801	if input == nil {
4802		input = &UpdateContainerAgentInput{}
4803	}
4804
4805	output = &UpdateContainerAgentOutput{}
4806	req = c.newRequest(op, input, output)
4807	return
4808}
4809
4810// UpdateContainerAgent API operation for Amazon EC2 Container Service.
4811//
4812// Updates the Amazon ECS container agent on a specified container instance.
4813// Updating the Amazon ECS container agent does not interrupt running tasks
4814// or services on the container instance. The process for updating the agent
4815// differs depending on whether your container instance was launched with the
4816// Amazon ECS-optimized AMI or another operating system.
4817//
4818// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
4819// with the ecs-init service installed and running. For help updating the Amazon
4820// ECS container agent on other operating systems, see Manually Updating the
4821// Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
4822// in the Amazon Elastic Container Service Developer Guide.
4823//
4824// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4825// with awserr.Error's Code and Message methods to get detailed information about
4826// the error.
4827//
4828// See the AWS API reference guide for Amazon EC2 Container Service's
4829// API operation UpdateContainerAgent for usage and error information.
4830//
4831// Returned Error Codes:
4832//   * ErrCodeServerException "ServerException"
4833//   These errors are usually caused by a server issue.
4834//
4835//   * ErrCodeClientException "ClientException"
4836//   These errors are usually caused by a client action, such as using an action
4837//   or resource on behalf of a user that doesn't have permissions to use the
4838//   action or resource, or specifying an identifier that is not valid.
4839//
4840//   * ErrCodeInvalidParameterException "InvalidParameterException"
4841//   The specified parameter is invalid. Review the available parameters for the
4842//   API request.
4843//
4844//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4845//   The specified cluster could not be found. You can view your available clusters
4846//   with ListClusters. Amazon ECS clusters are Region-specific.
4847//
4848//   * ErrCodeUpdateInProgressException "UpdateInProgressException"
4849//   There is already a current Amazon ECS container agent update in progress
4850//   on the specified container instance. If the container agent becomes disconnected
4851//   while it is in a transitional stage, such as PENDING or STAGING, the update
4852//   process can get stuck in that state. However, when the agent reconnects,
4853//   it resumes where it stopped previously.
4854//
4855//   * ErrCodeNoUpdateAvailableException "NoUpdateAvailableException"
4856//   There is no update available for this Amazon ECS container agent. This could
4857//   be because the agent is already running the latest version, or it is so old
4858//   that there is no update path to the current version.
4859//
4860//   * ErrCodeMissingVersionException "MissingVersionException"
4861//   Amazon ECS is unable to determine the current version of the Amazon ECS container
4862//   agent on the container instance and does not have enough information to proceed
4863//   with an update. This could be because the agent running on the container
4864//   instance is an older or custom version that does not use our version information.
4865//
4866// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4867func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
4868	req, out := c.UpdateContainerAgentRequest(input)
4869	return out, req.Send()
4870}
4871
4872// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
4873// the ability to pass a context and additional request options.
4874//
4875// See UpdateContainerAgent for details on how to use this API operation.
4876//
4877// The context must be non-nil and will be used for request cancellation. If
4878// the context is nil a panic will occur. In the future the SDK may create
4879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4880// for more information on using Contexts.
4881func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
4882	req, out := c.UpdateContainerAgentRequest(input)
4883	req.SetContext(ctx)
4884	req.ApplyOptions(opts...)
4885	return out, req.Send()
4886}
4887
4888const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
4889
4890// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
4891// client's request for the UpdateContainerInstancesState operation. The "output" return
4892// value will be populated with the request's response once the request completes
4893// successfully.
4894//
4895// Use "Send" method on the returned Request to send the API call to the service.
4896// the "output" return value is not valid until after Send returns without error.
4897//
4898// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
4899// API call, and error handling.
4900//
4901// This method is useful when you want to inject custom logic or configuration
4902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4903//
4904//
4905//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
4906//    req, resp := client.UpdateContainerInstancesStateRequest(params)
4907//
4908//    err := req.Send()
4909//    if err == nil { // resp is now filled
4910//        fmt.Println(resp)
4911//    }
4912//
4913// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
4914func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
4915	op := &request.Operation{
4916		Name:       opUpdateContainerInstancesState,
4917		HTTPMethod: "POST",
4918		HTTPPath:   "/",
4919	}
4920
4921	if input == nil {
4922		input = &UpdateContainerInstancesStateInput{}
4923	}
4924
4925	output = &UpdateContainerInstancesStateOutput{}
4926	req = c.newRequest(op, input, output)
4927	return
4928}
4929
4930// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
4931//
4932// Modifies the status of an Amazon ECS container instance.
4933//
4934// Once a container instance has reached an ACTIVE state, you can change the
4935// status of a container instance to DRAINING to manually remove an instance
4936// from a cluster, for example to perform system updates, update the Docker
4937// daemon, or scale down the cluster size.
4938//
4939// A container instance cannot be changed to DRAINING until it has reached an
4940// ACTIVE status. If the instance is in any other status, an error will be received.
4941//
4942// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
4943// from being scheduled for placement on the container instance and replacement
4944// service tasks are started on other container instances in the cluster if
4945// the resources are available. Service tasks on the container instance that
4946// are in the PENDING state are stopped immediately.
4947//
4948// Service tasks on the container instance that are in the RUNNING state are
4949// stopped and replaced according to the service's deployment configuration
4950// parameters, minimumHealthyPercent and maximumPercent. You can change the
4951// deployment configuration of your service using UpdateService.
4952//
4953//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
4954//    temporarily during task replacement. For example, desiredCount is four
4955//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
4956//    before starting two new tasks. If the minimum is 100%, the service scheduler
4957//    can't remove existing tasks until the replacement tasks are considered
4958//    healthy. Tasks for services that do not use a load balancer are considered
4959//    healthy if they are in the RUNNING state. Tasks for services that use
4960//    a load balancer are considered healthy if they are in the RUNNING state
4961//    and the container instance they are hosted on is reported as healthy by
4962//    the load balancer.
4963//
4964//    * The maximumPercent parameter represents an upper limit on the number
4965//    of running tasks during task replacement, which enables you to define
4966//    the replacement batch size. For example, if desiredCount is four tasks,
4967//    a maximum of 200% starts four new tasks before stopping the four tasks
4968//    to be drained, provided that the cluster resources required to do this
4969//    are available. If the maximum is 100%, then replacement tasks can't start
4970//    until the draining tasks have stopped.
4971//
4972// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
4973// You must wait for them to finish or stop them manually.
4974//
4975// A container instance has completed draining when it has no more RUNNING tasks.
4976// You can verify this using ListTasks.
4977//
4978// When a container instance has been drained, you can set a container instance
4979// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
4980// can begin scheduling tasks on the instance again.
4981//
4982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4983// with awserr.Error's Code and Message methods to get detailed information about
4984// the error.
4985//
4986// See the AWS API reference guide for Amazon EC2 Container Service's
4987// API operation UpdateContainerInstancesState for usage and error information.
4988//
4989// Returned Error Codes:
4990//   * ErrCodeServerException "ServerException"
4991//   These errors are usually caused by a server issue.
4992//
4993//   * ErrCodeClientException "ClientException"
4994//   These errors are usually caused by a client action, such as using an action
4995//   or resource on behalf of a user that doesn't have permissions to use the
4996//   action or resource, or specifying an identifier that is not valid.
4997//
4998//   * ErrCodeInvalidParameterException "InvalidParameterException"
4999//   The specified parameter is invalid. Review the available parameters for the
5000//   API request.
5001//
5002//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
5003//   The specified cluster could not be found. You can view your available clusters
5004//   with ListClusters. Amazon ECS clusters are Region-specific.
5005//
5006// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5007func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
5008	req, out := c.UpdateContainerInstancesStateRequest(input)
5009	return out, req.Send()
5010}
5011
5012// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
5013// the ability to pass a context and additional request options.
5014//
5015// See UpdateContainerInstancesState for details on how to use this API operation.
5016//
5017// The context must be non-nil and will be used for request cancellation. If
5018// the context is nil a panic will occur. In the future the SDK may create
5019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5020// for more information on using Contexts.
5021func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
5022	req, out := c.UpdateContainerInstancesStateRequest(input)
5023	req.SetContext(ctx)
5024	req.ApplyOptions(opts...)
5025	return out, req.Send()
5026}
5027
5028const opUpdateService = "UpdateService"
5029
5030// UpdateServiceRequest generates a "aws/request.Request" representing the
5031// client's request for the UpdateService operation. The "output" return
5032// value will be populated with the request's response once the request completes
5033// successfully.
5034//
5035// Use "Send" method on the returned Request to send the API call to the service.
5036// the "output" return value is not valid until after Send returns without error.
5037//
5038// See UpdateService for more information on using the UpdateService
5039// API call, and error handling.
5040//
5041// This method is useful when you want to inject custom logic or configuration
5042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5043//
5044//
5045//    // Example sending a request using the UpdateServiceRequest method.
5046//    req, resp := client.UpdateServiceRequest(params)
5047//
5048//    err := req.Send()
5049//    if err == nil { // resp is now filled
5050//        fmt.Println(resp)
5051//    }
5052//
5053// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5054func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
5055	op := &request.Operation{
5056		Name:       opUpdateService,
5057		HTTPMethod: "POST",
5058		HTTPPath:   "/",
5059	}
5060
5061	if input == nil {
5062		input = &UpdateServiceInput{}
5063	}
5064
5065	output = &UpdateServiceOutput{}
5066	req = c.newRequest(op, input, output)
5067	return
5068}
5069
5070// UpdateService API operation for Amazon EC2 Container Service.
5071//
5072// Modifies the parameters of a service.
5073//
5074// For services using the rolling update (ECS) deployment controller, the desired
5075// count, deployment configuration, network configuration, or task definition
5076// used can be updated.
5077//
5078// For services using the blue/green (CODE_DEPLOY) deployment controller, only
5079// the desired count, deployment configuration, and health check grace period
5080// can be updated using this API. If the network configuration, platform version,
5081// or task definition need to be updated, a new AWS CodeDeploy deployment should
5082// be created. For more information, see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
5083// in the AWS CodeDeploy API Reference.
5084//
5085// For services using an external deployment controller, you can update only
5086// the desired count and health check grace period using this API. If the launch
5087// type, load balancer, network configuration, platform version, or task definition
5088// need to be updated, you should create a new task set. For more information,
5089// see CreateTaskSet.
5090//
5091// You can add to or subtract from the number of instantiations of a task definition
5092// in a service by specifying the cluster that the service is running in and
5093// a new desiredCount parameter.
5094//
5095// If you have updated the Docker image of your application, you can create
5096// a new task definition with that image and deploy it to your service. The
5097// service scheduler uses the minimum healthy percent and maximum percent parameters
5098// (in the service's deployment configuration) to determine the deployment strategy.
5099//
5100// If your updated Docker image uses the same tag as what is in the existing
5101// task definition for your service (for example, my_image:latest), you do not
5102// need to create a new revision of your task definition. You can update the
5103// service using the forceNewDeployment option. The new tasks launched by the
5104// deployment pull the current image/tag combination from your repository when
5105// they start.
5106//
5107// You can also update the deployment configuration of a service. When a deployment
5108// is triggered by updating the task definition of a service, the service scheduler
5109// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
5110// to determine the deployment strategy.
5111//
5112//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5113//    temporarily during a deployment. For example, if desiredCount is four
5114//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5115//    before starting two new tasks. Tasks for services that do not use a load
5116//    balancer are considered healthy if they are in the RUNNING state. Tasks
5117//    for services that use a load balancer are considered healthy if they are
5118//    in the RUNNING state and the container instance they are hosted on is
5119//    reported as healthy by the load balancer.
5120//
5121//    * The maximumPercent parameter represents an upper limit on the number
5122//    of running tasks during a deployment, which enables you to define the
5123//    deployment batch size. For example, if desiredCount is four tasks, a maximum
5124//    of 200% starts four new tasks before stopping the four older tasks (provided
5125//    that the cluster resources required to do this are available).
5126//
5127// When UpdateService stops a task during a deployment, the equivalent of docker
5128// stop is issued to the containers running in the task. This results in a SIGTERM
5129// and a 30-second timeout, after which SIGKILL is sent and the containers are
5130// forcibly stopped. If the container handles the SIGTERM gracefully and exits
5131// within 30 seconds from receiving it, no SIGKILL is sent.
5132//
5133// When the service scheduler launches new tasks, it determines task placement
5134// in your cluster with the following logic:
5135//
5136//    * Determine which of the container instances in your cluster can support
5137//    your service's task definition (for example, they have the required CPU,
5138//    memory, ports, and container instance attributes).
5139//
5140//    * By default, the service scheduler attempts to balance tasks across Availability
5141//    Zones in this manner (although you can choose a different placement strategy):
5142//    Sort the valid container instances by the fewest number of running tasks
5143//    for this service in the same Availability Zone as the instance. For example,
5144//    if zone A has one running service task and zones B and C each have zero,
5145//    valid container instances in either zone B or C are considered optimal
5146//    for placement. Place the new service task on a valid container instance
5147//    in an optimal Availability Zone (based on the previous steps), favoring
5148//    container instances with the fewest number of running tasks for this service.
5149//
5150// When the service scheduler stops running tasks, it attempts to maintain balance
5151// across the Availability Zones in your cluster using the following logic:
5152//
5153//    * Sort the container instances by the largest number of running tasks
5154//    for this service in the same Availability Zone as the instance. For example,
5155//    if zone A has one running service task and zones B and C each have two,
5156//    container instances in either zone B or C are considered optimal for termination.
5157//
5158//    * Stop the task on a container instance in an optimal Availability Zone
5159//    (based on the previous steps), favoring container instances with the largest
5160//    number of running tasks for this service.
5161//
5162// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5163// with awserr.Error's Code and Message methods to get detailed information about
5164// the error.
5165//
5166// See the AWS API reference guide for Amazon EC2 Container Service's
5167// API operation UpdateService for usage and error information.
5168//
5169// Returned Error Codes:
5170//   * ErrCodeServerException "ServerException"
5171//   These errors are usually caused by a server issue.
5172//
5173//   * ErrCodeClientException "ClientException"
5174//   These errors are usually caused by a client action, such as using an action
5175//   or resource on behalf of a user that doesn't have permissions to use the
5176//   action or resource, or specifying an identifier that is not valid.
5177//
5178//   * ErrCodeInvalidParameterException "InvalidParameterException"
5179//   The specified parameter is invalid. Review the available parameters for the
5180//   API request.
5181//
5182//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
5183//   The specified cluster could not be found. You can view your available clusters
5184//   with ListClusters. Amazon ECS clusters are Region-specific.
5185//
5186//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
5187//   The specified service could not be found. You can view your available services
5188//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5189//
5190//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
5191//   The specified service is not active. You can't update a service that is inactive.
5192//   If you have previously deleted a service, you can re-create it with CreateService.
5193//
5194//   * ErrCodePlatformUnknownException "PlatformUnknownException"
5195//   The specified platform version does not exist.
5196//
5197//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
5198//   The specified platform version does not satisfy the task definition's required
5199//   capabilities.
5200//
5201//   * ErrCodeAccessDeniedException "AccessDeniedException"
5202//   You do not have authorization to perform the requested action.
5203//
5204// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5205func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
5206	req, out := c.UpdateServiceRequest(input)
5207	return out, req.Send()
5208}
5209
5210// UpdateServiceWithContext is the same as UpdateService with the addition of
5211// the ability to pass a context and additional request options.
5212//
5213// See UpdateService for details on how to use this API operation.
5214//
5215// The context must be non-nil and will be used for request cancellation. If
5216// the context is nil a panic will occur. In the future the SDK may create
5217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5218// for more information on using Contexts.
5219func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
5220	req, out := c.UpdateServiceRequest(input)
5221	req.SetContext(ctx)
5222	req.ApplyOptions(opts...)
5223	return out, req.Send()
5224}
5225
5226const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
5227
5228// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
5229// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
5230// value will be populated with the request's response once the request completes
5231// successfully.
5232//
5233// Use "Send" method on the returned Request to send the API call to the service.
5234// the "output" return value is not valid until after Send returns without error.
5235//
5236// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
5237// API call, and error handling.
5238//
5239// This method is useful when you want to inject custom logic or configuration
5240// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5241//
5242//
5243//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
5244//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
5245//
5246//    err := req.Send()
5247//    if err == nil { // resp is now filled
5248//        fmt.Println(resp)
5249//    }
5250//
5251// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5252func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
5253	op := &request.Operation{
5254		Name:       opUpdateServicePrimaryTaskSet,
5255		HTTPMethod: "POST",
5256		HTTPPath:   "/",
5257	}
5258
5259	if input == nil {
5260		input = &UpdateServicePrimaryTaskSetInput{}
5261	}
5262
5263	output = &UpdateServicePrimaryTaskSetOutput{}
5264	req = c.newRequest(op, input, output)
5265	return
5266}
5267
5268// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
5269//
5270// Modifies which task set in a service is the primary task set. Any parameters
5271// that are updated on the primary task set in a service will transition to
5272// the service. This is used when a service uses the EXTERNAL deployment controller
5273// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5274// in the Amazon Elastic Container Service Developer Guide.
5275//
5276// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5277// with awserr.Error's Code and Message methods to get detailed information about
5278// the error.
5279//
5280// See the AWS API reference guide for Amazon EC2 Container Service's
5281// API operation UpdateServicePrimaryTaskSet for usage and error information.
5282//
5283// Returned Error Codes:
5284//   * ErrCodeServerException "ServerException"
5285//   These errors are usually caused by a server issue.
5286//
5287//   * ErrCodeClientException "ClientException"
5288//   These errors are usually caused by a client action, such as using an action
5289//   or resource on behalf of a user that doesn't have permissions to use the
5290//   action or resource, or specifying an identifier that is not valid.
5291//
5292//   * ErrCodeInvalidParameterException "InvalidParameterException"
5293//   The specified parameter is invalid. Review the available parameters for the
5294//   API request.
5295//
5296//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
5297//   The specified cluster could not be found. You can view your available clusters
5298//   with ListClusters. Amazon ECS clusters are Region-specific.
5299//
5300//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
5301//   The specified task is not supported in this Region.
5302//
5303//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
5304//   The specified service could not be found. You can view your available services
5305//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5306//
5307//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
5308//   The specified service is not active. You can't update a service that is inactive.
5309//   If you have previously deleted a service, you can re-create it with CreateService.
5310//
5311//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
5312//   The specified task set could not be found. You can view your available task
5313//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5314//   and Region.
5315//
5316//   * ErrCodeAccessDeniedException "AccessDeniedException"
5317//   You do not have authorization to perform the requested action.
5318//
5319// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5320func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
5321	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5322	return out, req.Send()
5323}
5324
5325// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
5326// the ability to pass a context and additional request options.
5327//
5328// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
5329//
5330// The context must be non-nil and will be used for request cancellation. If
5331// the context is nil a panic will occur. In the future the SDK may create
5332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5333// for more information on using Contexts.
5334func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
5335	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5336	req.SetContext(ctx)
5337	req.ApplyOptions(opts...)
5338	return out, req.Send()
5339}
5340
5341const opUpdateTaskSet = "UpdateTaskSet"
5342
5343// UpdateTaskSetRequest generates a "aws/request.Request" representing the
5344// client's request for the UpdateTaskSet operation. The "output" return
5345// value will be populated with the request's response once the request completes
5346// successfully.
5347//
5348// Use "Send" method on the returned Request to send the API call to the service.
5349// the "output" return value is not valid until after Send returns without error.
5350//
5351// See UpdateTaskSet for more information on using the UpdateTaskSet
5352// API call, and error handling.
5353//
5354// This method is useful when you want to inject custom logic or configuration
5355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5356//
5357//
5358//    // Example sending a request using the UpdateTaskSetRequest method.
5359//    req, resp := client.UpdateTaskSetRequest(params)
5360//
5361//    err := req.Send()
5362//    if err == nil { // resp is now filled
5363//        fmt.Println(resp)
5364//    }
5365//
5366// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5367func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
5368	op := &request.Operation{
5369		Name:       opUpdateTaskSet,
5370		HTTPMethod: "POST",
5371		HTTPPath:   "/",
5372	}
5373
5374	if input == nil {
5375		input = &UpdateTaskSetInput{}
5376	}
5377
5378	output = &UpdateTaskSetOutput{}
5379	req = c.newRequest(op, input, output)
5380	return
5381}
5382
5383// UpdateTaskSet API operation for Amazon EC2 Container Service.
5384//
5385// Modifies a task set. This is used when a service uses the EXTERNAL deployment
5386// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5387// in the Amazon Elastic Container Service Developer Guide.
5388//
5389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5390// with awserr.Error's Code and Message methods to get detailed information about
5391// the error.
5392//
5393// See the AWS API reference guide for Amazon EC2 Container Service's
5394// API operation UpdateTaskSet for usage and error information.
5395//
5396// Returned Error Codes:
5397//   * ErrCodeServerException "ServerException"
5398//   These errors are usually caused by a server issue.
5399//
5400//   * ErrCodeClientException "ClientException"
5401//   These errors are usually caused by a client action, such as using an action
5402//   or resource on behalf of a user that doesn't have permissions to use the
5403//   action or resource, or specifying an identifier that is not valid.
5404//
5405//   * ErrCodeInvalidParameterException "InvalidParameterException"
5406//   The specified parameter is invalid. Review the available parameters for the
5407//   API request.
5408//
5409//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
5410//   The specified cluster could not be found. You can view your available clusters
5411//   with ListClusters. Amazon ECS clusters are Region-specific.
5412//
5413//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
5414//   The specified task is not supported in this Region.
5415//
5416//   * ErrCodeAccessDeniedException "AccessDeniedException"
5417//   You do not have authorization to perform the requested action.
5418//
5419//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
5420//   The specified service could not be found. You can view your available services
5421//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5422//
5423//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
5424//   The specified service is not active. You can't update a service that is inactive.
5425//   If you have previously deleted a service, you can re-create it with CreateService.
5426//
5427//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
5428//   The specified task set could not be found. You can view your available task
5429//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5430//   and Region.
5431//
5432// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5433func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
5434	req, out := c.UpdateTaskSetRequest(input)
5435	return out, req.Send()
5436}
5437
5438// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
5439// the ability to pass a context and additional request options.
5440//
5441// See UpdateTaskSet for details on how to use this API operation.
5442//
5443// The context must be non-nil and will be used for request cancellation. If
5444// the context is nil a panic will occur. In the future the SDK may create
5445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5446// for more information on using Contexts.
5447func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
5448	req, out := c.UpdateTaskSetRequest(input)
5449	req.SetContext(ctx)
5450	req.ApplyOptions(opts...)
5451	return out, req.Send()
5452}
5453
5454// An object representing a container instance or task attachment.
5455type Attachment struct {
5456	_ struct{} `type:"structure"`
5457
5458	// Details of the attachment. For elastic network interfaces, this includes
5459	// the network interface ID, the MAC address, the subnet ID, and the private
5460	// IPv4 address.
5461	Details []*KeyValuePair `locationName:"details" type:"list"`
5462
5463	// The unique identifier for the attachment.
5464	Id *string `locationName:"id" type:"string"`
5465
5466	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
5467	// ATTACHED, DETACHING, DETACHED, and DELETED.
5468	Status *string `locationName:"status" type:"string"`
5469
5470	// The type of the attachment, such as ElasticNetworkInterface.
5471	Type *string `locationName:"type" type:"string"`
5472}
5473
5474// String returns the string representation
5475func (s Attachment) String() string {
5476	return awsutil.Prettify(s)
5477}
5478
5479// GoString returns the string representation
5480func (s Attachment) GoString() string {
5481	return s.String()
5482}
5483
5484// SetDetails sets the Details field's value.
5485func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
5486	s.Details = v
5487	return s
5488}
5489
5490// SetId sets the Id field's value.
5491func (s *Attachment) SetId(v string) *Attachment {
5492	s.Id = &v
5493	return s
5494}
5495
5496// SetStatus sets the Status field's value.
5497func (s *Attachment) SetStatus(v string) *Attachment {
5498	s.Status = &v
5499	return s
5500}
5501
5502// SetType sets the Type field's value.
5503func (s *Attachment) SetType(v string) *Attachment {
5504	s.Type = &v
5505	return s
5506}
5507
5508// An object representing a change in state for a task attachment.
5509type AttachmentStateChange struct {
5510	_ struct{} `type:"structure"`
5511
5512	// The Amazon Resource Name (ARN) of the attachment.
5513	//
5514	// AttachmentArn is a required field
5515	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
5516
5517	// The status of the attachment.
5518	//
5519	// Status is a required field
5520	Status *string `locationName:"status" type:"string" required:"true"`
5521}
5522
5523// String returns the string representation
5524func (s AttachmentStateChange) String() string {
5525	return awsutil.Prettify(s)
5526}
5527
5528// GoString returns the string representation
5529func (s AttachmentStateChange) GoString() string {
5530	return s.String()
5531}
5532
5533// Validate inspects the fields of the type to determine if they are valid.
5534func (s *AttachmentStateChange) Validate() error {
5535	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
5536	if s.AttachmentArn == nil {
5537		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
5538	}
5539	if s.Status == nil {
5540		invalidParams.Add(request.NewErrParamRequired("Status"))
5541	}
5542
5543	if invalidParams.Len() > 0 {
5544		return invalidParams
5545	}
5546	return nil
5547}
5548
5549// SetAttachmentArn sets the AttachmentArn field's value.
5550func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
5551	s.AttachmentArn = &v
5552	return s
5553}
5554
5555// SetStatus sets the Status field's value.
5556func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
5557	s.Status = &v
5558	return s
5559}
5560
5561// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
5562// enable you to extend the Amazon ECS data model by adding custom metadata
5563// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
5564// in the Amazon Elastic Container Service Developer Guide.
5565type Attribute struct {
5566	_ struct{} `type:"structure"`
5567
5568	// The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers,
5569	// hyphens, underscores, and periods are allowed.
5570	//
5571	// Name is a required field
5572	Name *string `locationName:"name" type:"string" required:"true"`
5573
5574	// The ID of the target. You can specify the short form ID for a resource or
5575	// the full Amazon Resource Name (ARN).
5576	TargetId *string `locationName:"targetId" type:"string"`
5577
5578	// The type of the target with which to attach the attribute. This parameter
5579	// is required if you use the short form ID for a resource instead of the full
5580	// ARN.
5581	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
5582
5583	// The value of the attribute. Up to 128 letters (uppercase and lowercase),
5584	// numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons,
5585	// and spaces are allowed.
5586	Value *string `locationName:"value" type:"string"`
5587}
5588
5589// String returns the string representation
5590func (s Attribute) String() string {
5591	return awsutil.Prettify(s)
5592}
5593
5594// GoString returns the string representation
5595func (s Attribute) GoString() string {
5596	return s.String()
5597}
5598
5599// Validate inspects the fields of the type to determine if they are valid.
5600func (s *Attribute) Validate() error {
5601	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5602	if s.Name == nil {
5603		invalidParams.Add(request.NewErrParamRequired("Name"))
5604	}
5605
5606	if invalidParams.Len() > 0 {
5607		return invalidParams
5608	}
5609	return nil
5610}
5611
5612// SetName sets the Name field's value.
5613func (s *Attribute) SetName(v string) *Attribute {
5614	s.Name = &v
5615	return s
5616}
5617
5618// SetTargetId sets the TargetId field's value.
5619func (s *Attribute) SetTargetId(v string) *Attribute {
5620	s.TargetId = &v
5621	return s
5622}
5623
5624// SetTargetType sets the TargetType field's value.
5625func (s *Attribute) SetTargetType(v string) *Attribute {
5626	s.TargetType = &v
5627	return s
5628}
5629
5630// SetValue sets the Value field's value.
5631func (s *Attribute) SetValue(v string) *Attribute {
5632	s.Value = &v
5633	return s
5634}
5635
5636// The details of the Auto Scaling group for the capacity provider.
5637type AutoScalingGroupProvider struct {
5638	_ struct{} `type:"structure"`
5639
5640	// The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
5641	//
5642	// AutoScalingGroupArn is a required field
5643	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"`
5644
5645	// The managed scaling settings for the Auto Scaling group capacity provider.
5646	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
5647
5648	// The managed termination protection setting to use for the Auto Scaling group
5649	// capacity provider. This determines whether the Auto Scaling group has managed
5650	// termination protection.
5651	//
5652	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
5653	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
5654	// during a scale-in action. The Auto Scaling group and each instance in the
5655	// Auto Scaling group must have instance protection from scale-in actions enabled
5656	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
5657	// in the AWS Auto Scaling User Guide.
5658	//
5659	// When managed termination protection is disabled, your Amazon EC2 instances
5660	// are not protected from termination when the Auto Scaling group scales in.
5661	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
5662}
5663
5664// String returns the string representation
5665func (s AutoScalingGroupProvider) String() string {
5666	return awsutil.Prettify(s)
5667}
5668
5669// GoString returns the string representation
5670func (s AutoScalingGroupProvider) GoString() string {
5671	return s.String()
5672}
5673
5674// Validate inspects the fields of the type to determine if they are valid.
5675func (s *AutoScalingGroupProvider) Validate() error {
5676	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProvider"}
5677	if s.AutoScalingGroupArn == nil {
5678		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupArn"))
5679	}
5680	if s.ManagedScaling != nil {
5681		if err := s.ManagedScaling.Validate(); err != nil {
5682			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
5683		}
5684	}
5685
5686	if invalidParams.Len() > 0 {
5687		return invalidParams
5688	}
5689	return nil
5690}
5691
5692// SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
5693func (s *AutoScalingGroupProvider) SetAutoScalingGroupArn(v string) *AutoScalingGroupProvider {
5694	s.AutoScalingGroupArn = &v
5695	return s
5696}
5697
5698// SetManagedScaling sets the ManagedScaling field's value.
5699func (s *AutoScalingGroupProvider) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProvider {
5700	s.ManagedScaling = v
5701	return s
5702}
5703
5704// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
5705func (s *AutoScalingGroupProvider) SetManagedTerminationProtection(v string) *AutoScalingGroupProvider {
5706	s.ManagedTerminationProtection = &v
5707	return s
5708}
5709
5710// An object representing the networking details for a task or service.
5711type AwsVpcConfiguration struct {
5712	_ struct{} `type:"structure"`
5713
5714	// Whether the task's elastic network interface receives a public IP address.
5715	// The default value is DISABLED.
5716	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
5717
5718	// The security groups associated with the task or service. If you do not specify
5719	// a security group, the default security group for the VPC is used. There is
5720	// a limit of 5 security groups that can be specified per AwsVpcConfiguration.
5721	//
5722	// All specified security groups must be from the same VPC.
5723	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
5724
5725	// The subnets associated with the task or service. There is a limit of 16 subnets
5726	// that can be specified per AwsVpcConfiguration.
5727	//
5728	// All specified subnets must be from the same VPC.
5729	//
5730	// Subnets is a required field
5731	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
5732}
5733
5734// String returns the string representation
5735func (s AwsVpcConfiguration) String() string {
5736	return awsutil.Prettify(s)
5737}
5738
5739// GoString returns the string representation
5740func (s AwsVpcConfiguration) GoString() string {
5741	return s.String()
5742}
5743
5744// Validate inspects the fields of the type to determine if they are valid.
5745func (s *AwsVpcConfiguration) Validate() error {
5746	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
5747	if s.Subnets == nil {
5748		invalidParams.Add(request.NewErrParamRequired("Subnets"))
5749	}
5750
5751	if invalidParams.Len() > 0 {
5752		return invalidParams
5753	}
5754	return nil
5755}
5756
5757// SetAssignPublicIp sets the AssignPublicIp field's value.
5758func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
5759	s.AssignPublicIp = &v
5760	return s
5761}
5762
5763// SetSecurityGroups sets the SecurityGroups field's value.
5764func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
5765	s.SecurityGroups = v
5766	return s
5767}
5768
5769// SetSubnets sets the Subnets field's value.
5770func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
5771	s.Subnets = v
5772	return s
5773}
5774
5775// The details of a capacity provider.
5776type CapacityProvider struct {
5777	_ struct{} `type:"structure"`
5778
5779	// The Auto Scaling group settings for the capacity provider.
5780	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"`
5781
5782	// The Amazon Resource Name (ARN) that identifies the capacity provider.
5783	CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"`
5784
5785	// The name of the capacity provider.
5786	Name *string `locationName:"name" type:"string"`
5787
5788	// The current status of the capacity provider. Only capacity providers in an
5789	// ACTIVE state can be used in a cluster.
5790	Status *string `locationName:"status" type:"string" enum:"CapacityProviderStatus"`
5791
5792	// The metadata that you apply to the capacity provider to help you categorize
5793	// and organize it. Each tag consists of a key and an optional value, both of
5794	// which you define.
5795	//
5796	// The following basic restrictions apply to tags:
5797	//
5798	//    * Maximum number of tags per resource - 50
5799	//
5800	//    * For each resource, each tag key must be unique, and each tag key can
5801	//    have only one value.
5802	//
5803	//    * Maximum key length - 128 Unicode characters in UTF-8
5804	//
5805	//    * Maximum value length - 256 Unicode characters in UTF-8
5806	//
5807	//    * If your tagging schema is used across multiple services and resources,
5808	//    remember that other services may have restrictions on allowed characters.
5809	//    Generally allowed characters are: letters, numbers, and spaces representable
5810	//    in UTF-8, and the following characters: + - = . _ : / @.
5811	//
5812	//    * Tag keys and values are case-sensitive.
5813	//
5814	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
5815	//    as a prefix for either keys or values as it is reserved for AWS use. You
5816	//    cannot edit or delete tag keys or values with this prefix. Tags with this
5817	//    prefix do not count against your tags per resource limit.
5818	Tags []*Tag `locationName:"tags" type:"list"`
5819}
5820
5821// String returns the string representation
5822func (s CapacityProvider) String() string {
5823	return awsutil.Prettify(s)
5824}
5825
5826// GoString returns the string representation
5827func (s CapacityProvider) GoString() string {
5828	return s.String()
5829}
5830
5831// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
5832func (s *CapacityProvider) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CapacityProvider {
5833	s.AutoScalingGroupProvider = v
5834	return s
5835}
5836
5837// SetCapacityProviderArn sets the CapacityProviderArn field's value.
5838func (s *CapacityProvider) SetCapacityProviderArn(v string) *CapacityProvider {
5839	s.CapacityProviderArn = &v
5840	return s
5841}
5842
5843// SetName sets the Name field's value.
5844func (s *CapacityProvider) SetName(v string) *CapacityProvider {
5845	s.Name = &v
5846	return s
5847}
5848
5849// SetStatus sets the Status field's value.
5850func (s *CapacityProvider) SetStatus(v string) *CapacityProvider {
5851	s.Status = &v
5852	return s
5853}
5854
5855// SetTags sets the Tags field's value.
5856func (s *CapacityProvider) SetTags(v []*Tag) *CapacityProvider {
5857	s.Tags = v
5858	return s
5859}
5860
5861// The details of a capacity provider strategy.
5862type CapacityProviderStrategyItem struct {
5863	_ struct{} `type:"structure"`
5864
5865	// The base value designates how many tasks, at a minimum, to run on the specified
5866	// capacity provider. Only one capacity provider in a capacity provider strategy
5867	// can have a base defined.
5868	Base *int64 `locationName:"base" type:"integer"`
5869
5870	// The short name or full Amazon Resource Name (ARN) of the capacity provider.
5871	//
5872	// CapacityProvider is a required field
5873	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
5874
5875	// The weight value designates the relative percentage of the total number of
5876	// tasks launched that should use the specified capacity provider.
5877	//
5878	// For example, if you have a strategy that contains two capacity providers
5879	// and both have a weight of 1, then when the base is satisfied, the tasks will
5880	// be split evenly across the two capacity providers. Using that same logic,
5881	// if you specify a weight of 1 for capacityProviderA and a weight of 4 for
5882	// capacityProviderB, then for every one task that is run using capacityProviderA,
5883	// four tasks would use capacityProviderB.
5884	Weight *int64 `locationName:"weight" type:"integer"`
5885}
5886
5887// String returns the string representation
5888func (s CapacityProviderStrategyItem) String() string {
5889	return awsutil.Prettify(s)
5890}
5891
5892// GoString returns the string representation
5893func (s CapacityProviderStrategyItem) GoString() string {
5894	return s.String()
5895}
5896
5897// Validate inspects the fields of the type to determine if they are valid.
5898func (s *CapacityProviderStrategyItem) Validate() error {
5899	invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
5900	if s.CapacityProvider == nil {
5901		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
5902	}
5903
5904	if invalidParams.Len() > 0 {
5905		return invalidParams
5906	}
5907	return nil
5908}
5909
5910// SetBase sets the Base field's value.
5911func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
5912	s.Base = &v
5913	return s
5914}
5915
5916// SetCapacityProvider sets the CapacityProvider field's value.
5917func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
5918	s.CapacityProvider = &v
5919	return s
5920}
5921
5922// SetWeight sets the Weight field's value.
5923func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
5924	s.Weight = &v
5925	return s
5926}
5927
5928// A regional grouping of one or more container instances on which you can run
5929// task requests. Each account receives a default cluster the first time you
5930// use the Amazon ECS service, but you may also create other clusters. Clusters
5931// may contain more than one instance type simultaneously.
5932type Cluster struct {
5933	_ struct{} `type:"structure"`
5934
5935	// The number of services that are running on the cluster in an ACTIVE state.
5936	// You can view these services with ListServices.
5937	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
5938
5939	// The resources attached to a cluster. When using a capacity provider with
5940	// a cluster, the Auto Scaling plan that is created will be returned as a cluster
5941	// attachment.
5942	Attachments []*Attachment `locationName:"attachments" type:"list"`
5943
5944	// The status of the capacity providers associated with the cluster. The following
5945	// are the states that will be returned:
5946	//
5947	// UPDATE_IN_PROGRESS
5948	//
5949	// The available capacity providers for the cluster are updating. This occurs
5950	// when the Auto Scaling plan is provisioning or deprovisioning.
5951	//
5952	// UPDATE_COMPLETE
5953	//
5954	// The capacity providers have successfully updated.
5955	//
5956	// UPDATE_FAILED
5957	//
5958	// The capacity provider updates failed.
5959	AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"`
5960
5961	// The capacity providers associated with the cluster.
5962	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
5963
5964	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
5965	// the arn:aws:ecs namespace, followed by the Region of the cluster, the AWS
5966	// account ID of the cluster owner, the cluster namespace, and then the cluster
5967	// name. For example, arn:aws:ecs:region:012345678910:cluster/test.
5968	ClusterArn *string `locationName:"clusterArn" type:"string"`
5969
5970	// A user-generated string that you use to identify your cluster.
5971	ClusterName *string `locationName:"clusterName" type:"string"`
5972
5973	// The default capacity provider strategy for the cluster. When services or
5974	// tasks are run in the cluster with no launch type or capacity provider strategy
5975	// specified, the default capacity provider strategy is used.
5976	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
5977
5978	// The number of tasks in the cluster that are in the PENDING state.
5979	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
5980
5981	// The number of container instances registered into the cluster. This includes
5982	// container instances in both ACTIVE and DRAINING status.
5983	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
5984
5985	// The number of tasks in the cluster that are in the RUNNING state.
5986	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
5987
5988	// The settings for the cluster. This parameter indicates whether CloudWatch
5989	// Container Insights is enabled or disabled for a cluster.
5990	Settings []*ClusterSetting `locationName:"settings" type:"list"`
5991
5992	// Additional information about your clusters that are separated by launch type,
5993	// including:
5994	//
5995	//    * runningEC2TasksCount
5996	//
5997	//    * RunningFargateTasksCount
5998	//
5999	//    * pendingEC2TasksCount
6000	//
6001	//    * pendingFargateTasksCount
6002	//
6003	//    * activeEC2ServiceCount
6004	//
6005	//    * activeFargateServiceCount
6006	//
6007	//    * drainingEC2ServiceCount
6008	//
6009	//    * drainingFargateServiceCount
6010	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
6011
6012	// The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE
6013	// indicates that you can register container instances with the cluster and
6014	// the associated instances can accept tasks.
6015	Status *string `locationName:"status" type:"string"`
6016
6017	// The metadata that you apply to the cluster to help you categorize and organize
6018	// them. Each tag consists of a key and an optional value, both of which you
6019	// define.
6020	//
6021	// The following basic restrictions apply to tags:
6022	//
6023	//    * Maximum number of tags per resource - 50
6024	//
6025	//    * For each resource, each tag key must be unique, and each tag key can
6026	//    have only one value.
6027	//
6028	//    * Maximum key length - 128 Unicode characters in UTF-8
6029	//
6030	//    * Maximum value length - 256 Unicode characters in UTF-8
6031	//
6032	//    * If your tagging schema is used across multiple services and resources,
6033	//    remember that other services may have restrictions on allowed characters.
6034	//    Generally allowed characters are: letters, numbers, and spaces representable
6035	//    in UTF-8, and the following characters: + - = . _ : / @.
6036	//
6037	//    * Tag keys and values are case-sensitive.
6038	//
6039	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6040	//    as a prefix for either keys or values as it is reserved for AWS use. You
6041	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6042	//    prefix do not count against your tags per resource limit.
6043	Tags []*Tag `locationName:"tags" type:"list"`
6044}
6045
6046// String returns the string representation
6047func (s Cluster) String() string {
6048	return awsutil.Prettify(s)
6049}
6050
6051// GoString returns the string representation
6052func (s Cluster) GoString() string {
6053	return s.String()
6054}
6055
6056// SetActiveServicesCount sets the ActiveServicesCount field's value.
6057func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
6058	s.ActiveServicesCount = &v
6059	return s
6060}
6061
6062// SetAttachments sets the Attachments field's value.
6063func (s *Cluster) SetAttachments(v []*Attachment) *Cluster {
6064	s.Attachments = v
6065	return s
6066}
6067
6068// SetAttachmentsStatus sets the AttachmentsStatus field's value.
6069func (s *Cluster) SetAttachmentsStatus(v string) *Cluster {
6070	s.AttachmentsStatus = &v
6071	return s
6072}
6073
6074// SetCapacityProviders sets the CapacityProviders field's value.
6075func (s *Cluster) SetCapacityProviders(v []*string) *Cluster {
6076	s.CapacityProviders = v
6077	return s
6078}
6079
6080// SetClusterArn sets the ClusterArn field's value.
6081func (s *Cluster) SetClusterArn(v string) *Cluster {
6082	s.ClusterArn = &v
6083	return s
6084}
6085
6086// SetClusterName sets the ClusterName field's value.
6087func (s *Cluster) SetClusterName(v string) *Cluster {
6088	s.ClusterName = &v
6089	return s
6090}
6091
6092// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
6093func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster {
6094	s.DefaultCapacityProviderStrategy = v
6095	return s
6096}
6097
6098// SetPendingTasksCount sets the PendingTasksCount field's value.
6099func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
6100	s.PendingTasksCount = &v
6101	return s
6102}
6103
6104// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
6105func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
6106	s.RegisteredContainerInstancesCount = &v
6107	return s
6108}
6109
6110// SetRunningTasksCount sets the RunningTasksCount field's value.
6111func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
6112	s.RunningTasksCount = &v
6113	return s
6114}
6115
6116// SetSettings sets the Settings field's value.
6117func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
6118	s.Settings = v
6119	return s
6120}
6121
6122// SetStatistics sets the Statistics field's value.
6123func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
6124	s.Statistics = v
6125	return s
6126}
6127
6128// SetStatus sets the Status field's value.
6129func (s *Cluster) SetStatus(v string) *Cluster {
6130	s.Status = &v
6131	return s
6132}
6133
6134// SetTags sets the Tags field's value.
6135func (s *Cluster) SetTags(v []*Tag) *Cluster {
6136	s.Tags = v
6137	return s
6138}
6139
6140// The settings to use when creating a cluster. This parameter is used to enable
6141// CloudWatch Container Insights for a cluster.
6142type ClusterSetting struct {
6143	_ struct{} `type:"structure"`
6144
6145	// The name of the cluster setting. The only supported value is containerInsights.
6146	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
6147
6148	// The value to set for the cluster setting. The supported values are enabled
6149	// and disabled. If enabled is specified, CloudWatch Container Insights will
6150	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
6151	// account setting is enabled. If a cluster value is specified, it will override
6152	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
6153	Value *string `locationName:"value" type:"string"`
6154}
6155
6156// String returns the string representation
6157func (s ClusterSetting) String() string {
6158	return awsutil.Prettify(s)
6159}
6160
6161// GoString returns the string representation
6162func (s ClusterSetting) GoString() string {
6163	return s.String()
6164}
6165
6166// SetName sets the Name field's value.
6167func (s *ClusterSetting) SetName(v string) *ClusterSetting {
6168	s.Name = &v
6169	return s
6170}
6171
6172// SetValue sets the Value field's value.
6173func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
6174	s.Value = &v
6175	return s
6176}
6177
6178// A Docker container that is part of a task.
6179type Container struct {
6180	_ struct{} `type:"structure"`
6181
6182	// The Amazon Resource Name (ARN) of the container.
6183	ContainerArn *string `locationName:"containerArn" type:"string"`
6184
6185	// The number of CPU units set for the container. The value will be 0 if no
6186	// value was specified in the container definition when the task definition
6187	// was registered.
6188	Cpu *string `locationName:"cpu" type:"string"`
6189
6190	// The exit code returned from the container.
6191	ExitCode *int64 `locationName:"exitCode" type:"integer"`
6192
6193	// The IDs of each GPU assigned to the container.
6194	GpuIds []*string `locationName:"gpuIds" type:"list"`
6195
6196	// The health status of the container. If health checks are not configured for
6197	// this container in its task definition, then it reports the health status
6198	// as UNKNOWN.
6199	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
6200
6201	// The image used for the container.
6202	Image *string `locationName:"image" type:"string"`
6203
6204	// The container image manifest digest.
6205	//
6206	// The imageDigest is only returned if the container is using an image hosted
6207	// in Amazon ECR, otherwise it is omitted.
6208	ImageDigest *string `locationName:"imageDigest" type:"string"`
6209
6210	// The last known status of the container.
6211	LastStatus *string `locationName:"lastStatus" type:"string"`
6212
6213	// The hard limit (in MiB) of memory set for the container.
6214	Memory *string `locationName:"memory" type:"string"`
6215
6216	// The soft limit (in MiB) of memory set for the container.
6217	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
6218
6219	// The name of the container.
6220	Name *string `locationName:"name" type:"string"`
6221
6222	// The network bindings associated with the container.
6223	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
6224
6225	// The network interfaces associated with the container.
6226	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
6227
6228	// A short (255 max characters) human-readable string to provide additional
6229	// details about a running or stopped container.
6230	Reason *string `locationName:"reason" type:"string"`
6231
6232	// The ID of the Docker container.
6233	RuntimeId *string `locationName:"runtimeId" type:"string"`
6234
6235	// The ARN of the task.
6236	TaskArn *string `locationName:"taskArn" type:"string"`
6237}
6238
6239// String returns the string representation
6240func (s Container) String() string {
6241	return awsutil.Prettify(s)
6242}
6243
6244// GoString returns the string representation
6245func (s Container) GoString() string {
6246	return s.String()
6247}
6248
6249// SetContainerArn sets the ContainerArn field's value.
6250func (s *Container) SetContainerArn(v string) *Container {
6251	s.ContainerArn = &v
6252	return s
6253}
6254
6255// SetCpu sets the Cpu field's value.
6256func (s *Container) SetCpu(v string) *Container {
6257	s.Cpu = &v
6258	return s
6259}
6260
6261// SetExitCode sets the ExitCode field's value.
6262func (s *Container) SetExitCode(v int64) *Container {
6263	s.ExitCode = &v
6264	return s
6265}
6266
6267// SetGpuIds sets the GpuIds field's value.
6268func (s *Container) SetGpuIds(v []*string) *Container {
6269	s.GpuIds = v
6270	return s
6271}
6272
6273// SetHealthStatus sets the HealthStatus field's value.
6274func (s *Container) SetHealthStatus(v string) *Container {
6275	s.HealthStatus = &v
6276	return s
6277}
6278
6279// SetImage sets the Image field's value.
6280func (s *Container) SetImage(v string) *Container {
6281	s.Image = &v
6282	return s
6283}
6284
6285// SetImageDigest sets the ImageDigest field's value.
6286func (s *Container) SetImageDigest(v string) *Container {
6287	s.ImageDigest = &v
6288	return s
6289}
6290
6291// SetLastStatus sets the LastStatus field's value.
6292func (s *Container) SetLastStatus(v string) *Container {
6293	s.LastStatus = &v
6294	return s
6295}
6296
6297// SetMemory sets the Memory field's value.
6298func (s *Container) SetMemory(v string) *Container {
6299	s.Memory = &v
6300	return s
6301}
6302
6303// SetMemoryReservation sets the MemoryReservation field's value.
6304func (s *Container) SetMemoryReservation(v string) *Container {
6305	s.MemoryReservation = &v
6306	return s
6307}
6308
6309// SetName sets the Name field's value.
6310func (s *Container) SetName(v string) *Container {
6311	s.Name = &v
6312	return s
6313}
6314
6315// SetNetworkBindings sets the NetworkBindings field's value.
6316func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
6317	s.NetworkBindings = v
6318	return s
6319}
6320
6321// SetNetworkInterfaces sets the NetworkInterfaces field's value.
6322func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
6323	s.NetworkInterfaces = v
6324	return s
6325}
6326
6327// SetReason sets the Reason field's value.
6328func (s *Container) SetReason(v string) *Container {
6329	s.Reason = &v
6330	return s
6331}
6332
6333// SetRuntimeId sets the RuntimeId field's value.
6334func (s *Container) SetRuntimeId(v string) *Container {
6335	s.RuntimeId = &v
6336	return s
6337}
6338
6339// SetTaskArn sets the TaskArn field's value.
6340func (s *Container) SetTaskArn(v string) *Container {
6341	s.TaskArn = &v
6342	return s
6343}
6344
6345// Container definitions are used in task definitions to describe the different
6346// containers that are launched as part of a task.
6347type ContainerDefinition struct {
6348	_ struct{} `type:"structure"`
6349
6350	// The command that is passed to the container. This parameter maps to Cmd in
6351	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6352	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6353	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
6354	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
6355	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
6356	// arguments, each argument should be a separated string in the array.
6357	Command []*string `locationName:"command" type:"list"`
6358
6359	// The number of cpu units reserved for the container. This parameter maps to
6360	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6361	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6362	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
6363	//
6364	// This field is optional for tasks using the Fargate launch type, and the only
6365	// requirement is that the total amount of CPU reserved for all containers within
6366	// a task be lower than the task-level cpu value.
6367	//
6368	// You can determine the number of CPU units that are available per EC2 instance
6369	// type by multiplying the vCPUs listed for that instance type on the Amazon
6370	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
6371	// 1,024.
6372	//
6373	// For example, if you run a single-container task on a single-core instance
6374	// type with 512 CPU units specified for that container, and that is the only
6375	// task running on the container instance, that container could use the full
6376	// 1,024 CPU unit share at any given time. However, if you launched another
6377	// copy of the same task on that container instance, each task would be guaranteed
6378	// a minimum of 512 CPU units when needed, and each container could float to
6379	// higher CPU usage if the other container was not using it, but if both tasks
6380	// were 100% active all of the time, they would be limited to 512 CPU units.
6381	//
6382	// Linux containers share unallocated CPU units with other containers on the
6383	// container instance with the same ratio as their allocated amount. For example,
6384	// if you run a single-container task on a single-core instance type with 512
6385	// CPU units specified for that container, and that is the only task running
6386	// on the container instance, that container could use the full 1,024 CPU unit
6387	// share at any given time. However, if you launched another copy of the same
6388	// task on that container instance, each task would be guaranteed a minimum
6389	// of 512 CPU units when needed, and each container could float to higher CPU
6390	// usage if the other container was not using it, but if both tasks were 100%
6391	// active all of the time, they would be limited to 512 CPU units.
6392	//
6393	// On Linux container instances, the Docker daemon on the container instance
6394	// uses the CPU value to calculate the relative CPU share ratios for running
6395	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
6396	// in the Docker documentation. The minimum valid CPU share value that the Linux
6397	// kernel allows is 2. However, the CPU parameter is not required, and you can
6398	// use CPU values below 2 in your container definitions. For CPU values below
6399	// 2 (including null), the behavior varies based on your Amazon ECS container
6400	// agent version:
6401	//
6402	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
6403	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
6404	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
6405	//    to two CPU shares.
6406	//
6407	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
6408	//    of 1 are passed to Docker as 2.
6409	//
6410	// On Windows container instances, the CPU limit is enforced as an absolute
6411	// limit, or a quota. Windows containers only have access to the specified amount
6412	// of CPU that is described in the task definition.
6413	Cpu *int64 `locationName:"cpu" type:"integer"`
6414
6415	// The dependencies defined for container startup and shutdown. A container
6416	// can contain multiple dependencies. When a dependency is defined for container
6417	// startup, for container shutdown it is reversed.
6418	//
6419	// For tasks using the EC2 launch type, the container instances require at least
6420	// version 1.26.0 of the container agent to enable container dependencies. However,
6421	// we recommend using the latest container agent version. For information about
6422	// checking your agent version and updating to the latest version, see Updating
6423	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6424	// in the Amazon Elastic Container Service Developer Guide. If you are using
6425	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6426	// of the ecs-init package. If your container instances are launched from version
6427	// 20190301 or later, then they contain the required versions of the container
6428	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6429	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6430	// in the Amazon Elastic Container Service Developer Guide.
6431	//
6432	// For tasks using the Fargate launch type, the task or service requires platform
6433	// version 1.3.0 or later.
6434	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
6435
6436	// When this parameter is true, networking is disabled within the container.
6437	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6438	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
6439	//
6440	// This parameter is not supported for Windows containers.
6441	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
6442
6443	// A list of DNS search domains that are presented to the container. This parameter
6444	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6445	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6446	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/).
6447	//
6448	// This parameter is not supported for Windows containers.
6449	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
6450
6451	// A list of DNS servers that are presented to the container. This parameter
6452	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6453	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6454	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/).
6455	//
6456	// This parameter is not supported for Windows containers.
6457	DnsServers []*string `locationName:"dnsServers" type:"list"`
6458
6459	// A key/value map of labels to add to the container. This parameter maps to
6460	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6461	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6462	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/).
6463	// This parameter requires version 1.18 of the Docker Remote API or greater
6464	// on your container instance. To check the Docker Remote API version on your
6465	// container instance, log in to your container instance and run the following
6466	// command: sudo docker version --format '{{.Server.APIVersion}}'
6467	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
6468
6469	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
6470	// security systems. This field is not valid for containers in tasks using the
6471	// Fargate launch type.
6472	//
6473	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6474	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6475	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/).
6476	//
6477	// The Amazon ECS container agent running on a container instance must register
6478	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
6479	// variables before containers placed on that instance can use these security
6480	// options. For more information, see Amazon ECS Container Agent Configuration
6481	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
6482	// in the Amazon Elastic Container Service Developer Guide.
6483	//
6484	// This parameter is not supported for Windows containers.
6485	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
6486
6487	//
6488	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
6489	// parameters. If you have problems using entryPoint, update your container
6490	// agent or enter your commands and arguments as command array items instead.
6491	//
6492	// The entry point that is passed to the container. This parameter maps to Entrypoint
6493	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6494	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6495	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/).
6496	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
6497	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
6498	EntryPoint []*string `locationName:"entryPoint" type:"list"`
6499
6500	// The environment variables to pass to a container. This parameter maps to
6501	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6502	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6503	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
6504	//
6505	// We do not recommend using plaintext environment variables for sensitive information,
6506	// such as credential data.
6507	Environment []*KeyValuePair `locationName:"environment" type:"list"`
6508
6509	// If the essential parameter of a container is marked as true, and that container
6510	// fails or stops for any reason, all other containers that are part of the
6511	// task are stopped. If the essential parameter of a container is marked as
6512	// false, then its failure does not affect the rest of the containers in a task.
6513	// If this parameter is omitted, a container is assumed to be essential.
6514	//
6515	// All tasks must have at least one essential container. If you have an application
6516	// that is composed of multiple containers, you should group containers that
6517	// are used for a common purpose into components, and separate the different
6518	// components into multiple task definitions. For more information, see Application
6519	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
6520	// in the Amazon Elastic Container Service Developer Guide.
6521	Essential *bool `locationName:"essential" type:"boolean"`
6522
6523	// A list of hostnames and IP address mappings to append to the /etc/hosts file
6524	// on the container. This parameter maps to ExtraHosts in the Create a container
6525	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
6526	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
6527	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/).
6528	//
6529	// This parameter is not supported for Windows containers or tasks that use
6530	// the awsvpc network mode.
6531	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
6532
6533	// The FireLens configuration for the container. This is used to specify and
6534	// configure a log router for container logs. For more information, see Custom
6535	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
6536	// in the Amazon Elastic Container Service Developer Guide.
6537	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
6538
6539	// The health check command and associated configuration parameters for the
6540	// container. This parameter maps to HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6541	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6542	// and the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/).
6543	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
6544
6545	// The hostname to use for your container. This parameter maps to Hostname in
6546	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6547	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6548	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/).
6549	//
6550	// The hostname parameter is not supported if you are using the awsvpc network
6551	// mode.
6552	Hostname *string `locationName:"hostname" type:"string"`
6553
6554	// The image used to start a container. This string is passed directly to the
6555	// Docker daemon. Images in the Docker Hub registry are available by default.
6556	// Other repositories are specified with either repository-url/image:tag or
6557	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
6558	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
6559	// signs are allowed. This parameter maps to Image in the Create a container
6560	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
6561	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
6562	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
6563	//
6564	//    * When a new task starts, the Amazon ECS container agent pulls the latest
6565	//    version of the specified image and tag for the container to use. However,
6566	//    subsequent updates to a repository image are not propagated to already
6567	//    running tasks.
6568	//
6569	//    * Images in Amazon ECR repositories can be specified by either using the
6570	//    full registry/repository:tag or registry/repository@digest. For example,
6571	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
6572	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
6573	//
6574	//    * Images in official repositories on Docker Hub use a single name (for
6575	//    example, ubuntu or mongo).
6576	//
6577	//    * Images in other repositories on Docker Hub are qualified with an organization
6578	//    name (for example, amazon/amazon-ecs-agent).
6579	//
6580	//    * Images in other online repositories are qualified further by a domain
6581	//    name (for example, quay.io/assemblyline/ubuntu).
6582	Image *string `locationName:"image" type:"string"`
6583
6584	// When this parameter is true, this allows you to deploy containerized applications
6585	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
6586	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6587	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6588	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/).
6589	Interactive *bool `locationName:"interactive" type:"boolean"`
6590
6591	// The links parameter allows containers to communicate with each other without
6592	// the need for port mappings. This parameter is only supported if the network
6593	// mode of a task definition is bridge. The name:internalName construct is analogous
6594	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
6595	// numbers, and hyphens are allowed. For more information about linking Docker
6596	// containers, go to Legacy container links (https://docs.docker.com/network/links/)
6597	// in the Docker documentation. This parameter maps to Links in the Create a
6598	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6599	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6600	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/).
6601	//
6602	// This parameter is not supported for Windows containers.
6603	//
6604	// Containers that are collocated on a single container instance may be able
6605	// to communicate with each other without requiring links or host port mappings.
6606	// Network isolation is achieved on the container instance using security groups
6607	// and VPC settings.
6608	Links []*string `locationName:"links" type:"list"`
6609
6610	// Linux-specific modifications that are applied to the container, such as Linux
6611	// kernel capabilities. For more information see KernelCapabilities.
6612	//
6613	// This parameter is not supported for Windows containers.
6614	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
6615
6616	// The log configuration specification for the container.
6617	//
6618	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6619	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6620	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
6621	// By default, containers use the same logging driver that the Docker daemon
6622	// uses. However the container may use a different logging driver than the Docker
6623	// daemon by specifying a log driver with this parameter in the container definition.
6624	// To use a different logging driver for a container, the log system must be
6625	// configured properly on the container instance (or on a different log server
6626	// for remote logging options). For more information on the options for different
6627	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
6628	// in the Docker documentation.
6629	//
6630	// Amazon ECS currently supports a subset of the logging drivers available to
6631	// the Docker daemon (shown in the LogConfiguration data type). Additional log
6632	// drivers may be available in future releases of the Amazon ECS container agent.
6633	//
6634	// This parameter requires version 1.18 of the Docker Remote API or greater
6635	// on your container instance. To check the Docker Remote API version on your
6636	// container instance, log in to your container instance and run the following
6637	// command: sudo docker version --format '{{.Server.APIVersion}}'
6638	//
6639	// The Amazon ECS container agent running on a container instance must register
6640	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
6641	// environment variable before containers placed on that instance can use these
6642	// log configuration options. For more information, see Amazon ECS Container
6643	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
6644	// in the Amazon Elastic Container Service Developer Guide.
6645	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
6646
6647	// The amount (in MiB) of memory to present to the container. If your container
6648	// attempts to exceed the memory specified here, the container is killed. The
6649	// total amount of memory reserved for all containers within a task must be
6650	// lower than the task memory value, if one is specified. This parameter maps
6651	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6652	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6653	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
6654	//
6655	// If using the Fargate launch type, this parameter is optional.
6656	//
6657	// If using the EC2 launch type, you must specify either a task-level memory
6658	// value or a container-level memory value. If you specify both a container-level
6659	// memory and memoryReservation value, memory must be greater than memoryReservation.
6660	// If you specify memoryReservation, then that value is subtracted from the
6661	// available memory resources for the container instance on which the container
6662	// is placed. Otherwise, the value of memory is used.
6663	//
6664	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
6665	// so you should not specify fewer than 4 MiB of memory for your containers.
6666	Memory *int64 `locationName:"memory" type:"integer"`
6667
6668	// The soft limit (in MiB) of memory to reserve for the container. When system
6669	// memory is under heavy contention, Docker attempts to keep the container memory
6670	// to this soft limit. However, your container can consume more memory when
6671	// it needs to, up to either the hard limit specified with the memory parameter
6672	// (if applicable), or all of the available memory on the container instance,
6673	// whichever comes first. This parameter maps to MemoryReservation in the Create
6674	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6675	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6676	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/).
6677	//
6678	// If a task-level memory value is not specified, you must specify a non-zero
6679	// integer for one or both of memory or memoryReservation in a container definition.
6680	// If you specify both, memory must be greater than memoryReservation. If you
6681	// specify memoryReservation, then that value is subtracted from the available
6682	// memory resources for the container instance on which the container is placed.
6683	// Otherwise, the value of memory is used.
6684	//
6685	// For example, if your container normally uses 128 MiB of memory, but occasionally
6686	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
6687	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
6688	// allow the container to only reserve 128 MiB of memory from the remaining
6689	// resources on the container instance, but also allow the container to consume
6690	// more memory resources when needed.
6691	//
6692	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
6693	// so you should not specify fewer than 4 MiB of memory for your containers.
6694	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
6695
6696	// The mount points for data volumes in your container.
6697	//
6698	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6699	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6700	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
6701	//
6702	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
6703	// Windows containers cannot mount directories on a different drive, and mount
6704	// point cannot be across drives.
6705	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
6706
6707	// The name of a container. If you are linking multiple containers together
6708	// in a task definition, the name of one container can be entered in the links
6709	// of another container to connect the containers. Up to 255 letters (uppercase
6710	// and lowercase), numbers, and hyphens are allowed. This parameter maps to
6711	// name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6712	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6713	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/).
6714	Name *string `locationName:"name" type:"string"`
6715
6716	// The list of port mappings for the container. Port mappings allow containers
6717	// to access ports on the host container instance to send or receive traffic.
6718	//
6719	// For task definitions that use the awsvpc network mode, you should only specify
6720	// the containerPort. The hostPort can be left blank or it must be the same
6721	// value as the containerPort.
6722	//
6723	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
6724	// There is no loopback for port mappings on Windows, so you cannot access a
6725	// container's mapped port from the host itself.
6726	//
6727	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6728	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6729	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/).
6730	// If the network mode of a task definition is set to none, then you can't specify
6731	// port mappings. If the network mode of a task definition is set to host, then
6732	// host ports must either be undefined or they must match the container port
6733	// in the port mapping.
6734	//
6735	// After a task reaches the RUNNING status, manual and automatic host and container
6736	// port assignments are visible in the Network Bindings section of a container
6737	// description for a selected task in the Amazon ECS console. The assignments
6738	// are also visible in the networkBindings section DescribeTasks responses.
6739	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
6740
6741	// When this parameter is true, the container is given elevated privileges on
6742	// the host container instance (similar to the root user). This parameter maps
6743	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6744	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6745	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
6746	//
6747	// This parameter is not supported for Windows containers or tasks using the
6748	// Fargate launch type.
6749	Privileged *bool `locationName:"privileged" type:"boolean"`
6750
6751	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
6752	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6753	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6754	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/).
6755	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
6756
6757	// When this parameter is true, the container is given read-only access to its
6758	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
6759	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
6760	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
6761	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/).
6762	//
6763	// This parameter is not supported for Windows containers.
6764	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
6765
6766	// The private repository authentication credentials to use.
6767	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
6768
6769	// The type and amount of a resource to assign to a container. The only supported
6770	// resource is a GPU.
6771	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
6772
6773	// The secrets to pass to the container. For more information, see Specifying
6774	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
6775	// in the Amazon Elastic Container Service Developer Guide.
6776	Secrets []*Secret `locationName:"secrets" type:"list"`
6777
6778	// Time duration (in seconds) to wait before giving up on resolving dependencies
6779	// for a container. For example, you specify two containers in a task definition
6780	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
6781	// or HEALTHY status. If a startTimeout value is specified for containerB and
6782	// it does not reach the desired status within that time then containerA will
6783	// give up and not start. This results in the task transitioning to a STOPPED
6784	// state.
6785	//
6786	// For tasks using the EC2 launch type, the container instances require at least
6787	// version 1.26.0 of the container agent to enable a container start timeout
6788	// value. However, we recommend using the latest container agent version. For
6789	// information about checking your agent version and updating to the latest
6790	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6791	// in the Amazon Elastic Container Service Developer Guide. If you are using
6792	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6793	// of the ecs-init package. If your container instances are launched from version
6794	// 20190301 or later, then they contain the required versions of the container
6795	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6796	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6797	// in the Amazon Elastic Container Service Developer Guide.
6798	//
6799	// For tasks using the Fargate launch type, the task or service requires platform
6800	// version 1.3.0 or later.
6801	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
6802
6803	// Time duration (in seconds) to wait before the container is forcefully killed
6804	// if it doesn't exit normally on its own.
6805	//
6806	// For tasks using the Fargate launch type, the max stopTimeout value is 2 minutes
6807	// and the task or service requires platform version 1.3.0 or later.
6808	//
6809	// For tasks using the EC2 launch type, the stop timeout value for the container
6810	// takes precedence over the ECS_CONTAINER_STOP_TIMEOUT container agent configuration
6811	// parameter, if used. Container instances require at least version 1.26.0 of
6812	// the container agent to enable a container stop timeout value. However, we
6813	// recommend using the latest container agent version. For information about
6814	// checking your agent version and updating to the latest version, see Updating
6815	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6816	// in the Amazon Elastic Container Service Developer Guide. If you are using
6817	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6818	// of the ecs-init package. If your container instances are launched from version
6819	// 20190301 or later, then they contain the required versions of the container
6820	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6821	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6822	// in the Amazon Elastic Container Service Developer Guide.
6823	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
6824
6825	// A list of namespaced kernel parameters to set in the container. This parameter
6826	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6827	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6828	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
6829	//
6830	// It is not recommended that you specify network-related systemControls parameters
6831	// for multiple containers in a single task that also uses either the awsvpc
6832	// or host network modes. For tasks that use the awsvpc network mode, the container
6833	// that is started last determines which systemControls parameters take effect.
6834	// For tasks that use the host network mode, it changes the container instance's
6835	// namespaced kernel parameters as well as the containers.
6836	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
6837
6838	// A list of ulimits to set in the container. This parameter maps to Ulimits
6839	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6840	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6841	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
6842	// Valid naming values are displayed in the Ulimit data type. This parameter
6843	// requires version 1.18 of the Docker Remote API or greater on your container
6844	// instance. To check the Docker Remote API version on your container instance,
6845	// log in to your container instance and run the following command: sudo docker
6846	// version --format '{{.Server.APIVersion}}'
6847	//
6848	// This parameter is not supported for Windows containers.
6849	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
6850
6851	// The user name to use inside the container. This parameter maps to User in
6852	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6853	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6854	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
6855	//
6856	// You can use the following formats. If specifying a UID or GID, you must specify
6857	// it as a positive integer.
6858	//
6859	//    * user
6860	//
6861	//    * user:group
6862	//
6863	//    * uid
6864	//
6865	//    * uid:gid
6866	//
6867	//    * user:gid
6868	//
6869	//    * uid:group
6870	//
6871	// This parameter is not supported for Windows containers.
6872	User *string `locationName:"user" type:"string"`
6873
6874	// Data volumes to mount from another container. This parameter maps to VolumesFrom
6875	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6876	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6877	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/).
6878	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
6879
6880	// The working directory in which to run commands inside the container. This
6881	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6882	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6883	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/).
6884	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
6885}
6886
6887// String returns the string representation
6888func (s ContainerDefinition) String() string {
6889	return awsutil.Prettify(s)
6890}
6891
6892// GoString returns the string representation
6893func (s ContainerDefinition) GoString() string {
6894	return s.String()
6895}
6896
6897// Validate inspects the fields of the type to determine if they are valid.
6898func (s *ContainerDefinition) Validate() error {
6899	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
6900	if s.DependsOn != nil {
6901		for i, v := range s.DependsOn {
6902			if v == nil {
6903				continue
6904			}
6905			if err := v.Validate(); err != nil {
6906				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
6907			}
6908		}
6909	}
6910	if s.ExtraHosts != nil {
6911		for i, v := range s.ExtraHosts {
6912			if v == nil {
6913				continue
6914			}
6915			if err := v.Validate(); err != nil {
6916				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
6917			}
6918		}
6919	}
6920	if s.FirelensConfiguration != nil {
6921		if err := s.FirelensConfiguration.Validate(); err != nil {
6922			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
6923		}
6924	}
6925	if s.HealthCheck != nil {
6926		if err := s.HealthCheck.Validate(); err != nil {
6927			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
6928		}
6929	}
6930	if s.LinuxParameters != nil {
6931		if err := s.LinuxParameters.Validate(); err != nil {
6932			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
6933		}
6934	}
6935	if s.LogConfiguration != nil {
6936		if err := s.LogConfiguration.Validate(); err != nil {
6937			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
6938		}
6939	}
6940	if s.RepositoryCredentials != nil {
6941		if err := s.RepositoryCredentials.Validate(); err != nil {
6942			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
6943		}
6944	}
6945	if s.ResourceRequirements != nil {
6946		for i, v := range s.ResourceRequirements {
6947			if v == nil {
6948				continue
6949			}
6950			if err := v.Validate(); err != nil {
6951				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
6952			}
6953		}
6954	}
6955	if s.Secrets != nil {
6956		for i, v := range s.Secrets {
6957			if v == nil {
6958				continue
6959			}
6960			if err := v.Validate(); err != nil {
6961				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
6962			}
6963		}
6964	}
6965	if s.Ulimits != nil {
6966		for i, v := range s.Ulimits {
6967			if v == nil {
6968				continue
6969			}
6970			if err := v.Validate(); err != nil {
6971				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
6972			}
6973		}
6974	}
6975
6976	if invalidParams.Len() > 0 {
6977		return invalidParams
6978	}
6979	return nil
6980}
6981
6982// SetCommand sets the Command field's value.
6983func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
6984	s.Command = v
6985	return s
6986}
6987
6988// SetCpu sets the Cpu field's value.
6989func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
6990	s.Cpu = &v
6991	return s
6992}
6993
6994// SetDependsOn sets the DependsOn field's value.
6995func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
6996	s.DependsOn = v
6997	return s
6998}
6999
7000// SetDisableNetworking sets the DisableNetworking field's value.
7001func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
7002	s.DisableNetworking = &v
7003	return s
7004}
7005
7006// SetDnsSearchDomains sets the DnsSearchDomains field's value.
7007func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
7008	s.DnsSearchDomains = v
7009	return s
7010}
7011
7012// SetDnsServers sets the DnsServers field's value.
7013func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
7014	s.DnsServers = v
7015	return s
7016}
7017
7018// SetDockerLabels sets the DockerLabels field's value.
7019func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
7020	s.DockerLabels = v
7021	return s
7022}
7023
7024// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
7025func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
7026	s.DockerSecurityOptions = v
7027	return s
7028}
7029
7030// SetEntryPoint sets the EntryPoint field's value.
7031func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
7032	s.EntryPoint = v
7033	return s
7034}
7035
7036// SetEnvironment sets the Environment field's value.
7037func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
7038	s.Environment = v
7039	return s
7040}
7041
7042// SetEssential sets the Essential field's value.
7043func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
7044	s.Essential = &v
7045	return s
7046}
7047
7048// SetExtraHosts sets the ExtraHosts field's value.
7049func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
7050	s.ExtraHosts = v
7051	return s
7052}
7053
7054// SetFirelensConfiguration sets the FirelensConfiguration field's value.
7055func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
7056	s.FirelensConfiguration = v
7057	return s
7058}
7059
7060// SetHealthCheck sets the HealthCheck field's value.
7061func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
7062	s.HealthCheck = v
7063	return s
7064}
7065
7066// SetHostname sets the Hostname field's value.
7067func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
7068	s.Hostname = &v
7069	return s
7070}
7071
7072// SetImage sets the Image field's value.
7073func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
7074	s.Image = &v
7075	return s
7076}
7077
7078// SetInteractive sets the Interactive field's value.
7079func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
7080	s.Interactive = &v
7081	return s
7082}
7083
7084// SetLinks sets the Links field's value.
7085func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
7086	s.Links = v
7087	return s
7088}
7089
7090// SetLinuxParameters sets the LinuxParameters field's value.
7091func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
7092	s.LinuxParameters = v
7093	return s
7094}
7095
7096// SetLogConfiguration sets the LogConfiguration field's value.
7097func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
7098	s.LogConfiguration = v
7099	return s
7100}
7101
7102// SetMemory sets the Memory field's value.
7103func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
7104	s.Memory = &v
7105	return s
7106}
7107
7108// SetMemoryReservation sets the MemoryReservation field's value.
7109func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
7110	s.MemoryReservation = &v
7111	return s
7112}
7113
7114// SetMountPoints sets the MountPoints field's value.
7115func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
7116	s.MountPoints = v
7117	return s
7118}
7119
7120// SetName sets the Name field's value.
7121func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
7122	s.Name = &v
7123	return s
7124}
7125
7126// SetPortMappings sets the PortMappings field's value.
7127func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
7128	s.PortMappings = v
7129	return s
7130}
7131
7132// SetPrivileged sets the Privileged field's value.
7133func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
7134	s.Privileged = &v
7135	return s
7136}
7137
7138// SetPseudoTerminal sets the PseudoTerminal field's value.
7139func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
7140	s.PseudoTerminal = &v
7141	return s
7142}
7143
7144// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
7145func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
7146	s.ReadonlyRootFilesystem = &v
7147	return s
7148}
7149
7150// SetRepositoryCredentials sets the RepositoryCredentials field's value.
7151func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
7152	s.RepositoryCredentials = v
7153	return s
7154}
7155
7156// SetResourceRequirements sets the ResourceRequirements field's value.
7157func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
7158	s.ResourceRequirements = v
7159	return s
7160}
7161
7162// SetSecrets sets the Secrets field's value.
7163func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
7164	s.Secrets = v
7165	return s
7166}
7167
7168// SetStartTimeout sets the StartTimeout field's value.
7169func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
7170	s.StartTimeout = &v
7171	return s
7172}
7173
7174// SetStopTimeout sets the StopTimeout field's value.
7175func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
7176	s.StopTimeout = &v
7177	return s
7178}
7179
7180// SetSystemControls sets the SystemControls field's value.
7181func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
7182	s.SystemControls = v
7183	return s
7184}
7185
7186// SetUlimits sets the Ulimits field's value.
7187func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
7188	s.Ulimits = v
7189	return s
7190}
7191
7192// SetUser sets the User field's value.
7193func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
7194	s.User = &v
7195	return s
7196}
7197
7198// SetVolumesFrom sets the VolumesFrom field's value.
7199func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
7200	s.VolumesFrom = v
7201	return s
7202}
7203
7204// SetWorkingDirectory sets the WorkingDirectory field's value.
7205func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
7206	s.WorkingDirectory = &v
7207	return s
7208}
7209
7210// The dependencies defined for container startup and shutdown. A container
7211// can contain multiple dependencies. When a dependency is defined for container
7212// startup, for container shutdown it is reversed.
7213//
7214// Your Amazon ECS container instances require at least version 1.26.0 of the
7215// container agent to enable container dependencies. However, we recommend using
7216// the latest container agent version. For information about checking your agent
7217// version and updating to the latest version, see Updating the Amazon ECS Container
7218// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7219// in the Amazon Elastic Container Service Developer Guide. If you are using
7220// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7221// of the ecs-init package. If your container instances are launched from version
7222// 20190301 or later, then they contain the required versions of the container
7223// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7224// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7225// in the Amazon Elastic Container Service Developer Guide.
7226//
7227// If you are using tasks that use the Fargate launch type, container dependency
7228// parameters are not supported.
7229type ContainerDependency struct {
7230	_ struct{} `type:"structure"`
7231
7232	// The dependency condition of the container. The following are the available
7233	// conditions and their behavior:
7234	//
7235	//    * START - This condition emulates the behavior of links and volumes today.
7236	//    It validates that a dependent container is started before permitting other
7237	//    containers to start.
7238	//
7239	//    * COMPLETE - This condition validates that a dependent container runs
7240	//    to completion (exits) before permitting other containers to start. This
7241	//    can be useful for nonessential containers that run a script and then exit.
7242	//
7243	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
7244	//    that the container exits with a zero status.
7245	//
7246	//    * HEALTHY - This condition validates that the dependent container passes
7247	//    its Docker health check before permitting other containers to start. This
7248	//    requires that the dependent container has health checks configured. This
7249	//    condition is confirmed only at task startup.
7250	//
7251	// Condition is a required field
7252	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
7253
7254	// The name of a container.
7255	//
7256	// ContainerName is a required field
7257	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
7258}
7259
7260// String returns the string representation
7261func (s ContainerDependency) String() string {
7262	return awsutil.Prettify(s)
7263}
7264
7265// GoString returns the string representation
7266func (s ContainerDependency) GoString() string {
7267	return s.String()
7268}
7269
7270// Validate inspects the fields of the type to determine if they are valid.
7271func (s *ContainerDependency) Validate() error {
7272	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
7273	if s.Condition == nil {
7274		invalidParams.Add(request.NewErrParamRequired("Condition"))
7275	}
7276	if s.ContainerName == nil {
7277		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
7278	}
7279
7280	if invalidParams.Len() > 0 {
7281		return invalidParams
7282	}
7283	return nil
7284}
7285
7286// SetCondition sets the Condition field's value.
7287func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
7288	s.Condition = &v
7289	return s
7290}
7291
7292// SetContainerName sets the ContainerName field's value.
7293func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
7294	s.ContainerName = &v
7295	return s
7296}
7297
7298// An EC2 instance that is running the Amazon ECS agent and has been registered
7299// with a cluster.
7300type ContainerInstance struct {
7301	_ struct{} `type:"structure"`
7302
7303	// This parameter returns true if the agent is connected to Amazon ECS. Registered
7304	// instances with an agent that may be unhealthy or stopped return false. Only
7305	// instances connected to an agent can accept placement requests.
7306	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
7307
7308	// The status of the most recent agent update. If an update has never been requested,
7309	// this value is NULL.
7310	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
7311
7312	// The resources attached to a container instance, such as elastic network interfaces.
7313	Attachments []*Attachment `locationName:"attachments" type:"list"`
7314
7315	// The attributes set for the container instance, either by the Amazon ECS container
7316	// agent at instance registration or manually with the PutAttributes operation.
7317	Attributes []*Attribute `locationName:"attributes" type:"list"`
7318
7319	// The capacity provider associated with the container instance.
7320	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
7321
7322	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
7323	// the arn:aws:ecs namespace, followed by the Region of the container instance,
7324	// the AWS account ID of the container instance owner, the container-instance
7325	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
7326	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
7327
7328	// The EC2 instance ID of the container instance.
7329	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
7330
7331	// The number of tasks on the container instance that are in the PENDING status.
7332	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
7333
7334	// The Unix timestamp for when the container instance was registered.
7335	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
7336
7337	// For CPU and memory resource types, this parameter describes the amount of
7338	// each resource that was available on the container instance when the container
7339	// agent registered it with Amazon ECS. This value represents the total amount
7340	// of CPU and memory that can be allocated on this container instance to tasks.
7341	// For port resource types, this parameter describes the ports that were reserved
7342	// by the Amazon ECS container agent when it registered the container instance
7343	// with Amazon ECS.
7344	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
7345
7346	// For CPU and memory resource types, this parameter describes the remaining
7347	// CPU and memory that has not already been allocated to tasks and is therefore
7348	// available for new tasks. For port resource types, this parameter describes
7349	// the ports that were reserved by the Amazon ECS container agent (at instance
7350	// registration time) and any task containers that have reserved port mappings
7351	// on the host (with the host or bridge network mode). Any port that is not
7352	// specified here is available for new tasks.
7353	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
7354
7355	// The number of tasks on the container instance that are in the RUNNING status.
7356	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
7357
7358	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
7359	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
7360	//
7361	// If your account has opted in to the awsvpcTrunking account setting, then
7362	// any newly registered container instance will transition to a REGISTERING
7363	// status while the trunk elastic network interface is provisioned for the instance.
7364	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
7365	// status. You can describe the container instance and see the reason for failure
7366	// in the statusReason parameter. Once the container instance is terminated,
7367	// the instance transitions to a DEREGISTERING status while the trunk elastic
7368	// network interface is deprovisioned. The instance then transitions to an INACTIVE
7369	// status.
7370	//
7371	// The ACTIVE status indicates that the container instance can accept tasks.
7372	// The DRAINING indicates that new tasks are not placed on the container instance
7373	// and any service tasks running on the container instance are removed if possible.
7374	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
7375	// in the Amazon Elastic Container Service Developer Guide.
7376	Status *string `locationName:"status" type:"string"`
7377
7378	// The reason that the container instance reached its current status.
7379	StatusReason *string `locationName:"statusReason" type:"string"`
7380
7381	// The metadata that you apply to the container instance to help you categorize
7382	// and organize them. Each tag consists of a key and an optional value, both
7383	// of which you define.
7384	//
7385	// The following basic restrictions apply to tags:
7386	//
7387	//    * Maximum number of tags per resource - 50
7388	//
7389	//    * For each resource, each tag key must be unique, and each tag key can
7390	//    have only one value.
7391	//
7392	//    * Maximum key length - 128 Unicode characters in UTF-8
7393	//
7394	//    * Maximum value length - 256 Unicode characters in UTF-8
7395	//
7396	//    * If your tagging schema is used across multiple services and resources,
7397	//    remember that other services may have restrictions on allowed characters.
7398	//    Generally allowed characters are: letters, numbers, and spaces representable
7399	//    in UTF-8, and the following characters: + - = . _ : / @.
7400	//
7401	//    * Tag keys and values are case-sensitive.
7402	//
7403	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
7404	//    as a prefix for either keys or values as it is reserved for AWS use. You
7405	//    cannot edit or delete tag keys or values with this prefix. Tags with this
7406	//    prefix do not count against your tags per resource limit.
7407	Tags []*Tag `locationName:"tags" type:"list"`
7408
7409	// The version counter for the container instance. Every time a container instance
7410	// experiences a change that triggers a CloudWatch event, the version counter
7411	// is incremented. If you are replicating your Amazon ECS container instance
7412	// state with CloudWatch Events, you can compare the version of a container
7413	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
7414	// Events for the container instance (inside the detail object) to verify that
7415	// the version in your event stream is current.
7416	Version *int64 `locationName:"version" type:"long"`
7417
7418	// The version information for the Amazon ECS container agent and Docker daemon
7419	// running on the container instance.
7420	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
7421}
7422
7423// String returns the string representation
7424func (s ContainerInstance) String() string {
7425	return awsutil.Prettify(s)
7426}
7427
7428// GoString returns the string representation
7429func (s ContainerInstance) GoString() string {
7430	return s.String()
7431}
7432
7433// SetAgentConnected sets the AgentConnected field's value.
7434func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
7435	s.AgentConnected = &v
7436	return s
7437}
7438
7439// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
7440func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
7441	s.AgentUpdateStatus = &v
7442	return s
7443}
7444
7445// SetAttachments sets the Attachments field's value.
7446func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
7447	s.Attachments = v
7448	return s
7449}
7450
7451// SetAttributes sets the Attributes field's value.
7452func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
7453	s.Attributes = v
7454	return s
7455}
7456
7457// SetCapacityProviderName sets the CapacityProviderName field's value.
7458func (s *ContainerInstance) SetCapacityProviderName(v string) *ContainerInstance {
7459	s.CapacityProviderName = &v
7460	return s
7461}
7462
7463// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
7464func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
7465	s.ContainerInstanceArn = &v
7466	return s
7467}
7468
7469// SetEc2InstanceId sets the Ec2InstanceId field's value.
7470func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
7471	s.Ec2InstanceId = &v
7472	return s
7473}
7474
7475// SetPendingTasksCount sets the PendingTasksCount field's value.
7476func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
7477	s.PendingTasksCount = &v
7478	return s
7479}
7480
7481// SetRegisteredAt sets the RegisteredAt field's value.
7482func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
7483	s.RegisteredAt = &v
7484	return s
7485}
7486
7487// SetRegisteredResources sets the RegisteredResources field's value.
7488func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
7489	s.RegisteredResources = v
7490	return s
7491}
7492
7493// SetRemainingResources sets the RemainingResources field's value.
7494func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
7495	s.RemainingResources = v
7496	return s
7497}
7498
7499// SetRunningTasksCount sets the RunningTasksCount field's value.
7500func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
7501	s.RunningTasksCount = &v
7502	return s
7503}
7504
7505// SetStatus sets the Status field's value.
7506func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
7507	s.Status = &v
7508	return s
7509}
7510
7511// SetStatusReason sets the StatusReason field's value.
7512func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
7513	s.StatusReason = &v
7514	return s
7515}
7516
7517// SetTags sets the Tags field's value.
7518func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
7519	s.Tags = v
7520	return s
7521}
7522
7523// SetVersion sets the Version field's value.
7524func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
7525	s.Version = &v
7526	return s
7527}
7528
7529// SetVersionInfo sets the VersionInfo field's value.
7530func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
7531	s.VersionInfo = v
7532	return s
7533}
7534
7535// The overrides that should be sent to a container. An empty container override
7536// can be passed in. An example of an empty container override would be {"containerOverrides":
7537// [ ] }. If a non-empty container override is specified, the name parameter
7538// must be included.
7539type ContainerOverride struct {
7540	_ struct{} `type:"structure"`
7541
7542	// The command to send to the container that overrides the default command from
7543	// the Docker image or the task definition. You must also specify a container
7544	// name.
7545	Command []*string `locationName:"command" type:"list"`
7546
7547	// The number of cpu units reserved for the container, instead of the default
7548	// value from the task definition. You must also specify a container name.
7549	Cpu *int64 `locationName:"cpu" type:"integer"`
7550
7551	// The environment variables to send to the container. You can add new environment
7552	// variables, which are added to the container at launch, or you can override
7553	// the existing environment variables from the Docker image or the task definition.
7554	// You must also specify a container name.
7555	Environment []*KeyValuePair `locationName:"environment" type:"list"`
7556
7557	// The hard limit (in MiB) of memory to present to the container, instead of
7558	// the default value from the task definition. If your container attempts to
7559	// exceed the memory specified here, the container is killed. You must also
7560	// specify a container name.
7561	Memory *int64 `locationName:"memory" type:"integer"`
7562
7563	// The soft limit (in MiB) of memory to reserve for the container, instead of
7564	// the default value from the task definition. You must also specify a container
7565	// name.
7566	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
7567
7568	// The name of the container that receives the override. This parameter is required
7569	// if any override is specified.
7570	Name *string `locationName:"name" type:"string"`
7571
7572	// The type and amount of a resource to assign to a container, instead of the
7573	// default value from the task definition. The only supported resource is a
7574	// GPU.
7575	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
7576}
7577
7578// String returns the string representation
7579func (s ContainerOverride) String() string {
7580	return awsutil.Prettify(s)
7581}
7582
7583// GoString returns the string representation
7584func (s ContainerOverride) GoString() string {
7585	return s.String()
7586}
7587
7588// Validate inspects the fields of the type to determine if they are valid.
7589func (s *ContainerOverride) Validate() error {
7590	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
7591	if s.ResourceRequirements != nil {
7592		for i, v := range s.ResourceRequirements {
7593			if v == nil {
7594				continue
7595			}
7596			if err := v.Validate(); err != nil {
7597				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
7598			}
7599		}
7600	}
7601
7602	if invalidParams.Len() > 0 {
7603		return invalidParams
7604	}
7605	return nil
7606}
7607
7608// SetCommand sets the Command field's value.
7609func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
7610	s.Command = v
7611	return s
7612}
7613
7614// SetCpu sets the Cpu field's value.
7615func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
7616	s.Cpu = &v
7617	return s
7618}
7619
7620// SetEnvironment sets the Environment field's value.
7621func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
7622	s.Environment = v
7623	return s
7624}
7625
7626// SetMemory sets the Memory field's value.
7627func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
7628	s.Memory = &v
7629	return s
7630}
7631
7632// SetMemoryReservation sets the MemoryReservation field's value.
7633func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
7634	s.MemoryReservation = &v
7635	return s
7636}
7637
7638// SetName sets the Name field's value.
7639func (s *ContainerOverride) SetName(v string) *ContainerOverride {
7640	s.Name = &v
7641	return s
7642}
7643
7644// SetResourceRequirements sets the ResourceRequirements field's value.
7645func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
7646	s.ResourceRequirements = v
7647	return s
7648}
7649
7650// An object representing a change in state for a container.
7651type ContainerStateChange struct {
7652	_ struct{} `type:"structure"`
7653
7654	// The name of the container.
7655	ContainerName *string `locationName:"containerName" type:"string"`
7656
7657	// The exit code for the container, if the state change is a result of the container
7658	// exiting.
7659	ExitCode *int64 `locationName:"exitCode" type:"integer"`
7660
7661	// The container image SHA 256 digest.
7662	ImageDigest *string `locationName:"imageDigest" type:"string"`
7663
7664	// Any network bindings associated with the container.
7665	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
7666
7667	// The reason for the state change.
7668	Reason *string `locationName:"reason" type:"string"`
7669
7670	// The ID of the Docker container.
7671	RuntimeId *string `locationName:"runtimeId" type:"string"`
7672
7673	// The status of the container.
7674	Status *string `locationName:"status" type:"string"`
7675}
7676
7677// String returns the string representation
7678func (s ContainerStateChange) String() string {
7679	return awsutil.Prettify(s)
7680}
7681
7682// GoString returns the string representation
7683func (s ContainerStateChange) GoString() string {
7684	return s.String()
7685}
7686
7687// SetContainerName sets the ContainerName field's value.
7688func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
7689	s.ContainerName = &v
7690	return s
7691}
7692
7693// SetExitCode sets the ExitCode field's value.
7694func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
7695	s.ExitCode = &v
7696	return s
7697}
7698
7699// SetImageDigest sets the ImageDigest field's value.
7700func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
7701	s.ImageDigest = &v
7702	return s
7703}
7704
7705// SetNetworkBindings sets the NetworkBindings field's value.
7706func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
7707	s.NetworkBindings = v
7708	return s
7709}
7710
7711// SetReason sets the Reason field's value.
7712func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
7713	s.Reason = &v
7714	return s
7715}
7716
7717// SetRuntimeId sets the RuntimeId field's value.
7718func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
7719	s.RuntimeId = &v
7720	return s
7721}
7722
7723// SetStatus sets the Status field's value.
7724func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
7725	s.Status = &v
7726	return s
7727}
7728
7729type CreateCapacityProviderInput struct {
7730	_ struct{} `type:"structure"`
7731
7732	// The details of the Auto Scaling group for the capacity provider.
7733	//
7734	// AutoScalingGroupProvider is a required field
7735	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
7736
7737	// The name of the capacity provider. Up to 255 characters are allowed, including
7738	// letters (upper and lowercase), numbers, underscores, and hyphens. The name
7739	// cannot be prefixed with "aws", "ecs", or "fargate".
7740	//
7741	// Name is a required field
7742	Name *string `locationName:"name" type:"string" required:"true"`
7743
7744	// The metadata that you apply to the capacity provider to help you categorize
7745	// and organize them. Each tag consists of a key and an optional value, both
7746	// of which you define.
7747	//
7748	// The following basic restrictions apply to tags:
7749	//
7750	//    * Maximum number of tags per resource - 50
7751	//
7752	//    * For each resource, each tag key must be unique, and each tag key can
7753	//    have only one value.
7754	//
7755	//    * Maximum key length - 128 Unicode characters in UTF-8
7756	//
7757	//    * Maximum value length - 256 Unicode characters in UTF-8
7758	//
7759	//    * If your tagging schema is used across multiple services and resources,
7760	//    remember that other services may have restrictions on allowed characters.
7761	//    Generally allowed characters are: letters, numbers, and spaces representable
7762	//    in UTF-8, and the following characters: + - = . _ : / @.
7763	//
7764	//    * Tag keys and values are case-sensitive.
7765	//
7766	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
7767	//    as a prefix for either keys or values as it is reserved for AWS use. You
7768	//    cannot edit or delete tag keys or values with this prefix. Tags with this
7769	//    prefix do not count against your tags per resource limit.
7770	Tags []*Tag `locationName:"tags" type:"list"`
7771}
7772
7773// String returns the string representation
7774func (s CreateCapacityProviderInput) String() string {
7775	return awsutil.Prettify(s)
7776}
7777
7778// GoString returns the string representation
7779func (s CreateCapacityProviderInput) GoString() string {
7780	return s.String()
7781}
7782
7783// Validate inspects the fields of the type to determine if they are valid.
7784func (s *CreateCapacityProviderInput) Validate() error {
7785	invalidParams := request.ErrInvalidParams{Context: "CreateCapacityProviderInput"}
7786	if s.AutoScalingGroupProvider == nil {
7787		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
7788	}
7789	if s.Name == nil {
7790		invalidParams.Add(request.NewErrParamRequired("Name"))
7791	}
7792	if s.AutoScalingGroupProvider != nil {
7793		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
7794			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
7795		}
7796	}
7797	if s.Tags != nil {
7798		for i, v := range s.Tags {
7799			if v == nil {
7800				continue
7801			}
7802			if err := v.Validate(); err != nil {
7803				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7804			}
7805		}
7806	}
7807
7808	if invalidParams.Len() > 0 {
7809		return invalidParams
7810	}
7811	return nil
7812}
7813
7814// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
7815func (s *CreateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CreateCapacityProviderInput {
7816	s.AutoScalingGroupProvider = v
7817	return s
7818}
7819
7820// SetName sets the Name field's value.
7821func (s *CreateCapacityProviderInput) SetName(v string) *CreateCapacityProviderInput {
7822	s.Name = &v
7823	return s
7824}
7825
7826// SetTags sets the Tags field's value.
7827func (s *CreateCapacityProviderInput) SetTags(v []*Tag) *CreateCapacityProviderInput {
7828	s.Tags = v
7829	return s
7830}
7831
7832type CreateCapacityProviderOutput struct {
7833	_ struct{} `type:"structure"`
7834
7835	// The full description of the new capacity provider.
7836	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
7837}
7838
7839// String returns the string representation
7840func (s CreateCapacityProviderOutput) String() string {
7841	return awsutil.Prettify(s)
7842}
7843
7844// GoString returns the string representation
7845func (s CreateCapacityProviderOutput) GoString() string {
7846	return s.String()
7847}
7848
7849// SetCapacityProvider sets the CapacityProvider field's value.
7850func (s *CreateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *CreateCapacityProviderOutput {
7851	s.CapacityProvider = v
7852	return s
7853}
7854
7855type CreateClusterInput struct {
7856	_ struct{} `type:"structure"`
7857
7858	// The short name or full Amazon Resource Name (ARN) of one or more capacity
7859	// providers to associate with the cluster.
7860	//
7861	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
7862	// provider must already be created and not already associated with another
7863	// cluster. New capacity providers can be created with the CreateCapacityProvider
7864	// API operation.
7865	//
7866	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
7867	// capacity providers. The AWS Fargate capacity providers are available to all
7868	// accounts and only need to be associated with a cluster to be used.
7869	//
7870	// The PutClusterCapacityProviders API operation is used to update the list
7871	// of available capacity providers for a cluster after the cluster is created.
7872	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
7873
7874	// The name of your cluster. If you do not specify a name for your cluster,
7875	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
7876	// numbers, and hyphens are allowed.
7877	ClusterName *string `locationName:"clusterName" type:"string"`
7878
7879	// The capacity provider strategy to use by default for the cluster.
7880	//
7881	// When creating a service or running a task on a cluster, if no capacity provider
7882	// or launch type is specified then the default capacity provider strategy for
7883	// the cluster is used.
7884	//
7885	// A capacity provider strategy consists of one or more capacity providers along
7886	// with the base and weight to assign to them. A capacity provider must be associated
7887	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
7888	// API is used to associate a capacity provider with a cluster. Only capacity
7889	// providers with an ACTIVE or UPDATING status can be used.
7890	//
7891	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
7892	// provider must already be created. New capacity providers can be created with
7893	// the CreateCapacityProvider API operation.
7894	//
7895	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
7896	// capacity providers. The AWS Fargate capacity providers are available to all
7897	// accounts and only need to be associated with a cluster to be used.
7898	//
7899	// If a default capacity provider strategy is not defined for a cluster during
7900	// creation, it can be defined later with the PutClusterCapacityProviders API
7901	// operation.
7902	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
7903
7904	// The setting to use when creating a cluster. This parameter is used to enable
7905	// CloudWatch Container Insights for a cluster. If this value is specified,
7906	// it will override the containerInsights value set with PutAccountSetting or
7907	// PutAccountSettingDefault.
7908	Settings []*ClusterSetting `locationName:"settings" type:"list"`
7909
7910	// The metadata that you apply to the cluster to help you categorize and organize
7911	// them. Each tag consists of a key and an optional value, both of which you
7912	// define.
7913	//
7914	// The following basic restrictions apply to tags:
7915	//
7916	//    * Maximum number of tags per resource - 50
7917	//
7918	//    * For each resource, each tag key must be unique, and each tag key can
7919	//    have only one value.
7920	//
7921	//    * Maximum key length - 128 Unicode characters in UTF-8
7922	//
7923	//    * Maximum value length - 256 Unicode characters in UTF-8
7924	//
7925	//    * If your tagging schema is used across multiple services and resources,
7926	//    remember that other services may have restrictions on allowed characters.
7927	//    Generally allowed characters are: letters, numbers, and spaces representable
7928	//    in UTF-8, and the following characters: + - = . _ : / @.
7929	//
7930	//    * Tag keys and values are case-sensitive.
7931	//
7932	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
7933	//    as a prefix for either keys or values as it is reserved for AWS use. You
7934	//    cannot edit or delete tag keys or values with this prefix. Tags with this
7935	//    prefix do not count against your tags per resource limit.
7936	Tags []*Tag `locationName:"tags" type:"list"`
7937}
7938
7939// String returns the string representation
7940func (s CreateClusterInput) String() string {
7941	return awsutil.Prettify(s)
7942}
7943
7944// GoString returns the string representation
7945func (s CreateClusterInput) GoString() string {
7946	return s.String()
7947}
7948
7949// Validate inspects the fields of the type to determine if they are valid.
7950func (s *CreateClusterInput) Validate() error {
7951	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
7952	if s.DefaultCapacityProviderStrategy != nil {
7953		for i, v := range s.DefaultCapacityProviderStrategy {
7954			if v == nil {
7955				continue
7956			}
7957			if err := v.Validate(); err != nil {
7958				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
7959			}
7960		}
7961	}
7962	if s.Tags != nil {
7963		for i, v := range s.Tags {
7964			if v == nil {
7965				continue
7966			}
7967			if err := v.Validate(); err != nil {
7968				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7969			}
7970		}
7971	}
7972
7973	if invalidParams.Len() > 0 {
7974		return invalidParams
7975	}
7976	return nil
7977}
7978
7979// SetCapacityProviders sets the CapacityProviders field's value.
7980func (s *CreateClusterInput) SetCapacityProviders(v []*string) *CreateClusterInput {
7981	s.CapacityProviders = v
7982	return s
7983}
7984
7985// SetClusterName sets the ClusterName field's value.
7986func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
7987	s.ClusterName = &v
7988	return s
7989}
7990
7991// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
7992func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput {
7993	s.DefaultCapacityProviderStrategy = v
7994	return s
7995}
7996
7997// SetSettings sets the Settings field's value.
7998func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
7999	s.Settings = v
8000	return s
8001}
8002
8003// SetTags sets the Tags field's value.
8004func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
8005	s.Tags = v
8006	return s
8007}
8008
8009type CreateClusterOutput struct {
8010	_ struct{} `type:"structure"`
8011
8012	// The full description of your new cluster.
8013	Cluster *Cluster `locationName:"cluster" type:"structure"`
8014}
8015
8016// String returns the string representation
8017func (s CreateClusterOutput) String() string {
8018	return awsutil.Prettify(s)
8019}
8020
8021// GoString returns the string representation
8022func (s CreateClusterOutput) GoString() string {
8023	return s.String()
8024}
8025
8026// SetCluster sets the Cluster field's value.
8027func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
8028	s.Cluster = v
8029	return s
8030}
8031
8032type CreateServiceInput struct {
8033	_ struct{} `type:"structure"`
8034
8035	// The capacity provider strategy to use for the service.
8036	//
8037	// A capacity provider strategy consists of one or more capacity providers along
8038	// with the base and weight to assign to them. A capacity provider must be associated
8039	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8040	// API is used to associate a capacity provider with a cluster. Only capacity
8041	// providers with an ACTIVE or UPDATING status can be used.
8042	//
8043	// If a capacityProviderStrategy is specified, the launchType parameter must
8044	// be omitted. If no capacityProviderStrategy or launchType is specified, the
8045	// defaultCapacityProviderStrategy for the cluster is used.
8046	//
8047	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8048	// provider must already be created. New capacity providers can be created with
8049	// the CreateCapacityProvider API operation.
8050	//
8051	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8052	// capacity providers. The AWS Fargate capacity providers are available to all
8053	// accounts and only need to be associated with a cluster to be used.
8054	//
8055	// The PutClusterCapacityProviders API operation is used to update the list
8056	// of available capacity providers for a cluster after the cluster is created.
8057	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
8058
8059	// Unique, case-sensitive identifier that you provide to ensure the idempotency
8060	// of the request. Up to 32 ASCII characters are allowed.
8061	ClientToken *string `locationName:"clientToken" type:"string"`
8062
8063	// The short name or full Amazon Resource Name (ARN) of the cluster on which
8064	// to run your service. If you do not specify a cluster, the default cluster
8065	// is assumed.
8066	Cluster *string `locationName:"cluster" type:"string"`
8067
8068	// Optional deployment parameters that control how many tasks run during the
8069	// deployment and the ordering of stopping and starting tasks.
8070	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
8071
8072	// The deployment controller to use for the service.
8073	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
8074
8075	// The number of instantiations of the specified task definition to place and
8076	// keep running on your cluster.
8077	//
8078	// This is required if schedulingStrategy is REPLICA or is not specified. If
8079	// schedulingStrategy is DAEMON then this is not required.
8080	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
8081
8082	// Specifies whether to enable Amazon ECS managed tags for the tasks within
8083	// the service. For more information, see Tagging Your Amazon ECS Resources
8084	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
8085	// in the Amazon Elastic Container Service Developer Guide.
8086	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
8087
8088	// The period of time, in seconds, that the Amazon ECS service scheduler should
8089	// ignore unhealthy Elastic Load Balancing target health checks after a task
8090	// has first started. This is only valid if your service is configured to use
8091	// a load balancer. If your service's tasks take a while to start and respond
8092	// to Elastic Load Balancing health checks, you can specify a health check grace
8093	// period of up to 2,147,483,647 seconds. During that time, the ECS service
8094	// scheduler ignores health check status. This grace period can prevent the
8095	// ECS service scheduler from marking tasks as unhealthy and stopping them before
8096	// they have time to come up.
8097	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
8098
8099	// The launch type on which to run your service. For more information, see Amazon
8100	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
8101	// in the Amazon Elastic Container Service Developer Guide.
8102	//
8103	// If a launchType is specified, the capacityProviderStrategy parameter must
8104	// be omitted.
8105	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
8106
8107	// A load balancer object representing the load balancers to use with your service.
8108	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
8109	// in the Amazon Elastic Container Service Developer Guide.
8110	//
8111	// If the service is using the rolling update (ECS) deployment controller and
8112	// using either an Application Load Balancer or Network Load Balancer, you can
8113	// specify multiple target groups to attach to the service. The service-linked
8114	// role is required for services that make use of multiple target groups. For
8115	// more information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8116	// in the Amazon Elastic Container Service Developer Guide.
8117	//
8118	// If the service is using the CODE_DEPLOY deployment controller, the service
8119	// is required to use either an Application Load Balancer or Network Load Balancer.
8120	// When creating an AWS CodeDeploy deployment group, you specify two target
8121	// groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy
8122	// determines which task set in your service has the status PRIMARY and associates
8123	// one target group with it, and then associates the other target group with
8124	// the replacement task set. The load balancer can also have up to two listeners:
8125	// a required listener for production traffic and an optional listener that
8126	// allows you perform validation tests with Lambda functions before routing
8127	// production traffic to it.
8128	//
8129	// After you create a service using the ECS deployment controller, the load
8130	// balancer name or target group ARN, container name, and container port specified
8131	// in the service definition are immutable. If you are using the CODE_DEPLOY
8132	// deployment controller, these values can be changed when updating the service.
8133	//
8134	// For Application Load Balancers and Network Load Balancers, this object must
8135	// contain the load balancer target group ARN, the container name (as it appears
8136	// in a container definition), and the container port to access from the load
8137	// balancer. When a task from this service is placed on a container instance,
8138	// the container instance and port combination is registered as a target in
8139	// the target group specified here.
8140	//
8141	// For Classic Load Balancers, this object must contain the load balancer name,
8142	// the container name (as it appears in a container definition), and the container
8143	// port to access from the load balancer. When a task from this service is placed
8144	// on a container instance, the container instance is registered with the load
8145	// balancer specified here.
8146	//
8147	// Services with tasks that use the awsvpc network mode (for example, those
8148	// with the Fargate launch type) only support Application Load Balancers and
8149	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
8150	// you create any target groups for these services, you must choose ip as the
8151	// target type, not instance, because tasks that use the awsvpc network mode
8152	// are associated with an elastic network interface, not an Amazon EC2 instance.
8153	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
8154
8155	// The network configuration for the service. This parameter is required for
8156	// task definitions that use the awsvpc network mode to receive their own elastic
8157	// network interface, and it is not supported for other network modes. For more
8158	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
8159	// in the Amazon Elastic Container Service Developer Guide.
8160	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
8161
8162	// An array of placement constraint objects to use for tasks in your service.
8163	// You can specify a maximum of 10 constraints per task (this limit includes
8164	// constraints in the task definition and those specified at runtime).
8165	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
8166
8167	// The placement strategy objects to use for tasks in your service. You can
8168	// specify a maximum of five strategy rules per service.
8169	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
8170
8171	// The platform version that your tasks in the service are running on. A platform
8172	// version is specified only for tasks using the Fargate launch type. If one
8173	// isn't specified, the LATEST platform version is used by default. For more
8174	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
8175	// in the Amazon Elastic Container Service Developer Guide.
8176	PlatformVersion *string `locationName:"platformVersion" type:"string"`
8177
8178	// Specifies whether to propagate the tags from the task definition or the service
8179	// to the tasks in the service. If no value is specified, the tags are not propagated.
8180	// Tags can only be propagated to the tasks within the service during service
8181	// creation. To add tags to a task after service creation, use the TagResource
8182	// API action.
8183	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
8184
8185	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
8186	// ECS to make calls to your load balancer on your behalf. This parameter is
8187	// only permitted if you are using a load balancer with your service and your
8188	// task definition does not use the awsvpc network mode. If you specify the
8189	// role parameter, you must also specify a load balancer object with the loadBalancers
8190	// parameter.
8191	//
8192	// If your account has already created the Amazon ECS service-linked role, that
8193	// role is used by default for your service unless you specify a role here.
8194	// The service-linked role is required if your task definition uses the awsvpc
8195	// network mode or if the service is configured to use service discovery, an
8196	// external deployment controller, multiple target groups, or Elastic Inference
8197	// accelerators in which case you should not specify a role here. For more information,
8198	// see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8199	// in the Amazon Elastic Container Service Developer Guide.
8200	//
8201	// If your specified role has a path other than /, then you must either specify
8202	// the full role ARN (this is recommended) or prefix the role name with the
8203	// path. For example, if a role with the name bar has a path of /foo/ then you
8204	// would specify /foo/bar as the role name. For more information, see Friendly
8205	// Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
8206	// in the IAM User Guide.
8207	Role *string `locationName:"role" type:"string"`
8208
8209	// The scheduling strategy to use for the service. For more information, see
8210	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
8211	//
8212	// There are two service scheduler strategies available:
8213	//
8214	//    * REPLICA-The replica scheduling strategy places and maintains the desired
8215	//    number of tasks across your cluster. By default, the service scheduler
8216	//    spreads tasks across Availability Zones. You can use task placement strategies
8217	//    and constraints to customize task placement decisions. This scheduler
8218	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
8219	//    deployment controller types.
8220	//
8221	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
8222	//    active container instance that meets all of the task placement constraints
8223	//    that you specify in your cluster. When you're using this strategy, you
8224	//    don't need to specify a desired number of tasks, a task placement strategy,
8225	//    or use Service Auto Scaling policies. Tasks using the Fargate launch type
8226	//    or the CODE_DEPLOY or EXTERNAL deployment controller types don't support
8227	//    the DAEMON scheduling strategy.
8228	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
8229
8230	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
8231	// and hyphens are allowed. Service names must be unique within a cluster, but
8232	// you can have similarly named services in multiple clusters within a Region
8233	// or across multiple Regions.
8234	//
8235	// ServiceName is a required field
8236	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
8237
8238	// The details of the service discovery registries to assign to this service.
8239	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
8240	//
8241	// Service discovery is supported for Fargate tasks if you are using platform
8242	// version v1.1.0 or later. For more information, see AWS Fargate Platform Versions
8243	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
8244	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
8245
8246	// The metadata that you apply to the service to help you categorize and organize
8247	// them. Each tag consists of a key and an optional value, both of which you
8248	// define. When a service is deleted, the tags are deleted as well.
8249	//
8250	// The following basic restrictions apply to tags:
8251	//
8252	//    * Maximum number of tags per resource - 50
8253	//
8254	//    * For each resource, each tag key must be unique, and each tag key can
8255	//    have only one value.
8256	//
8257	//    * Maximum key length - 128 Unicode characters in UTF-8
8258	//
8259	//    * Maximum value length - 256 Unicode characters in UTF-8
8260	//
8261	//    * If your tagging schema is used across multiple services and resources,
8262	//    remember that other services may have restrictions on allowed characters.
8263	//    Generally allowed characters are: letters, numbers, and spaces representable
8264	//    in UTF-8, and the following characters: + - = . _ : / @.
8265	//
8266	//    * Tag keys and values are case-sensitive.
8267	//
8268	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8269	//    as a prefix for either keys or values as it is reserved for AWS use. You
8270	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8271	//    prefix do not count against your tags per resource limit.
8272	Tags []*Tag `locationName:"tags" type:"list"`
8273
8274	// The family and revision (family:revision) or full ARN of the task definition
8275	// to run in your service. If a revision is not specified, the latest ACTIVE
8276	// revision is used.
8277	//
8278	// A task definition must be specified if the service is using the ECS deployment
8279	// controller.
8280	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
8281}
8282
8283// String returns the string representation
8284func (s CreateServiceInput) String() string {
8285	return awsutil.Prettify(s)
8286}
8287
8288// GoString returns the string representation
8289func (s CreateServiceInput) GoString() string {
8290	return s.String()
8291}
8292
8293// Validate inspects the fields of the type to determine if they are valid.
8294func (s *CreateServiceInput) Validate() error {
8295	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
8296	if s.ServiceName == nil {
8297		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
8298	}
8299	if s.CapacityProviderStrategy != nil {
8300		for i, v := range s.CapacityProviderStrategy {
8301			if v == nil {
8302				continue
8303			}
8304			if err := v.Validate(); err != nil {
8305				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
8306			}
8307		}
8308	}
8309	if s.DeploymentController != nil {
8310		if err := s.DeploymentController.Validate(); err != nil {
8311			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
8312		}
8313	}
8314	if s.NetworkConfiguration != nil {
8315		if err := s.NetworkConfiguration.Validate(); err != nil {
8316			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
8317		}
8318	}
8319	if s.Tags != nil {
8320		for i, v := range s.Tags {
8321			if v == nil {
8322				continue
8323			}
8324			if err := v.Validate(); err != nil {
8325				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8326			}
8327		}
8328	}
8329
8330	if invalidParams.Len() > 0 {
8331		return invalidParams
8332	}
8333	return nil
8334}
8335
8336// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
8337func (s *CreateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateServiceInput {
8338	s.CapacityProviderStrategy = v
8339	return s
8340}
8341
8342// SetClientToken sets the ClientToken field's value.
8343func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
8344	s.ClientToken = &v
8345	return s
8346}
8347
8348// SetCluster sets the Cluster field's value.
8349func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
8350	s.Cluster = &v
8351	return s
8352}
8353
8354// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
8355func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
8356	s.DeploymentConfiguration = v
8357	return s
8358}
8359
8360// SetDeploymentController sets the DeploymentController field's value.
8361func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
8362	s.DeploymentController = v
8363	return s
8364}
8365
8366// SetDesiredCount sets the DesiredCount field's value.
8367func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
8368	s.DesiredCount = &v
8369	return s
8370}
8371
8372// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
8373func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
8374	s.EnableECSManagedTags = &v
8375	return s
8376}
8377
8378// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
8379func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
8380	s.HealthCheckGracePeriodSeconds = &v
8381	return s
8382}
8383
8384// SetLaunchType sets the LaunchType field's value.
8385func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
8386	s.LaunchType = &v
8387	return s
8388}
8389
8390// SetLoadBalancers sets the LoadBalancers field's value.
8391func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
8392	s.LoadBalancers = v
8393	return s
8394}
8395
8396// SetNetworkConfiguration sets the NetworkConfiguration field's value.
8397func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
8398	s.NetworkConfiguration = v
8399	return s
8400}
8401
8402// SetPlacementConstraints sets the PlacementConstraints field's value.
8403func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
8404	s.PlacementConstraints = v
8405	return s
8406}
8407
8408// SetPlacementStrategy sets the PlacementStrategy field's value.
8409func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
8410	s.PlacementStrategy = v
8411	return s
8412}
8413
8414// SetPlatformVersion sets the PlatformVersion field's value.
8415func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
8416	s.PlatformVersion = &v
8417	return s
8418}
8419
8420// SetPropagateTags sets the PropagateTags field's value.
8421func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
8422	s.PropagateTags = &v
8423	return s
8424}
8425
8426// SetRole sets the Role field's value.
8427func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
8428	s.Role = &v
8429	return s
8430}
8431
8432// SetSchedulingStrategy sets the SchedulingStrategy field's value.
8433func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
8434	s.SchedulingStrategy = &v
8435	return s
8436}
8437
8438// SetServiceName sets the ServiceName field's value.
8439func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
8440	s.ServiceName = &v
8441	return s
8442}
8443
8444// SetServiceRegistries sets the ServiceRegistries field's value.
8445func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
8446	s.ServiceRegistries = v
8447	return s
8448}
8449
8450// SetTags sets the Tags field's value.
8451func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
8452	s.Tags = v
8453	return s
8454}
8455
8456// SetTaskDefinition sets the TaskDefinition field's value.
8457func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
8458	s.TaskDefinition = &v
8459	return s
8460}
8461
8462type CreateServiceOutput struct {
8463	_ struct{} `type:"structure"`
8464
8465	// The full description of your service following the create call.
8466	//
8467	// If a service is using the ECS deployment controller, the deploymentController
8468	// and taskSets parameters will not be returned.
8469	//
8470	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
8471	// taskSets and deployments parameters will be returned, however the deployments
8472	// parameter will be an empty list.
8473	Service *Service `locationName:"service" type:"structure"`
8474}
8475
8476// String returns the string representation
8477func (s CreateServiceOutput) String() string {
8478	return awsutil.Prettify(s)
8479}
8480
8481// GoString returns the string representation
8482func (s CreateServiceOutput) GoString() string {
8483	return s.String()
8484}
8485
8486// SetService sets the Service field's value.
8487func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
8488	s.Service = v
8489	return s
8490}
8491
8492type CreateTaskSetInput struct {
8493	_ struct{} `type:"structure"`
8494
8495	// The capacity provider strategy to use for the task set.
8496	//
8497	// A capacity provider strategy consists of one or more capacity providers along
8498	// with the base and weight to assign to them. A capacity provider must be associated
8499	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8500	// API is used to associate a capacity provider with a cluster. Only capacity
8501	// providers with an ACTIVE or UPDATING status can be used.
8502	//
8503	// If a capacityProviderStrategy is specified, the launchType parameter must
8504	// be omitted. If no capacityProviderStrategy or launchType is specified, the
8505	// defaultCapacityProviderStrategy for the cluster is used.
8506	//
8507	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8508	// provider must already be created. New capacity providers can be created with
8509	// the CreateCapacityProvider API operation.
8510	//
8511	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8512	// capacity providers. The AWS Fargate capacity providers are available to all
8513	// accounts and only need to be associated with a cluster to be used.
8514	//
8515	// The PutClusterCapacityProviders API operation is used to update the list
8516	// of available capacity providers for a cluster after the cluster is created.
8517	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
8518
8519	// Unique, case-sensitive identifier that you provide to ensure the idempotency
8520	// of the request. Up to 32 ASCII characters are allowed.
8521	ClientToken *string `locationName:"clientToken" type:"string"`
8522
8523	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8524	// the service to create the task set in.
8525	//
8526	// Cluster is a required field
8527	Cluster *string `locationName:"cluster" type:"string" required:"true"`
8528
8529	// An optional non-unique tag that identifies this task set in external systems.
8530	// If the task set is associated with a service discovery registry, the tasks
8531	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute
8532	// set to the provided value.
8533	ExternalId *string `locationName:"externalId" type:"string"`
8534
8535	// The launch type that new tasks in the task set will use. For more information,
8536	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
8537	// in the Amazon Elastic Container Service Developer Guide.
8538	//
8539	// If a launchType is specified, the capacityProviderStrategy parameter must
8540	// be omitted.
8541	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
8542
8543	// A load balancer object representing the load balancer to use with the task
8544	// set. The supported load balancer types are either an Application Load Balancer
8545	// or a Network Load Balancer.
8546	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
8547
8548	// An object representing the network configuration for a task or service.
8549	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
8550
8551	// The platform version that the tasks in the task set should use. A platform
8552	// version is specified only for tasks using the Fargate launch type. If one
8553	// isn't specified, the LATEST platform version is used by default.
8554	PlatformVersion *string `locationName:"platformVersion" type:"string"`
8555
8556	// A floating-point percentage of the desired number of tasks to place and keep
8557	// running in the task set.
8558	Scale *Scale `locationName:"scale" type:"structure"`
8559
8560	// The short name or full Amazon Resource Name (ARN) of the service to create
8561	// the task set in.
8562	//
8563	// Service is a required field
8564	Service *string `locationName:"service" type:"string" required:"true"`
8565
8566	// The details of the service discovery registries to assign to this task set.
8567	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
8568	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
8569
8570	// The task definition for the tasks in the task set to use.
8571	//
8572	// TaskDefinition is a required field
8573	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
8574}
8575
8576// String returns the string representation
8577func (s CreateTaskSetInput) String() string {
8578	return awsutil.Prettify(s)
8579}
8580
8581// GoString returns the string representation
8582func (s CreateTaskSetInput) GoString() string {
8583	return s.String()
8584}
8585
8586// Validate inspects the fields of the type to determine if they are valid.
8587func (s *CreateTaskSetInput) Validate() error {
8588	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
8589	if s.Cluster == nil {
8590		invalidParams.Add(request.NewErrParamRequired("Cluster"))
8591	}
8592	if s.Service == nil {
8593		invalidParams.Add(request.NewErrParamRequired("Service"))
8594	}
8595	if s.TaskDefinition == nil {
8596		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
8597	}
8598	if s.CapacityProviderStrategy != nil {
8599		for i, v := range s.CapacityProviderStrategy {
8600			if v == nil {
8601				continue
8602			}
8603			if err := v.Validate(); err != nil {
8604				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
8605			}
8606		}
8607	}
8608	if s.NetworkConfiguration != nil {
8609		if err := s.NetworkConfiguration.Validate(); err != nil {
8610			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
8611		}
8612	}
8613
8614	if invalidParams.Len() > 0 {
8615		return invalidParams
8616	}
8617	return nil
8618}
8619
8620// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
8621func (s *CreateTaskSetInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateTaskSetInput {
8622	s.CapacityProviderStrategy = v
8623	return s
8624}
8625
8626// SetClientToken sets the ClientToken field's value.
8627func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
8628	s.ClientToken = &v
8629	return s
8630}
8631
8632// SetCluster sets the Cluster field's value.
8633func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
8634	s.Cluster = &v
8635	return s
8636}
8637
8638// SetExternalId sets the ExternalId field's value.
8639func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
8640	s.ExternalId = &v
8641	return s
8642}
8643
8644// SetLaunchType sets the LaunchType field's value.
8645func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
8646	s.LaunchType = &v
8647	return s
8648}
8649
8650// SetLoadBalancers sets the LoadBalancers field's value.
8651func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
8652	s.LoadBalancers = v
8653	return s
8654}
8655
8656// SetNetworkConfiguration sets the NetworkConfiguration field's value.
8657func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
8658	s.NetworkConfiguration = v
8659	return s
8660}
8661
8662// SetPlatformVersion sets the PlatformVersion field's value.
8663func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
8664	s.PlatformVersion = &v
8665	return s
8666}
8667
8668// SetScale sets the Scale field's value.
8669func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
8670	s.Scale = v
8671	return s
8672}
8673
8674// SetService sets the Service field's value.
8675func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
8676	s.Service = &v
8677	return s
8678}
8679
8680// SetServiceRegistries sets the ServiceRegistries field's value.
8681func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
8682	s.ServiceRegistries = v
8683	return s
8684}
8685
8686// SetTaskDefinition sets the TaskDefinition field's value.
8687func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
8688	s.TaskDefinition = &v
8689	return s
8690}
8691
8692type CreateTaskSetOutput struct {
8693	_ struct{} `type:"structure"`
8694
8695	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
8696	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
8697	// desired number of tasks, how many tasks are running, and whether the task
8698	// set serves production traffic.
8699	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
8700}
8701
8702// String returns the string representation
8703func (s CreateTaskSetOutput) String() string {
8704	return awsutil.Prettify(s)
8705}
8706
8707// GoString returns the string representation
8708func (s CreateTaskSetOutput) GoString() string {
8709	return s.String()
8710}
8711
8712// SetTaskSet sets the TaskSet field's value.
8713func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
8714	s.TaskSet = v
8715	return s
8716}
8717
8718type DeleteAccountSettingInput struct {
8719	_ struct{} `type:"structure"`
8720
8721	// The resource name for which to disable the account setting. If serviceLongArnFormat
8722	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
8723	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
8724	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
8725	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
8726	// the ENI limit for your Amazon ECS container instances is affected.
8727	//
8728	// Name is a required field
8729	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
8730
8731	// The ARN of the principal, which can be an IAM user, IAM role, or the root
8732	// user. If you specify the root user, it disables the account setting for all
8733	// IAM users, IAM roles, and the root user of the account unless an IAM user
8734	// or role explicitly overrides these settings. If this field is omitted, the
8735	// setting is changed only for the authenticated user.
8736	PrincipalArn *string `locationName:"principalArn" type:"string"`
8737}
8738
8739// String returns the string representation
8740func (s DeleteAccountSettingInput) String() string {
8741	return awsutil.Prettify(s)
8742}
8743
8744// GoString returns the string representation
8745func (s DeleteAccountSettingInput) GoString() string {
8746	return s.String()
8747}
8748
8749// Validate inspects the fields of the type to determine if they are valid.
8750func (s *DeleteAccountSettingInput) Validate() error {
8751	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
8752	if s.Name == nil {
8753		invalidParams.Add(request.NewErrParamRequired("Name"))
8754	}
8755
8756	if invalidParams.Len() > 0 {
8757		return invalidParams
8758	}
8759	return nil
8760}
8761
8762// SetName sets the Name field's value.
8763func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
8764	s.Name = &v
8765	return s
8766}
8767
8768// SetPrincipalArn sets the PrincipalArn field's value.
8769func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
8770	s.PrincipalArn = &v
8771	return s
8772}
8773
8774type DeleteAccountSettingOutput struct {
8775	_ struct{} `type:"structure"`
8776
8777	// The account setting for the specified principal ARN.
8778	Setting *Setting `locationName:"setting" type:"structure"`
8779}
8780
8781// String returns the string representation
8782func (s DeleteAccountSettingOutput) String() string {
8783	return awsutil.Prettify(s)
8784}
8785
8786// GoString returns the string representation
8787func (s DeleteAccountSettingOutput) GoString() string {
8788	return s.String()
8789}
8790
8791// SetSetting sets the Setting field's value.
8792func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
8793	s.Setting = v
8794	return s
8795}
8796
8797type DeleteAttributesInput struct {
8798	_ struct{} `type:"structure"`
8799
8800	// The attributes to delete from your resource. You can specify up to 10 attributes
8801	// per request. For custom attributes, specify the attribute name and target
8802	// ID, but do not specify the value. If you specify the target ID using the
8803	// short form, you must also specify the target type.
8804	//
8805	// Attributes is a required field
8806	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
8807
8808	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
8809	// the resource to delete attributes. If you do not specify a cluster, the default
8810	// cluster is assumed.
8811	Cluster *string `locationName:"cluster" type:"string"`
8812}
8813
8814// String returns the string representation
8815func (s DeleteAttributesInput) String() string {
8816	return awsutil.Prettify(s)
8817}
8818
8819// GoString returns the string representation
8820func (s DeleteAttributesInput) GoString() string {
8821	return s.String()
8822}
8823
8824// Validate inspects the fields of the type to determine if they are valid.
8825func (s *DeleteAttributesInput) Validate() error {
8826	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
8827	if s.Attributes == nil {
8828		invalidParams.Add(request.NewErrParamRequired("Attributes"))
8829	}
8830	if s.Attributes != nil {
8831		for i, v := range s.Attributes {
8832			if v == nil {
8833				continue
8834			}
8835			if err := v.Validate(); err != nil {
8836				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
8837			}
8838		}
8839	}
8840
8841	if invalidParams.Len() > 0 {
8842		return invalidParams
8843	}
8844	return nil
8845}
8846
8847// SetAttributes sets the Attributes field's value.
8848func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
8849	s.Attributes = v
8850	return s
8851}
8852
8853// SetCluster sets the Cluster field's value.
8854func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
8855	s.Cluster = &v
8856	return s
8857}
8858
8859type DeleteAttributesOutput struct {
8860	_ struct{} `type:"structure"`
8861
8862	// A list of attribute objects that were successfully deleted from your resource.
8863	Attributes []*Attribute `locationName:"attributes" type:"list"`
8864}
8865
8866// String returns the string representation
8867func (s DeleteAttributesOutput) String() string {
8868	return awsutil.Prettify(s)
8869}
8870
8871// GoString returns the string representation
8872func (s DeleteAttributesOutput) GoString() string {
8873	return s.String()
8874}
8875
8876// SetAttributes sets the Attributes field's value.
8877func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
8878	s.Attributes = v
8879	return s
8880}
8881
8882type DeleteClusterInput struct {
8883	_ struct{} `type:"structure"`
8884
8885	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
8886	//
8887	// Cluster is a required field
8888	Cluster *string `locationName:"cluster" type:"string" required:"true"`
8889}
8890
8891// String returns the string representation
8892func (s DeleteClusterInput) String() string {
8893	return awsutil.Prettify(s)
8894}
8895
8896// GoString returns the string representation
8897func (s DeleteClusterInput) GoString() string {
8898	return s.String()
8899}
8900
8901// Validate inspects the fields of the type to determine if they are valid.
8902func (s *DeleteClusterInput) Validate() error {
8903	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
8904	if s.Cluster == nil {
8905		invalidParams.Add(request.NewErrParamRequired("Cluster"))
8906	}
8907
8908	if invalidParams.Len() > 0 {
8909		return invalidParams
8910	}
8911	return nil
8912}
8913
8914// SetCluster sets the Cluster field's value.
8915func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
8916	s.Cluster = &v
8917	return s
8918}
8919
8920type DeleteClusterOutput struct {
8921	_ struct{} `type:"structure"`
8922
8923	// The full description of the deleted cluster.
8924	Cluster *Cluster `locationName:"cluster" type:"structure"`
8925}
8926
8927// String returns the string representation
8928func (s DeleteClusterOutput) String() string {
8929	return awsutil.Prettify(s)
8930}
8931
8932// GoString returns the string representation
8933func (s DeleteClusterOutput) GoString() string {
8934	return s.String()
8935}
8936
8937// SetCluster sets the Cluster field's value.
8938func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
8939	s.Cluster = v
8940	return s
8941}
8942
8943type DeleteServiceInput struct {
8944	_ struct{} `type:"structure"`
8945
8946	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8947	// the service to delete. If you do not specify a cluster, the default cluster
8948	// is assumed.
8949	Cluster *string `locationName:"cluster" type:"string"`
8950
8951	// If true, allows you to delete a service even if it has not been scaled down
8952	// to zero tasks. It is only necessary to use this if the service is using the
8953	// REPLICA scheduling strategy.
8954	Force *bool `locationName:"force" type:"boolean"`
8955
8956	// The name of the service to delete.
8957	//
8958	// Service is a required field
8959	Service *string `locationName:"service" type:"string" required:"true"`
8960}
8961
8962// String returns the string representation
8963func (s DeleteServiceInput) String() string {
8964	return awsutil.Prettify(s)
8965}
8966
8967// GoString returns the string representation
8968func (s DeleteServiceInput) GoString() string {
8969	return s.String()
8970}
8971
8972// Validate inspects the fields of the type to determine if they are valid.
8973func (s *DeleteServiceInput) Validate() error {
8974	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
8975	if s.Service == nil {
8976		invalidParams.Add(request.NewErrParamRequired("Service"))
8977	}
8978
8979	if invalidParams.Len() > 0 {
8980		return invalidParams
8981	}
8982	return nil
8983}
8984
8985// SetCluster sets the Cluster field's value.
8986func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
8987	s.Cluster = &v
8988	return s
8989}
8990
8991// SetForce sets the Force field's value.
8992func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
8993	s.Force = &v
8994	return s
8995}
8996
8997// SetService sets the Service field's value.
8998func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
8999	s.Service = &v
9000	return s
9001}
9002
9003type DeleteServiceOutput struct {
9004	_ struct{} `type:"structure"`
9005
9006	// The full description of the deleted service.
9007	Service *Service `locationName:"service" type:"structure"`
9008}
9009
9010// String returns the string representation
9011func (s DeleteServiceOutput) String() string {
9012	return awsutil.Prettify(s)
9013}
9014
9015// GoString returns the string representation
9016func (s DeleteServiceOutput) GoString() string {
9017	return s.String()
9018}
9019
9020// SetService sets the Service field's value.
9021func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
9022	s.Service = v
9023	return s
9024}
9025
9026type DeleteTaskSetInput struct {
9027	_ struct{} `type:"structure"`
9028
9029	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9030	// the service that the task set exists in to delete.
9031	//
9032	// Cluster is a required field
9033	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9034
9035	// If true, this allows you to delete a task set even if it hasn't been scaled
9036	// down to zero.
9037	Force *bool `locationName:"force" type:"boolean"`
9038
9039	// The short name or full Amazon Resource Name (ARN) of the service that hosts
9040	// the task set to delete.
9041	//
9042	// Service is a required field
9043	Service *string `locationName:"service" type:"string" required:"true"`
9044
9045	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
9046	//
9047	// TaskSet is a required field
9048	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
9049}
9050
9051// String returns the string representation
9052func (s DeleteTaskSetInput) String() string {
9053	return awsutil.Prettify(s)
9054}
9055
9056// GoString returns the string representation
9057func (s DeleteTaskSetInput) GoString() string {
9058	return s.String()
9059}
9060
9061// Validate inspects the fields of the type to determine if they are valid.
9062func (s *DeleteTaskSetInput) Validate() error {
9063	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
9064	if s.Cluster == nil {
9065		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9066	}
9067	if s.Service == nil {
9068		invalidParams.Add(request.NewErrParamRequired("Service"))
9069	}
9070	if s.TaskSet == nil {
9071		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
9072	}
9073
9074	if invalidParams.Len() > 0 {
9075		return invalidParams
9076	}
9077	return nil
9078}
9079
9080// SetCluster sets the Cluster field's value.
9081func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
9082	s.Cluster = &v
9083	return s
9084}
9085
9086// SetForce sets the Force field's value.
9087func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
9088	s.Force = &v
9089	return s
9090}
9091
9092// SetService sets the Service field's value.
9093func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
9094	s.Service = &v
9095	return s
9096}
9097
9098// SetTaskSet sets the TaskSet field's value.
9099func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
9100	s.TaskSet = &v
9101	return s
9102}
9103
9104type DeleteTaskSetOutput struct {
9105	_ struct{} `type:"structure"`
9106
9107	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9108	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9109	// desired number of tasks, how many tasks are running, and whether the task
9110	// set serves production traffic.
9111	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9112}
9113
9114// String returns the string representation
9115func (s DeleteTaskSetOutput) String() string {
9116	return awsutil.Prettify(s)
9117}
9118
9119// GoString returns the string representation
9120func (s DeleteTaskSetOutput) GoString() string {
9121	return s.String()
9122}
9123
9124// SetTaskSet sets the TaskSet field's value.
9125func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
9126	s.TaskSet = v
9127	return s
9128}
9129
9130// The details of an Amazon ECS service deployment. This is used only when a
9131// service uses the ECS deployment controller type.
9132type Deployment struct {
9133	_ struct{} `type:"structure"`
9134
9135	// The capacity provider strategy that the deployment is using.
9136	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9137
9138	// The Unix timestamp for when the service deployment was created.
9139	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
9140
9141	// The most recent desired count of tasks that was specified for the service
9142	// to deploy or maintain.
9143	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
9144
9145	// The ID of the deployment.
9146	Id *string `locationName:"id" type:"string"`
9147
9148	// The launch type the tasks in the service are using. For more information,
9149	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9150	// in the Amazon Elastic Container Service Developer Guide.
9151	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9152
9153	// The VPC subnet and security group configuration for tasks that receive their
9154	// own elastic network interface by using the awsvpc networking mode.
9155	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9156
9157	// The number of tasks in the deployment that are in the PENDING status.
9158	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
9159
9160	// The platform version on which your tasks in the service are running. A platform
9161	// version is only specified for tasks using the Fargate launch type. If one
9162	// is not specified, the LATEST platform version is used by default. For more
9163	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
9164	// in the Amazon Elastic Container Service Developer Guide.
9165	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9166
9167	// The number of tasks in the deployment that are in the RUNNING status.
9168	RunningCount *int64 `locationName:"runningCount" type:"integer"`
9169
9170	// The status of the deployment. The following describes each state:
9171	//
9172	// PRIMARY
9173	//
9174	// The most recent deployment of a service.
9175	//
9176	// ACTIVE
9177	//
9178	// A service deployment that still has running tasks, but are in the process
9179	// of being replaced with a new PRIMARY deployment.
9180	//
9181	// INACTIVE
9182	//
9183	// A deployment that has been completely replaced.
9184	Status *string `locationName:"status" type:"string"`
9185
9186	// The most recent task definition that was specified for the tasks in the service
9187	// to use.
9188	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
9189
9190	// The Unix timestamp for when the service deployment was last updated.
9191	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
9192}
9193
9194// String returns the string representation
9195func (s Deployment) String() string {
9196	return awsutil.Prettify(s)
9197}
9198
9199// GoString returns the string representation
9200func (s Deployment) GoString() string {
9201	return s.String()
9202}
9203
9204// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9205func (s *Deployment) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Deployment {
9206	s.CapacityProviderStrategy = v
9207	return s
9208}
9209
9210// SetCreatedAt sets the CreatedAt field's value.
9211func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
9212	s.CreatedAt = &v
9213	return s
9214}
9215
9216// SetDesiredCount sets the DesiredCount field's value.
9217func (s *Deployment) SetDesiredCount(v int64) *Deployment {
9218	s.DesiredCount = &v
9219	return s
9220}
9221
9222// SetId sets the Id field's value.
9223func (s *Deployment) SetId(v string) *Deployment {
9224	s.Id = &v
9225	return s
9226}
9227
9228// SetLaunchType sets the LaunchType field's value.
9229func (s *Deployment) SetLaunchType(v string) *Deployment {
9230	s.LaunchType = &v
9231	return s
9232}
9233
9234// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9235func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
9236	s.NetworkConfiguration = v
9237	return s
9238}
9239
9240// SetPendingCount sets the PendingCount field's value.
9241func (s *Deployment) SetPendingCount(v int64) *Deployment {
9242	s.PendingCount = &v
9243	return s
9244}
9245
9246// SetPlatformVersion sets the PlatformVersion field's value.
9247func (s *Deployment) SetPlatformVersion(v string) *Deployment {
9248	s.PlatformVersion = &v
9249	return s
9250}
9251
9252// SetRunningCount sets the RunningCount field's value.
9253func (s *Deployment) SetRunningCount(v int64) *Deployment {
9254	s.RunningCount = &v
9255	return s
9256}
9257
9258// SetStatus sets the Status field's value.
9259func (s *Deployment) SetStatus(v string) *Deployment {
9260	s.Status = &v
9261	return s
9262}
9263
9264// SetTaskDefinition sets the TaskDefinition field's value.
9265func (s *Deployment) SetTaskDefinition(v string) *Deployment {
9266	s.TaskDefinition = &v
9267	return s
9268}
9269
9270// SetUpdatedAt sets the UpdatedAt field's value.
9271func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
9272	s.UpdatedAt = &v
9273	return s
9274}
9275
9276// Optional deployment parameters that control how many tasks run during a deployment
9277// and the ordering of stopping and starting tasks.
9278type DeploymentConfiguration struct {
9279	_ struct{} `type:"structure"`
9280
9281	// If a service is using the rolling update (ECS) deployment type, the maximum
9282	// percent parameter represents an upper limit on the number of tasks in a service
9283	// that are allowed in the RUNNING or PENDING state during a deployment, as
9284	// a percentage of the desired number of tasks (rounded down to the nearest
9285	// integer), and while any container instances are in the DRAINING state if
9286	// the service contains tasks using the EC2 launch type. This parameter enables
9287	// you to define the deployment batch size. For example, if your service has
9288	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
9289	// may start four new tasks before stopping the four older tasks (provided that
9290	// the cluster resources required to do this are available). The default value
9291	// for maximum percent is 200%.
9292	//
9293	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
9294	// types and tasks that use the EC2 launch type, the maximum percent value is
9295	// set to the default value and is used to define the upper limit on the number
9296	// of the tasks in the service that remain in the RUNNING state while the container
9297	// instances are in the DRAINING state. If the tasks in the service use the
9298	// Fargate launch type, the maximum percent value is not used, although it is
9299	// returned when describing your service.
9300	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
9301
9302	// If a service is using the rolling update (ECS) deployment type, the minimum
9303	// healthy percent represents a lower limit on the number of tasks in a service
9304	// that must remain in the RUNNING state during a deployment, as a percentage
9305	// of the desired number of tasks (rounded up to the nearest integer), and while
9306	// any container instances are in the DRAINING state if the service contains
9307	// tasks using the EC2 launch type. This parameter enables you to deploy without
9308	// using additional cluster capacity. For example, if your service has a desired
9309	// number of four tasks and a minimum healthy percent of 50%, the scheduler
9310	// may stop two existing tasks to free up cluster capacity before starting two
9311	// new tasks. Tasks for services that do not use a load balancer are considered
9312	// healthy if they are in the RUNNING state; tasks for services that do use
9313	// a load balancer are considered healthy if they are in the RUNNING state and
9314	// they are reported as healthy by the load balancer. The default value for
9315	// minimum healthy percent is 100%.
9316	//
9317	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
9318	// types and tasks that use the EC2 launch type, the minimum healthy percent
9319	// value is set to the default value and is used to define the lower limit on
9320	// the number of the tasks in the service that remain in the RUNNING state while
9321	// the container instances are in the DRAINING state. If the tasks in the service
9322	// use the Fargate launch type, the minimum healthy percent value is not used,
9323	// although it is returned when describing your service.
9324	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
9325}
9326
9327// String returns the string representation
9328func (s DeploymentConfiguration) String() string {
9329	return awsutil.Prettify(s)
9330}
9331
9332// GoString returns the string representation
9333func (s DeploymentConfiguration) GoString() string {
9334	return s.String()
9335}
9336
9337// SetMaximumPercent sets the MaximumPercent field's value.
9338func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
9339	s.MaximumPercent = &v
9340	return s
9341}
9342
9343// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
9344func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
9345	s.MinimumHealthyPercent = &v
9346	return s
9347}
9348
9349// The deployment controller to use for the service. For more information, see
9350// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
9351// in the Amazon Elastic Container Service Developer Guide.
9352type DeploymentController struct {
9353	_ struct{} `type:"structure"`
9354
9355	// The deployment controller type to use.
9356	//
9357	// There are three deployment controller types available:
9358	//
9359	// ECS
9360	//
9361	// The rolling update (ECS) deployment type involves replacing the current running
9362	// version of the container with the latest version. The number of containers
9363	// Amazon ECS adds or removes from the service during a rolling update is controlled
9364	// by adjusting the minimum and maximum number of healthy tasks allowed during
9365	// a service deployment, as specified in the DeploymentConfiguration.
9366	//
9367	// CODE_DEPLOY
9368	//
9369	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
9370	// model powered by AWS CodeDeploy, which allows you to verify a new deployment
9371	// of a service before sending production traffic to it.
9372	//
9373	// EXTERNAL
9374	//
9375	// The external (EXTERNAL) deployment type enables you to use any third-party
9376	// deployment controller for full control over the deployment process for an
9377	// Amazon ECS service.
9378	//
9379	// Type is a required field
9380	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
9381}
9382
9383// String returns the string representation
9384func (s DeploymentController) String() string {
9385	return awsutil.Prettify(s)
9386}
9387
9388// GoString returns the string representation
9389func (s DeploymentController) GoString() string {
9390	return s.String()
9391}
9392
9393// Validate inspects the fields of the type to determine if they are valid.
9394func (s *DeploymentController) Validate() error {
9395	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
9396	if s.Type == nil {
9397		invalidParams.Add(request.NewErrParamRequired("Type"))
9398	}
9399
9400	if invalidParams.Len() > 0 {
9401		return invalidParams
9402	}
9403	return nil
9404}
9405
9406// SetType sets the Type field's value.
9407func (s *DeploymentController) SetType(v string) *DeploymentController {
9408	s.Type = &v
9409	return s
9410}
9411
9412type DeregisterContainerInstanceInput struct {
9413	_ struct{} `type:"structure"`
9414
9415	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9416	// the container instance to deregister. If you do not specify a cluster, the
9417	// default cluster is assumed.
9418	Cluster *string `locationName:"cluster" type:"string"`
9419
9420	// The container instance ID or full ARN of the container instance to deregister.
9421	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
9422	// container instance, the AWS account ID of the container instance owner, the
9423	// container-instance namespace, and then the container instance ID. For example,
9424	// arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
9425	//
9426	// ContainerInstance is a required field
9427	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
9428
9429	// Forces the deregistration of the container instance. If you have tasks running
9430	// on the container instance when you deregister it with the force option, these
9431	// tasks remain running until you terminate the instance or the tasks stop through
9432	// some other means, but they are orphaned (no longer monitored or accounted
9433	// for by Amazon ECS). If an orphaned task on your container instance is part
9434	// of an Amazon ECS service, then the service scheduler starts another copy
9435	// of that task, on a different container instance if possible.
9436	//
9437	// Any containers in orphaned service tasks that are registered with a Classic
9438	// Load Balancer or an Application Load Balancer target group are deregistered.
9439	// They begin connection draining according to the settings on the load balancer
9440	// or target group.
9441	Force *bool `locationName:"force" type:"boolean"`
9442}
9443
9444// String returns the string representation
9445func (s DeregisterContainerInstanceInput) String() string {
9446	return awsutil.Prettify(s)
9447}
9448
9449// GoString returns the string representation
9450func (s DeregisterContainerInstanceInput) GoString() string {
9451	return s.String()
9452}
9453
9454// Validate inspects the fields of the type to determine if they are valid.
9455func (s *DeregisterContainerInstanceInput) Validate() error {
9456	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
9457	if s.ContainerInstance == nil {
9458		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
9459	}
9460
9461	if invalidParams.Len() > 0 {
9462		return invalidParams
9463	}
9464	return nil
9465}
9466
9467// SetCluster sets the Cluster field's value.
9468func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
9469	s.Cluster = &v
9470	return s
9471}
9472
9473// SetContainerInstance sets the ContainerInstance field's value.
9474func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
9475	s.ContainerInstance = &v
9476	return s
9477}
9478
9479// SetForce sets the Force field's value.
9480func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
9481	s.Force = &v
9482	return s
9483}
9484
9485type DeregisterContainerInstanceOutput struct {
9486	_ struct{} `type:"structure"`
9487
9488	// The container instance that was deregistered.
9489	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
9490}
9491
9492// String returns the string representation
9493func (s DeregisterContainerInstanceOutput) String() string {
9494	return awsutil.Prettify(s)
9495}
9496
9497// GoString returns the string representation
9498func (s DeregisterContainerInstanceOutput) GoString() string {
9499	return s.String()
9500}
9501
9502// SetContainerInstance sets the ContainerInstance field's value.
9503func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
9504	s.ContainerInstance = v
9505	return s
9506}
9507
9508type DeregisterTaskDefinitionInput struct {
9509	_ struct{} `type:"structure"`
9510
9511	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
9512	// of the task definition to deregister. You must specify a revision.
9513	//
9514	// TaskDefinition is a required field
9515	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
9516}
9517
9518// String returns the string representation
9519func (s DeregisterTaskDefinitionInput) String() string {
9520	return awsutil.Prettify(s)
9521}
9522
9523// GoString returns the string representation
9524func (s DeregisterTaskDefinitionInput) GoString() string {
9525	return s.String()
9526}
9527
9528// Validate inspects the fields of the type to determine if they are valid.
9529func (s *DeregisterTaskDefinitionInput) Validate() error {
9530	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
9531	if s.TaskDefinition == nil {
9532		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
9533	}
9534
9535	if invalidParams.Len() > 0 {
9536		return invalidParams
9537	}
9538	return nil
9539}
9540
9541// SetTaskDefinition sets the TaskDefinition field's value.
9542func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
9543	s.TaskDefinition = &v
9544	return s
9545}
9546
9547type DeregisterTaskDefinitionOutput struct {
9548	_ struct{} `type:"structure"`
9549
9550	// The full description of the deregistered task.
9551	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
9552}
9553
9554// String returns the string representation
9555func (s DeregisterTaskDefinitionOutput) String() string {
9556	return awsutil.Prettify(s)
9557}
9558
9559// GoString returns the string representation
9560func (s DeregisterTaskDefinitionOutput) GoString() string {
9561	return s.String()
9562}
9563
9564// SetTaskDefinition sets the TaskDefinition field's value.
9565func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
9566	s.TaskDefinition = v
9567	return s
9568}
9569
9570type DescribeCapacityProvidersInput struct {
9571	_ struct{} `type:"structure"`
9572
9573	// The short name or full Amazon Resource Name (ARN) of one or more capacity
9574	// providers. Up to 100 capacity providers can be described in an action.
9575	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
9576
9577	// Specifies whether or not you want to see the resource tags for the capacity
9578	// provider. If TAGS is specified, the tags are included in the response. If
9579	// this field is omitted, tags are not included in the response.
9580	Include []*string `locationName:"include" type:"list"`
9581
9582	// The maximum number of account setting results returned by DescribeCapacityProviders
9583	// in paginated output. When this parameter is used, DescribeCapacityProviders
9584	// only returns maxResults results in a single page along with a nextToken response
9585	// element. The remaining results of the initial request can be seen by sending
9586	// another DescribeCapacityProviders request with the returned nextToken value.
9587	// This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders
9588	// returns up to 10 results and a nextToken value if applicable.
9589	MaxResults *int64 `locationName:"maxResults" type:"integer"`
9590
9591	// The nextToken value returned from a previous paginated DescribeCapacityProviders
9592	// request where maxResults was used and the results exceeded the value of that
9593	// parameter. Pagination continues from the end of the previous results that
9594	// returned the nextToken value.
9595	//
9596	// This token should be treated as an opaque identifier that is only used to
9597	// retrieve the next items in a list and not for other programmatic purposes.
9598	NextToken *string `locationName:"nextToken" type:"string"`
9599}
9600
9601// String returns the string representation
9602func (s DescribeCapacityProvidersInput) String() string {
9603	return awsutil.Prettify(s)
9604}
9605
9606// GoString returns the string representation
9607func (s DescribeCapacityProvidersInput) GoString() string {
9608	return s.String()
9609}
9610
9611// SetCapacityProviders sets the CapacityProviders field's value.
9612func (s *DescribeCapacityProvidersInput) SetCapacityProviders(v []*string) *DescribeCapacityProvidersInput {
9613	s.CapacityProviders = v
9614	return s
9615}
9616
9617// SetInclude sets the Include field's value.
9618func (s *DescribeCapacityProvidersInput) SetInclude(v []*string) *DescribeCapacityProvidersInput {
9619	s.Include = v
9620	return s
9621}
9622
9623// SetMaxResults sets the MaxResults field's value.
9624func (s *DescribeCapacityProvidersInput) SetMaxResults(v int64) *DescribeCapacityProvidersInput {
9625	s.MaxResults = &v
9626	return s
9627}
9628
9629// SetNextToken sets the NextToken field's value.
9630func (s *DescribeCapacityProvidersInput) SetNextToken(v string) *DescribeCapacityProvidersInput {
9631	s.NextToken = &v
9632	return s
9633}
9634
9635type DescribeCapacityProvidersOutput struct {
9636	_ struct{} `type:"structure"`
9637
9638	// The list of capacity providers.
9639	CapacityProviders []*CapacityProvider `locationName:"capacityProviders" type:"list"`
9640
9641	// Any failures associated with the call.
9642	Failures []*Failure `locationName:"failures" type:"list"`
9643
9644	// The nextToken value to include in a future DescribeCapacityProviders request.
9645	// When the results of a DescribeCapacityProviders request exceed maxResults,
9646	// this value can be used to retrieve the next page of results. This value is
9647	// null when there are no more results to return.
9648	NextToken *string `locationName:"nextToken" type:"string"`
9649}
9650
9651// String returns the string representation
9652func (s DescribeCapacityProvidersOutput) String() string {
9653	return awsutil.Prettify(s)
9654}
9655
9656// GoString returns the string representation
9657func (s DescribeCapacityProvidersOutput) GoString() string {
9658	return s.String()
9659}
9660
9661// SetCapacityProviders sets the CapacityProviders field's value.
9662func (s *DescribeCapacityProvidersOutput) SetCapacityProviders(v []*CapacityProvider) *DescribeCapacityProvidersOutput {
9663	s.CapacityProviders = v
9664	return s
9665}
9666
9667// SetFailures sets the Failures field's value.
9668func (s *DescribeCapacityProvidersOutput) SetFailures(v []*Failure) *DescribeCapacityProvidersOutput {
9669	s.Failures = v
9670	return s
9671}
9672
9673// SetNextToken sets the NextToken field's value.
9674func (s *DescribeCapacityProvidersOutput) SetNextToken(v string) *DescribeCapacityProvidersOutput {
9675	s.NextToken = &v
9676	return s
9677}
9678
9679type DescribeClustersInput struct {
9680	_ struct{} `type:"structure"`
9681
9682	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
9683	// entries. If you do not specify a cluster, the default cluster is assumed.
9684	Clusters []*string `locationName:"clusters" type:"list"`
9685
9686	// Whether to include additional information about your clusters in the response.
9687	// If this field is omitted, the attachments, statistics, and tags are not included.
9688	//
9689	// If ATTACHMENTS is specified, the attachments for the container instances
9690	// or tasks within the cluster are included.
9691	//
9692	// If SETTINGS is specified, the settings for the cluster are included.
9693	//
9694	// If STATISTICS is specified, the following additional information, separated
9695	// by launch type, is included:
9696	//
9697	//    * runningEC2TasksCount
9698	//
9699	//    * runningFargateTasksCount
9700	//
9701	//    * pendingEC2TasksCount
9702	//
9703	//    * pendingFargateTasksCount
9704	//
9705	//    * activeEC2ServiceCount
9706	//
9707	//    * activeFargateServiceCount
9708	//
9709	//    * drainingEC2ServiceCount
9710	//
9711	//    * drainingFargateServiceCount
9712	//
9713	// If TAGS is specified, the metadata tags associated with the cluster are included.
9714	Include []*string `locationName:"include" type:"list"`
9715}
9716
9717// String returns the string representation
9718func (s DescribeClustersInput) String() string {
9719	return awsutil.Prettify(s)
9720}
9721
9722// GoString returns the string representation
9723func (s DescribeClustersInput) GoString() string {
9724	return s.String()
9725}
9726
9727// SetClusters sets the Clusters field's value.
9728func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
9729	s.Clusters = v
9730	return s
9731}
9732
9733// SetInclude sets the Include field's value.
9734func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
9735	s.Include = v
9736	return s
9737}
9738
9739type DescribeClustersOutput struct {
9740	_ struct{} `type:"structure"`
9741
9742	// The list of clusters.
9743	Clusters []*Cluster `locationName:"clusters" type:"list"`
9744
9745	// Any failures associated with the call.
9746	Failures []*Failure `locationName:"failures" type:"list"`
9747}
9748
9749// String returns the string representation
9750func (s DescribeClustersOutput) String() string {
9751	return awsutil.Prettify(s)
9752}
9753
9754// GoString returns the string representation
9755func (s DescribeClustersOutput) GoString() string {
9756	return s.String()
9757}
9758
9759// SetClusters sets the Clusters field's value.
9760func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
9761	s.Clusters = v
9762	return s
9763}
9764
9765// SetFailures sets the Failures field's value.
9766func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
9767	s.Failures = v
9768	return s
9769}
9770
9771type DescribeContainerInstancesInput struct {
9772	_ struct{} `type:"structure"`
9773
9774	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9775	// the container instances to describe. If you do not specify a cluster, the
9776	// default cluster is assumed. This parameter is required if the container instance
9777	// or container instances you are describing were launched in any cluster other
9778	// than the default cluster.
9779	Cluster *string `locationName:"cluster" type:"string"`
9780
9781	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
9782	// entries.
9783	//
9784	// ContainerInstances is a required field
9785	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
9786
9787	// Specifies whether you want to see the resource tags for the container instance.
9788	// If TAGS is specified, the tags are included in the response. If this field
9789	// is omitted, tags are not included in the response.
9790	Include []*string `locationName:"include" type:"list"`
9791}
9792
9793// String returns the string representation
9794func (s DescribeContainerInstancesInput) String() string {
9795	return awsutil.Prettify(s)
9796}
9797
9798// GoString returns the string representation
9799func (s DescribeContainerInstancesInput) GoString() string {
9800	return s.String()
9801}
9802
9803// Validate inspects the fields of the type to determine if they are valid.
9804func (s *DescribeContainerInstancesInput) Validate() error {
9805	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
9806	if s.ContainerInstances == nil {
9807		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
9808	}
9809
9810	if invalidParams.Len() > 0 {
9811		return invalidParams
9812	}
9813	return nil
9814}
9815
9816// SetCluster sets the Cluster field's value.
9817func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
9818	s.Cluster = &v
9819	return s
9820}
9821
9822// SetContainerInstances sets the ContainerInstances field's value.
9823func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
9824	s.ContainerInstances = v
9825	return s
9826}
9827
9828// SetInclude sets the Include field's value.
9829func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
9830	s.Include = v
9831	return s
9832}
9833
9834type DescribeContainerInstancesOutput struct {
9835	_ struct{} `type:"structure"`
9836
9837	// The list of container instances.
9838	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
9839
9840	// Any failures associated with the call.
9841	Failures []*Failure `locationName:"failures" type:"list"`
9842}
9843
9844// String returns the string representation
9845func (s DescribeContainerInstancesOutput) String() string {
9846	return awsutil.Prettify(s)
9847}
9848
9849// GoString returns the string representation
9850func (s DescribeContainerInstancesOutput) GoString() string {
9851	return s.String()
9852}
9853
9854// SetContainerInstances sets the ContainerInstances field's value.
9855func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
9856	s.ContainerInstances = v
9857	return s
9858}
9859
9860// SetFailures sets the Failures field's value.
9861func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
9862	s.Failures = v
9863	return s
9864}
9865
9866type DescribeServicesInput struct {
9867	_ struct{} `type:"structure"`
9868
9869	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
9870	// service to describe. If you do not specify a cluster, the default cluster
9871	// is assumed. This parameter is required if the service or services you are
9872	// describing were launched in any cluster other than the default cluster.
9873	Cluster *string `locationName:"cluster" type:"string"`
9874
9875	// Specifies whether you want to see the resource tags for the service. If TAGS
9876	// is specified, the tags are included in the response. If this field is omitted,
9877	// tags are not included in the response.
9878	Include []*string `locationName:"include" type:"list"`
9879
9880	// A list of services to describe. You may specify up to 10 services to describe
9881	// in a single operation.
9882	//
9883	// Services is a required field
9884	Services []*string `locationName:"services" type:"list" required:"true"`
9885}
9886
9887// String returns the string representation
9888func (s DescribeServicesInput) String() string {
9889	return awsutil.Prettify(s)
9890}
9891
9892// GoString returns the string representation
9893func (s DescribeServicesInput) GoString() string {
9894	return s.String()
9895}
9896
9897// Validate inspects the fields of the type to determine if they are valid.
9898func (s *DescribeServicesInput) Validate() error {
9899	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
9900	if s.Services == nil {
9901		invalidParams.Add(request.NewErrParamRequired("Services"))
9902	}
9903
9904	if invalidParams.Len() > 0 {
9905		return invalidParams
9906	}
9907	return nil
9908}
9909
9910// SetCluster sets the Cluster field's value.
9911func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
9912	s.Cluster = &v
9913	return s
9914}
9915
9916// SetInclude sets the Include field's value.
9917func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
9918	s.Include = v
9919	return s
9920}
9921
9922// SetServices sets the Services field's value.
9923func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
9924	s.Services = v
9925	return s
9926}
9927
9928type DescribeServicesOutput struct {
9929	_ struct{} `type:"structure"`
9930
9931	// Any failures associated with the call.
9932	Failures []*Failure `locationName:"failures" type:"list"`
9933
9934	// The list of services described.
9935	Services []*Service `locationName:"services" type:"list"`
9936}
9937
9938// String returns the string representation
9939func (s DescribeServicesOutput) String() string {
9940	return awsutil.Prettify(s)
9941}
9942
9943// GoString returns the string representation
9944func (s DescribeServicesOutput) GoString() string {
9945	return s.String()
9946}
9947
9948// SetFailures sets the Failures field's value.
9949func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
9950	s.Failures = v
9951	return s
9952}
9953
9954// SetServices sets the Services field's value.
9955func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
9956	s.Services = v
9957	return s
9958}
9959
9960type DescribeTaskDefinitionInput struct {
9961	_ struct{} `type:"structure"`
9962
9963	// Specifies whether to see the resource tags for the task definition. If TAGS
9964	// is specified, the tags are included in the response. If this field is omitted,
9965	// tags are not included in the response.
9966	Include []*string `locationName:"include" type:"list"`
9967
9968	// The family for the latest ACTIVE revision, family and revision (family:revision)
9969	// for a specific revision in the family, or full Amazon Resource Name (ARN)
9970	// of the task definition to describe.
9971	//
9972	// TaskDefinition is a required field
9973	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
9974}
9975
9976// String returns the string representation
9977func (s DescribeTaskDefinitionInput) String() string {
9978	return awsutil.Prettify(s)
9979}
9980
9981// GoString returns the string representation
9982func (s DescribeTaskDefinitionInput) GoString() string {
9983	return s.String()
9984}
9985
9986// Validate inspects the fields of the type to determine if they are valid.
9987func (s *DescribeTaskDefinitionInput) Validate() error {
9988	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
9989	if s.TaskDefinition == nil {
9990		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
9991	}
9992
9993	if invalidParams.Len() > 0 {
9994		return invalidParams
9995	}
9996	return nil
9997}
9998
9999// SetInclude sets the Include field's value.
10000func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
10001	s.Include = v
10002	return s
10003}
10004
10005// SetTaskDefinition sets the TaskDefinition field's value.
10006func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
10007	s.TaskDefinition = &v
10008	return s
10009}
10010
10011type DescribeTaskDefinitionOutput struct {
10012	_ struct{} `type:"structure"`
10013
10014	// The metadata that is applied to the task definition to help you categorize
10015	// and organize them. Each tag consists of a key and an optional value, both
10016	// of which you define.
10017	//
10018	// The following basic restrictions apply to tags:
10019	//
10020	//    * Maximum number of tags per resource - 50
10021	//
10022	//    * For each resource, each tag key must be unique, and each tag key can
10023	//    have only one value.
10024	//
10025	//    * Maximum key length - 128 Unicode characters in UTF-8
10026	//
10027	//    * Maximum value length - 256 Unicode characters in UTF-8
10028	//
10029	//    * If your tagging schema is used across multiple services and resources,
10030	//    remember that other services may have restrictions on allowed characters.
10031	//    Generally allowed characters are: letters, numbers, and spaces representable
10032	//    in UTF-8, and the following characters: + - = . _ : / @.
10033	//
10034	//    * Tag keys and values are case-sensitive.
10035	//
10036	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
10037	//    as a prefix for either keys or values as it is reserved for AWS use. You
10038	//    cannot edit or delete tag keys or values with this prefix. Tags with this
10039	//    prefix do not count against your tags per resource limit.
10040	Tags []*Tag `locationName:"tags" type:"list"`
10041
10042	// The full task definition description.
10043	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10044}
10045
10046// String returns the string representation
10047func (s DescribeTaskDefinitionOutput) String() string {
10048	return awsutil.Prettify(s)
10049}
10050
10051// GoString returns the string representation
10052func (s DescribeTaskDefinitionOutput) GoString() string {
10053	return s.String()
10054}
10055
10056// SetTags sets the Tags field's value.
10057func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
10058	s.Tags = v
10059	return s
10060}
10061
10062// SetTaskDefinition sets the TaskDefinition field's value.
10063func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
10064	s.TaskDefinition = v
10065	return s
10066}
10067
10068type DescribeTaskSetsInput struct {
10069	_ struct{} `type:"structure"`
10070
10071	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10072	// the service that the task sets exist in.
10073	//
10074	// Cluster is a required field
10075	Cluster *string `locationName:"cluster" type:"string" required:"true"`
10076
10077	// The short name or full Amazon Resource Name (ARN) of the service that the
10078	// task sets exist in.
10079	//
10080	// Service is a required field
10081	Service *string `locationName:"service" type:"string" required:"true"`
10082
10083	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
10084	TaskSets []*string `locationName:"taskSets" type:"list"`
10085}
10086
10087// String returns the string representation
10088func (s DescribeTaskSetsInput) String() string {
10089	return awsutil.Prettify(s)
10090}
10091
10092// GoString returns the string representation
10093func (s DescribeTaskSetsInput) GoString() string {
10094	return s.String()
10095}
10096
10097// Validate inspects the fields of the type to determine if they are valid.
10098func (s *DescribeTaskSetsInput) Validate() error {
10099	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
10100	if s.Cluster == nil {
10101		invalidParams.Add(request.NewErrParamRequired("Cluster"))
10102	}
10103	if s.Service == nil {
10104		invalidParams.Add(request.NewErrParamRequired("Service"))
10105	}
10106
10107	if invalidParams.Len() > 0 {
10108		return invalidParams
10109	}
10110	return nil
10111}
10112
10113// SetCluster sets the Cluster field's value.
10114func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
10115	s.Cluster = &v
10116	return s
10117}
10118
10119// SetService sets the Service field's value.
10120func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
10121	s.Service = &v
10122	return s
10123}
10124
10125// SetTaskSets sets the TaskSets field's value.
10126func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
10127	s.TaskSets = v
10128	return s
10129}
10130
10131type DescribeTaskSetsOutput struct {
10132	_ struct{} `type:"structure"`
10133
10134	// Any failures associated with the call.
10135	Failures []*Failure `locationName:"failures" type:"list"`
10136
10137	// The list of task sets described.
10138	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
10139}
10140
10141// String returns the string representation
10142func (s DescribeTaskSetsOutput) String() string {
10143	return awsutil.Prettify(s)
10144}
10145
10146// GoString returns the string representation
10147func (s DescribeTaskSetsOutput) GoString() string {
10148	return s.String()
10149}
10150
10151// SetFailures sets the Failures field's value.
10152func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
10153	s.Failures = v
10154	return s
10155}
10156
10157// SetTaskSets sets the TaskSets field's value.
10158func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
10159	s.TaskSets = v
10160	return s
10161}
10162
10163type DescribeTasksInput struct {
10164	_ struct{} `type:"structure"`
10165
10166	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10167	// the task or tasks to describe. If you do not specify a cluster, the default
10168	// cluster is assumed. This parameter is required if the task or tasks you are
10169	// describing were launched in any cluster other than the default cluster.
10170	Cluster *string `locationName:"cluster" type:"string"`
10171
10172	// Specifies whether you want to see the resource tags for the task. If TAGS
10173	// is specified, the tags are included in the response. If this field is omitted,
10174	// tags are not included in the response.
10175	Include []*string `locationName:"include" type:"list"`
10176
10177	// A list of up to 100 task IDs or full ARN entries.
10178	//
10179	// Tasks is a required field
10180	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
10181}
10182
10183// String returns the string representation
10184func (s DescribeTasksInput) String() string {
10185	return awsutil.Prettify(s)
10186}
10187
10188// GoString returns the string representation
10189func (s DescribeTasksInput) GoString() string {
10190	return s.String()
10191}
10192
10193// Validate inspects the fields of the type to determine if they are valid.
10194func (s *DescribeTasksInput) Validate() error {
10195	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
10196	if s.Tasks == nil {
10197		invalidParams.Add(request.NewErrParamRequired("Tasks"))
10198	}
10199
10200	if invalidParams.Len() > 0 {
10201		return invalidParams
10202	}
10203	return nil
10204}
10205
10206// SetCluster sets the Cluster field's value.
10207func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
10208	s.Cluster = &v
10209	return s
10210}
10211
10212// SetInclude sets the Include field's value.
10213func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
10214	s.Include = v
10215	return s
10216}
10217
10218// SetTasks sets the Tasks field's value.
10219func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
10220	s.Tasks = v
10221	return s
10222}
10223
10224type DescribeTasksOutput struct {
10225	_ struct{} `type:"structure"`
10226
10227	// Any failures associated with the call.
10228	Failures []*Failure `locationName:"failures" type:"list"`
10229
10230	// The list of tasks.
10231	Tasks []*Task `locationName:"tasks" type:"list"`
10232}
10233
10234// String returns the string representation
10235func (s DescribeTasksOutput) String() string {
10236	return awsutil.Prettify(s)
10237}
10238
10239// GoString returns the string representation
10240func (s DescribeTasksOutput) GoString() string {
10241	return s.String()
10242}
10243
10244// SetFailures sets the Failures field's value.
10245func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
10246	s.Failures = v
10247	return s
10248}
10249
10250// SetTasks sets the Tasks field's value.
10251func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
10252	s.Tasks = v
10253	return s
10254}
10255
10256// An object representing a container instance host device.
10257type Device struct {
10258	_ struct{} `type:"structure"`
10259
10260	// The path inside the container at which to expose the host device.
10261	ContainerPath *string `locationName:"containerPath" type:"string"`
10262
10263	// The path for the device on the host container instance.
10264	//
10265	// HostPath is a required field
10266	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
10267
10268	// The explicit permissions to provide to the container for the device. By default,
10269	// the container has permissions for read, write, and mknod for the device.
10270	Permissions []*string `locationName:"permissions" type:"list"`
10271}
10272
10273// String returns the string representation
10274func (s Device) String() string {
10275	return awsutil.Prettify(s)
10276}
10277
10278// GoString returns the string representation
10279func (s Device) GoString() string {
10280	return s.String()
10281}
10282
10283// Validate inspects the fields of the type to determine if they are valid.
10284func (s *Device) Validate() error {
10285	invalidParams := request.ErrInvalidParams{Context: "Device"}
10286	if s.HostPath == nil {
10287		invalidParams.Add(request.NewErrParamRequired("HostPath"))
10288	}
10289
10290	if invalidParams.Len() > 0 {
10291		return invalidParams
10292	}
10293	return nil
10294}
10295
10296// SetContainerPath sets the ContainerPath field's value.
10297func (s *Device) SetContainerPath(v string) *Device {
10298	s.ContainerPath = &v
10299	return s
10300}
10301
10302// SetHostPath sets the HostPath field's value.
10303func (s *Device) SetHostPath(v string) *Device {
10304	s.HostPath = &v
10305	return s
10306}
10307
10308// SetPermissions sets the Permissions field's value.
10309func (s *Device) SetPermissions(v []*string) *Device {
10310	s.Permissions = v
10311	return s
10312}
10313
10314type DiscoverPollEndpointInput struct {
10315	_ struct{} `type:"structure"`
10316
10317	// The short name or full Amazon Resource Name (ARN) of the cluster to which
10318	// the container instance belongs.
10319	Cluster *string `locationName:"cluster" type:"string"`
10320
10321	// The container instance ID or full ARN of the container instance. The ARN
10322	// contains the arn:aws:ecs namespace, followed by the Region of the container
10323	// instance, the AWS account ID of the container instance owner, the container-instance
10324	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
10325	ContainerInstance *string `locationName:"containerInstance" type:"string"`
10326}
10327
10328// String returns the string representation
10329func (s DiscoverPollEndpointInput) String() string {
10330	return awsutil.Prettify(s)
10331}
10332
10333// GoString returns the string representation
10334func (s DiscoverPollEndpointInput) GoString() string {
10335	return s.String()
10336}
10337
10338// SetCluster sets the Cluster field's value.
10339func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
10340	s.Cluster = &v
10341	return s
10342}
10343
10344// SetContainerInstance sets the ContainerInstance field's value.
10345func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
10346	s.ContainerInstance = &v
10347	return s
10348}
10349
10350type DiscoverPollEndpointOutput struct {
10351	_ struct{} `type:"structure"`
10352
10353	// The endpoint for the Amazon ECS agent to poll.
10354	Endpoint *string `locationName:"endpoint" type:"string"`
10355
10356	// The telemetry endpoint for the Amazon ECS agent.
10357	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
10358}
10359
10360// String returns the string representation
10361func (s DiscoverPollEndpointOutput) String() string {
10362	return awsutil.Prettify(s)
10363}
10364
10365// GoString returns the string representation
10366func (s DiscoverPollEndpointOutput) GoString() string {
10367	return s.String()
10368}
10369
10370// SetEndpoint sets the Endpoint field's value.
10371func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
10372	s.Endpoint = &v
10373	return s
10374}
10375
10376// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
10377func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
10378	s.TelemetryEndpoint = &v
10379	return s
10380}
10381
10382// This parameter is specified when you are using Docker volumes. Docker volumes
10383// are only supported when you are using the EC2 launch type. Windows containers
10384// only support the use of the local driver. To use bind mounts, specify a host
10385// instead.
10386type DockerVolumeConfiguration struct {
10387	_ struct{} `type:"structure"`
10388
10389	// If this value is true, the Docker volume is created if it does not already
10390	// exist.
10391	//
10392	// This field is only used if the scope is shared.
10393	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
10394
10395	// The Docker volume driver to use. The driver value must match the driver name
10396	// provided by Docker because it is used for task placement. If the driver was
10397	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
10398	// driver name from your container instance. If the driver was installed using
10399	// another method, use Docker plugin discovery to retrieve the driver name.
10400	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
10401	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
10402	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
10403	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
10404	Driver *string `locationName:"driver" type:"string"`
10405
10406	// A map of Docker driver-specific options passed through. This parameter maps
10407	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
10408	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
10409	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
10410	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
10411
10412	// Custom metadata to add to your Docker volume. This parameter maps to Labels
10413	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
10414	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
10415	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
10416	Labels map[string]*string `locationName:"labels" type:"map"`
10417
10418	// The scope for the Docker volume that determines its lifecycle. Docker volumes
10419	// that are scoped to a task are automatically provisioned when the task starts
10420	// and destroyed when the task stops. Docker volumes that are scoped as shared
10421	// persist after the task stops.
10422	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
10423}
10424
10425// String returns the string representation
10426func (s DockerVolumeConfiguration) String() string {
10427	return awsutil.Prettify(s)
10428}
10429
10430// GoString returns the string representation
10431func (s DockerVolumeConfiguration) GoString() string {
10432	return s.String()
10433}
10434
10435// SetAutoprovision sets the Autoprovision field's value.
10436func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
10437	s.Autoprovision = &v
10438	return s
10439}
10440
10441// SetDriver sets the Driver field's value.
10442func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
10443	s.Driver = &v
10444	return s
10445}
10446
10447// SetDriverOpts sets the DriverOpts field's value.
10448func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
10449	s.DriverOpts = v
10450	return s
10451}
10452
10453// SetLabels sets the Labels field's value.
10454func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
10455	s.Labels = v
10456	return s
10457}
10458
10459// SetScope sets the Scope field's value.
10460func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
10461	s.Scope = &v
10462	return s
10463}
10464
10465// A failed resource.
10466type Failure struct {
10467	_ struct{} `type:"structure"`
10468
10469	// The Amazon Resource Name (ARN) of the failed resource.
10470	Arn *string `locationName:"arn" type:"string"`
10471
10472	// The details of the failure.
10473	Detail *string `locationName:"detail" type:"string"`
10474
10475	// The reason for the failure.
10476	Reason *string `locationName:"reason" type:"string"`
10477}
10478
10479// String returns the string representation
10480func (s Failure) String() string {
10481	return awsutil.Prettify(s)
10482}
10483
10484// GoString returns the string representation
10485func (s Failure) GoString() string {
10486	return s.String()
10487}
10488
10489// SetArn sets the Arn field's value.
10490func (s *Failure) SetArn(v string) *Failure {
10491	s.Arn = &v
10492	return s
10493}
10494
10495// SetDetail sets the Detail field's value.
10496func (s *Failure) SetDetail(v string) *Failure {
10497	s.Detail = &v
10498	return s
10499}
10500
10501// SetReason sets the Reason field's value.
10502func (s *Failure) SetReason(v string) *Failure {
10503	s.Reason = &v
10504	return s
10505}
10506
10507// The FireLens configuration for the container. This is used to specify and
10508// configure a log router for container logs. For more information, see Custom
10509// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
10510// in the Amazon Elastic Container Service Developer Guide.
10511type FirelensConfiguration struct {
10512	_ struct{} `type:"structure"`
10513
10514	// The options to use when configuring the log router. This field is optional
10515	// and can be used to specify a custom configuration file or to add additional
10516	// metadata, such as the task, task definition, cluster, and container instance
10517	// 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"}.
10518	// For more information, see Creating a Task Definition that Uses a FireLens
10519	// Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef)
10520	// in the Amazon Elastic Container Service Developer Guide.
10521	Options map[string]*string `locationName:"options" type:"map"`
10522
10523	// The log router to use. The valid values are fluentd or fluentbit.
10524	//
10525	// Type is a required field
10526	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
10527}
10528
10529// String returns the string representation
10530func (s FirelensConfiguration) String() string {
10531	return awsutil.Prettify(s)
10532}
10533
10534// GoString returns the string representation
10535func (s FirelensConfiguration) GoString() string {
10536	return s.String()
10537}
10538
10539// Validate inspects the fields of the type to determine if they are valid.
10540func (s *FirelensConfiguration) Validate() error {
10541	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
10542	if s.Type == nil {
10543		invalidParams.Add(request.NewErrParamRequired("Type"))
10544	}
10545
10546	if invalidParams.Len() > 0 {
10547		return invalidParams
10548	}
10549	return nil
10550}
10551
10552// SetOptions sets the Options field's value.
10553func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
10554	s.Options = v
10555	return s
10556}
10557
10558// SetType sets the Type field's value.
10559func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
10560	s.Type = &v
10561	return s
10562}
10563
10564// An object representing a container health check. Health check parameters
10565// that are specified in a container definition override any Docker health checks
10566// that exist in the container image (such as those specified in a parent image
10567// or from the image's Dockerfile).
10568//
10569// The following are notes about container health check support:
10570//
10571//    * Container health checks require version 1.17.0 or greater of the Amazon
10572//    ECS container agent. For more information, see Updating the Amazon ECS
10573//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
10574//
10575//    * Container health checks are supported for Fargate tasks if you are using
10576//    platform version 1.1.0 or greater. For more information, see AWS Fargate
10577//    Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
10578//
10579//    * Container health checks are not supported for tasks that are part of
10580//    a service that is configured to use a Classic Load Balancer.
10581type HealthCheck struct {
10582	_ struct{} `type:"structure"`
10583
10584	// A string array representing the command that the container runs to determine
10585	// if it is healthy. The string array must start with CMD to execute the command
10586	// arguments directly, or CMD-SHELL to run the command with the container's
10587	// default shell. For example:
10588	//
10589	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
10590	//
10591	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
10592	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
10593	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
10594	//
10595	// Command is a required field
10596	Command []*string `locationName:"command" type:"list" required:"true"`
10597
10598	// The time period in seconds between each health check execution. You may specify
10599	// between 5 and 300 seconds. The default value is 30 seconds.
10600	Interval *int64 `locationName:"interval" type:"integer"`
10601
10602	// The number of times to retry a failed health check before the container is
10603	// considered unhealthy. You may specify between 1 and 10 retries. The default
10604	// value is 3.
10605	Retries *int64 `locationName:"retries" type:"integer"`
10606
10607	// The optional grace period within which to provide containers time to bootstrap
10608	// before failed health checks count towards the maximum number of retries.
10609	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
10610	// default.
10611	//
10612	// If a health check succeeds within the startPeriod, then the container is
10613	// considered healthy and any subsequent failures count toward the maximum number
10614	// of retries.
10615	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
10616
10617	// The time period in seconds to wait for a health check to succeed before it
10618	// is considered a failure. You may specify between 2 and 60 seconds. The default
10619	// value is 5.
10620	Timeout *int64 `locationName:"timeout" type:"integer"`
10621}
10622
10623// String returns the string representation
10624func (s HealthCheck) String() string {
10625	return awsutil.Prettify(s)
10626}
10627
10628// GoString returns the string representation
10629func (s HealthCheck) GoString() string {
10630	return s.String()
10631}
10632
10633// Validate inspects the fields of the type to determine if they are valid.
10634func (s *HealthCheck) Validate() error {
10635	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
10636	if s.Command == nil {
10637		invalidParams.Add(request.NewErrParamRequired("Command"))
10638	}
10639
10640	if invalidParams.Len() > 0 {
10641		return invalidParams
10642	}
10643	return nil
10644}
10645
10646// SetCommand sets the Command field's value.
10647func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
10648	s.Command = v
10649	return s
10650}
10651
10652// SetInterval sets the Interval field's value.
10653func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
10654	s.Interval = &v
10655	return s
10656}
10657
10658// SetRetries sets the Retries field's value.
10659func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
10660	s.Retries = &v
10661	return s
10662}
10663
10664// SetStartPeriod sets the StartPeriod field's value.
10665func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
10666	s.StartPeriod = &v
10667	return s
10668}
10669
10670// SetTimeout sets the Timeout field's value.
10671func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
10672	s.Timeout = &v
10673	return s
10674}
10675
10676// Hostnames and IP address entries that are added to the /etc/hosts file of
10677// a container via the extraHosts parameter of its ContainerDefinition.
10678type HostEntry struct {
10679	_ struct{} `type:"structure"`
10680
10681	// The hostname to use in the /etc/hosts entry.
10682	//
10683	// Hostname is a required field
10684	Hostname *string `locationName:"hostname" type:"string" required:"true"`
10685
10686	// The IP address to use in the /etc/hosts entry.
10687	//
10688	// IpAddress is a required field
10689	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
10690}
10691
10692// String returns the string representation
10693func (s HostEntry) String() string {
10694	return awsutil.Prettify(s)
10695}
10696
10697// GoString returns the string representation
10698func (s HostEntry) GoString() string {
10699	return s.String()
10700}
10701
10702// Validate inspects the fields of the type to determine if they are valid.
10703func (s *HostEntry) Validate() error {
10704	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
10705	if s.Hostname == nil {
10706		invalidParams.Add(request.NewErrParamRequired("Hostname"))
10707	}
10708	if s.IpAddress == nil {
10709		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
10710	}
10711
10712	if invalidParams.Len() > 0 {
10713		return invalidParams
10714	}
10715	return nil
10716}
10717
10718// SetHostname sets the Hostname field's value.
10719func (s *HostEntry) SetHostname(v string) *HostEntry {
10720	s.Hostname = &v
10721	return s
10722}
10723
10724// SetIpAddress sets the IpAddress field's value.
10725func (s *HostEntry) SetIpAddress(v string) *HostEntry {
10726	s.IpAddress = &v
10727	return s
10728}
10729
10730// Details on a container instance bind mount host volume.
10731type HostVolumeProperties struct {
10732	_ struct{} `type:"structure"`
10733
10734	// When the host parameter is used, specify a sourcePath to declare the path
10735	// on the host container instance that is presented to the container. If this
10736	// parameter is empty, then the Docker daemon has assigned a host path for you.
10737	// If the host parameter contains a sourcePath file location, then the data
10738	// volume persists at the specified location on the host container instance
10739	// until you delete it manually. If the sourcePath value does not exist on the
10740	// host container instance, the Docker daemon creates it. If the location does
10741	// exist, the contents of the source path folder are exported.
10742	//
10743	// If you are using the Fargate launch type, the sourcePath parameter is not
10744	// supported.
10745	SourcePath *string `locationName:"sourcePath" type:"string"`
10746}
10747
10748// String returns the string representation
10749func (s HostVolumeProperties) String() string {
10750	return awsutil.Prettify(s)
10751}
10752
10753// GoString returns the string representation
10754func (s HostVolumeProperties) GoString() string {
10755	return s.String()
10756}
10757
10758// SetSourcePath sets the SourcePath field's value.
10759func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
10760	s.SourcePath = &v
10761	return s
10762}
10763
10764// Details on a Elastic Inference accelerator. For more information, see Working
10765// with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
10766// in the Amazon Elastic Container Service Developer Guide.
10767type InferenceAccelerator struct {
10768	_ struct{} `type:"structure"`
10769
10770	// The Elastic Inference accelerator device name. The deviceName must also be
10771	// referenced in a container definition as a ResourceRequirement.
10772	//
10773	// DeviceName is a required field
10774	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
10775
10776	// The Elastic Inference accelerator type to use.
10777	//
10778	// DeviceType is a required field
10779	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
10780}
10781
10782// String returns the string representation
10783func (s InferenceAccelerator) String() string {
10784	return awsutil.Prettify(s)
10785}
10786
10787// GoString returns the string representation
10788func (s InferenceAccelerator) GoString() string {
10789	return s.String()
10790}
10791
10792// Validate inspects the fields of the type to determine if they are valid.
10793func (s *InferenceAccelerator) Validate() error {
10794	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
10795	if s.DeviceName == nil {
10796		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
10797	}
10798	if s.DeviceType == nil {
10799		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
10800	}
10801
10802	if invalidParams.Len() > 0 {
10803		return invalidParams
10804	}
10805	return nil
10806}
10807
10808// SetDeviceName sets the DeviceName field's value.
10809func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
10810	s.DeviceName = &v
10811	return s
10812}
10813
10814// SetDeviceType sets the DeviceType field's value.
10815func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
10816	s.DeviceType = &v
10817	return s
10818}
10819
10820// Details on an Elastic Inference accelerator task override. This parameter
10821// is used to override the Elastic Inference accelerator specified in the task
10822// definition. For more information, see Working with Amazon Elastic Inference
10823// on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
10824// in the Amazon Elastic Container Service Developer Guide.
10825type InferenceAcceleratorOverride struct {
10826	_ struct{} `type:"structure"`
10827
10828	// The Elastic Inference accelerator device name to override for the task. This
10829	// parameter must match a deviceName specified in the task definition.
10830	DeviceName *string `locationName:"deviceName" type:"string"`
10831
10832	// The Elastic Inference accelerator type to use.
10833	DeviceType *string `locationName:"deviceType" type:"string"`
10834}
10835
10836// String returns the string representation
10837func (s InferenceAcceleratorOverride) String() string {
10838	return awsutil.Prettify(s)
10839}
10840
10841// GoString returns the string representation
10842func (s InferenceAcceleratorOverride) GoString() string {
10843	return s.String()
10844}
10845
10846// SetDeviceName sets the DeviceName field's value.
10847func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
10848	s.DeviceName = &v
10849	return s
10850}
10851
10852// SetDeviceType sets the DeviceType field's value.
10853func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
10854	s.DeviceType = &v
10855	return s
10856}
10857
10858// The Linux capabilities for the container that are added to or dropped from
10859// the default configuration provided by Docker. For more information on the
10860// default capabilities and the non-default available capabilities, see Runtime
10861// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
10862// in the Docker run reference. For more detailed information on these Linux
10863// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
10864// Linux manual page.
10865type KernelCapabilities struct {
10866	_ struct{} `type:"structure"`
10867
10868	// The Linux capabilities for the container that have been added to the default
10869	// configuration provided by Docker. This parameter maps to CapAdd in the Create
10870	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
10871	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
10872	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/).
10873	//
10874	// If you are using tasks that use the Fargate launch type, the add parameter
10875	// is not supported.
10876	//
10877	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
10878	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
10879	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
10880	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
10881	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
10882	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
10883	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
10884	// "WAKE_ALARM"
10885	Add []*string `locationName:"add" type:"list"`
10886
10887	// The Linux capabilities for the container that have been removed from the
10888	// default configuration provided by Docker. This parameter maps to CapDrop
10889	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
10890	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
10891	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/).
10892	//
10893	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
10894	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
10895	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
10896	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
10897	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
10898	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
10899	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
10900	// "WAKE_ALARM"
10901	Drop []*string `locationName:"drop" type:"list"`
10902}
10903
10904// String returns the string representation
10905func (s KernelCapabilities) String() string {
10906	return awsutil.Prettify(s)
10907}
10908
10909// GoString returns the string representation
10910func (s KernelCapabilities) GoString() string {
10911	return s.String()
10912}
10913
10914// SetAdd sets the Add field's value.
10915func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
10916	s.Add = v
10917	return s
10918}
10919
10920// SetDrop sets the Drop field's value.
10921func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
10922	s.Drop = v
10923	return s
10924}
10925
10926// A key-value pair object.
10927type KeyValuePair struct {
10928	_ struct{} `type:"structure"`
10929
10930	// The name of the key-value pair. For environment variables, this is the name
10931	// of the environment variable.
10932	Name *string `locationName:"name" type:"string"`
10933
10934	// The value of the key-value pair. For environment variables, this is the value
10935	// of the environment variable.
10936	Value *string `locationName:"value" type:"string"`
10937}
10938
10939// String returns the string representation
10940func (s KeyValuePair) String() string {
10941	return awsutil.Prettify(s)
10942}
10943
10944// GoString returns the string representation
10945func (s KeyValuePair) GoString() string {
10946	return s.String()
10947}
10948
10949// SetName sets the Name field's value.
10950func (s *KeyValuePair) SetName(v string) *KeyValuePair {
10951	s.Name = &v
10952	return s
10953}
10954
10955// SetValue sets the Value field's value.
10956func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
10957	s.Value = &v
10958	return s
10959}
10960
10961// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
10962type LinuxParameters struct {
10963	_ struct{} `type:"structure"`
10964
10965	// The Linux capabilities for the container that are added to or dropped from
10966	// the default configuration provided by Docker.
10967	//
10968	// If you are using tasks that use the Fargate launch type, capabilities is
10969	// supported but the add parameter is not supported.
10970	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
10971
10972	// Any host devices to expose to the container. This parameter maps to Devices
10973	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
10974	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
10975	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
10976	//
10977	// If you are using tasks that use the Fargate launch type, the devices parameter
10978	// is not supported.
10979	Devices []*Device `locationName:"devices" type:"list"`
10980
10981	// Run an init process inside the container that forwards signals and reaps
10982	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/).
10983	// This parameter requires version 1.25 of the Docker Remote API or greater
10984	// on your container instance. To check the Docker Remote API version on your
10985	// container instance, log in to your container instance and run the following
10986	// command: sudo docker version --format '{{.Server.APIVersion}}'
10987	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
10988
10989	// The total amount of swap memory (in MiB) a container can use. This parameter
10990	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/)
10991	// where the value would be the sum of the container memory plus the maxSwap
10992	// value.
10993	//
10994	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
10995	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
10996	// the container will use the swap configuration for the container instance
10997	// it is running on. A maxSwap value must be set for the swappiness parameter
10998	// to be used.
10999	//
11000	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
11001	// is not supported.
11002	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
11003
11004	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
11005	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/).
11006	//
11007	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
11008	// parameter is not supported.
11009	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
11010
11011	// This allows you to tune a container's memory swappiness behavior. A swappiness
11012	// value of 0 will cause swapping to not happen unless absolutely necessary.
11013	// A swappiness value of 100 will cause pages to be swapped very aggressively.
11014	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
11015	// is not specified, a default value of 60 is used. If a value is not specified
11016	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
11017	// option to docker run (https://docs.docker.com/engine/reference/run/).
11018	//
11019	// If you are using tasks that use the Fargate launch type, the swappiness parameter
11020	// is not supported.
11021	Swappiness *int64 `locationName:"swappiness" type:"integer"`
11022
11023	// The container path, mount options, and size (in MiB) of the tmpfs mount.
11024	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/).
11025	//
11026	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
11027	// is not supported.
11028	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
11029}
11030
11031// String returns the string representation
11032func (s LinuxParameters) String() string {
11033	return awsutil.Prettify(s)
11034}
11035
11036// GoString returns the string representation
11037func (s LinuxParameters) GoString() string {
11038	return s.String()
11039}
11040
11041// Validate inspects the fields of the type to determine if they are valid.
11042func (s *LinuxParameters) Validate() error {
11043	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
11044	if s.Devices != nil {
11045		for i, v := range s.Devices {
11046			if v == nil {
11047				continue
11048			}
11049			if err := v.Validate(); err != nil {
11050				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
11051			}
11052		}
11053	}
11054	if s.Tmpfs != nil {
11055		for i, v := range s.Tmpfs {
11056			if v == nil {
11057				continue
11058			}
11059			if err := v.Validate(); err != nil {
11060				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
11061			}
11062		}
11063	}
11064
11065	if invalidParams.Len() > 0 {
11066		return invalidParams
11067	}
11068	return nil
11069}
11070
11071// SetCapabilities sets the Capabilities field's value.
11072func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
11073	s.Capabilities = v
11074	return s
11075}
11076
11077// SetDevices sets the Devices field's value.
11078func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
11079	s.Devices = v
11080	return s
11081}
11082
11083// SetInitProcessEnabled sets the InitProcessEnabled field's value.
11084func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
11085	s.InitProcessEnabled = &v
11086	return s
11087}
11088
11089// SetMaxSwap sets the MaxSwap field's value.
11090func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
11091	s.MaxSwap = &v
11092	return s
11093}
11094
11095// SetSharedMemorySize sets the SharedMemorySize field's value.
11096func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
11097	s.SharedMemorySize = &v
11098	return s
11099}
11100
11101// SetSwappiness sets the Swappiness field's value.
11102func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
11103	s.Swappiness = &v
11104	return s
11105}
11106
11107// SetTmpfs sets the Tmpfs field's value.
11108func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
11109	s.Tmpfs = v
11110	return s
11111}
11112
11113type ListAccountSettingsInput struct {
11114	_ struct{} `type:"structure"`
11115
11116	// Specifies whether to return the effective settings. If true, the account
11117	// settings for the root user or the default setting for the principalArn are
11118	// returned. If false, the account settings for the principalArn are returned
11119	// if they are set. Otherwise, no account settings are returned.
11120	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
11121
11122	// The maximum number of account setting results returned by ListAccountSettings
11123	// in paginated output. When this parameter is used, ListAccountSettings only
11124	// returns maxResults results in a single page along with a nextToken response
11125	// element. The remaining results of the initial request can be seen by sending
11126	// another ListAccountSettings request with the returned nextToken value. This
11127	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
11128	// returns up to 10 results and a nextToken value if applicable.
11129	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11130
11131	// The resource name you want to list the account settings for.
11132	Name *string `locationName:"name" type:"string" enum:"SettingName"`
11133
11134	// The nextToken value returned from a ListAccountSettings request indicating
11135	// that more results are available to fulfill the request and further calls
11136	// will be needed. If maxResults was provided, it is possible the number of
11137	// results to be fewer than maxResults.
11138	//
11139	// This token should be treated as an opaque identifier that is only used to
11140	// retrieve the next items in a list and not for other programmatic purposes.
11141	NextToken *string `locationName:"nextToken" type:"string"`
11142
11143	// The ARN of the principal, which can be an IAM user, IAM role, or the root
11144	// user. If this field is omitted, the account settings are listed only for
11145	// the authenticated user.
11146	PrincipalArn *string `locationName:"principalArn" type:"string"`
11147
11148	// The value of the account settings with which to filter results. You must
11149	// also specify an account setting name to use this parameter.
11150	Value *string `locationName:"value" type:"string"`
11151}
11152
11153// String returns the string representation
11154func (s ListAccountSettingsInput) String() string {
11155	return awsutil.Prettify(s)
11156}
11157
11158// GoString returns the string representation
11159func (s ListAccountSettingsInput) GoString() string {
11160	return s.String()
11161}
11162
11163// SetEffectiveSettings sets the EffectiveSettings field's value.
11164func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
11165	s.EffectiveSettings = &v
11166	return s
11167}
11168
11169// SetMaxResults sets the MaxResults field's value.
11170func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
11171	s.MaxResults = &v
11172	return s
11173}
11174
11175// SetName sets the Name field's value.
11176func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
11177	s.Name = &v
11178	return s
11179}
11180
11181// SetNextToken sets the NextToken field's value.
11182func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
11183	s.NextToken = &v
11184	return s
11185}
11186
11187// SetPrincipalArn sets the PrincipalArn field's value.
11188func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
11189	s.PrincipalArn = &v
11190	return s
11191}
11192
11193// SetValue sets the Value field's value.
11194func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
11195	s.Value = &v
11196	return s
11197}
11198
11199type ListAccountSettingsOutput struct {
11200	_ struct{} `type:"structure"`
11201
11202	// The nextToken value to include in a future ListAccountSettings request. When
11203	// the results of a ListAccountSettings request exceed maxResults, this value
11204	// can be used to retrieve the next page of results. This value is null when
11205	// there are no more results to return.
11206	NextToken *string `locationName:"nextToken" type:"string"`
11207
11208	// The account settings for the resource.
11209	Settings []*Setting `locationName:"settings" type:"list"`
11210}
11211
11212// String returns the string representation
11213func (s ListAccountSettingsOutput) String() string {
11214	return awsutil.Prettify(s)
11215}
11216
11217// GoString returns the string representation
11218func (s ListAccountSettingsOutput) GoString() string {
11219	return s.String()
11220}
11221
11222// SetNextToken sets the NextToken field's value.
11223func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
11224	s.NextToken = &v
11225	return s
11226}
11227
11228// SetSettings sets the Settings field's value.
11229func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
11230	s.Settings = v
11231	return s
11232}
11233
11234type ListAttributesInput struct {
11235	_ struct{} `type:"structure"`
11236
11237	// The name of the attribute with which to filter the results.
11238	AttributeName *string `locationName:"attributeName" type:"string"`
11239
11240	// The value of the attribute with which to filter results. You must also specify
11241	// an attribute name to use this parameter.
11242	AttributeValue *string `locationName:"attributeValue" type:"string"`
11243
11244	// The short name or full Amazon Resource Name (ARN) of the cluster to list
11245	// attributes. If you do not specify a cluster, the default cluster is assumed.
11246	Cluster *string `locationName:"cluster" type:"string"`
11247
11248	// The maximum number of cluster results returned by ListAttributes in paginated
11249	// output. When this parameter is used, ListAttributes only returns maxResults
11250	// results in a single page along with a nextToken response element. The remaining
11251	// results of the initial request can be seen by sending another ListAttributes
11252	// request with the returned nextToken value. This value can be between 1 and
11253	// 100. If this parameter is not used, then ListAttributes returns up to 100
11254	// results and a nextToken value if applicable.
11255	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11256
11257	// The nextToken value returned from a ListAttributes request indicating that
11258	// more results are available to fulfill the request and further calls will
11259	// be needed. If maxResults was provided, it is possible the number of results
11260	// to be fewer than maxResults.
11261	//
11262	// This token should be treated as an opaque identifier that is only used to
11263	// retrieve the next items in a list and not for other programmatic purposes.
11264	NextToken *string `locationName:"nextToken" type:"string"`
11265
11266	// The type of the target with which to list attributes.
11267	//
11268	// TargetType is a required field
11269	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
11270}
11271
11272// String returns the string representation
11273func (s ListAttributesInput) String() string {
11274	return awsutil.Prettify(s)
11275}
11276
11277// GoString returns the string representation
11278func (s ListAttributesInput) GoString() string {
11279	return s.String()
11280}
11281
11282// Validate inspects the fields of the type to determine if they are valid.
11283func (s *ListAttributesInput) Validate() error {
11284	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
11285	if s.TargetType == nil {
11286		invalidParams.Add(request.NewErrParamRequired("TargetType"))
11287	}
11288
11289	if invalidParams.Len() > 0 {
11290		return invalidParams
11291	}
11292	return nil
11293}
11294
11295// SetAttributeName sets the AttributeName field's value.
11296func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
11297	s.AttributeName = &v
11298	return s
11299}
11300
11301// SetAttributeValue sets the AttributeValue field's value.
11302func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
11303	s.AttributeValue = &v
11304	return s
11305}
11306
11307// SetCluster sets the Cluster field's value.
11308func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
11309	s.Cluster = &v
11310	return s
11311}
11312
11313// SetMaxResults sets the MaxResults field's value.
11314func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
11315	s.MaxResults = &v
11316	return s
11317}
11318
11319// SetNextToken sets the NextToken field's value.
11320func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
11321	s.NextToken = &v
11322	return s
11323}
11324
11325// SetTargetType sets the TargetType field's value.
11326func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
11327	s.TargetType = &v
11328	return s
11329}
11330
11331type ListAttributesOutput struct {
11332	_ struct{} `type:"structure"`
11333
11334	// A list of attribute objects that meet the criteria of the request.
11335	Attributes []*Attribute `locationName:"attributes" type:"list"`
11336
11337	// The nextToken value to include in a future ListAttributes request. When the
11338	// results of a ListAttributes request exceed maxResults, this value can be
11339	// used to retrieve the next page of results. This value is null when there
11340	// are no more results to return.
11341	NextToken *string `locationName:"nextToken" type:"string"`
11342}
11343
11344// String returns the string representation
11345func (s ListAttributesOutput) String() string {
11346	return awsutil.Prettify(s)
11347}
11348
11349// GoString returns the string representation
11350func (s ListAttributesOutput) GoString() string {
11351	return s.String()
11352}
11353
11354// SetAttributes sets the Attributes field's value.
11355func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
11356	s.Attributes = v
11357	return s
11358}
11359
11360// SetNextToken sets the NextToken field's value.
11361func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
11362	s.NextToken = &v
11363	return s
11364}
11365
11366type ListClustersInput struct {
11367	_ struct{} `type:"structure"`
11368
11369	// The maximum number of cluster results returned by ListClusters in paginated
11370	// output. When this parameter is used, ListClusters only returns maxResults
11371	// results in a single page along with a nextToken response element. The remaining
11372	// results of the initial request can be seen by sending another ListClusters
11373	// request with the returned nextToken value. This value can be between 1 and
11374	// 100. If this parameter is not used, then ListClusters returns up to 100 results
11375	// and a nextToken value if applicable.
11376	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11377
11378	// The nextToken value returned from a ListClusters request indicating that
11379	// more results are available to fulfill the request and further calls will
11380	// be needed. If maxResults was provided, it is possible the number of results
11381	// to be fewer than maxResults.
11382	//
11383	// This token should be treated as an opaque identifier that is only used to
11384	// retrieve the next items in a list and not for other programmatic purposes.
11385	NextToken *string `locationName:"nextToken" type:"string"`
11386}
11387
11388// String returns the string representation
11389func (s ListClustersInput) String() string {
11390	return awsutil.Prettify(s)
11391}
11392
11393// GoString returns the string representation
11394func (s ListClustersInput) GoString() string {
11395	return s.String()
11396}
11397
11398// SetMaxResults sets the MaxResults field's value.
11399func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
11400	s.MaxResults = &v
11401	return s
11402}
11403
11404// SetNextToken sets the NextToken field's value.
11405func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
11406	s.NextToken = &v
11407	return s
11408}
11409
11410type ListClustersOutput struct {
11411	_ struct{} `type:"structure"`
11412
11413	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
11414	// with your account.
11415	ClusterArns []*string `locationName:"clusterArns" type:"list"`
11416
11417	// The nextToken value to include in a future ListClusters request. When the
11418	// results of a ListClusters request exceed maxResults, this value can be used
11419	// to retrieve the next page of results. This value is null when there are no
11420	// more results to return.
11421	NextToken *string `locationName:"nextToken" type:"string"`
11422}
11423
11424// String returns the string representation
11425func (s ListClustersOutput) String() string {
11426	return awsutil.Prettify(s)
11427}
11428
11429// GoString returns the string representation
11430func (s ListClustersOutput) GoString() string {
11431	return s.String()
11432}
11433
11434// SetClusterArns sets the ClusterArns field's value.
11435func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
11436	s.ClusterArns = v
11437	return s
11438}
11439
11440// SetNextToken sets the NextToken field's value.
11441func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
11442	s.NextToken = &v
11443	return s
11444}
11445
11446type ListContainerInstancesInput struct {
11447	_ struct{} `type:"structure"`
11448
11449	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11450	// the container instances to list. If you do not specify a cluster, the default
11451	// cluster is assumed.
11452	Cluster *string `locationName:"cluster" type:"string"`
11453
11454	// You can filter the results of a ListContainerInstances operation with cluster
11455	// query language statements. For more information, see Cluster Query Language
11456	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
11457	// in the Amazon Elastic Container Service Developer Guide.
11458	Filter *string `locationName:"filter" type:"string"`
11459
11460	// The maximum number of container instance results returned by ListContainerInstances
11461	// in paginated output. When this parameter is used, ListContainerInstances
11462	// only returns maxResults results in a single page along with a nextToken response
11463	// element. The remaining results of the initial request can be seen by sending
11464	// another ListContainerInstances request with the returned nextToken value.
11465	// This value can be between 1 and 100. If this parameter is not used, then
11466	// ListContainerInstances returns up to 100 results and a nextToken value if
11467	// applicable.
11468	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11469
11470	// The nextToken value returned from a ListContainerInstances request indicating
11471	// that more results are available to fulfill the request and further calls
11472	// will be needed. If maxResults was provided, it is possible the number of
11473	// results to be fewer than maxResults.
11474	//
11475	// This token should be treated as an opaque identifier that is only used to
11476	// retrieve the next items in a list and not for other programmatic purposes.
11477	NextToken *string `locationName:"nextToken" type:"string"`
11478
11479	// Filters the container instances by status. For example, if you specify the
11480	// DRAINING status, the results include only container instances that have been
11481	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
11482	// this parameter, the default is to include container instances set to all
11483	// states other than INACTIVE.
11484	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
11485}
11486
11487// String returns the string representation
11488func (s ListContainerInstancesInput) String() string {
11489	return awsutil.Prettify(s)
11490}
11491
11492// GoString returns the string representation
11493func (s ListContainerInstancesInput) GoString() string {
11494	return s.String()
11495}
11496
11497// SetCluster sets the Cluster field's value.
11498func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
11499	s.Cluster = &v
11500	return s
11501}
11502
11503// SetFilter sets the Filter field's value.
11504func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
11505	s.Filter = &v
11506	return s
11507}
11508
11509// SetMaxResults sets the MaxResults field's value.
11510func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
11511	s.MaxResults = &v
11512	return s
11513}
11514
11515// SetNextToken sets the NextToken field's value.
11516func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
11517	s.NextToken = &v
11518	return s
11519}
11520
11521// SetStatus sets the Status field's value.
11522func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
11523	s.Status = &v
11524	return s
11525}
11526
11527type ListContainerInstancesOutput struct {
11528	_ struct{} `type:"structure"`
11529
11530	// The list of container instances with full ARN entries for each container
11531	// instance associated with the specified cluster.
11532	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
11533
11534	// The nextToken value to include in a future ListContainerInstances request.
11535	// When the results of a ListContainerInstances request exceed maxResults, this
11536	// value can be used to retrieve the next page of results. This value is null
11537	// when there are no more results to return.
11538	NextToken *string `locationName:"nextToken" type:"string"`
11539}
11540
11541// String returns the string representation
11542func (s ListContainerInstancesOutput) String() string {
11543	return awsutil.Prettify(s)
11544}
11545
11546// GoString returns the string representation
11547func (s ListContainerInstancesOutput) GoString() string {
11548	return s.String()
11549}
11550
11551// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
11552func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
11553	s.ContainerInstanceArns = v
11554	return s
11555}
11556
11557// SetNextToken sets the NextToken field's value.
11558func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
11559	s.NextToken = &v
11560	return s
11561}
11562
11563type ListServicesInput struct {
11564	_ struct{} `type:"structure"`
11565
11566	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11567	// the services to list. If you do not specify a cluster, the default cluster
11568	// is assumed.
11569	Cluster *string `locationName:"cluster" type:"string"`
11570
11571	// The launch type for the services to list.
11572	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
11573
11574	// The maximum number of service results returned by ListServices in paginated
11575	// output. When this parameter is used, ListServices only returns maxResults
11576	// results in a single page along with a nextToken response element. The remaining
11577	// results of the initial request can be seen by sending another ListServices
11578	// request with the returned nextToken value. This value can be between 1 and
11579	// 100. If this parameter is not used, then ListServices returns up to 10 results
11580	// and a nextToken value if applicable.
11581	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11582
11583	// The nextToken value returned from a ListServices request indicating that
11584	// more results are available to fulfill the request and further calls will
11585	// be needed. If maxResults was provided, it is possible the number of results
11586	// to be fewer than maxResults.
11587	//
11588	// This token should be treated as an opaque identifier that is only used to
11589	// retrieve the next items in a list and not for other programmatic purposes.
11590	NextToken *string `locationName:"nextToken" type:"string"`
11591
11592	// The scheduling strategy for services to list.
11593	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
11594}
11595
11596// String returns the string representation
11597func (s ListServicesInput) String() string {
11598	return awsutil.Prettify(s)
11599}
11600
11601// GoString returns the string representation
11602func (s ListServicesInput) GoString() string {
11603	return s.String()
11604}
11605
11606// SetCluster sets the Cluster field's value.
11607func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
11608	s.Cluster = &v
11609	return s
11610}
11611
11612// SetLaunchType sets the LaunchType field's value.
11613func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
11614	s.LaunchType = &v
11615	return s
11616}
11617
11618// SetMaxResults sets the MaxResults field's value.
11619func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
11620	s.MaxResults = &v
11621	return s
11622}
11623
11624// SetNextToken sets the NextToken field's value.
11625func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
11626	s.NextToken = &v
11627	return s
11628}
11629
11630// SetSchedulingStrategy sets the SchedulingStrategy field's value.
11631func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
11632	s.SchedulingStrategy = &v
11633	return s
11634}
11635
11636type ListServicesOutput struct {
11637	_ struct{} `type:"structure"`
11638
11639	// The nextToken value to include in a future ListServices request. When the
11640	// results of a ListServices request exceed maxResults, this value can be used
11641	// to retrieve the next page of results. This value is null when there are no
11642	// more results to return.
11643	NextToken *string `locationName:"nextToken" type:"string"`
11644
11645	// The list of full ARN entries for each service associated with the specified
11646	// cluster.
11647	ServiceArns []*string `locationName:"serviceArns" type:"list"`
11648}
11649
11650// String returns the string representation
11651func (s ListServicesOutput) String() string {
11652	return awsutil.Prettify(s)
11653}
11654
11655// GoString returns the string representation
11656func (s ListServicesOutput) GoString() string {
11657	return s.String()
11658}
11659
11660// SetNextToken sets the NextToken field's value.
11661func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
11662	s.NextToken = &v
11663	return s
11664}
11665
11666// SetServiceArns sets the ServiceArns field's value.
11667func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
11668	s.ServiceArns = v
11669	return s
11670}
11671
11672type ListTagsForResourceInput struct {
11673	_ struct{} `type:"structure"`
11674
11675	// The Amazon Resource Name (ARN) that identifies the resource for which to
11676	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
11677	// task definitions, clusters, and container instances.
11678	//
11679	// ResourceArn is a required field
11680	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
11681}
11682
11683// String returns the string representation
11684func (s ListTagsForResourceInput) String() string {
11685	return awsutil.Prettify(s)
11686}
11687
11688// GoString returns the string representation
11689func (s ListTagsForResourceInput) GoString() string {
11690	return s.String()
11691}
11692
11693// Validate inspects the fields of the type to determine if they are valid.
11694func (s *ListTagsForResourceInput) Validate() error {
11695	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
11696	if s.ResourceArn == nil {
11697		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
11698	}
11699
11700	if invalidParams.Len() > 0 {
11701		return invalidParams
11702	}
11703	return nil
11704}
11705
11706// SetResourceArn sets the ResourceArn field's value.
11707func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
11708	s.ResourceArn = &v
11709	return s
11710}
11711
11712type ListTagsForResourceOutput struct {
11713	_ struct{} `type:"structure"`
11714
11715	// The tags for the resource.
11716	Tags []*Tag `locationName:"tags" type:"list"`
11717}
11718
11719// String returns the string representation
11720func (s ListTagsForResourceOutput) String() string {
11721	return awsutil.Prettify(s)
11722}
11723
11724// GoString returns the string representation
11725func (s ListTagsForResourceOutput) GoString() string {
11726	return s.String()
11727}
11728
11729// SetTags sets the Tags field's value.
11730func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
11731	s.Tags = v
11732	return s
11733}
11734
11735type ListTaskDefinitionFamiliesInput struct {
11736	_ struct{} `type:"structure"`
11737
11738	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
11739	// If you specify a familyPrefix, only task definition family names that begin
11740	// with the familyPrefix string are returned.
11741	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
11742
11743	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
11744	// in paginated output. When this parameter is used, ListTaskDefinitions only
11745	// returns maxResults results in a single page along with a nextToken response
11746	// element. The remaining results of the initial request can be seen by sending
11747	// another ListTaskDefinitionFamilies request with the returned nextToken value.
11748	// This value can be between 1 and 100. If this parameter is not used, then
11749	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
11750	// if applicable.
11751	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11752
11753	// The nextToken value returned from a ListTaskDefinitionFamilies request indicating
11754	// that more results are available to fulfill the request and further calls
11755	// will be needed. If maxResults was provided, it is possible the number of
11756	// results to be fewer than maxResults.
11757	//
11758	// This token should be treated as an opaque identifier that is only used to
11759	// retrieve the next items in a list and not for other programmatic purposes.
11760	NextToken *string `locationName:"nextToken" type:"string"`
11761
11762	// The task definition family status with which to filter the ListTaskDefinitionFamilies
11763	// results. By default, both ACTIVE and INACTIVE task definition families are
11764	// listed. If this parameter is set to ACTIVE, only task definition families
11765	// that have an ACTIVE task definition revision are returned. If this parameter
11766	// is set to INACTIVE, only task definition families that do not have any ACTIVE
11767	// task definition revisions are returned. If you paginate the resulting output,
11768	// be sure to keep the status value constant in each subsequent request.
11769	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
11770}
11771
11772// String returns the string representation
11773func (s ListTaskDefinitionFamiliesInput) String() string {
11774	return awsutil.Prettify(s)
11775}
11776
11777// GoString returns the string representation
11778func (s ListTaskDefinitionFamiliesInput) GoString() string {
11779	return s.String()
11780}
11781
11782// SetFamilyPrefix sets the FamilyPrefix field's value.
11783func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
11784	s.FamilyPrefix = &v
11785	return s
11786}
11787
11788// SetMaxResults sets the MaxResults field's value.
11789func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
11790	s.MaxResults = &v
11791	return s
11792}
11793
11794// SetNextToken sets the NextToken field's value.
11795func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
11796	s.NextToken = &v
11797	return s
11798}
11799
11800// SetStatus sets the Status field's value.
11801func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
11802	s.Status = &v
11803	return s
11804}
11805
11806type ListTaskDefinitionFamiliesOutput struct {
11807	_ struct{} `type:"structure"`
11808
11809	// The list of task definition family names that match the ListTaskDefinitionFamilies
11810	// request.
11811	Families []*string `locationName:"families" type:"list"`
11812
11813	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
11814	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
11815	// this value can be used to retrieve the next page of results. This value is
11816	// null when there are no more results to return.
11817	NextToken *string `locationName:"nextToken" type:"string"`
11818}
11819
11820// String returns the string representation
11821func (s ListTaskDefinitionFamiliesOutput) String() string {
11822	return awsutil.Prettify(s)
11823}
11824
11825// GoString returns the string representation
11826func (s ListTaskDefinitionFamiliesOutput) GoString() string {
11827	return s.String()
11828}
11829
11830// SetFamilies sets the Families field's value.
11831func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
11832	s.Families = v
11833	return s
11834}
11835
11836// SetNextToken sets the NextToken field's value.
11837func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
11838	s.NextToken = &v
11839	return s
11840}
11841
11842type ListTaskDefinitionsInput struct {
11843	_ struct{} `type:"structure"`
11844
11845	// The full family name with which to filter the ListTaskDefinitions results.
11846	// Specifying a familyPrefix limits the listed task definitions to task definition
11847	// revisions that belong to that family.
11848	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
11849
11850	// The maximum number of task definition results returned by ListTaskDefinitions
11851	// in paginated output. When this parameter is used, ListTaskDefinitions only
11852	// returns maxResults results in a single page along with a nextToken response
11853	// element. The remaining results of the initial request can be seen by sending
11854	// another ListTaskDefinitions request with the returned nextToken value. This
11855	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
11856	// returns up to 100 results and a nextToken value if applicable.
11857	MaxResults *int64 `locationName:"maxResults" type:"integer"`
11858
11859	// The nextToken value returned from a ListTaskDefinitions request indicating
11860	// that more results are available to fulfill the request and further calls
11861	// will be needed. If maxResults was provided, it is possible the number of
11862	// results to be fewer than maxResults.
11863	//
11864	// This token should be treated as an opaque identifier that is only used to
11865	// retrieve the next items in a list and not for other programmatic purposes.
11866	NextToken *string `locationName:"nextToken" type:"string"`
11867
11868	// The order in which to sort the results. Valid values are ASC and DESC. By
11869	// default (ASC), task definitions are listed lexicographically by family name
11870	// and in ascending numerical order by revision so that the newest task definitions
11871	// in a family are listed last. Setting this parameter to DESC reverses the
11872	// sort order on family name and revision so that the newest task definitions
11873	// in a family are listed first.
11874	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
11875
11876	// The task definition status with which to filter the ListTaskDefinitions results.
11877	// By default, only ACTIVE task definitions are listed. By setting this parameter
11878	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
11879	// active task or service still references them. If you paginate the resulting
11880	// output, be sure to keep the status value constant in each subsequent request.
11881	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
11882}
11883
11884// String returns the string representation
11885func (s ListTaskDefinitionsInput) String() string {
11886	return awsutil.Prettify(s)
11887}
11888
11889// GoString returns the string representation
11890func (s ListTaskDefinitionsInput) GoString() string {
11891	return s.String()
11892}
11893
11894// SetFamilyPrefix sets the FamilyPrefix field's value.
11895func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
11896	s.FamilyPrefix = &v
11897	return s
11898}
11899
11900// SetMaxResults sets the MaxResults field's value.
11901func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
11902	s.MaxResults = &v
11903	return s
11904}
11905
11906// SetNextToken sets the NextToken field's value.
11907func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
11908	s.NextToken = &v
11909	return s
11910}
11911
11912// SetSort sets the Sort field's value.
11913func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
11914	s.Sort = &v
11915	return s
11916}
11917
11918// SetStatus sets the Status field's value.
11919func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
11920	s.Status = &v
11921	return s
11922}
11923
11924type ListTaskDefinitionsOutput struct {
11925	_ struct{} `type:"structure"`
11926
11927	// The nextToken value to include in a future ListTaskDefinitions request. When
11928	// the results of a ListTaskDefinitions request exceed maxResults, this value
11929	// can be used to retrieve the next page of results. This value is null when
11930	// there are no more results to return.
11931	NextToken *string `locationName:"nextToken" type:"string"`
11932
11933	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
11934	// request.
11935	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
11936}
11937
11938// String returns the string representation
11939func (s ListTaskDefinitionsOutput) String() string {
11940	return awsutil.Prettify(s)
11941}
11942
11943// GoString returns the string representation
11944func (s ListTaskDefinitionsOutput) GoString() string {
11945	return s.String()
11946}
11947
11948// SetNextToken sets the NextToken field's value.
11949func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
11950	s.NextToken = &v
11951	return s
11952}
11953
11954// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
11955func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
11956	s.TaskDefinitionArns = v
11957	return s
11958}
11959
11960type ListTasksInput struct {
11961	_ struct{} `type:"structure"`
11962
11963	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
11964	// the tasks to list. If you do not specify a cluster, the default cluster is
11965	// assumed.
11966	Cluster *string `locationName:"cluster" type:"string"`
11967
11968	// The container instance ID or full ARN of the container instance with which
11969	// to filter the ListTasks results. Specifying a containerInstance limits the
11970	// results to tasks that belong to that container instance.
11971	ContainerInstance *string `locationName:"containerInstance" type:"string"`
11972
11973	// The task desired status with which to filter the ListTasks results. Specifying
11974	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
11975	// set the desired status to STOPPED. This can be useful for debugging tasks
11976	// that are not starting properly or have died or finished. The default status
11977	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
11978	// status to RUNNING.
11979	//
11980	// Although you can filter results based on a desired status of PENDING, this
11981	// does not return any results. Amazon ECS never sets the desired status of
11982	// a task to that value (only a task's lastStatus may have a value of PENDING).
11983	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
11984
11985	// The name of the family with which to filter the ListTasks results. Specifying
11986	// a family limits the results to tasks that belong to that family.
11987	Family *string `locationName:"family" type:"string"`
11988
11989	// The launch type for services to list.
11990	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
11991
11992	// The maximum number of task results returned by ListTasks in paginated output.
11993	// When this parameter is used, ListTasks only returns maxResults results in
11994	// a single page along with a nextToken response element. The remaining results
11995	// of the initial request can be seen by sending another ListTasks request with
11996	// the returned nextToken value. This value can be between 1 and 100. If this
11997	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
11998	// value if applicable.
11999	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12000
12001	// The nextToken value returned from a ListTasks request indicating that more
12002	// results are available to fulfill the request and further calls will be needed.
12003	// If maxResults was provided, it is possible the number of results to be fewer
12004	// than maxResults.
12005	//
12006	// This token should be treated as an opaque identifier that is only used to
12007	// retrieve the next items in a list and not for other programmatic purposes.
12008	NextToken *string `locationName:"nextToken" type:"string"`
12009
12010	// The name of the service with which to filter the ListTasks results. Specifying
12011	// a serviceName limits the results to tasks that belong to that service.
12012	ServiceName *string `locationName:"serviceName" type:"string"`
12013
12014	// The startedBy value with which to filter the task results. Specifying a startedBy
12015	// value limits the results to tasks that were started with that value.
12016	StartedBy *string `locationName:"startedBy" type:"string"`
12017}
12018
12019// String returns the string representation
12020func (s ListTasksInput) String() string {
12021	return awsutil.Prettify(s)
12022}
12023
12024// GoString returns the string representation
12025func (s ListTasksInput) GoString() string {
12026	return s.String()
12027}
12028
12029// SetCluster sets the Cluster field's value.
12030func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
12031	s.Cluster = &v
12032	return s
12033}
12034
12035// SetContainerInstance sets the ContainerInstance field's value.
12036func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
12037	s.ContainerInstance = &v
12038	return s
12039}
12040
12041// SetDesiredStatus sets the DesiredStatus field's value.
12042func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
12043	s.DesiredStatus = &v
12044	return s
12045}
12046
12047// SetFamily sets the Family field's value.
12048func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
12049	s.Family = &v
12050	return s
12051}
12052
12053// SetLaunchType sets the LaunchType field's value.
12054func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
12055	s.LaunchType = &v
12056	return s
12057}
12058
12059// SetMaxResults sets the MaxResults field's value.
12060func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
12061	s.MaxResults = &v
12062	return s
12063}
12064
12065// SetNextToken sets the NextToken field's value.
12066func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
12067	s.NextToken = &v
12068	return s
12069}
12070
12071// SetServiceName sets the ServiceName field's value.
12072func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
12073	s.ServiceName = &v
12074	return s
12075}
12076
12077// SetStartedBy sets the StartedBy field's value.
12078func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
12079	s.StartedBy = &v
12080	return s
12081}
12082
12083type ListTasksOutput struct {
12084	_ struct{} `type:"structure"`
12085
12086	// The nextToken value to include in a future ListTasks request. When the results
12087	// of a ListTasks request exceed maxResults, this value can be used to retrieve
12088	// the next page of results. This value is null when there are no more results
12089	// to return.
12090	NextToken *string `locationName:"nextToken" type:"string"`
12091
12092	// The list of task ARN entries for the ListTasks request.
12093	TaskArns []*string `locationName:"taskArns" type:"list"`
12094}
12095
12096// String returns the string representation
12097func (s ListTasksOutput) String() string {
12098	return awsutil.Prettify(s)
12099}
12100
12101// GoString returns the string representation
12102func (s ListTasksOutput) GoString() string {
12103	return s.String()
12104}
12105
12106// SetNextToken sets the NextToken field's value.
12107func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
12108	s.NextToken = &v
12109	return s
12110}
12111
12112// SetTaskArns sets the TaskArns field's value.
12113func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
12114	s.TaskArns = v
12115	return s
12116}
12117
12118// Details on the load balancer or load balancers to use with a service or task
12119// set.
12120type LoadBalancer struct {
12121	_ struct{} `type:"structure"`
12122
12123	// The name of the container (as it appears in a container definition) to associate
12124	// with the load balancer.
12125	ContainerName *string `locationName:"containerName" type:"string"`
12126
12127	// The port on the container to associate with the load balancer. This port
12128	// must correspond to a containerPort in the task definition the tasks in the
12129	// service are using. For tasks that use the EC2 launch type, the container
12130	// instance they are launched on must allow ingress traffic on the hostPort
12131	// of the port mapping.
12132	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
12133
12134	// The name of the load balancer to associate with the Amazon ECS service or
12135	// task set.
12136	//
12137	// A load balancer name is only specified when using a Classic Load Balancer.
12138	// If you are using an Application Load Balancer or a Network Load Balancer
12139	// this should be omitted.
12140	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
12141
12142	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
12143	// group or groups associated with a service or task set.
12144	//
12145	// A target group ARN is only specified when using an Application Load Balancer
12146	// or Network Load Balancer. If you are using a Classic Load Balancer this should
12147	// be omitted.
12148	//
12149	// For services using the ECS deployment controller, you can specify one or
12150	// multiple target groups. For more information, see Registering Multiple Target
12151	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
12152	// in the Amazon Elastic Container Service Developer Guide.
12153	//
12154	// For services using the CODE_DEPLOY deployment controller, you are required
12155	// to define two target groups for the load balancer. For more information,
12156	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
12157	// in the Amazon Elastic Container Service Developer Guide.
12158	//
12159	// If your service's task definition uses the awsvpc network mode (which is
12160	// required for the Fargate launch type), you must choose ip as the target type,
12161	// not instance, when creating your target groups because tasks that use the
12162	// awsvpc network mode are associated with an elastic network interface, not
12163	// an Amazon EC2 instance.
12164	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
12165}
12166
12167// String returns the string representation
12168func (s LoadBalancer) String() string {
12169	return awsutil.Prettify(s)
12170}
12171
12172// GoString returns the string representation
12173func (s LoadBalancer) GoString() string {
12174	return s.String()
12175}
12176
12177// SetContainerName sets the ContainerName field's value.
12178func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
12179	s.ContainerName = &v
12180	return s
12181}
12182
12183// SetContainerPort sets the ContainerPort field's value.
12184func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
12185	s.ContainerPort = &v
12186	return s
12187}
12188
12189// SetLoadBalancerName sets the LoadBalancerName field's value.
12190func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
12191	s.LoadBalancerName = &v
12192	return s
12193}
12194
12195// SetTargetGroupArn sets the TargetGroupArn field's value.
12196func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
12197	s.TargetGroupArn = &v
12198	return s
12199}
12200
12201// Log configuration options to send to a custom log driver for the container.
12202type LogConfiguration struct {
12203	_ struct{} `type:"structure"`
12204
12205	// The log driver to use for the container. The valid values listed for this
12206	// parameter are log drivers that the Amazon ECS container agent can communicate
12207	// with by default.
12208	//
12209	// For tasks using the Fargate launch type, the supported log drivers are awslogs
12210	// and splunk.
12211	//
12212	// For tasks using the EC2 launch type, the supported log drivers are awslogs,
12213	// fluentd, gelf, json-file, journald, logentries, syslog, and splunk.
12214	//
12215	// For more information about using the awslogs log driver, see Using the awslogs
12216	// Log Driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
12217	// in the Amazon Elastic Container Service Developer Guide.
12218	//
12219	// If you have a custom driver that is not listed above that you would like
12220	// to work with the Amazon ECS container agent, you can fork the Amazon ECS
12221	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
12222	// and customize it to work with that driver. We encourage you to submit pull
12223	// requests for changes that you would like to have included. However, Amazon
12224	// Web Services does not currently support running modified copies of this software.
12225	//
12226	// This parameter requires version 1.18 of the Docker Remote API or greater
12227	// on your container instance. To check the Docker Remote API version on your
12228	// container instance, log in to your container instance and run the following
12229	// command: sudo docker version --format '{{.Server.APIVersion}}'
12230	//
12231	// LogDriver is a required field
12232	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
12233
12234	// The configuration options to send to the log driver. This parameter requires
12235	// version 1.19 of the Docker Remote API or greater on your container instance.
12236	// To check the Docker Remote API version on your container instance, log in
12237	// to your container instance and run the following command: sudo docker version
12238	// --format '{{.Server.APIVersion}}'
12239	Options map[string]*string `locationName:"options" type:"map"`
12240
12241	// The secrets to pass to the log configuration. For more information, see Specifying
12242	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
12243	// in the Amazon Elastic Container Service Developer Guide.
12244	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
12245}
12246
12247// String returns the string representation
12248func (s LogConfiguration) String() string {
12249	return awsutil.Prettify(s)
12250}
12251
12252// GoString returns the string representation
12253func (s LogConfiguration) GoString() string {
12254	return s.String()
12255}
12256
12257// Validate inspects the fields of the type to determine if they are valid.
12258func (s *LogConfiguration) Validate() error {
12259	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
12260	if s.LogDriver == nil {
12261		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
12262	}
12263	if s.SecretOptions != nil {
12264		for i, v := range s.SecretOptions {
12265			if v == nil {
12266				continue
12267			}
12268			if err := v.Validate(); err != nil {
12269				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
12270			}
12271		}
12272	}
12273
12274	if invalidParams.Len() > 0 {
12275		return invalidParams
12276	}
12277	return nil
12278}
12279
12280// SetLogDriver sets the LogDriver field's value.
12281func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
12282	s.LogDriver = &v
12283	return s
12284}
12285
12286// SetOptions sets the Options field's value.
12287func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
12288	s.Options = v
12289	return s
12290}
12291
12292// SetSecretOptions sets the SecretOptions field's value.
12293func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
12294	s.SecretOptions = v
12295	return s
12296}
12297
12298// The managed scaling settings for the Auto Scaling group capacity provider.
12299//
12300// When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
12301// actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
12302// policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
12303// value as the target value for the metric. For more information, see Using
12304// Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
12305// in the Amazon Elastic Container Service Developer Guide.
12306//
12307// If managed scaling is disabled, the user must manage the scaling of the Auto
12308// Scaling group.
12309type ManagedScaling struct {
12310	_ struct{} `type:"structure"`
12311
12312	// The maximum number of container instances that Amazon ECS will scale in or
12313	// scale out at one time. If this parameter is omitted, the default value of
12314	// 10000 is used.
12315	MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"`
12316
12317	// The minimum number of container instances that Amazon ECS will scale in or
12318	// scale out at one time. If this parameter is omitted, the default value of
12319	// 1 is used.
12320	MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"`
12321
12322	// Whether or not to enable managed scaling for the capacity provider.
12323	Status *string `locationName:"status" type:"string" enum:"ManagedScalingStatus"`
12324
12325	// The target capacity value for the capacity provider. The specified value
12326	// must be greater than 0 and less than or equal to 100. A value of 100 will
12327	// result in the Amazon EC2 instances in your Auto Scaling group being completely
12328	// utilized.
12329	TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"`
12330}
12331
12332// String returns the string representation
12333func (s ManagedScaling) String() string {
12334	return awsutil.Prettify(s)
12335}
12336
12337// GoString returns the string representation
12338func (s ManagedScaling) GoString() string {
12339	return s.String()
12340}
12341
12342// Validate inspects the fields of the type to determine if they are valid.
12343func (s *ManagedScaling) Validate() error {
12344	invalidParams := request.ErrInvalidParams{Context: "ManagedScaling"}
12345	if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 {
12346		invalidParams.Add(request.NewErrParamMinValue("MaximumScalingStepSize", 1))
12347	}
12348	if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 {
12349		invalidParams.Add(request.NewErrParamMinValue("MinimumScalingStepSize", 1))
12350	}
12351	if s.TargetCapacity != nil && *s.TargetCapacity < 1 {
12352		invalidParams.Add(request.NewErrParamMinValue("TargetCapacity", 1))
12353	}
12354
12355	if invalidParams.Len() > 0 {
12356		return invalidParams
12357	}
12358	return nil
12359}
12360
12361// SetMaximumScalingStepSize sets the MaximumScalingStepSize field's value.
12362func (s *ManagedScaling) SetMaximumScalingStepSize(v int64) *ManagedScaling {
12363	s.MaximumScalingStepSize = &v
12364	return s
12365}
12366
12367// SetMinimumScalingStepSize sets the MinimumScalingStepSize field's value.
12368func (s *ManagedScaling) SetMinimumScalingStepSize(v int64) *ManagedScaling {
12369	s.MinimumScalingStepSize = &v
12370	return s
12371}
12372
12373// SetStatus sets the Status field's value.
12374func (s *ManagedScaling) SetStatus(v string) *ManagedScaling {
12375	s.Status = &v
12376	return s
12377}
12378
12379// SetTargetCapacity sets the TargetCapacity field's value.
12380func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling {
12381	s.TargetCapacity = &v
12382	return s
12383}
12384
12385// Details on a volume mount point that is used in a container definition.
12386type MountPoint struct {
12387	_ struct{} `type:"structure"`
12388
12389	// The path on the container to mount the host volume at.
12390	ContainerPath *string `locationName:"containerPath" type:"string"`
12391
12392	// If this value is true, the container has read-only access to the volume.
12393	// If this value is false, then the container can write to the volume. The default
12394	// value is false.
12395	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
12396
12397	// The name of the volume to mount. Must be a volume name referenced in the
12398	// name parameter of task definition volume.
12399	SourceVolume *string `locationName:"sourceVolume" type:"string"`
12400}
12401
12402// String returns the string representation
12403func (s MountPoint) String() string {
12404	return awsutil.Prettify(s)
12405}
12406
12407// GoString returns the string representation
12408func (s MountPoint) GoString() string {
12409	return s.String()
12410}
12411
12412// SetContainerPath sets the ContainerPath field's value.
12413func (s *MountPoint) SetContainerPath(v string) *MountPoint {
12414	s.ContainerPath = &v
12415	return s
12416}
12417
12418// SetReadOnly sets the ReadOnly field's value.
12419func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
12420	s.ReadOnly = &v
12421	return s
12422}
12423
12424// SetSourceVolume sets the SourceVolume field's value.
12425func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
12426	s.SourceVolume = &v
12427	return s
12428}
12429
12430// Details on the network bindings between a container and its host container
12431// instance. After a task reaches the RUNNING status, manual and automatic host
12432// and container port assignments are visible in the networkBindings section
12433// of DescribeTasks API responses.
12434type NetworkBinding struct {
12435	_ struct{} `type:"structure"`
12436
12437	// The IP address that the container is bound to on the container instance.
12438	BindIP *string `locationName:"bindIP" type:"string"`
12439
12440	// The port number on the container that is used with the network binding.
12441	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
12442
12443	// The port number on the host that is used with the network binding.
12444	HostPort *int64 `locationName:"hostPort" type:"integer"`
12445
12446	// The protocol used for the network binding.
12447	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
12448}
12449
12450// String returns the string representation
12451func (s NetworkBinding) String() string {
12452	return awsutil.Prettify(s)
12453}
12454
12455// GoString returns the string representation
12456func (s NetworkBinding) GoString() string {
12457	return s.String()
12458}
12459
12460// SetBindIP sets the BindIP field's value.
12461func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
12462	s.BindIP = &v
12463	return s
12464}
12465
12466// SetContainerPort sets the ContainerPort field's value.
12467func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
12468	s.ContainerPort = &v
12469	return s
12470}
12471
12472// SetHostPort sets the HostPort field's value.
12473func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
12474	s.HostPort = &v
12475	return s
12476}
12477
12478// SetProtocol sets the Protocol field's value.
12479func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
12480	s.Protocol = &v
12481	return s
12482}
12483
12484// An object representing the network configuration for a task or service.
12485type NetworkConfiguration struct {
12486	_ struct{} `type:"structure"`
12487
12488	// The VPC subnets and security groups associated with a task.
12489	//
12490	// All specified subnets and security groups must be from the same VPC.
12491	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
12492}
12493
12494// String returns the string representation
12495func (s NetworkConfiguration) String() string {
12496	return awsutil.Prettify(s)
12497}
12498
12499// GoString returns the string representation
12500func (s NetworkConfiguration) GoString() string {
12501	return s.String()
12502}
12503
12504// Validate inspects the fields of the type to determine if they are valid.
12505func (s *NetworkConfiguration) Validate() error {
12506	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
12507	if s.AwsvpcConfiguration != nil {
12508		if err := s.AwsvpcConfiguration.Validate(); err != nil {
12509			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
12510		}
12511	}
12512
12513	if invalidParams.Len() > 0 {
12514		return invalidParams
12515	}
12516	return nil
12517}
12518
12519// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
12520func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
12521	s.AwsvpcConfiguration = v
12522	return s
12523}
12524
12525// An object representing the elastic network interface for tasks that use the
12526// awsvpc network mode.
12527type NetworkInterface struct {
12528	_ struct{} `type:"structure"`
12529
12530	// The attachment ID for the network interface.
12531	AttachmentId *string `locationName:"attachmentId" type:"string"`
12532
12533	// The private IPv6 address for the network interface.
12534	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
12535
12536	// The private IPv4 address for the network interface.
12537	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
12538}
12539
12540// String returns the string representation
12541func (s NetworkInterface) String() string {
12542	return awsutil.Prettify(s)
12543}
12544
12545// GoString returns the string representation
12546func (s NetworkInterface) GoString() string {
12547	return s.String()
12548}
12549
12550// SetAttachmentId sets the AttachmentId field's value.
12551func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
12552	s.AttachmentId = &v
12553	return s
12554}
12555
12556// SetIpv6Address sets the Ipv6Address field's value.
12557func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
12558	s.Ipv6Address = &v
12559	return s
12560}
12561
12562// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
12563func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
12564	s.PrivateIpv4Address = &v
12565	return s
12566}
12567
12568// An object representing a constraint on task placement. For more information,
12569// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
12570// in the Amazon Elastic Container Service Developer Guide.
12571//
12572// If you are using the Fargate launch type, task placement constraints are
12573// not supported.
12574type PlacementConstraint struct {
12575	_ struct{} `type:"structure"`
12576
12577	// A cluster query language expression to apply to the constraint. You cannot
12578	// specify an expression if the constraint type is distinctInstance. For more
12579	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
12580	// in the Amazon Elastic Container Service Developer Guide.
12581	Expression *string `locationName:"expression" type:"string"`
12582
12583	// The type of constraint. Use distinctInstance to ensure that each task in
12584	// a particular group is running on a different container instance. Use memberOf
12585	// to restrict the selection to a group of valid candidates.
12586	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
12587}
12588
12589// String returns the string representation
12590func (s PlacementConstraint) String() string {
12591	return awsutil.Prettify(s)
12592}
12593
12594// GoString returns the string representation
12595func (s PlacementConstraint) GoString() string {
12596	return s.String()
12597}
12598
12599// SetExpression sets the Expression field's value.
12600func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
12601	s.Expression = &v
12602	return s
12603}
12604
12605// SetType sets the Type field's value.
12606func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
12607	s.Type = &v
12608	return s
12609}
12610
12611// The task placement strategy for a task or service. For more information,
12612// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
12613// in the Amazon Elastic Container Service Developer Guide.
12614type PlacementStrategy struct {
12615	_ struct{} `type:"structure"`
12616
12617	// The field to apply the placement strategy against. For the spread placement
12618	// strategy, valid values are instanceId (or host, which has the same effect),
12619	// or any platform or custom attribute that is applied to a container instance,
12620	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
12621	// valid values are cpu and memory. For the random placement strategy, this
12622	// field is not used.
12623	Field *string `locationName:"field" type:"string"`
12624
12625	// The type of placement strategy. The random placement strategy randomly places
12626	// tasks on available candidates. The spread placement strategy spreads placement
12627	// across available candidates evenly based on the field parameter. The binpack
12628	// strategy places tasks on available candidates that have the least available
12629	// amount of the resource that is specified with the field parameter. For example,
12630	// if you binpack on memory, a task is placed on the instance with the least
12631	// amount of remaining memory (but still enough to run the task).
12632	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
12633}
12634
12635// String returns the string representation
12636func (s PlacementStrategy) String() string {
12637	return awsutil.Prettify(s)
12638}
12639
12640// GoString returns the string representation
12641func (s PlacementStrategy) GoString() string {
12642	return s.String()
12643}
12644
12645// SetField sets the Field field's value.
12646func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
12647	s.Field = &v
12648	return s
12649}
12650
12651// SetType sets the Type field's value.
12652func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
12653	s.Type = &v
12654	return s
12655}
12656
12657// The devices that are available on the container instance. The only supported
12658// device type is a GPU.
12659type PlatformDevice struct {
12660	_ struct{} `type:"structure"`
12661
12662	// The ID for the GPU(s) on the container instance. The available GPU IDs can
12663	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
12664	// file.
12665	//
12666	// Id is a required field
12667	Id *string `locationName:"id" type:"string" required:"true"`
12668
12669	// The type of device that is available on the container instance. The only
12670	// supported value is GPU.
12671	//
12672	// Type is a required field
12673	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
12674}
12675
12676// String returns the string representation
12677func (s PlatformDevice) String() string {
12678	return awsutil.Prettify(s)
12679}
12680
12681// GoString returns the string representation
12682func (s PlatformDevice) GoString() string {
12683	return s.String()
12684}
12685
12686// Validate inspects the fields of the type to determine if they are valid.
12687func (s *PlatformDevice) Validate() error {
12688	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
12689	if s.Id == nil {
12690		invalidParams.Add(request.NewErrParamRequired("Id"))
12691	}
12692	if s.Type == nil {
12693		invalidParams.Add(request.NewErrParamRequired("Type"))
12694	}
12695
12696	if invalidParams.Len() > 0 {
12697		return invalidParams
12698	}
12699	return nil
12700}
12701
12702// SetId sets the Id field's value.
12703func (s *PlatformDevice) SetId(v string) *PlatformDevice {
12704	s.Id = &v
12705	return s
12706}
12707
12708// SetType sets the Type field's value.
12709func (s *PlatformDevice) SetType(v string) *PlatformDevice {
12710	s.Type = &v
12711	return s
12712}
12713
12714// Port mappings allow containers to access ports on the host container instance
12715// to send or receive traffic. Port mappings are specified as part of the container
12716// definition.
12717//
12718// If you are using containers in a task with the awsvpc or host network mode,
12719// exposed ports should be specified using containerPort. The hostPort can be
12720// left blank or it must be the same value as the containerPort.
12721//
12722// After a task reaches the RUNNING status, manual and automatic host and container
12723// port assignments are visible in the networkBindings section of DescribeTasks
12724// API responses.
12725type PortMapping struct {
12726	_ struct{} `type:"structure"`
12727
12728	// The port number on the container that is bound to the user-specified or automatically
12729	// assigned host port.
12730	//
12731	// If you are using containers in a task with the awsvpc or host network mode,
12732	// exposed ports should be specified using containerPort.
12733	//
12734	// If you are using containers in a task with the bridge network mode and you
12735	// specify a container port and not a host port, your container automatically
12736	// receives a host port in the ephemeral port range. For more information, see
12737	// hostPort. Port mappings that are automatically assigned in this way do not
12738	// count toward the 100 reserved ports limit of a container instance.
12739	//
12740	// You cannot expose the same container port for multiple protocols. An error
12741	// will be returned if this is attempted.
12742	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
12743
12744	// The port number on the container instance to reserve for your container.
12745	//
12746	// If you are using containers in a task with the awsvpc or host network mode,
12747	// the hostPort can either be left blank or set to the same value as the containerPort.
12748	//
12749	// If you are using containers in a task with the bridge network mode, you can
12750	// specify a non-reserved host port for your container port mapping, or you
12751	// can omit the hostPort (or set it to 0) while specifying a containerPort and
12752	// your container automatically receives a port in the ephemeral port range
12753	// for your container instance operating system and Docker version.
12754	//
12755	// The default ephemeral port range for Docker version 1.6.0 and later is listed
12756	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
12757	// parameter is unavailable, the default ephemeral port range from 49153 through
12758	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
12759	// range as these are reserved for automatic assignment. In general, ports below
12760	// 32768 are outside of the ephemeral port range.
12761	//
12762	// The default ephemeral port range from 49153 through 65535 is always used
12763	// for Docker versions before 1.6.0.
12764	//
12765	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
12766	// and the Amazon ECS container agent ports 51678-51680. Any host port that
12767	// was previously specified in a running task is also reserved while the task
12768	// is running (after a task stops, the host port is released). The current reserved
12769	// ports are displayed in the remainingResources of DescribeContainerInstances
12770	// output. A container instance can have up to 100 reserved ports at a time,
12771	// including the default reserved ports. Automatically assigned ports don't
12772	// count toward the 100 reserved ports limit.
12773	HostPort *int64 `locationName:"hostPort" type:"integer"`
12774
12775	// The protocol used for the port mapping. Valid values are tcp and udp. The
12776	// default is tcp.
12777	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
12778}
12779
12780// String returns the string representation
12781func (s PortMapping) String() string {
12782	return awsutil.Prettify(s)
12783}
12784
12785// GoString returns the string representation
12786func (s PortMapping) GoString() string {
12787	return s.String()
12788}
12789
12790// SetContainerPort sets the ContainerPort field's value.
12791func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
12792	s.ContainerPort = &v
12793	return s
12794}
12795
12796// SetHostPort sets the HostPort field's value.
12797func (s *PortMapping) SetHostPort(v int64) *PortMapping {
12798	s.HostPort = &v
12799	return s
12800}
12801
12802// SetProtocol sets the Protocol field's value.
12803func (s *PortMapping) SetProtocol(v string) *PortMapping {
12804	s.Protocol = &v
12805	return s
12806}
12807
12808// The configuration details for the App Mesh proxy.
12809//
12810// For tasks using the EC2 launch type, the container instances require at least
12811// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
12812// ecs-init package to enable a proxy configuration. If your container instances
12813// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
12814// then they contain the required versions of the container agent and ecs-init.
12815// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
12816// in the Amazon Elastic Container Service Developer Guide.
12817//
12818// For tasks using the Fargate launch type, the task or service requires platform
12819// version 1.3.0 or later.
12820type ProxyConfiguration struct {
12821	_ struct{} `type:"structure"`
12822
12823	// The name of the container that will serve as the App Mesh proxy.
12824	//
12825	// ContainerName is a required field
12826	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
12827
12828	// The set of network configuration parameters to provide the Container Network
12829	// Interface (CNI) plugin, specified as key-value pairs.
12830	//
12831	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
12832	//    defined by the user parameter in a container definition. This is used
12833	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
12834	//    this field can be empty.
12835	//
12836	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
12837	//    defined by the user parameter in a container definition. This is used
12838	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
12839	//    this field can be empty.
12840	//
12841	//    * AppPorts - (Required) The list of ports that the application uses. Network
12842	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
12843	//
12844	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
12845	//    to the AppPorts is directed to.
12846	//
12847	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
12848	//    from the AppPorts is directed to.
12849	//
12850	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
12851	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
12852	//    an empty list.
12853	//
12854	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
12855	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
12856	//    can be an empty list.
12857	Properties []*KeyValuePair `locationName:"properties" type:"list"`
12858
12859	// The proxy type. The only supported value is APPMESH.
12860	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
12861}
12862
12863// String returns the string representation
12864func (s ProxyConfiguration) String() string {
12865	return awsutil.Prettify(s)
12866}
12867
12868// GoString returns the string representation
12869func (s ProxyConfiguration) GoString() string {
12870	return s.String()
12871}
12872
12873// Validate inspects the fields of the type to determine if they are valid.
12874func (s *ProxyConfiguration) Validate() error {
12875	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
12876	if s.ContainerName == nil {
12877		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
12878	}
12879
12880	if invalidParams.Len() > 0 {
12881		return invalidParams
12882	}
12883	return nil
12884}
12885
12886// SetContainerName sets the ContainerName field's value.
12887func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
12888	s.ContainerName = &v
12889	return s
12890}
12891
12892// SetProperties sets the Properties field's value.
12893func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
12894	s.Properties = v
12895	return s
12896}
12897
12898// SetType sets the Type field's value.
12899func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
12900	s.Type = &v
12901	return s
12902}
12903
12904type PutAccountSettingDefaultInput struct {
12905	_ struct{} `type:"structure"`
12906
12907	// The resource name for which to modify the account setting. If serviceLongArnFormat
12908	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
12909	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
12910	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
12911	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
12912	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
12913	// is specified, the default setting for CloudWatch Container Insights for your
12914	// clusters is affected.
12915	//
12916	// Name is a required field
12917	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
12918
12919	// The account setting value for the specified principal ARN. Accepted values
12920	// are enabled and disabled.
12921	//
12922	// Value is a required field
12923	Value *string `locationName:"value" type:"string" required:"true"`
12924}
12925
12926// String returns the string representation
12927func (s PutAccountSettingDefaultInput) String() string {
12928	return awsutil.Prettify(s)
12929}
12930
12931// GoString returns the string representation
12932func (s PutAccountSettingDefaultInput) GoString() string {
12933	return s.String()
12934}
12935
12936// Validate inspects the fields of the type to determine if they are valid.
12937func (s *PutAccountSettingDefaultInput) Validate() error {
12938	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
12939	if s.Name == nil {
12940		invalidParams.Add(request.NewErrParamRequired("Name"))
12941	}
12942	if s.Value == nil {
12943		invalidParams.Add(request.NewErrParamRequired("Value"))
12944	}
12945
12946	if invalidParams.Len() > 0 {
12947		return invalidParams
12948	}
12949	return nil
12950}
12951
12952// SetName sets the Name field's value.
12953func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
12954	s.Name = &v
12955	return s
12956}
12957
12958// SetValue sets the Value field's value.
12959func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
12960	s.Value = &v
12961	return s
12962}
12963
12964type PutAccountSettingDefaultOutput struct {
12965	_ struct{} `type:"structure"`
12966
12967	// The current account setting for a resource.
12968	Setting *Setting `locationName:"setting" type:"structure"`
12969}
12970
12971// String returns the string representation
12972func (s PutAccountSettingDefaultOutput) String() string {
12973	return awsutil.Prettify(s)
12974}
12975
12976// GoString returns the string representation
12977func (s PutAccountSettingDefaultOutput) GoString() string {
12978	return s.String()
12979}
12980
12981// SetSetting sets the Setting field's value.
12982func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
12983	s.Setting = v
12984	return s
12985}
12986
12987type PutAccountSettingInput struct {
12988	_ struct{} `type:"structure"`
12989
12990	// The Amazon ECS resource name for which to modify the account setting. If
12991	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
12992	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
12993	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
12994	// the ARN and resource ID for your Amazon ECS container instances is affected.
12995	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
12996	// for your Amazon ECS container instances is affected. If containerInsights
12997	// is specified, the default setting for CloudWatch Container Insights for your
12998	// clusters is affected.
12999	//
13000	// Name is a required field
13001	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
13002
13003	// The ARN of the principal, which can be an IAM user, IAM role, or the root
13004	// user. If you specify the root user, it modifies the account setting for all
13005	// IAM users, IAM roles, and the root user of the account unless an IAM user
13006	// or role explicitly overrides these settings. If this field is omitted, the
13007	// setting is changed only for the authenticated user.
13008	PrincipalArn *string `locationName:"principalArn" type:"string"`
13009
13010	// The account setting value for the specified principal ARN. Accepted values
13011	// are enabled and disabled.
13012	//
13013	// Value is a required field
13014	Value *string `locationName:"value" type:"string" required:"true"`
13015}
13016
13017// String returns the string representation
13018func (s PutAccountSettingInput) String() string {
13019	return awsutil.Prettify(s)
13020}
13021
13022// GoString returns the string representation
13023func (s PutAccountSettingInput) GoString() string {
13024	return s.String()
13025}
13026
13027// Validate inspects the fields of the type to determine if they are valid.
13028func (s *PutAccountSettingInput) Validate() error {
13029	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
13030	if s.Name == nil {
13031		invalidParams.Add(request.NewErrParamRequired("Name"))
13032	}
13033	if s.Value == nil {
13034		invalidParams.Add(request.NewErrParamRequired("Value"))
13035	}
13036
13037	if invalidParams.Len() > 0 {
13038		return invalidParams
13039	}
13040	return nil
13041}
13042
13043// SetName sets the Name field's value.
13044func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
13045	s.Name = &v
13046	return s
13047}
13048
13049// SetPrincipalArn sets the PrincipalArn field's value.
13050func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
13051	s.PrincipalArn = &v
13052	return s
13053}
13054
13055// SetValue sets the Value field's value.
13056func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
13057	s.Value = &v
13058	return s
13059}
13060
13061type PutAccountSettingOutput struct {
13062	_ struct{} `type:"structure"`
13063
13064	// The current account setting for a resource.
13065	Setting *Setting `locationName:"setting" type:"structure"`
13066}
13067
13068// String returns the string representation
13069func (s PutAccountSettingOutput) String() string {
13070	return awsutil.Prettify(s)
13071}
13072
13073// GoString returns the string representation
13074func (s PutAccountSettingOutput) GoString() string {
13075	return s.String()
13076}
13077
13078// SetSetting sets the Setting field's value.
13079func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
13080	s.Setting = v
13081	return s
13082}
13083
13084type PutAttributesInput struct {
13085	_ struct{} `type:"structure"`
13086
13087	// The attributes to apply to your resource. You can specify up to 10 custom
13088	// attributes per resource. You can specify up to 10 attributes in a single
13089	// call.
13090	//
13091	// Attributes is a required field
13092	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
13093
13094	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
13095	// the resource to apply attributes. If you do not specify a cluster, the default
13096	// cluster is assumed.
13097	Cluster *string `locationName:"cluster" type:"string"`
13098}
13099
13100// String returns the string representation
13101func (s PutAttributesInput) String() string {
13102	return awsutil.Prettify(s)
13103}
13104
13105// GoString returns the string representation
13106func (s PutAttributesInput) GoString() string {
13107	return s.String()
13108}
13109
13110// Validate inspects the fields of the type to determine if they are valid.
13111func (s *PutAttributesInput) Validate() error {
13112	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
13113	if s.Attributes == nil {
13114		invalidParams.Add(request.NewErrParamRequired("Attributes"))
13115	}
13116	if s.Attributes != nil {
13117		for i, v := range s.Attributes {
13118			if v == nil {
13119				continue
13120			}
13121			if err := v.Validate(); err != nil {
13122				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
13123			}
13124		}
13125	}
13126
13127	if invalidParams.Len() > 0 {
13128		return invalidParams
13129	}
13130	return nil
13131}
13132
13133// SetAttributes sets the Attributes field's value.
13134func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
13135	s.Attributes = v
13136	return s
13137}
13138
13139// SetCluster sets the Cluster field's value.
13140func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
13141	s.Cluster = &v
13142	return s
13143}
13144
13145type PutAttributesOutput struct {
13146	_ struct{} `type:"structure"`
13147
13148	// The attributes applied to your resource.
13149	Attributes []*Attribute `locationName:"attributes" type:"list"`
13150}
13151
13152// String returns the string representation
13153func (s PutAttributesOutput) String() string {
13154	return awsutil.Prettify(s)
13155}
13156
13157// GoString returns the string representation
13158func (s PutAttributesOutput) GoString() string {
13159	return s.String()
13160}
13161
13162// SetAttributes sets the Attributes field's value.
13163func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
13164	s.Attributes = v
13165	return s
13166}
13167
13168type PutClusterCapacityProvidersInput struct {
13169	_ struct{} `type:"structure"`
13170
13171	// The short name or full Amazon Resource Name (ARN) of one or more capacity
13172	// providers to associate with the cluster.
13173	//
13174	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
13175	// provider must already be created. New capacity providers can be created with
13176	// the CreateCapacityProvider API operation.
13177	//
13178	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
13179	// capacity providers. The AWS Fargate capacity providers are available to all
13180	// accounts and only need to be associated with a cluster to be used.
13181	//
13182	// CapacityProviders is a required field
13183	CapacityProviders []*string `locationName:"capacityProviders" type:"list" required:"true"`
13184
13185	// The short name or full Amazon Resource Name (ARN) of the cluster to modify
13186	// the capacity provider settings for. If you do not specify a cluster, the
13187	// default cluster is assumed.
13188	//
13189	// Cluster is a required field
13190	Cluster *string `locationName:"cluster" type:"string" required:"true"`
13191
13192	// The capacity provider strategy to use by default for the cluster.
13193	//
13194	// When creating a service or running a task on a cluster, if no capacity provider
13195	// or launch type is specified then the default capacity provider strategy for
13196	// the cluster is used.
13197	//
13198	// A capacity provider strategy consists of one or more capacity providers along
13199	// with the base and weight to assign to them. A capacity provider must be associated
13200	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
13201	// API is used to associate a capacity provider with a cluster. Only capacity
13202	// providers with an ACTIVE or UPDATING status can be used.
13203	//
13204	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
13205	// provider must already be created. New capacity providers can be created with
13206	// the CreateCapacityProvider API operation.
13207	//
13208	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
13209	// capacity providers. The AWS Fargate capacity providers are available to all
13210	// accounts and only need to be associated with a cluster to be used.
13211	//
13212	// DefaultCapacityProviderStrategy is a required field
13213	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"`
13214}
13215
13216// String returns the string representation
13217func (s PutClusterCapacityProvidersInput) String() string {
13218	return awsutil.Prettify(s)
13219}
13220
13221// GoString returns the string representation
13222func (s PutClusterCapacityProvidersInput) GoString() string {
13223	return s.String()
13224}
13225
13226// Validate inspects the fields of the type to determine if they are valid.
13227func (s *PutClusterCapacityProvidersInput) Validate() error {
13228	invalidParams := request.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"}
13229	if s.CapacityProviders == nil {
13230		invalidParams.Add(request.NewErrParamRequired("CapacityProviders"))
13231	}
13232	if s.Cluster == nil {
13233		invalidParams.Add(request.NewErrParamRequired("Cluster"))
13234	}
13235	if s.DefaultCapacityProviderStrategy == nil {
13236		invalidParams.Add(request.NewErrParamRequired("DefaultCapacityProviderStrategy"))
13237	}
13238	if s.DefaultCapacityProviderStrategy != nil {
13239		for i, v := range s.DefaultCapacityProviderStrategy {
13240			if v == nil {
13241				continue
13242			}
13243			if err := v.Validate(); err != nil {
13244				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
13245			}
13246		}
13247	}
13248
13249	if invalidParams.Len() > 0 {
13250		return invalidParams
13251	}
13252	return nil
13253}
13254
13255// SetCapacityProviders sets the CapacityProviders field's value.
13256func (s *PutClusterCapacityProvidersInput) SetCapacityProviders(v []*string) *PutClusterCapacityProvidersInput {
13257	s.CapacityProviders = v
13258	return s
13259}
13260
13261// SetCluster sets the Cluster field's value.
13262func (s *PutClusterCapacityProvidersInput) SetCluster(v string) *PutClusterCapacityProvidersInput {
13263	s.Cluster = &v
13264	return s
13265}
13266
13267// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
13268func (s *PutClusterCapacityProvidersInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *PutClusterCapacityProvidersInput {
13269	s.DefaultCapacityProviderStrategy = v
13270	return s
13271}
13272
13273type PutClusterCapacityProvidersOutput struct {
13274	_ struct{} `type:"structure"`
13275
13276	// A regional grouping of one or more container instances on which you can run
13277	// task requests. Each account receives a default cluster the first time you
13278	// use the Amazon ECS service, but you may also create other clusters. Clusters
13279	// may contain more than one instance type simultaneously.
13280	Cluster *Cluster `locationName:"cluster" type:"structure"`
13281}
13282
13283// String returns the string representation
13284func (s PutClusterCapacityProvidersOutput) String() string {
13285	return awsutil.Prettify(s)
13286}
13287
13288// GoString returns the string representation
13289func (s PutClusterCapacityProvidersOutput) GoString() string {
13290	return s.String()
13291}
13292
13293// SetCluster sets the Cluster field's value.
13294func (s *PutClusterCapacityProvidersOutput) SetCluster(v *Cluster) *PutClusterCapacityProvidersOutput {
13295	s.Cluster = v
13296	return s
13297}
13298
13299type RegisterContainerInstanceInput struct {
13300	_ struct{} `type:"structure"`
13301
13302	// The container instance attributes that this container instance supports.
13303	Attributes []*Attribute `locationName:"attributes" type:"list"`
13304
13305	// The short name or full Amazon Resource Name (ARN) of the cluster with which
13306	// to register your container instance. If you do not specify a cluster, the
13307	// default cluster is assumed.
13308	Cluster *string `locationName:"cluster" type:"string"`
13309
13310	// The ARN of the container instance (if it was previously registered).
13311	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
13312
13313	// The instance identity document for the EC2 instance to register. This document
13314	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
13315	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
13316
13317	// The instance identity document signature for the EC2 instance to register.
13318	// This signature can be found by running the following command from the instance:
13319	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
13320	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
13321
13322	// The devices that are available on the container instance. The only supported
13323	// device type is a GPU.
13324	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
13325
13326	// The metadata that you apply to the container instance to help you categorize
13327	// and organize them. Each tag consists of a key and an optional value, both
13328	// of which you define.
13329	//
13330	// The following basic restrictions apply to tags:
13331	//
13332	//    * Maximum number of tags per resource - 50
13333	//
13334	//    * For each resource, each tag key must be unique, and each tag key can
13335	//    have only one value.
13336	//
13337	//    * Maximum key length - 128 Unicode characters in UTF-8
13338	//
13339	//    * Maximum value length - 256 Unicode characters in UTF-8
13340	//
13341	//    * If your tagging schema is used across multiple services and resources,
13342	//    remember that other services may have restrictions on allowed characters.
13343	//    Generally allowed characters are: letters, numbers, and spaces representable
13344	//    in UTF-8, and the following characters: + - = . _ : / @.
13345	//
13346	//    * Tag keys and values are case-sensitive.
13347	//
13348	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
13349	//    as a prefix for either keys or values as it is reserved for AWS use. You
13350	//    cannot edit or delete tag keys or values with this prefix. Tags with this
13351	//    prefix do not count against your tags per resource limit.
13352	Tags []*Tag `locationName:"tags" type:"list"`
13353
13354	// The resources available on the instance.
13355	TotalResources []*Resource `locationName:"totalResources" type:"list"`
13356
13357	// The version information for the Amazon ECS container agent and Docker daemon
13358	// running on the container instance.
13359	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
13360}
13361
13362// String returns the string representation
13363func (s RegisterContainerInstanceInput) String() string {
13364	return awsutil.Prettify(s)
13365}
13366
13367// GoString returns the string representation
13368func (s RegisterContainerInstanceInput) GoString() string {
13369	return s.String()
13370}
13371
13372// Validate inspects the fields of the type to determine if they are valid.
13373func (s *RegisterContainerInstanceInput) Validate() error {
13374	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
13375	if s.Attributes != nil {
13376		for i, v := range s.Attributes {
13377			if v == nil {
13378				continue
13379			}
13380			if err := v.Validate(); err != nil {
13381				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
13382			}
13383		}
13384	}
13385	if s.PlatformDevices != nil {
13386		for i, v := range s.PlatformDevices {
13387			if v == nil {
13388				continue
13389			}
13390			if err := v.Validate(); err != nil {
13391				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
13392			}
13393		}
13394	}
13395	if s.Tags != nil {
13396		for i, v := range s.Tags {
13397			if v == nil {
13398				continue
13399			}
13400			if err := v.Validate(); err != nil {
13401				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13402			}
13403		}
13404	}
13405
13406	if invalidParams.Len() > 0 {
13407		return invalidParams
13408	}
13409	return nil
13410}
13411
13412// SetAttributes sets the Attributes field's value.
13413func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
13414	s.Attributes = v
13415	return s
13416}
13417
13418// SetCluster sets the Cluster field's value.
13419func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
13420	s.Cluster = &v
13421	return s
13422}
13423
13424// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
13425func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
13426	s.ContainerInstanceArn = &v
13427	return s
13428}
13429
13430// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
13431func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
13432	s.InstanceIdentityDocument = &v
13433	return s
13434}
13435
13436// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
13437func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
13438	s.InstanceIdentityDocumentSignature = &v
13439	return s
13440}
13441
13442// SetPlatformDevices sets the PlatformDevices field's value.
13443func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
13444	s.PlatformDevices = v
13445	return s
13446}
13447
13448// SetTags sets the Tags field's value.
13449func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
13450	s.Tags = v
13451	return s
13452}
13453
13454// SetTotalResources sets the TotalResources field's value.
13455func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
13456	s.TotalResources = v
13457	return s
13458}
13459
13460// SetVersionInfo sets the VersionInfo field's value.
13461func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
13462	s.VersionInfo = v
13463	return s
13464}
13465
13466type RegisterContainerInstanceOutput struct {
13467	_ struct{} `type:"structure"`
13468
13469	// The container instance that was registered.
13470	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
13471}
13472
13473// String returns the string representation
13474func (s RegisterContainerInstanceOutput) String() string {
13475	return awsutil.Prettify(s)
13476}
13477
13478// GoString returns the string representation
13479func (s RegisterContainerInstanceOutput) GoString() string {
13480	return s.String()
13481}
13482
13483// SetContainerInstance sets the ContainerInstance field's value.
13484func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
13485	s.ContainerInstance = v
13486	return s
13487}
13488
13489type RegisterTaskDefinitionInput struct {
13490	_ struct{} `type:"structure"`
13491
13492	// A list of container definitions in JSON format that describe the different
13493	// containers that make up your task.
13494	//
13495	// ContainerDefinitions is a required field
13496	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
13497
13498	// The number of CPU units used by the task. It can be expressed as an integer
13499	// using CPU units, for example 1024, or as a string using vCPUs, for example
13500	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
13501	// integer indicating the CPU units when the task definition is registered.
13502	//
13503	// Task-level CPU and memory parameters are ignored for Windows containers.
13504	// We recommend specifying container-level resources for Windows containers.
13505	//
13506	// If you are using the EC2 launch type, this field is optional. Supported values
13507	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
13508	//
13509	// If you are using the Fargate launch type, this field is required and you
13510	// must use one of the following values, which determines your range of supported
13511	// values for the memory parameter:
13512	//
13513	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
13514	//    2048 (2 GB)
13515	//
13516	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
13517	//    (3 GB), 4096 (4 GB)
13518	//
13519	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
13520	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
13521	//
13522	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
13523	//    (16 GB) in increments of 1024 (1 GB)
13524	//
13525	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
13526	//    (30 GB) in increments of 1024 (1 GB)
13527	Cpu *string `locationName:"cpu" type:"string"`
13528
13529	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
13530	// ECS container agent and the Docker daemon can assume.
13531	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
13532
13533	// You must specify a family for a task definition, which allows you to track
13534	// multiple versions of the same task definition. The family is used as a name
13535	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
13536	// and hyphens are allowed.
13537	//
13538	// Family is a required field
13539	Family *string `locationName:"family" type:"string" required:"true"`
13540
13541	// The Elastic Inference accelerators to use for the containers in the task.
13542	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
13543
13544	// The IPC resource namespace to use for the containers in the task. The valid
13545	// values are host, task, or none. If host is specified, then all containers
13546	// within the tasks that specified the host IPC mode on the same container instance
13547	// share the same IPC resources with the host Amazon EC2 instance. If task is
13548	// specified, all containers within the specified task share the same IPC resources.
13549	// If none is specified, then IPC resources within the containers of a task
13550	// are private and not shared with other containers in a task or on the container
13551	// instance. If no value is specified, then the IPC resource namespace sharing
13552	// depends on the Docker daemon setting on the container instance. For more
13553	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
13554	// in the Docker run reference.
13555	//
13556	// If the host IPC mode is used, be aware that there is a heightened risk of
13557	// undesired IPC namespace expose. For more information, see Docker security
13558	// (https://docs.docker.com/engine/security/security/).
13559	//
13560	// If you are setting namespaced kernel parameters using systemControls for
13561	// the containers in the task, the following will apply to your IPC resource
13562	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
13563	// in the Amazon Elastic Container Service Developer Guide.
13564	//
13565	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
13566	//    are not supported.
13567	//
13568	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
13569	//    will apply to all containers within a task.
13570	//
13571	// This parameter is not supported for Windows containers or tasks using the
13572	// Fargate launch type.
13573	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
13574
13575	// The amount of memory (in MiB) used by the task. It can be expressed as an
13576	// integer using MiB, for example 1024, or as a string using GB, for example
13577	// 1GB or 1 GB, in a task definition. String values are converted to an integer
13578	// indicating the MiB when the task definition is registered.
13579	//
13580	// Task-level CPU and memory parameters are ignored for Windows containers.
13581	// We recommend specifying container-level resources for Windows containers.
13582	//
13583	// If using the EC2 launch type, this field is optional.
13584	//
13585	// If using the Fargate launch type, this field is required and you must use
13586	// one of the following values, which determines your range of supported values
13587	// for the cpu parameter:
13588	//
13589	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
13590	//    vCPU)
13591	//
13592	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
13593	//    512 (.5 vCPU)
13594	//
13595	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
13596	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
13597	//
13598	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
13599	//    Available cpu values: 2048 (2 vCPU)
13600	//
13601	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
13602	//    Available cpu values: 4096 (4 vCPU)
13603	Memory *string `locationName:"memory" type:"string"`
13604
13605	// The Docker networking mode to use for the containers in the task. The valid
13606	// values are none, bridge, awsvpc, and host. The default Docker network mode
13607	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
13608	// is required. If you are using the EC2 launch type, any network mode can be
13609	// used. If the network mode is set to none, you cannot specify port mappings
13610	// in your container definitions, and the tasks containers do not have external
13611	// connectivity. The host and awsvpc network modes offer the highest networking
13612	// performance for containers because they use the EC2 network stack instead
13613	// of the virtualized network stack provided by the bridge mode.
13614	//
13615	// With the host and awsvpc network modes, exposed container ports are mapped
13616	// directly to the corresponding host port (for the host network mode) or the
13617	// attached elastic network interface port (for the awsvpc network mode), so
13618	// you cannot take advantage of dynamic host port mappings.
13619	//
13620	// If the network mode is awsvpc, the task is allocated an elastic network interface,
13621	// and you must specify a NetworkConfiguration value when you create a service
13622	// or run a task with the task definition. For more information, see Task Networking
13623	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
13624	// in the Amazon Elastic Container Service Developer Guide.
13625	//
13626	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
13627	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
13628	// mode.
13629	//
13630	// If the network mode is host, you cannot run multiple instantiations of the
13631	// same task on a single container instance when port mappings are used.
13632	//
13633	// Docker for Windows uses different network modes than Docker for Linux. When
13634	// you register a task definition with Windows containers, you must not specify
13635	// a network mode. If you use the console to register a task definition with
13636	// Windows containers, you must choose the <default> network mode object.
13637	//
13638	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
13639	// in the Docker run reference.
13640	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
13641
13642	// The process namespace to use for the containers in the task. The valid values
13643	// are host or task. If host is specified, then all containers within the tasks
13644	// that specified the host PID mode on the same container instance share the
13645	// same process namespace with the host Amazon EC2 instance. If task is specified,
13646	// all containers within the specified task share the same process namespace.
13647	// If no value is specified, the default is a private namespace. For more information,
13648	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
13649	// in the Docker run reference.
13650	//
13651	// If the host PID mode is used, be aware that there is a heightened risk of
13652	// undesired process namespace expose. For more information, see Docker security
13653	// (https://docs.docker.com/engine/security/security/).
13654	//
13655	// This parameter is not supported for Windows containers or tasks using the
13656	// Fargate launch type.
13657	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
13658
13659	// An array of placement constraint objects to use for the task. You can specify
13660	// a maximum of 10 constraints per task (this limit includes constraints in
13661	// the task definition and those specified at runtime).
13662	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
13663
13664	// The configuration details for the App Mesh proxy.
13665	//
13666	// For tasks using the EC2 launch type, the container instances require at least
13667	// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
13668	// ecs-init package to enable a proxy configuration. If your container instances
13669	// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
13670	// then they contain the required versions of the container agent and ecs-init.
13671	// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
13672	// in the Amazon Elastic Container Service Developer Guide.
13673	//
13674	// For tasks using the Fargate launch type, the task or service requires platform
13675	// version 1.3.0 or later.
13676	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
13677
13678	// The launch type required by the task. If no value is specified, it defaults
13679	// to EC2.
13680	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
13681
13682	// The metadata that you apply to the task definition to help you categorize
13683	// and organize them. Each tag consists of a key and an optional value, both
13684	// of which you define.
13685	//
13686	// The following basic restrictions apply to tags:
13687	//
13688	//    * Maximum number of tags per resource - 50
13689	//
13690	//    * For each resource, each tag key must be unique, and each tag key can
13691	//    have only one value.
13692	//
13693	//    * Maximum key length - 128 Unicode characters in UTF-8
13694	//
13695	//    * Maximum value length - 256 Unicode characters in UTF-8
13696	//
13697	//    * If your tagging schema is used across multiple services and resources,
13698	//    remember that other services may have restrictions on allowed characters.
13699	//    Generally allowed characters are: letters, numbers, and spaces representable
13700	//    in UTF-8, and the following characters: + - = . _ : / @.
13701	//
13702	//    * Tag keys and values are case-sensitive.
13703	//
13704	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
13705	//    as a prefix for either keys or values as it is reserved for AWS use. You
13706	//    cannot edit or delete tag keys or values with this prefix. Tags with this
13707	//    prefix do not count against your tags per resource limit.
13708	Tags []*Tag `locationName:"tags" type:"list"`
13709
13710	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
13711	// in this task can assume. All containers in this task are granted the permissions
13712	// that are specified in this role. For more information, see IAM Roles for
13713	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
13714	// in the Amazon Elastic Container Service Developer Guide.
13715	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
13716
13717	// A list of volume definitions in JSON format that containers in your task
13718	// may use.
13719	Volumes []*Volume `locationName:"volumes" type:"list"`
13720}
13721
13722// String returns the string representation
13723func (s RegisterTaskDefinitionInput) String() string {
13724	return awsutil.Prettify(s)
13725}
13726
13727// GoString returns the string representation
13728func (s RegisterTaskDefinitionInput) GoString() string {
13729	return s.String()
13730}
13731
13732// Validate inspects the fields of the type to determine if they are valid.
13733func (s *RegisterTaskDefinitionInput) Validate() error {
13734	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
13735	if s.ContainerDefinitions == nil {
13736		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
13737	}
13738	if s.Family == nil {
13739		invalidParams.Add(request.NewErrParamRequired("Family"))
13740	}
13741	if s.ContainerDefinitions != nil {
13742		for i, v := range s.ContainerDefinitions {
13743			if v == nil {
13744				continue
13745			}
13746			if err := v.Validate(); err != nil {
13747				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
13748			}
13749		}
13750	}
13751	if s.InferenceAccelerators != nil {
13752		for i, v := range s.InferenceAccelerators {
13753			if v == nil {
13754				continue
13755			}
13756			if err := v.Validate(); err != nil {
13757				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
13758			}
13759		}
13760	}
13761	if s.ProxyConfiguration != nil {
13762		if err := s.ProxyConfiguration.Validate(); err != nil {
13763			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
13764		}
13765	}
13766	if s.Tags != nil {
13767		for i, v := range s.Tags {
13768			if v == nil {
13769				continue
13770			}
13771			if err := v.Validate(); err != nil {
13772				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13773			}
13774		}
13775	}
13776
13777	if invalidParams.Len() > 0 {
13778		return invalidParams
13779	}
13780	return nil
13781}
13782
13783// SetContainerDefinitions sets the ContainerDefinitions field's value.
13784func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
13785	s.ContainerDefinitions = v
13786	return s
13787}
13788
13789// SetCpu sets the Cpu field's value.
13790func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
13791	s.Cpu = &v
13792	return s
13793}
13794
13795// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
13796func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
13797	s.ExecutionRoleArn = &v
13798	return s
13799}
13800
13801// SetFamily sets the Family field's value.
13802func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
13803	s.Family = &v
13804	return s
13805}
13806
13807// SetInferenceAccelerators sets the InferenceAccelerators field's value.
13808func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
13809	s.InferenceAccelerators = v
13810	return s
13811}
13812
13813// SetIpcMode sets the IpcMode field's value.
13814func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
13815	s.IpcMode = &v
13816	return s
13817}
13818
13819// SetMemory sets the Memory field's value.
13820func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
13821	s.Memory = &v
13822	return s
13823}
13824
13825// SetNetworkMode sets the NetworkMode field's value.
13826func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
13827	s.NetworkMode = &v
13828	return s
13829}
13830
13831// SetPidMode sets the PidMode field's value.
13832func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
13833	s.PidMode = &v
13834	return s
13835}
13836
13837// SetPlacementConstraints sets the PlacementConstraints field's value.
13838func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
13839	s.PlacementConstraints = v
13840	return s
13841}
13842
13843// SetProxyConfiguration sets the ProxyConfiguration field's value.
13844func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
13845	s.ProxyConfiguration = v
13846	return s
13847}
13848
13849// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
13850func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
13851	s.RequiresCompatibilities = v
13852	return s
13853}
13854
13855// SetTags sets the Tags field's value.
13856func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
13857	s.Tags = v
13858	return s
13859}
13860
13861// SetTaskRoleArn sets the TaskRoleArn field's value.
13862func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
13863	s.TaskRoleArn = &v
13864	return s
13865}
13866
13867// SetVolumes sets the Volumes field's value.
13868func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
13869	s.Volumes = v
13870	return s
13871}
13872
13873type RegisterTaskDefinitionOutput struct {
13874	_ struct{} `type:"structure"`
13875
13876	// The list of tags associated with the task definition.
13877	Tags []*Tag `locationName:"tags" type:"list"`
13878
13879	// The full description of the registered task definition.
13880	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
13881}
13882
13883// String returns the string representation
13884func (s RegisterTaskDefinitionOutput) String() string {
13885	return awsutil.Prettify(s)
13886}
13887
13888// GoString returns the string representation
13889func (s RegisterTaskDefinitionOutput) GoString() string {
13890	return s.String()
13891}
13892
13893// SetTags sets the Tags field's value.
13894func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
13895	s.Tags = v
13896	return s
13897}
13898
13899// SetTaskDefinition sets the TaskDefinition field's value.
13900func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
13901	s.TaskDefinition = v
13902	return s
13903}
13904
13905// The repository credentials for private registry authentication.
13906type RepositoryCredentials struct {
13907	_ struct{} `type:"structure"`
13908
13909	// The Amazon Resource Name (ARN) of the secret containing the private repository
13910	// credentials.
13911	//
13912	// When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret
13913	// exists in the same Region as the task that you are launching then you can
13914	// use either the full ARN or the name of the secret. When you are using the
13915	// AWS Management Console, you must specify the full ARN of the secret.
13916	//
13917	// CredentialsParameter is a required field
13918	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
13919}
13920
13921// String returns the string representation
13922func (s RepositoryCredentials) String() string {
13923	return awsutil.Prettify(s)
13924}
13925
13926// GoString returns the string representation
13927func (s RepositoryCredentials) GoString() string {
13928	return s.String()
13929}
13930
13931// Validate inspects the fields of the type to determine if they are valid.
13932func (s *RepositoryCredentials) Validate() error {
13933	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
13934	if s.CredentialsParameter == nil {
13935		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
13936	}
13937
13938	if invalidParams.Len() > 0 {
13939		return invalidParams
13940	}
13941	return nil
13942}
13943
13944// SetCredentialsParameter sets the CredentialsParameter field's value.
13945func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
13946	s.CredentialsParameter = &v
13947	return s
13948}
13949
13950// Describes the resources available for a container instance.
13951type Resource struct {
13952	_ struct{} `type:"structure"`
13953
13954	// When the doubleValue type is set, the value of the resource must be a double
13955	// precision floating-point type.
13956	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
13957
13958	// When the integerValue type is set, the value of the resource must be an integer.
13959	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
13960
13961	// When the longValue type is set, the value of the resource must be an extended
13962	// precision floating-point type.
13963	LongValue *int64 `locationName:"longValue" type:"long"`
13964
13965	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
13966	// resource.
13967	Name *string `locationName:"name" type:"string"`
13968
13969	// When the stringSetValue type is set, the value of the resource must be a
13970	// string type.
13971	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
13972
13973	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
13974	Type *string `locationName:"type" type:"string"`
13975}
13976
13977// String returns the string representation
13978func (s Resource) String() string {
13979	return awsutil.Prettify(s)
13980}
13981
13982// GoString returns the string representation
13983func (s Resource) GoString() string {
13984	return s.String()
13985}
13986
13987// SetDoubleValue sets the DoubleValue field's value.
13988func (s *Resource) SetDoubleValue(v float64) *Resource {
13989	s.DoubleValue = &v
13990	return s
13991}
13992
13993// SetIntegerValue sets the IntegerValue field's value.
13994func (s *Resource) SetIntegerValue(v int64) *Resource {
13995	s.IntegerValue = &v
13996	return s
13997}
13998
13999// SetLongValue sets the LongValue field's value.
14000func (s *Resource) SetLongValue(v int64) *Resource {
14001	s.LongValue = &v
14002	return s
14003}
14004
14005// SetName sets the Name field's value.
14006func (s *Resource) SetName(v string) *Resource {
14007	s.Name = &v
14008	return s
14009}
14010
14011// SetStringSetValue sets the StringSetValue field's value.
14012func (s *Resource) SetStringSetValue(v []*string) *Resource {
14013	s.StringSetValue = v
14014	return s
14015}
14016
14017// SetType sets the Type field's value.
14018func (s *Resource) SetType(v string) *Resource {
14019	s.Type = &v
14020	return s
14021}
14022
14023// The type and amount of a resource to assign to a container. The supported
14024// resource types are GPUs and Elastic Inference accelerators. For more information,
14025// see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
14026// or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
14027// in the Amazon Elastic Container Service Developer Guide
14028type ResourceRequirement struct {
14029	_ struct{} `type:"structure"`
14030
14031	// The type of resource to assign to a container. The supported values are GPU
14032	// or InferenceAccelerator.
14033	//
14034	// Type is a required field
14035	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
14036
14037	// The value for the specified resource type.
14038	//
14039	// If the GPU type is used, the value is the number of physical GPUs the Amazon
14040	// ECS container agent will reserve for the container. The number of GPUs reserved
14041	// for all containers in a task should not exceed the number of available GPUs
14042	// on the container instance the task is launched on.
14043	//
14044	// If the InferenceAccelerator type is used, the value should match the deviceName
14045	// for an InferenceAccelerator specified in a task definition.
14046	//
14047	// Value is a required field
14048	Value *string `locationName:"value" type:"string" required:"true"`
14049}
14050
14051// String returns the string representation
14052func (s ResourceRequirement) String() string {
14053	return awsutil.Prettify(s)
14054}
14055
14056// GoString returns the string representation
14057func (s ResourceRequirement) GoString() string {
14058	return s.String()
14059}
14060
14061// Validate inspects the fields of the type to determine if they are valid.
14062func (s *ResourceRequirement) Validate() error {
14063	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
14064	if s.Type == nil {
14065		invalidParams.Add(request.NewErrParamRequired("Type"))
14066	}
14067	if s.Value == nil {
14068		invalidParams.Add(request.NewErrParamRequired("Value"))
14069	}
14070
14071	if invalidParams.Len() > 0 {
14072		return invalidParams
14073	}
14074	return nil
14075}
14076
14077// SetType sets the Type field's value.
14078func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
14079	s.Type = &v
14080	return s
14081}
14082
14083// SetValue sets the Value field's value.
14084func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
14085	s.Value = &v
14086	return s
14087}
14088
14089type RunTaskInput struct {
14090	_ struct{} `type:"structure"`
14091
14092	// The capacity provider strategy to use for the task.
14093	//
14094	// A capacity provider strategy consists of one or more capacity providers along
14095	// with the base and weight to assign to them. A capacity provider must be associated
14096	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
14097	// API is used to associate a capacity provider with a cluster. Only capacity
14098	// providers with an ACTIVE or UPDATING status can be used.
14099	//
14100	// If a capacityProviderStrategy is specified, the launchType parameter must
14101	// be omitted. If no capacityProviderStrategy or launchType is specified, the
14102	// defaultCapacityProviderStrategy for the cluster is used.
14103	//
14104	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
14105	// provider must already be created. New capacity providers can be created with
14106	// the CreateCapacityProvider API operation.
14107	//
14108	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
14109	// capacity providers. The AWS Fargate capacity providers are available to all
14110	// accounts and only need to be associated with a cluster to be used.
14111	//
14112	// The PutClusterCapacityProviders API operation is used to update the list
14113	// of available capacity providers for a cluster after the cluster is created.
14114	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
14115
14116	// The short name or full Amazon Resource Name (ARN) of the cluster on which
14117	// to run your task. If you do not specify a cluster, the default cluster is
14118	// assumed.
14119	Cluster *string `locationName:"cluster" type:"string"`
14120
14121	// The number of instantiations of the specified task to place on your cluster.
14122	// You can specify up to 10 tasks per call.
14123	Count *int64 `locationName:"count" type:"integer"`
14124
14125	// Specifies whether to enable Amazon ECS managed tags for the task. For more
14126	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
14127	// in the Amazon Elastic Container Service Developer Guide.
14128	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
14129
14130	// The name of the task group to associate with the task. The default value
14131	// is the family name of the task definition (for example, family:my-family-name).
14132	Group *string `locationName:"group" type:"string"`
14133
14134	// The launch type on which to run your task. For more information, see Amazon
14135	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
14136	// in the Amazon Elastic Container Service Developer Guide.
14137	//
14138	// If a launchType is specified, the capacityProviderStrategy parameter must
14139	// be omitted.
14140	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
14141
14142	// The network configuration for the task. This parameter is required for task
14143	// definitions that use the awsvpc network mode to receive their own elastic
14144	// network interface, and it is not supported for other network modes. For more
14145	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
14146	// in the Amazon Elastic Container Service Developer Guide.
14147	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
14148
14149	// A list of container overrides in JSON format that specify the name of a container
14150	// in the specified task definition and the overrides it should receive. You
14151	// can override the default command for a container (that is specified in the
14152	// task definition or Docker image) with a command override. You can also override
14153	// existing environment variables (that are specified in the task definition
14154	// or Docker image) on a container or add new environment variables to it with
14155	// an environment override.
14156	//
14157	// A total of 8192 characters are allowed for overrides. This limit includes
14158	// the JSON formatting characters of the override structure.
14159	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
14160
14161	// An array of placement constraint objects to use for the task. You can specify
14162	// up to 10 constraints per task (including constraints in the task definition
14163	// and those specified at runtime).
14164	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
14165
14166	// The placement strategy objects to use for the task. You can specify a maximum
14167	// of five strategy rules per task.
14168	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
14169
14170	// The platform version the task should run. A platform version is only specified
14171	// for tasks using the Fargate launch type. If one is not specified, the LATEST
14172	// platform version is used by default. For more information, see AWS Fargate
14173	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
14174	// in the Amazon Elastic Container Service Developer Guide.
14175	PlatformVersion *string `locationName:"platformVersion" type:"string"`
14176
14177	// Specifies whether to propagate the tags from the task definition to the task.
14178	// If no value is specified, the tags are not propagated. Tags can only be propagated
14179	// to the task during task creation. To add tags to a task after task creation,
14180	// use the TagResource API action.
14181	//
14182	// An error will be received if you specify the SERVICE option when running
14183	// a task.
14184	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
14185
14186	// The reference ID to use for the task.
14187	ReferenceId *string `locationName:"referenceId" type:"string"`
14188
14189	// An optional tag specified when a task is started. For example, if you automatically
14190	// trigger a task to run a batch process job, you could apply a unique identifier
14191	// for that job to your task with the startedBy parameter. You can then identify
14192	// which tasks belong to that job by filtering the results of a ListTasks call
14193	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
14194	// hyphens, and underscores are allowed.
14195	//
14196	// If a task is started by an Amazon ECS service, then the startedBy parameter
14197	// contains the deployment ID of the service that starts it.
14198	StartedBy *string `locationName:"startedBy" type:"string"`
14199
14200	// The metadata that you apply to the task to help you categorize and organize
14201	// them. Each tag consists of a key and an optional value, both of which you
14202	// define.
14203	//
14204	// The following basic restrictions apply to tags:
14205	//
14206	//    * Maximum number of tags per resource - 50
14207	//
14208	//    * For each resource, each tag key must be unique, and each tag key can
14209	//    have only one value.
14210	//
14211	//    * Maximum key length - 128 Unicode characters in UTF-8
14212	//
14213	//    * Maximum value length - 256 Unicode characters in UTF-8
14214	//
14215	//    * If your tagging schema is used across multiple services and resources,
14216	//    remember that other services may have restrictions on allowed characters.
14217	//    Generally allowed characters are: letters, numbers, and spaces representable
14218	//    in UTF-8, and the following characters: + - = . _ : / @.
14219	//
14220	//    * Tag keys and values are case-sensitive.
14221	//
14222	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14223	//    as a prefix for either keys or values as it is reserved for AWS use. You
14224	//    cannot edit or delete tag keys or values with this prefix. Tags with this
14225	//    prefix do not count against your tags per resource limit.
14226	Tags []*Tag `locationName:"tags" type:"list"`
14227
14228	// The family and revision (family:revision) or full ARN of the task definition
14229	// to run. If a revision is not specified, the latest ACTIVE revision is used.
14230	//
14231	// TaskDefinition is a required field
14232	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
14233}
14234
14235// String returns the string representation
14236func (s RunTaskInput) String() string {
14237	return awsutil.Prettify(s)
14238}
14239
14240// GoString returns the string representation
14241func (s RunTaskInput) GoString() string {
14242	return s.String()
14243}
14244
14245// Validate inspects the fields of the type to determine if they are valid.
14246func (s *RunTaskInput) Validate() error {
14247	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
14248	if s.TaskDefinition == nil {
14249		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
14250	}
14251	if s.CapacityProviderStrategy != nil {
14252		for i, v := range s.CapacityProviderStrategy {
14253			if v == nil {
14254				continue
14255			}
14256			if err := v.Validate(); err != nil {
14257				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
14258			}
14259		}
14260	}
14261	if s.NetworkConfiguration != nil {
14262		if err := s.NetworkConfiguration.Validate(); err != nil {
14263			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
14264		}
14265	}
14266	if s.Overrides != nil {
14267		if err := s.Overrides.Validate(); err != nil {
14268			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
14269		}
14270	}
14271	if s.Tags != nil {
14272		for i, v := range s.Tags {
14273			if v == nil {
14274				continue
14275			}
14276			if err := v.Validate(); err != nil {
14277				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
14278			}
14279		}
14280	}
14281
14282	if invalidParams.Len() > 0 {
14283		return invalidParams
14284	}
14285	return nil
14286}
14287
14288// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
14289func (s *RunTaskInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *RunTaskInput {
14290	s.CapacityProviderStrategy = v
14291	return s
14292}
14293
14294// SetCluster sets the Cluster field's value.
14295func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
14296	s.Cluster = &v
14297	return s
14298}
14299
14300// SetCount sets the Count field's value.
14301func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
14302	s.Count = &v
14303	return s
14304}
14305
14306// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
14307func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
14308	s.EnableECSManagedTags = &v
14309	return s
14310}
14311
14312// SetGroup sets the Group field's value.
14313func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
14314	s.Group = &v
14315	return s
14316}
14317
14318// SetLaunchType sets the LaunchType field's value.
14319func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
14320	s.LaunchType = &v
14321	return s
14322}
14323
14324// SetNetworkConfiguration sets the NetworkConfiguration field's value.
14325func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
14326	s.NetworkConfiguration = v
14327	return s
14328}
14329
14330// SetOverrides sets the Overrides field's value.
14331func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
14332	s.Overrides = v
14333	return s
14334}
14335
14336// SetPlacementConstraints sets the PlacementConstraints field's value.
14337func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
14338	s.PlacementConstraints = v
14339	return s
14340}
14341
14342// SetPlacementStrategy sets the PlacementStrategy field's value.
14343func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
14344	s.PlacementStrategy = v
14345	return s
14346}
14347
14348// SetPlatformVersion sets the PlatformVersion field's value.
14349func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
14350	s.PlatformVersion = &v
14351	return s
14352}
14353
14354// SetPropagateTags sets the PropagateTags field's value.
14355func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
14356	s.PropagateTags = &v
14357	return s
14358}
14359
14360// SetReferenceId sets the ReferenceId field's value.
14361func (s *RunTaskInput) SetReferenceId(v string) *RunTaskInput {
14362	s.ReferenceId = &v
14363	return s
14364}
14365
14366// SetStartedBy sets the StartedBy field's value.
14367func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
14368	s.StartedBy = &v
14369	return s
14370}
14371
14372// SetTags sets the Tags field's value.
14373func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
14374	s.Tags = v
14375	return s
14376}
14377
14378// SetTaskDefinition sets the TaskDefinition field's value.
14379func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
14380	s.TaskDefinition = &v
14381	return s
14382}
14383
14384type RunTaskOutput struct {
14385	_ struct{} `type:"structure"`
14386
14387	// Any failures associated with the call.
14388	Failures []*Failure `locationName:"failures" type:"list"`
14389
14390	// A full description of the tasks that were run. The tasks that were successfully
14391	// placed on your cluster are described here.
14392	Tasks []*Task `locationName:"tasks" type:"list"`
14393}
14394
14395// String returns the string representation
14396func (s RunTaskOutput) String() string {
14397	return awsutil.Prettify(s)
14398}
14399
14400// GoString returns the string representation
14401func (s RunTaskOutput) GoString() string {
14402	return s.String()
14403}
14404
14405// SetFailures sets the Failures field's value.
14406func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
14407	s.Failures = v
14408	return s
14409}
14410
14411// SetTasks sets the Tasks field's value.
14412func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
14413	s.Tasks = v
14414	return s
14415}
14416
14417// A floating-point percentage of the desired number of tasks to place and keep
14418// running in the task set.
14419type Scale struct {
14420	_ struct{} `type:"structure"`
14421
14422	// The unit of measure for the scale value.
14423	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
14424
14425	// The value, specified as a percent total of a service's desiredCount, to scale
14426	// the task set. Accepted values are numbers between 0 and 100.
14427	Value *float64 `locationName:"value" type:"double"`
14428}
14429
14430// String returns the string representation
14431func (s Scale) String() string {
14432	return awsutil.Prettify(s)
14433}
14434
14435// GoString returns the string representation
14436func (s Scale) GoString() string {
14437	return s.String()
14438}
14439
14440// SetUnit sets the Unit field's value.
14441func (s *Scale) SetUnit(v string) *Scale {
14442	s.Unit = &v
14443	return s
14444}
14445
14446// SetValue sets the Value field's value.
14447func (s *Scale) SetValue(v float64) *Scale {
14448	s.Value = &v
14449	return s
14450}
14451
14452// An object representing the secret to expose to your container. Secrets can
14453// be exposed to a container in the following ways:
14454//
14455//    * To inject sensitive data into your containers as environment variables,
14456//    use the secrets container definition parameter.
14457//
14458//    * To reference sensitive information in the log configuration of a container,
14459//    use the secretOptions container definition parameter.
14460//
14461// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
14462// in the Amazon Elastic Container Service Developer Guide.
14463type Secret struct {
14464	_ struct{} `type:"structure"`
14465
14466	// The name of the secret.
14467	//
14468	// Name is a required field
14469	Name *string `locationName:"name" type:"string" required:"true"`
14470
14471	// The secret to expose to the container. The supported values are either the
14472	// full ARN of the AWS Secrets Manager secret or the full ARN of the parameter
14473	// in the AWS Systems Manager Parameter Store.
14474	//
14475	// If the AWS Systems Manager Parameter Store parameter exists in the same Region
14476	// as the task you are launching, then you can use either the full ARN or name
14477	// of the parameter. If the parameter exists in a different Region, then the
14478	// full ARN must be specified.
14479	//
14480	// ValueFrom is a required field
14481	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
14482}
14483
14484// String returns the string representation
14485func (s Secret) String() string {
14486	return awsutil.Prettify(s)
14487}
14488
14489// GoString returns the string representation
14490func (s Secret) GoString() string {
14491	return s.String()
14492}
14493
14494// Validate inspects the fields of the type to determine if they are valid.
14495func (s *Secret) Validate() error {
14496	invalidParams := request.ErrInvalidParams{Context: "Secret"}
14497	if s.Name == nil {
14498		invalidParams.Add(request.NewErrParamRequired("Name"))
14499	}
14500	if s.ValueFrom == nil {
14501		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
14502	}
14503
14504	if invalidParams.Len() > 0 {
14505		return invalidParams
14506	}
14507	return nil
14508}
14509
14510// SetName sets the Name field's value.
14511func (s *Secret) SetName(v string) *Secret {
14512	s.Name = &v
14513	return s
14514}
14515
14516// SetValueFrom sets the ValueFrom field's value.
14517func (s *Secret) SetValueFrom(v string) *Secret {
14518	s.ValueFrom = &v
14519	return s
14520}
14521
14522// Details on a service within a cluster
14523type Service struct {
14524	_ struct{} `type:"structure"`
14525
14526	// The capacity provider strategy associated with the service.
14527	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
14528
14529	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
14530	ClusterArn *string `locationName:"clusterArn" type:"string"`
14531
14532	// The Unix timestamp for when the service was created.
14533	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
14534
14535	// The principal that created the service.
14536	CreatedBy *string `locationName:"createdBy" type:"string"`
14537
14538	// Optional deployment parameters that control how many tasks run during the
14539	// deployment and the ordering of stopping and starting tasks.
14540	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
14541
14542	// The deployment controller type the service is using. When using the DescribeServices
14543	// API, this field is omitted if the service is using the ECS deployment controller
14544	// type.
14545	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
14546
14547	// The current state of deployments for the service.
14548	Deployments []*Deployment `locationName:"deployments" type:"list"`
14549
14550	// The desired number of instantiations of the task definition to keep running
14551	// on the service. This value is specified when the service is created with
14552	// CreateService, and it can be modified with UpdateService.
14553	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
14554
14555	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
14556	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
14557	// in the Amazon Elastic Container Service Developer Guide.
14558	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
14559
14560	// The event stream for your service. A maximum of 100 of the latest events
14561	// are displayed.
14562	Events []*ServiceEvent `locationName:"events" type:"list"`
14563
14564	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
14565	// unhealthy Elastic Load Balancing target health checks after a task has first
14566	// started.
14567	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
14568
14569	// The launch type on which your service is running. If no value is specified,
14570	// it will default to EC2. Valid values include EC2 and FARGATE. For more information,
14571	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
14572	// in the Amazon Elastic Container Service Developer Guide.
14573	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
14574
14575	// A list of Elastic Load Balancing load balancer objects, containing the load
14576	// balancer name, the container name (as it appears in a container definition),
14577	// and the container port to access from the load balancer.
14578	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
14579
14580	// The VPC subnet and security group configuration for tasks that receive their
14581	// own elastic network interface by using the awsvpc networking mode.
14582	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
14583
14584	// The number of tasks in the cluster that are in the PENDING state.
14585	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
14586
14587	// The placement constraints for the tasks in the service.
14588	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
14589
14590	// The placement strategy that determines how tasks for the service are placed.
14591	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
14592
14593	// The platform version on which to run your service. A platform version is
14594	// only specified for tasks using the Fargate launch type. If one is not specified,
14595	// the LATEST platform version is used by default. For more information, see
14596	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
14597	// in the Amazon Elastic Container Service Developer Guide.
14598	PlatformVersion *string `locationName:"platformVersion" type:"string"`
14599
14600	// Specifies whether to propagate the tags from the task definition or the service
14601	// to the task. If no value is specified, the tags are not propagated.
14602	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
14603
14604	// The ARN of the IAM role associated with the service that allows the Amazon
14605	// ECS container agent to register container instances with an Elastic Load
14606	// Balancing load balancer.
14607	RoleArn *string `locationName:"roleArn" type:"string"`
14608
14609	// The number of tasks in the cluster that are in the RUNNING state.
14610	RunningCount *int64 `locationName:"runningCount" type:"integer"`
14611
14612	// The scheduling strategy to use for the service. For more information, see
14613	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
14614	//
14615	// There are two service scheduler strategies available:
14616	//
14617	//    * REPLICA-The replica scheduling strategy places and maintains the desired
14618	//    number of tasks across your cluster. By default, the service scheduler
14619	//    spreads tasks across Availability Zones. You can use task placement strategies
14620	//    and constraints to customize task placement decisions.
14621	//
14622	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
14623	//    container instance in your cluster. When you are using this strategy,
14624	//    do not specify a desired number of tasks or any task placement strategies.
14625	//    Fargate tasks do not support the DAEMON scheduling strategy.
14626	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
14627
14628	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
14629	// followed by the Region of the service, the AWS account ID of the service
14630	// owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.
14631	ServiceArn *string `locationName:"serviceArn" type:"string"`
14632
14633	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
14634	// and hyphens are allowed. Service names must be unique within a cluster, but
14635	// you can have similarly named services in multiple clusters within a Region
14636	// or across multiple Regions.
14637	ServiceName *string `locationName:"serviceName" type:"string"`
14638
14639	// The details of the service discovery registries to assign to this service.
14640	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
14641	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
14642
14643	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
14644	Status *string `locationName:"status" type:"string"`
14645
14646	// The metadata that you apply to the service to help you categorize and organize
14647	// them. Each tag consists of a key and an optional value, both of which you
14648	// define.
14649	//
14650	// The following basic restrictions apply to tags:
14651	//
14652	//    * Maximum number of tags per resource - 50
14653	//
14654	//    * For each resource, each tag key must be unique, and each tag key can
14655	//    have only one value.
14656	//
14657	//    * Maximum key length - 128 Unicode characters in UTF-8
14658	//
14659	//    * Maximum value length - 256 Unicode characters in UTF-8
14660	//
14661	//    * If your tagging schema is used across multiple services and resources,
14662	//    remember that other services may have restrictions on allowed characters.
14663	//    Generally allowed characters are: letters, numbers, and spaces representable
14664	//    in UTF-8, and the following characters: + - = . _ : / @.
14665	//
14666	//    * Tag keys and values are case-sensitive.
14667	//
14668	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14669	//    as a prefix for either keys or values as it is reserved for AWS use. You
14670	//    cannot edit or delete tag keys or values with this prefix. Tags with this
14671	//    prefix do not count against your tags per resource limit.
14672	Tags []*Tag `locationName:"tags" type:"list"`
14673
14674	// The task definition to use for tasks in the service. This value is specified
14675	// when the service is created with CreateService, and it can be modified with
14676	// UpdateService.
14677	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
14678
14679	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
14680	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
14681	// desired number of tasks, how many tasks are running, and whether the task
14682	// set serves production traffic.
14683	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
14684}
14685
14686// String returns the string representation
14687func (s Service) String() string {
14688	return awsutil.Prettify(s)
14689}
14690
14691// GoString returns the string representation
14692func (s Service) GoString() string {
14693	return s.String()
14694}
14695
14696// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
14697func (s *Service) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Service {
14698	s.CapacityProviderStrategy = v
14699	return s
14700}
14701
14702// SetClusterArn sets the ClusterArn field's value.
14703func (s *Service) SetClusterArn(v string) *Service {
14704	s.ClusterArn = &v
14705	return s
14706}
14707
14708// SetCreatedAt sets the CreatedAt field's value.
14709func (s *Service) SetCreatedAt(v time.Time) *Service {
14710	s.CreatedAt = &v
14711	return s
14712}
14713
14714// SetCreatedBy sets the CreatedBy field's value.
14715func (s *Service) SetCreatedBy(v string) *Service {
14716	s.CreatedBy = &v
14717	return s
14718}
14719
14720// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
14721func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
14722	s.DeploymentConfiguration = v
14723	return s
14724}
14725
14726// SetDeploymentController sets the DeploymentController field's value.
14727func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
14728	s.DeploymentController = v
14729	return s
14730}
14731
14732// SetDeployments sets the Deployments field's value.
14733func (s *Service) SetDeployments(v []*Deployment) *Service {
14734	s.Deployments = v
14735	return s
14736}
14737
14738// SetDesiredCount sets the DesiredCount field's value.
14739func (s *Service) SetDesiredCount(v int64) *Service {
14740	s.DesiredCount = &v
14741	return s
14742}
14743
14744// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
14745func (s *Service) SetEnableECSManagedTags(v bool) *Service {
14746	s.EnableECSManagedTags = &v
14747	return s
14748}
14749
14750// SetEvents sets the Events field's value.
14751func (s *Service) SetEvents(v []*ServiceEvent) *Service {
14752	s.Events = v
14753	return s
14754}
14755
14756// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
14757func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
14758	s.HealthCheckGracePeriodSeconds = &v
14759	return s
14760}
14761
14762// SetLaunchType sets the LaunchType field's value.
14763func (s *Service) SetLaunchType(v string) *Service {
14764	s.LaunchType = &v
14765	return s
14766}
14767
14768// SetLoadBalancers sets the LoadBalancers field's value.
14769func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
14770	s.LoadBalancers = v
14771	return s
14772}
14773
14774// SetNetworkConfiguration sets the NetworkConfiguration field's value.
14775func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
14776	s.NetworkConfiguration = v
14777	return s
14778}
14779
14780// SetPendingCount sets the PendingCount field's value.
14781func (s *Service) SetPendingCount(v int64) *Service {
14782	s.PendingCount = &v
14783	return s
14784}
14785
14786// SetPlacementConstraints sets the PlacementConstraints field's value.
14787func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
14788	s.PlacementConstraints = v
14789	return s
14790}
14791
14792// SetPlacementStrategy sets the PlacementStrategy field's value.
14793func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
14794	s.PlacementStrategy = v
14795	return s
14796}
14797
14798// SetPlatformVersion sets the PlatformVersion field's value.
14799func (s *Service) SetPlatformVersion(v string) *Service {
14800	s.PlatformVersion = &v
14801	return s
14802}
14803
14804// SetPropagateTags sets the PropagateTags field's value.
14805func (s *Service) SetPropagateTags(v string) *Service {
14806	s.PropagateTags = &v
14807	return s
14808}
14809
14810// SetRoleArn sets the RoleArn field's value.
14811func (s *Service) SetRoleArn(v string) *Service {
14812	s.RoleArn = &v
14813	return s
14814}
14815
14816// SetRunningCount sets the RunningCount field's value.
14817func (s *Service) SetRunningCount(v int64) *Service {
14818	s.RunningCount = &v
14819	return s
14820}
14821
14822// SetSchedulingStrategy sets the SchedulingStrategy field's value.
14823func (s *Service) SetSchedulingStrategy(v string) *Service {
14824	s.SchedulingStrategy = &v
14825	return s
14826}
14827
14828// SetServiceArn sets the ServiceArn field's value.
14829func (s *Service) SetServiceArn(v string) *Service {
14830	s.ServiceArn = &v
14831	return s
14832}
14833
14834// SetServiceName sets the ServiceName field's value.
14835func (s *Service) SetServiceName(v string) *Service {
14836	s.ServiceName = &v
14837	return s
14838}
14839
14840// SetServiceRegistries sets the ServiceRegistries field's value.
14841func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
14842	s.ServiceRegistries = v
14843	return s
14844}
14845
14846// SetStatus sets the Status field's value.
14847func (s *Service) SetStatus(v string) *Service {
14848	s.Status = &v
14849	return s
14850}
14851
14852// SetTags sets the Tags field's value.
14853func (s *Service) SetTags(v []*Tag) *Service {
14854	s.Tags = v
14855	return s
14856}
14857
14858// SetTaskDefinition sets the TaskDefinition field's value.
14859func (s *Service) SetTaskDefinition(v string) *Service {
14860	s.TaskDefinition = &v
14861	return s
14862}
14863
14864// SetTaskSets sets the TaskSets field's value.
14865func (s *Service) SetTaskSets(v []*TaskSet) *Service {
14866	s.TaskSets = v
14867	return s
14868}
14869
14870// Details on an event associated with a service.
14871type ServiceEvent struct {
14872	_ struct{} `type:"structure"`
14873
14874	// The Unix timestamp for when the event was triggered.
14875	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
14876
14877	// The ID string of the event.
14878	Id *string `locationName:"id" type:"string"`
14879
14880	// The event message.
14881	Message *string `locationName:"message" type:"string"`
14882}
14883
14884// String returns the string representation
14885func (s ServiceEvent) String() string {
14886	return awsutil.Prettify(s)
14887}
14888
14889// GoString returns the string representation
14890func (s ServiceEvent) GoString() string {
14891	return s.String()
14892}
14893
14894// SetCreatedAt sets the CreatedAt field's value.
14895func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
14896	s.CreatedAt = &v
14897	return s
14898}
14899
14900// SetId sets the Id field's value.
14901func (s *ServiceEvent) SetId(v string) *ServiceEvent {
14902	s.Id = &v
14903	return s
14904}
14905
14906// SetMessage sets the Message field's value.
14907func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
14908	s.Message = &v
14909	return s
14910}
14911
14912// Details of the service registry.
14913type ServiceRegistry struct {
14914	_ struct{} `type:"structure"`
14915
14916	// The container name value, already specified in the task definition, to be
14917	// used for your service discovery service. If the task definition that your
14918	// service task specifies uses the bridge or host network mode, you must specify
14919	// a containerName and containerPort combination from the task definition. If
14920	// the task definition that your service task specifies uses the awsvpc network
14921	// mode and a type SRV DNS record is used, you must specify either a containerName
14922	// and containerPort combination or a port value, but not both.
14923	ContainerName *string `locationName:"containerName" type:"string"`
14924
14925	// The port value, already specified in the task definition, to be used for
14926	// your service discovery service. If the task definition your service task
14927	// specifies uses the bridge or host network mode, you must specify a containerName
14928	// and containerPort combination from the task definition. If the task definition
14929	// your service task specifies uses the awsvpc network mode and a type SRV DNS
14930	// record is used, you must specify either a containerName and containerPort
14931	// combination or a port value, but not both.
14932	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14933
14934	// The port value used if your service discovery service specified an SRV record.
14935	// This field may be used if both the awsvpc network mode and SRV records are
14936	// used.
14937	Port *int64 `locationName:"port" type:"integer"`
14938
14939	// The Amazon Resource Name (ARN) of the service registry. The currently supported
14940	// service registry is AWS Cloud Map. For more information, see CreateService
14941	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
14942	RegistryArn *string `locationName:"registryArn" type:"string"`
14943}
14944
14945// String returns the string representation
14946func (s ServiceRegistry) String() string {
14947	return awsutil.Prettify(s)
14948}
14949
14950// GoString returns the string representation
14951func (s ServiceRegistry) GoString() string {
14952	return s.String()
14953}
14954
14955// SetContainerName sets the ContainerName field's value.
14956func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
14957	s.ContainerName = &v
14958	return s
14959}
14960
14961// SetContainerPort sets the ContainerPort field's value.
14962func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
14963	s.ContainerPort = &v
14964	return s
14965}
14966
14967// SetPort sets the Port field's value.
14968func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
14969	s.Port = &v
14970	return s
14971}
14972
14973// SetRegistryArn sets the RegistryArn field's value.
14974func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
14975	s.RegistryArn = &v
14976	return s
14977}
14978
14979// The current account setting for a resource.
14980type Setting struct {
14981	_ struct{} `type:"structure"`
14982
14983	// The Amazon ECS resource name.
14984	Name *string `locationName:"name" type:"string" enum:"SettingName"`
14985
14986	// The ARN of the principal, which can be an IAM user, IAM role, or the root
14987	// user. If this field is omitted, the authenticated user is assumed.
14988	PrincipalArn *string `locationName:"principalArn" type:"string"`
14989
14990	// Whether the account setting is enabled or disabled for the specified resource.
14991	Value *string `locationName:"value" type:"string"`
14992}
14993
14994// String returns the string representation
14995func (s Setting) String() string {
14996	return awsutil.Prettify(s)
14997}
14998
14999// GoString returns the string representation
15000func (s Setting) GoString() string {
15001	return s.String()
15002}
15003
15004// SetName sets the Name field's value.
15005func (s *Setting) SetName(v string) *Setting {
15006	s.Name = &v
15007	return s
15008}
15009
15010// SetPrincipalArn sets the PrincipalArn field's value.
15011func (s *Setting) SetPrincipalArn(v string) *Setting {
15012	s.PrincipalArn = &v
15013	return s
15014}
15015
15016// SetValue sets the Value field's value.
15017func (s *Setting) SetValue(v string) *Setting {
15018	s.Value = &v
15019	return s
15020}
15021
15022type StartTaskInput struct {
15023	_ struct{} `type:"structure"`
15024
15025	// The short name or full Amazon Resource Name (ARN) of the cluster on which
15026	// to start your task. If you do not specify a cluster, the default cluster
15027	// is assumed.
15028	Cluster *string `locationName:"cluster" type:"string"`
15029
15030	// The container instance IDs or full ARN entries for the container instances
15031	// on which you would like to place your task. You can specify up to 10 container
15032	// instances.
15033	//
15034	// ContainerInstances is a required field
15035	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
15036
15037	// Specifies whether to enable Amazon ECS managed tags for the task. For more
15038	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
15039	// in the Amazon Elastic Container Service Developer Guide.
15040	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
15041
15042	// The name of the task group to associate with the task. The default value
15043	// is the family name of the task definition (for example, family:my-family-name).
15044	Group *string `locationName:"group" type:"string"`
15045
15046	// The VPC subnet and security group configuration for tasks that receive their
15047	// own elastic network interface by using the awsvpc networking mode.
15048	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
15049
15050	// A list of container overrides in JSON format that specify the name of a container
15051	// in the specified task definition and the overrides it should receive. You
15052	// can override the default command for a container (that is specified in the
15053	// task definition or Docker image) with a command override. You can also override
15054	// existing environment variables (that are specified in the task definition
15055	// or Docker image) on a container or add new environment variables to it with
15056	// an environment override.
15057	//
15058	// A total of 8192 characters are allowed for overrides. This limit includes
15059	// the JSON formatting characters of the override structure.
15060	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
15061
15062	// Specifies whether to propagate the tags from the task definition or the service
15063	// to the task. If no value is specified, the tags are not propagated.
15064	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
15065
15066	// The reference ID to use for the task.
15067	ReferenceId *string `locationName:"referenceId" type:"string"`
15068
15069	// An optional tag specified when a task is started. For example, if you automatically
15070	// trigger a task to run a batch process job, you could apply a unique identifier
15071	// for that job to your task with the startedBy parameter. You can then identify
15072	// which tasks belong to that job by filtering the results of a ListTasks call
15073	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
15074	// hyphens, and underscores are allowed.
15075	//
15076	// If a task is started by an Amazon ECS service, then the startedBy parameter
15077	// contains the deployment ID of the service that starts it.
15078	StartedBy *string `locationName:"startedBy" type:"string"`
15079
15080	// The metadata that you apply to the task to help you categorize and organize
15081	// them. Each tag consists of a key and an optional value, both of which you
15082	// define.
15083	//
15084	// The following basic restrictions apply to tags:
15085	//
15086	//    * Maximum number of tags per resource - 50
15087	//
15088	//    * For each resource, each tag key must be unique, and each tag key can
15089	//    have only one value.
15090	//
15091	//    * Maximum key length - 128 Unicode characters in UTF-8
15092	//
15093	//    * Maximum value length - 256 Unicode characters in UTF-8
15094	//
15095	//    * If your tagging schema is used across multiple services and resources,
15096	//    remember that other services may have restrictions on allowed characters.
15097	//    Generally allowed characters are: letters, numbers, and spaces representable
15098	//    in UTF-8, and the following characters: + - = . _ : / @.
15099	//
15100	//    * Tag keys and values are case-sensitive.
15101	//
15102	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15103	//    as a prefix for either keys or values as it is reserved for AWS use. You
15104	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15105	//    prefix do not count against your tags per resource limit.
15106	Tags []*Tag `locationName:"tags" type:"list"`
15107
15108	// The family and revision (family:revision) or full ARN of the task definition
15109	// to start. If a revision is not specified, the latest ACTIVE revision is used.
15110	//
15111	// TaskDefinition is a required field
15112	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
15113}
15114
15115// String returns the string representation
15116func (s StartTaskInput) String() string {
15117	return awsutil.Prettify(s)
15118}
15119
15120// GoString returns the string representation
15121func (s StartTaskInput) GoString() string {
15122	return s.String()
15123}
15124
15125// Validate inspects the fields of the type to determine if they are valid.
15126func (s *StartTaskInput) Validate() error {
15127	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
15128	if s.ContainerInstances == nil {
15129		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
15130	}
15131	if s.TaskDefinition == nil {
15132		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
15133	}
15134	if s.NetworkConfiguration != nil {
15135		if err := s.NetworkConfiguration.Validate(); err != nil {
15136			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
15137		}
15138	}
15139	if s.Overrides != nil {
15140		if err := s.Overrides.Validate(); err != nil {
15141			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
15142		}
15143	}
15144	if s.Tags != nil {
15145		for i, v := range s.Tags {
15146			if v == nil {
15147				continue
15148			}
15149			if err := v.Validate(); err != nil {
15150				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15151			}
15152		}
15153	}
15154
15155	if invalidParams.Len() > 0 {
15156		return invalidParams
15157	}
15158	return nil
15159}
15160
15161// SetCluster sets the Cluster field's value.
15162func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
15163	s.Cluster = &v
15164	return s
15165}
15166
15167// SetContainerInstances sets the ContainerInstances field's value.
15168func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
15169	s.ContainerInstances = v
15170	return s
15171}
15172
15173// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
15174func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
15175	s.EnableECSManagedTags = &v
15176	return s
15177}
15178
15179// SetGroup sets the Group field's value.
15180func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
15181	s.Group = &v
15182	return s
15183}
15184
15185// SetNetworkConfiguration sets the NetworkConfiguration field's value.
15186func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
15187	s.NetworkConfiguration = v
15188	return s
15189}
15190
15191// SetOverrides sets the Overrides field's value.
15192func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
15193	s.Overrides = v
15194	return s
15195}
15196
15197// SetPropagateTags sets the PropagateTags field's value.
15198func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
15199	s.PropagateTags = &v
15200	return s
15201}
15202
15203// SetReferenceId sets the ReferenceId field's value.
15204func (s *StartTaskInput) SetReferenceId(v string) *StartTaskInput {
15205	s.ReferenceId = &v
15206	return s
15207}
15208
15209// SetStartedBy sets the StartedBy field's value.
15210func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
15211	s.StartedBy = &v
15212	return s
15213}
15214
15215// SetTags sets the Tags field's value.
15216func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
15217	s.Tags = v
15218	return s
15219}
15220
15221// SetTaskDefinition sets the TaskDefinition field's value.
15222func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
15223	s.TaskDefinition = &v
15224	return s
15225}
15226
15227type StartTaskOutput struct {
15228	_ struct{} `type:"structure"`
15229
15230	// Any failures associated with the call.
15231	Failures []*Failure `locationName:"failures" type:"list"`
15232
15233	// A full description of the tasks that were started. Each task that was successfully
15234	// placed on your container instances is described.
15235	Tasks []*Task `locationName:"tasks" type:"list"`
15236}
15237
15238// String returns the string representation
15239func (s StartTaskOutput) String() string {
15240	return awsutil.Prettify(s)
15241}
15242
15243// GoString returns the string representation
15244func (s StartTaskOutput) GoString() string {
15245	return s.String()
15246}
15247
15248// SetFailures sets the Failures field's value.
15249func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
15250	s.Failures = v
15251	return s
15252}
15253
15254// SetTasks sets the Tasks field's value.
15255func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
15256	s.Tasks = v
15257	return s
15258}
15259
15260type StopTaskInput struct {
15261	_ struct{} `type:"structure"`
15262
15263	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
15264	// the task to stop. If you do not specify a cluster, the default cluster is
15265	// assumed.
15266	Cluster *string `locationName:"cluster" type:"string"`
15267
15268	// An optional message specified when a task is stopped. For example, if you
15269	// are using a custom scheduler, you can use this parameter to specify the reason
15270	// for stopping the task here, and the message appears in subsequent DescribeTasks
15271	// API operations on this task. Up to 255 characters are allowed in this message.
15272	Reason *string `locationName:"reason" type:"string"`
15273
15274	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
15275	//
15276	// Task is a required field
15277	Task *string `locationName:"task" type:"string" required:"true"`
15278}
15279
15280// String returns the string representation
15281func (s StopTaskInput) String() string {
15282	return awsutil.Prettify(s)
15283}
15284
15285// GoString returns the string representation
15286func (s StopTaskInput) GoString() string {
15287	return s.String()
15288}
15289
15290// Validate inspects the fields of the type to determine if they are valid.
15291func (s *StopTaskInput) Validate() error {
15292	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
15293	if s.Task == nil {
15294		invalidParams.Add(request.NewErrParamRequired("Task"))
15295	}
15296
15297	if invalidParams.Len() > 0 {
15298		return invalidParams
15299	}
15300	return nil
15301}
15302
15303// SetCluster sets the Cluster field's value.
15304func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
15305	s.Cluster = &v
15306	return s
15307}
15308
15309// SetReason sets the Reason field's value.
15310func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
15311	s.Reason = &v
15312	return s
15313}
15314
15315// SetTask sets the Task field's value.
15316func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
15317	s.Task = &v
15318	return s
15319}
15320
15321type StopTaskOutput struct {
15322	_ struct{} `type:"structure"`
15323
15324	// The task that was stopped.
15325	Task *Task `locationName:"task" type:"structure"`
15326}
15327
15328// String returns the string representation
15329func (s StopTaskOutput) String() string {
15330	return awsutil.Prettify(s)
15331}
15332
15333// GoString returns the string representation
15334func (s StopTaskOutput) GoString() string {
15335	return s.String()
15336}
15337
15338// SetTask sets the Task field's value.
15339func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
15340	s.Task = v
15341	return s
15342}
15343
15344type SubmitAttachmentStateChangesInput struct {
15345	_ struct{} `type:"structure"`
15346
15347	// Any attachments associated with the state change request.
15348	//
15349	// Attachments is a required field
15350	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
15351
15352	// The short name or full ARN of the cluster that hosts the container instance
15353	// the attachment belongs to.
15354	Cluster *string `locationName:"cluster" type:"string"`
15355}
15356
15357// String returns the string representation
15358func (s SubmitAttachmentStateChangesInput) String() string {
15359	return awsutil.Prettify(s)
15360}
15361
15362// GoString returns the string representation
15363func (s SubmitAttachmentStateChangesInput) GoString() string {
15364	return s.String()
15365}
15366
15367// Validate inspects the fields of the type to determine if they are valid.
15368func (s *SubmitAttachmentStateChangesInput) Validate() error {
15369	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
15370	if s.Attachments == nil {
15371		invalidParams.Add(request.NewErrParamRequired("Attachments"))
15372	}
15373	if s.Attachments != nil {
15374		for i, v := range s.Attachments {
15375			if v == nil {
15376				continue
15377			}
15378			if err := v.Validate(); err != nil {
15379				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
15380			}
15381		}
15382	}
15383
15384	if invalidParams.Len() > 0 {
15385		return invalidParams
15386	}
15387	return nil
15388}
15389
15390// SetAttachments sets the Attachments field's value.
15391func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
15392	s.Attachments = v
15393	return s
15394}
15395
15396// SetCluster sets the Cluster field's value.
15397func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
15398	s.Cluster = &v
15399	return s
15400}
15401
15402type SubmitAttachmentStateChangesOutput struct {
15403	_ struct{} `type:"structure"`
15404
15405	// Acknowledgement of the state change.
15406	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
15407}
15408
15409// String returns the string representation
15410func (s SubmitAttachmentStateChangesOutput) String() string {
15411	return awsutil.Prettify(s)
15412}
15413
15414// GoString returns the string representation
15415func (s SubmitAttachmentStateChangesOutput) GoString() string {
15416	return s.String()
15417}
15418
15419// SetAcknowledgment sets the Acknowledgment field's value.
15420func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
15421	s.Acknowledgment = &v
15422	return s
15423}
15424
15425type SubmitContainerStateChangeInput struct {
15426	_ struct{} `type:"structure"`
15427
15428	// The short name or full ARN of the cluster that hosts the container.
15429	Cluster *string `locationName:"cluster" type:"string"`
15430
15431	// The name of the container.
15432	ContainerName *string `locationName:"containerName" type:"string"`
15433
15434	// The exit code returned for the state change request.
15435	ExitCode *int64 `locationName:"exitCode" type:"integer"`
15436
15437	// The network bindings of the container.
15438	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
15439
15440	// The reason for the state change request.
15441	Reason *string `locationName:"reason" type:"string"`
15442
15443	// The ID of the Docker container.
15444	RuntimeId *string `locationName:"runtimeId" type:"string"`
15445
15446	// The status of the state change request.
15447	Status *string `locationName:"status" type:"string"`
15448
15449	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
15450	// container.
15451	Task *string `locationName:"task" type:"string"`
15452}
15453
15454// String returns the string representation
15455func (s SubmitContainerStateChangeInput) String() string {
15456	return awsutil.Prettify(s)
15457}
15458
15459// GoString returns the string representation
15460func (s SubmitContainerStateChangeInput) GoString() string {
15461	return s.String()
15462}
15463
15464// SetCluster sets the Cluster field's value.
15465func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
15466	s.Cluster = &v
15467	return s
15468}
15469
15470// SetContainerName sets the ContainerName field's value.
15471func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
15472	s.ContainerName = &v
15473	return s
15474}
15475
15476// SetExitCode sets the ExitCode field's value.
15477func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
15478	s.ExitCode = &v
15479	return s
15480}
15481
15482// SetNetworkBindings sets the NetworkBindings field's value.
15483func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
15484	s.NetworkBindings = v
15485	return s
15486}
15487
15488// SetReason sets the Reason field's value.
15489func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
15490	s.Reason = &v
15491	return s
15492}
15493
15494// SetRuntimeId sets the RuntimeId field's value.
15495func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
15496	s.RuntimeId = &v
15497	return s
15498}
15499
15500// SetStatus sets the Status field's value.
15501func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
15502	s.Status = &v
15503	return s
15504}
15505
15506// SetTask sets the Task field's value.
15507func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
15508	s.Task = &v
15509	return s
15510}
15511
15512type SubmitContainerStateChangeOutput struct {
15513	_ struct{} `type:"structure"`
15514
15515	// Acknowledgement of the state change.
15516	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
15517}
15518
15519// String returns the string representation
15520func (s SubmitContainerStateChangeOutput) String() string {
15521	return awsutil.Prettify(s)
15522}
15523
15524// GoString returns the string representation
15525func (s SubmitContainerStateChangeOutput) GoString() string {
15526	return s.String()
15527}
15528
15529// SetAcknowledgment sets the Acknowledgment field's value.
15530func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
15531	s.Acknowledgment = &v
15532	return s
15533}
15534
15535type SubmitTaskStateChangeInput struct {
15536	_ struct{} `type:"structure"`
15537
15538	// Any attachments associated with the state change request.
15539	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
15540
15541	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
15542	// the task.
15543	Cluster *string `locationName:"cluster" type:"string"`
15544
15545	// Any containers associated with the state change request.
15546	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
15547
15548	// The Unix timestamp for when the task execution stopped.
15549	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
15550
15551	// The Unix timestamp for when the container image pull began.
15552	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
15553
15554	// The Unix timestamp for when the container image pull completed.
15555	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
15556
15557	// The reason for the state change request.
15558	Reason *string `locationName:"reason" type:"string"`
15559
15560	// The status of the state change request.
15561	Status *string `locationName:"status" type:"string"`
15562
15563	// The task ID or full ARN of the task in the state change request.
15564	Task *string `locationName:"task" type:"string"`
15565}
15566
15567// String returns the string representation
15568func (s SubmitTaskStateChangeInput) String() string {
15569	return awsutil.Prettify(s)
15570}
15571
15572// GoString returns the string representation
15573func (s SubmitTaskStateChangeInput) GoString() string {
15574	return s.String()
15575}
15576
15577// Validate inspects the fields of the type to determine if they are valid.
15578func (s *SubmitTaskStateChangeInput) Validate() error {
15579	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
15580	if s.Attachments != nil {
15581		for i, v := range s.Attachments {
15582			if v == nil {
15583				continue
15584			}
15585			if err := v.Validate(); err != nil {
15586				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
15587			}
15588		}
15589	}
15590
15591	if invalidParams.Len() > 0 {
15592		return invalidParams
15593	}
15594	return nil
15595}
15596
15597// SetAttachments sets the Attachments field's value.
15598func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
15599	s.Attachments = v
15600	return s
15601}
15602
15603// SetCluster sets the Cluster field's value.
15604func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
15605	s.Cluster = &v
15606	return s
15607}
15608
15609// SetContainers sets the Containers field's value.
15610func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
15611	s.Containers = v
15612	return s
15613}
15614
15615// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
15616func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
15617	s.ExecutionStoppedAt = &v
15618	return s
15619}
15620
15621// SetPullStartedAt sets the PullStartedAt field's value.
15622func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
15623	s.PullStartedAt = &v
15624	return s
15625}
15626
15627// SetPullStoppedAt sets the PullStoppedAt field's value.
15628func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
15629	s.PullStoppedAt = &v
15630	return s
15631}
15632
15633// SetReason sets the Reason field's value.
15634func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
15635	s.Reason = &v
15636	return s
15637}
15638
15639// SetStatus sets the Status field's value.
15640func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
15641	s.Status = &v
15642	return s
15643}
15644
15645// SetTask sets the Task field's value.
15646func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
15647	s.Task = &v
15648	return s
15649}
15650
15651type SubmitTaskStateChangeOutput struct {
15652	_ struct{} `type:"structure"`
15653
15654	// Acknowledgement of the state change.
15655	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
15656}
15657
15658// String returns the string representation
15659func (s SubmitTaskStateChangeOutput) String() string {
15660	return awsutil.Prettify(s)
15661}
15662
15663// GoString returns the string representation
15664func (s SubmitTaskStateChangeOutput) GoString() string {
15665	return s.String()
15666}
15667
15668// SetAcknowledgment sets the Acknowledgment field's value.
15669func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
15670	s.Acknowledgment = &v
15671	return s
15672}
15673
15674// A list of namespaced kernel parameters to set in the container. This parameter
15675// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
15676// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
15677// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
15678//
15679// It is not recommended that you specify network-related systemControls parameters
15680// for multiple containers in a single task that also uses either the awsvpc
15681// or host network mode for the following reasons:
15682//
15683//    * For tasks that use the awsvpc network mode, if you set systemControls
15684//    for any container, it applies to all containers in the task. If you set
15685//    different systemControls for multiple containers in a single task, the
15686//    container that is started last determines which systemControls take effect.
15687//
15688//    * For tasks that use the host network mode, the systemControls parameter
15689//    applies to the container instance's kernel parameter as well as that of
15690//    all containers of any tasks running on that container instance.
15691type SystemControl struct {
15692	_ struct{} `type:"structure"`
15693
15694	// The namespaced kernel parameter for which to set a value.
15695	Namespace *string `locationName:"namespace" type:"string"`
15696
15697	// The value for the namespaced kernel parameter specified in namespace.
15698	Value *string `locationName:"value" type:"string"`
15699}
15700
15701// String returns the string representation
15702func (s SystemControl) String() string {
15703	return awsutil.Prettify(s)
15704}
15705
15706// GoString returns the string representation
15707func (s SystemControl) GoString() string {
15708	return s.String()
15709}
15710
15711// SetNamespace sets the Namespace field's value.
15712func (s *SystemControl) SetNamespace(v string) *SystemControl {
15713	s.Namespace = &v
15714	return s
15715}
15716
15717// SetValue sets the Value field's value.
15718func (s *SystemControl) SetValue(v string) *SystemControl {
15719	s.Value = &v
15720	return s
15721}
15722
15723// The metadata that you apply to a resource to help you categorize and organize
15724// them. Each tag consists of a key and an optional value, both of which you
15725// define.
15726//
15727// The following basic restrictions apply to tags:
15728//
15729//    * Maximum number of tags per resource - 50
15730//
15731//    * For each resource, each tag key must be unique, and each tag key can
15732//    have only one value.
15733//
15734//    * Maximum key length - 128 Unicode characters in UTF-8
15735//
15736//    * Maximum value length - 256 Unicode characters in UTF-8
15737//
15738//    * If your tagging schema is used across multiple services and resources,
15739//    remember that other services may have restrictions on allowed characters.
15740//    Generally allowed characters are: letters, numbers, and spaces representable
15741//    in UTF-8, and the following characters: + - = . _ : / @.
15742//
15743//    * Tag keys and values are case-sensitive.
15744//
15745//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15746//    as a prefix for either keys or values as it is reserved for AWS use. You
15747//    cannot edit or delete tag keys or values with this prefix. Tags with this
15748//    prefix do not count against your tags per resource limit.
15749type Tag struct {
15750	_ struct{} `type:"structure"`
15751
15752	// One part of a key-value pair that make up a tag. A key is a general label
15753	// that acts like a category for more specific tag values.
15754	Key *string `locationName:"key" min:"1" type:"string"`
15755
15756	// The optional part of a key-value pair that make up a tag. A value acts as
15757	// a descriptor within a tag category (key).
15758	Value *string `locationName:"value" type:"string"`
15759}
15760
15761// String returns the string representation
15762func (s Tag) String() string {
15763	return awsutil.Prettify(s)
15764}
15765
15766// GoString returns the string representation
15767func (s Tag) GoString() string {
15768	return s.String()
15769}
15770
15771// Validate inspects the fields of the type to determine if they are valid.
15772func (s *Tag) Validate() error {
15773	invalidParams := request.ErrInvalidParams{Context: "Tag"}
15774	if s.Key != nil && len(*s.Key) < 1 {
15775		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
15776	}
15777
15778	if invalidParams.Len() > 0 {
15779		return invalidParams
15780	}
15781	return nil
15782}
15783
15784// SetKey sets the Key field's value.
15785func (s *Tag) SetKey(v string) *Tag {
15786	s.Key = &v
15787	return s
15788}
15789
15790// SetValue sets the Value field's value.
15791func (s *Tag) SetValue(v string) *Tag {
15792	s.Value = &v
15793	return s
15794}
15795
15796type TagResourceInput struct {
15797	_ struct{} `type:"structure"`
15798
15799	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
15800	// the supported resources are Amazon ECS capacity providers, tasks, services,
15801	// task definitions, clusters, and container instances.
15802	//
15803	// ResourceArn is a required field
15804	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
15805
15806	// The tags to add to the resource. A tag is an array of key-value pairs.
15807	//
15808	// The following basic restrictions apply to tags:
15809	//
15810	//    * Maximum number of tags per resource - 50
15811	//
15812	//    * For each resource, each tag key must be unique, and each tag key can
15813	//    have only one value.
15814	//
15815	//    * Maximum key length - 128 Unicode characters in UTF-8
15816	//
15817	//    * Maximum value length - 256 Unicode characters in UTF-8
15818	//
15819	//    * If your tagging schema is used across multiple services and resources,
15820	//    remember that other services may have restrictions on allowed characters.
15821	//    Generally allowed characters are: letters, numbers, and spaces representable
15822	//    in UTF-8, and the following characters: + - = . _ : / @.
15823	//
15824	//    * Tag keys and values are case-sensitive.
15825	//
15826	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15827	//    as a prefix for either keys or values as it is reserved for AWS use. You
15828	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15829	//    prefix do not count against your tags per resource limit.
15830	//
15831	// Tags is a required field
15832	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
15833}
15834
15835// String returns the string representation
15836func (s TagResourceInput) String() string {
15837	return awsutil.Prettify(s)
15838}
15839
15840// GoString returns the string representation
15841func (s TagResourceInput) GoString() string {
15842	return s.String()
15843}
15844
15845// Validate inspects the fields of the type to determine if they are valid.
15846func (s *TagResourceInput) Validate() error {
15847	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
15848	if s.ResourceArn == nil {
15849		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
15850	}
15851	if s.Tags == nil {
15852		invalidParams.Add(request.NewErrParamRequired("Tags"))
15853	}
15854	if s.Tags != nil {
15855		for i, v := range s.Tags {
15856			if v == nil {
15857				continue
15858			}
15859			if err := v.Validate(); err != nil {
15860				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15861			}
15862		}
15863	}
15864
15865	if invalidParams.Len() > 0 {
15866		return invalidParams
15867	}
15868	return nil
15869}
15870
15871// SetResourceArn sets the ResourceArn field's value.
15872func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
15873	s.ResourceArn = &v
15874	return s
15875}
15876
15877// SetTags sets the Tags field's value.
15878func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
15879	s.Tags = v
15880	return s
15881}
15882
15883type TagResourceOutput struct {
15884	_ struct{} `type:"structure"`
15885}
15886
15887// String returns the string representation
15888func (s TagResourceOutput) String() string {
15889	return awsutil.Prettify(s)
15890}
15891
15892// GoString returns the string representation
15893func (s TagResourceOutput) GoString() string {
15894	return s.String()
15895}
15896
15897// Details on a task in a cluster.
15898type Task struct {
15899	_ struct{} `type:"structure"`
15900
15901	// The Elastic Network Adapter associated with the task if the task uses the
15902	// awsvpc network mode.
15903	Attachments []*Attachment `locationName:"attachments" type:"list"`
15904
15905	// The attributes of the task
15906	Attributes []*Attribute `locationName:"attributes" type:"list"`
15907
15908	// The availability zone of the task.
15909	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
15910
15911	// The capacity provider associated with the task.
15912	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
15913
15914	// The ARN of the cluster that hosts the task.
15915	ClusterArn *string `locationName:"clusterArn" type:"string"`
15916
15917	// The connectivity status of a task.
15918	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
15919
15920	// The Unix timestamp for when the task last went into CONNECTED status.
15921	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
15922
15923	// The ARN of the container instances that host the task.
15924	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
15925
15926	// The containers associated with the task.
15927	Containers []*Container `locationName:"containers" type:"list"`
15928
15929	// The number of CPU units used by the task as expressed in a task definition.
15930	// It can be expressed as an integer using CPU units, for example 1024. It can
15931	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
15932	// String values are converted to an integer indicating the CPU units when the
15933	// task definition is registered.
15934	//
15935	// If you are using the EC2 launch type, this field is optional. Supported values
15936	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
15937	//
15938	// If you are using the Fargate launch type, this field is required and you
15939	// must use one of the following values, which determines your range of supported
15940	// values for the memory parameter:
15941	//
15942	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
15943	//    2048 (2 GB)
15944	//
15945	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
15946	//    (3 GB), 4096 (4 GB)
15947	//
15948	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
15949	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
15950	//
15951	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
15952	//    (16 GB) in increments of 1024 (1 GB)
15953	//
15954	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
15955	//    (30 GB) in increments of 1024 (1 GB)
15956	Cpu *string `locationName:"cpu" type:"string"`
15957
15958	// The Unix timestamp for when the task was created (the task entered the PENDING
15959	// state).
15960	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
15961
15962	// The desired status of the task. For more information, see Task Lifecycle
15963	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
15964	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
15965
15966	// The Unix timestamp for when the task execution stopped.
15967	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
15968
15969	// The name of the task group associated with the task.
15970	Group *string `locationName:"group" type:"string"`
15971
15972	// The health status for the task, which is determined by the health of the
15973	// essential containers in the task. If all essential containers in the task
15974	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
15975	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
15976	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
15977	//
15978	// The Amazon ECS container agent does not monitor or report on Docker health
15979	// checks that are embedded in a container image (such as those specified in
15980	// a parent image or from the image's Dockerfile) and not specified in the container
15981	// definition. Health check parameters that are specified in a container definition
15982	// override any Docker health checks that exist in the container image.
15983	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
15984
15985	// The Elastic Inference accelerator associated with the task.
15986	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
15987
15988	// The last known status of the task. For more information, see Task Lifecycle
15989	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
15990	LastStatus *string `locationName:"lastStatus" type:"string"`
15991
15992	// The launch type on which your task is running. For more information, see
15993	// Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
15994	// in the Amazon Elastic Container Service Developer Guide.
15995	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
15996
15997	// The amount of memory (in MiB) used by the task as expressed in a task definition.
15998	// It can be expressed as an integer using MiB, for example 1024. It can also
15999	// be expressed as a string using GB, for example 1GB or 1 GB. String values
16000	// are converted to an integer indicating the MiB when the task definition is
16001	// registered.
16002	//
16003	// If you are using the EC2 launch type, this field is optional.
16004	//
16005	// If you are using the Fargate launch type, this field is required and you
16006	// must use one of the following values, which determines your range of supported
16007	// values for the cpu parameter:
16008	//
16009	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
16010	//    vCPU)
16011	//
16012	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
16013	//    512 (.5 vCPU)
16014	//
16015	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
16016	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
16017	//
16018	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
16019	//    Available cpu values: 2048 (2 vCPU)
16020	//
16021	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
16022	//    Available cpu values: 4096 (4 vCPU)
16023	Memory *string `locationName:"memory" type:"string"`
16024
16025	// One or more container overrides.
16026	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
16027
16028	// The platform version on which your task is running. A platform version is
16029	// only specified for tasks using the Fargate launch type. If one is not specified,
16030	// the LATEST platform version is used by default. For more information, see
16031	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16032	// in the Amazon Elastic Container Service Developer Guide.
16033	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16034
16035	// The Unix timestamp for when the container image pull began.
16036	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
16037
16038	// The Unix timestamp for when the container image pull completed.
16039	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
16040
16041	// The Unix timestamp for when the task started (the task transitioned from
16042	// the PENDING state to the RUNNING state).
16043	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
16044
16045	// The tag specified when a task is started. If the task is started by an Amazon
16046	// ECS service, then the startedBy parameter contains the deployment ID of the
16047	// service that starts it.
16048	StartedBy *string `locationName:"startedBy" type:"string"`
16049
16050	// The stop code indicating why a task was stopped. The stoppedReason may contain
16051	// additional details.
16052	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
16053
16054	// The Unix timestamp for when the task was stopped (the task transitioned from
16055	// the RUNNING state to the STOPPED state).
16056	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
16057
16058	// The reason that the task was stopped.
16059	StoppedReason *string `locationName:"stoppedReason" type:"string"`
16060
16061	// The Unix timestamp for when the task stops (transitions from the RUNNING
16062	// state to STOPPED).
16063	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
16064
16065	// The metadata that you apply to the task to help you categorize and organize
16066	// them. Each tag consists of a key and an optional value, both of which you
16067	// define.
16068	//
16069	// The following basic restrictions apply to tags:
16070	//
16071	//    * Maximum number of tags per resource - 50
16072	//
16073	//    * For each resource, each tag key must be unique, and each tag key can
16074	//    have only one value.
16075	//
16076	//    * Maximum key length - 128 Unicode characters in UTF-8
16077	//
16078	//    * Maximum value length - 256 Unicode characters in UTF-8
16079	//
16080	//    * If your tagging schema is used across multiple services and resources,
16081	//    remember that other services may have restrictions on allowed characters.
16082	//    Generally allowed characters are: letters, numbers, and spaces representable
16083	//    in UTF-8, and the following characters: + - = . _ : / @.
16084	//
16085	//    * Tag keys and values are case-sensitive.
16086	//
16087	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16088	//    as a prefix for either keys or values as it is reserved for AWS use. You
16089	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16090	//    prefix do not count against your tags per resource limit.
16091	Tags []*Tag `locationName:"tags" type:"list"`
16092
16093	// The Amazon Resource Name (ARN) of the task.
16094	TaskArn *string `locationName:"taskArn" type:"string"`
16095
16096	// The ARN of the task definition that creates the task.
16097	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
16098
16099	// The version counter for the task. Every time a task experiences a change
16100	// that triggers a CloudWatch event, the version counter is incremented. If
16101	// you are replicating your Amazon ECS task state with CloudWatch Events, you
16102	// can compare the version of a task reported by the Amazon ECS API actions
16103	// with the version reported in CloudWatch Events for the task (inside the detail
16104	// object) to verify that the version in your event stream is current.
16105	Version *int64 `locationName:"version" type:"long"`
16106}
16107
16108// String returns the string representation
16109func (s Task) String() string {
16110	return awsutil.Prettify(s)
16111}
16112
16113// GoString returns the string representation
16114func (s Task) GoString() string {
16115	return s.String()
16116}
16117
16118// SetAttachments sets the Attachments field's value.
16119func (s *Task) SetAttachments(v []*Attachment) *Task {
16120	s.Attachments = v
16121	return s
16122}
16123
16124// SetAttributes sets the Attributes field's value.
16125func (s *Task) SetAttributes(v []*Attribute) *Task {
16126	s.Attributes = v
16127	return s
16128}
16129
16130// SetAvailabilityZone sets the AvailabilityZone field's value.
16131func (s *Task) SetAvailabilityZone(v string) *Task {
16132	s.AvailabilityZone = &v
16133	return s
16134}
16135
16136// SetCapacityProviderName sets the CapacityProviderName field's value.
16137func (s *Task) SetCapacityProviderName(v string) *Task {
16138	s.CapacityProviderName = &v
16139	return s
16140}
16141
16142// SetClusterArn sets the ClusterArn field's value.
16143func (s *Task) SetClusterArn(v string) *Task {
16144	s.ClusterArn = &v
16145	return s
16146}
16147
16148// SetConnectivity sets the Connectivity field's value.
16149func (s *Task) SetConnectivity(v string) *Task {
16150	s.Connectivity = &v
16151	return s
16152}
16153
16154// SetConnectivityAt sets the ConnectivityAt field's value.
16155func (s *Task) SetConnectivityAt(v time.Time) *Task {
16156	s.ConnectivityAt = &v
16157	return s
16158}
16159
16160// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
16161func (s *Task) SetContainerInstanceArn(v string) *Task {
16162	s.ContainerInstanceArn = &v
16163	return s
16164}
16165
16166// SetContainers sets the Containers field's value.
16167func (s *Task) SetContainers(v []*Container) *Task {
16168	s.Containers = v
16169	return s
16170}
16171
16172// SetCpu sets the Cpu field's value.
16173func (s *Task) SetCpu(v string) *Task {
16174	s.Cpu = &v
16175	return s
16176}
16177
16178// SetCreatedAt sets the CreatedAt field's value.
16179func (s *Task) SetCreatedAt(v time.Time) *Task {
16180	s.CreatedAt = &v
16181	return s
16182}
16183
16184// SetDesiredStatus sets the DesiredStatus field's value.
16185func (s *Task) SetDesiredStatus(v string) *Task {
16186	s.DesiredStatus = &v
16187	return s
16188}
16189
16190// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
16191func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
16192	s.ExecutionStoppedAt = &v
16193	return s
16194}
16195
16196// SetGroup sets the Group field's value.
16197func (s *Task) SetGroup(v string) *Task {
16198	s.Group = &v
16199	return s
16200}
16201
16202// SetHealthStatus sets the HealthStatus field's value.
16203func (s *Task) SetHealthStatus(v string) *Task {
16204	s.HealthStatus = &v
16205	return s
16206}
16207
16208// SetInferenceAccelerators sets the InferenceAccelerators field's value.
16209func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
16210	s.InferenceAccelerators = v
16211	return s
16212}
16213
16214// SetLastStatus sets the LastStatus field's value.
16215func (s *Task) SetLastStatus(v string) *Task {
16216	s.LastStatus = &v
16217	return s
16218}
16219
16220// SetLaunchType sets the LaunchType field's value.
16221func (s *Task) SetLaunchType(v string) *Task {
16222	s.LaunchType = &v
16223	return s
16224}
16225
16226// SetMemory sets the Memory field's value.
16227func (s *Task) SetMemory(v string) *Task {
16228	s.Memory = &v
16229	return s
16230}
16231
16232// SetOverrides sets the Overrides field's value.
16233func (s *Task) SetOverrides(v *TaskOverride) *Task {
16234	s.Overrides = v
16235	return s
16236}
16237
16238// SetPlatformVersion sets the PlatformVersion field's value.
16239func (s *Task) SetPlatformVersion(v string) *Task {
16240	s.PlatformVersion = &v
16241	return s
16242}
16243
16244// SetPullStartedAt sets the PullStartedAt field's value.
16245func (s *Task) SetPullStartedAt(v time.Time) *Task {
16246	s.PullStartedAt = &v
16247	return s
16248}
16249
16250// SetPullStoppedAt sets the PullStoppedAt field's value.
16251func (s *Task) SetPullStoppedAt(v time.Time) *Task {
16252	s.PullStoppedAt = &v
16253	return s
16254}
16255
16256// SetStartedAt sets the StartedAt field's value.
16257func (s *Task) SetStartedAt(v time.Time) *Task {
16258	s.StartedAt = &v
16259	return s
16260}
16261
16262// SetStartedBy sets the StartedBy field's value.
16263func (s *Task) SetStartedBy(v string) *Task {
16264	s.StartedBy = &v
16265	return s
16266}
16267
16268// SetStopCode sets the StopCode field's value.
16269func (s *Task) SetStopCode(v string) *Task {
16270	s.StopCode = &v
16271	return s
16272}
16273
16274// SetStoppedAt sets the StoppedAt field's value.
16275func (s *Task) SetStoppedAt(v time.Time) *Task {
16276	s.StoppedAt = &v
16277	return s
16278}
16279
16280// SetStoppedReason sets the StoppedReason field's value.
16281func (s *Task) SetStoppedReason(v string) *Task {
16282	s.StoppedReason = &v
16283	return s
16284}
16285
16286// SetStoppingAt sets the StoppingAt field's value.
16287func (s *Task) SetStoppingAt(v time.Time) *Task {
16288	s.StoppingAt = &v
16289	return s
16290}
16291
16292// SetTags sets the Tags field's value.
16293func (s *Task) SetTags(v []*Tag) *Task {
16294	s.Tags = v
16295	return s
16296}
16297
16298// SetTaskArn sets the TaskArn field's value.
16299func (s *Task) SetTaskArn(v string) *Task {
16300	s.TaskArn = &v
16301	return s
16302}
16303
16304// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
16305func (s *Task) SetTaskDefinitionArn(v string) *Task {
16306	s.TaskDefinitionArn = &v
16307	return s
16308}
16309
16310// SetVersion sets the Version field's value.
16311func (s *Task) SetVersion(v int64) *Task {
16312	s.Version = &v
16313	return s
16314}
16315
16316// The details of a task definition which describes the container and volume
16317// definitions of an Amazon Elastic Container Service task. You can specify
16318// which Docker images to use, the required resources, and other configurations
16319// related to launching the task definition through an Amazon ECS service or
16320// task.
16321type TaskDefinition struct {
16322	_ struct{} `type:"structure"`
16323
16324	// The launch type to use with your task. For more information, see Amazon ECS
16325	// Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16326	// in the Amazon Elastic Container Service Developer Guide.
16327	Compatibilities []*string `locationName:"compatibilities" type:"list"`
16328
16329	// A list of container definitions in JSON format that describe the different
16330	// containers that make up your task. For more information about container definition
16331	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
16332	// in the Amazon Elastic Container Service Developer Guide.
16333	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
16334
16335	// The number of cpu units used by the task. If you are using the EC2 launch
16336	// type, this field is optional and any value can be used. If you are using
16337	// the Fargate launch type, this field is required and you must use one of the
16338	// following values, which determines your range of valid values for the memory
16339	// parameter:
16340	//
16341	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
16342	//    2048 (2 GB)
16343	//
16344	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
16345	//    (3 GB), 4096 (4 GB)
16346	//
16347	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
16348	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
16349	//
16350	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
16351	//    (16 GB) in increments of 1024 (1 GB)
16352	//
16353	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
16354	//    (30 GB) in increments of 1024 (1 GB)
16355	Cpu *string `locationName:"cpu" type:"string"`
16356
16357	// The Amazon Resource Name (ARN) of the task execution role that containers
16358	// in this task can assume. All containers in this task are granted the permissions
16359	// that are specified in this role.
16360	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
16361
16362	// The name of a family that this task definition is registered to. A family
16363	// groups multiple versions of a task definition. Amazon ECS gives the first
16364	// task definition that you registered to a family a revision number of 1. Amazon
16365	// ECS gives sequential revision numbers to each task definition that you add.
16366	Family *string `locationName:"family" type:"string"`
16367
16368	// The Elastic Inference accelerator associated with the task.
16369	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
16370
16371	// The IPC resource namespace to use for the containers in the task. The valid
16372	// values are host, task, or none. If host is specified, then all containers
16373	// within the tasks that specified the host IPC mode on the same container instance
16374	// share the same IPC resources with the host Amazon EC2 instance. If task is
16375	// specified, all containers within the specified task share the same IPC resources.
16376	// If none is specified, then IPC resources within the containers of a task
16377	// are private and not shared with other containers in a task or on the container
16378	// instance. If no value is specified, then the IPC resource namespace sharing
16379	// depends on the Docker daemon setting on the container instance. For more
16380	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
16381	// in the Docker run reference.
16382	//
16383	// If the host IPC mode is used, be aware that there is a heightened risk of
16384	// undesired IPC namespace expose. For more information, see Docker security
16385	// (https://docs.docker.com/engine/security/security/).
16386	//
16387	// If you are setting namespaced kernel parameters using systemControls for
16388	// the containers in the task, the following will apply to your IPC resource
16389	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
16390	// in the Amazon Elastic Container Service Developer Guide.
16391	//
16392	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
16393	//    are not supported.
16394	//
16395	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
16396	//    will apply to all containers within a task.
16397	//
16398	// This parameter is not supported for Windows containers or tasks using the
16399	// Fargate launch type.
16400	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
16401
16402	// The amount (in MiB) of memory used by the task.
16403	//
16404	// If using the EC2 launch type, this field is optional and any value can be
16405	// used. If a task-level memory value is specified then the container-level
16406	// memory value is optional.
16407	//
16408	// If using the Fargate launch type, this field is required and you must use
16409	// one of the following values, which determines your range of valid values
16410	// for the cpu parameter:
16411	//
16412	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
16413	//    vCPU)
16414	//
16415	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
16416	//    512 (.5 vCPU)
16417	//
16418	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
16419	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
16420	//
16421	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
16422	//    Available cpu values: 2048 (2 vCPU)
16423	//
16424	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
16425	//    Available cpu values: 4096 (4 vCPU)
16426	Memory *string `locationName:"memory" type:"string"`
16427
16428	// The Docker networking mode to use for the containers in the task. The valid
16429	// values are none, bridge, awsvpc, and host. The default Docker network mode
16430	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
16431	// is required. If you are using the EC2 launch type, any network mode can be
16432	// used. If the network mode is set to none, you cannot specify port mappings
16433	// in your container definitions, and the tasks containers do not have external
16434	// connectivity. The host and awsvpc network modes offer the highest networking
16435	// performance for containers because they use the EC2 network stack instead
16436	// of the virtualized network stack provided by the bridge mode.
16437	//
16438	// With the host and awsvpc network modes, exposed container ports are mapped
16439	// directly to the corresponding host port (for the host network mode) or the
16440	// attached elastic network interface port (for the awsvpc network mode), so
16441	// you cannot take advantage of dynamic host port mappings.
16442	//
16443	// If the network mode is awsvpc, the task is allocated an elastic network interface,
16444	// and you must specify a NetworkConfiguration value when you create a service
16445	// or run a task with the task definition. For more information, see Task Networking
16446	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
16447	// in the Amazon Elastic Container Service Developer Guide.
16448	//
16449	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
16450	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
16451	// mode.
16452	//
16453	// If the network mode is host, you cannot run multiple instantiations of the
16454	// same task on a single container instance when port mappings are used.
16455	//
16456	// Docker for Windows uses different network modes than Docker for Linux. When
16457	// you register a task definition with Windows containers, you must not specify
16458	// a network mode. If you use the console to register a task definition with
16459	// Windows containers, you must choose the <default> network mode object.
16460	//
16461	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
16462	// in the Docker run reference.
16463	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
16464
16465	// The process namespace to use for the containers in the task. The valid values
16466	// are host or task. If host is specified, then all containers within the tasks
16467	// that specified the host PID mode on the same container instance share the
16468	// same process namespace with the host Amazon EC2 instance. If task is specified,
16469	// all containers within the specified task share the same process namespace.
16470	// If no value is specified, the default is a private namespace. For more information,
16471	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
16472	// in the Docker run reference.
16473	//
16474	// If the host PID mode is used, be aware that there is a heightened risk of
16475	// undesired process namespace expose. For more information, see Docker security
16476	// (https://docs.docker.com/engine/security/security/).
16477	//
16478	// This parameter is not supported for Windows containers or tasks using the
16479	// Fargate launch type.
16480	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
16481
16482	// An array of placement constraint objects to use for tasks. This field is
16483	// not valid if you are using the Fargate launch type for your task.
16484	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
16485
16486	// The configuration details for the App Mesh proxy.
16487	//
16488	// Your Amazon ECS container instances require at least version 1.26.0 of the
16489	// container agent and at least version 1.26.0-1 of the ecs-init package to
16490	// enable a proxy configuration. If your container instances are launched from
16491	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
16492	// the required versions of the container agent and ecs-init. For more information,
16493	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
16494	// in the Amazon Elastic Container Service Developer Guide.
16495	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
16496
16497	// The container instance attributes required by your task. This field is not
16498	// valid if you are using the Fargate launch type for your task.
16499	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
16500
16501	// The launch type the task requires. If no value is specified, it will default
16502	// to EC2. Valid values include EC2 and FARGATE.
16503	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
16504
16505	// The revision of the task in a particular family. The revision is a version
16506	// number of a task definition in a family. When you register a task definition
16507	// for the first time, the revision is 1. Each time that you register a new
16508	// revision of a task definition in the same family, the revision value always
16509	// increases by one, even if you have deregistered previous revisions in this
16510	// family.
16511	Revision *int64 `locationName:"revision" type:"integer"`
16512
16513	// The status of the task definition.
16514	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
16515
16516	// The full Amazon Resource Name (ARN) of the task definition.
16517	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
16518
16519	// The short name or full Amazon Resource Name (ARN) of the AWS Identity and
16520	// Access Management (IAM) role that grants containers in the task permission
16521	// to call AWS APIs on your behalf. For more information, see Amazon ECS Task
16522	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_IAM_role.html)
16523	// in the Amazon Elastic Container Service Developer Guide.
16524	//
16525	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
16526	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
16527	// must also run some configuration code in order to take advantage of the feature.
16528	// For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
16529	// in the Amazon Elastic Container Service Developer Guide.
16530	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
16531
16532	// The list of volume definitions for the task.
16533	//
16534	// If your tasks are using the Fargate launch type, the host and sourcePath
16535	// parameters are not supported.
16536	//
16537	// For more information about volume definition parameters and defaults, see
16538	// Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
16539	// in the Amazon Elastic Container Service Developer Guide.
16540	Volumes []*Volume `locationName:"volumes" type:"list"`
16541}
16542
16543// String returns the string representation
16544func (s TaskDefinition) String() string {
16545	return awsutil.Prettify(s)
16546}
16547
16548// GoString returns the string representation
16549func (s TaskDefinition) GoString() string {
16550	return s.String()
16551}
16552
16553// SetCompatibilities sets the Compatibilities field's value.
16554func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
16555	s.Compatibilities = v
16556	return s
16557}
16558
16559// SetContainerDefinitions sets the ContainerDefinitions field's value.
16560func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
16561	s.ContainerDefinitions = v
16562	return s
16563}
16564
16565// SetCpu sets the Cpu field's value.
16566func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
16567	s.Cpu = &v
16568	return s
16569}
16570
16571// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
16572func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
16573	s.ExecutionRoleArn = &v
16574	return s
16575}
16576
16577// SetFamily sets the Family field's value.
16578func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
16579	s.Family = &v
16580	return s
16581}
16582
16583// SetInferenceAccelerators sets the InferenceAccelerators field's value.
16584func (s *TaskDefinition) SetInferenceAccelerators(v []*InferenceAccelerator) *TaskDefinition {
16585	s.InferenceAccelerators = v
16586	return s
16587}
16588
16589// SetIpcMode sets the IpcMode field's value.
16590func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
16591	s.IpcMode = &v
16592	return s
16593}
16594
16595// SetMemory sets the Memory field's value.
16596func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
16597	s.Memory = &v
16598	return s
16599}
16600
16601// SetNetworkMode sets the NetworkMode field's value.
16602func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
16603	s.NetworkMode = &v
16604	return s
16605}
16606
16607// SetPidMode sets the PidMode field's value.
16608func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
16609	s.PidMode = &v
16610	return s
16611}
16612
16613// SetPlacementConstraints sets the PlacementConstraints field's value.
16614func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
16615	s.PlacementConstraints = v
16616	return s
16617}
16618
16619// SetProxyConfiguration sets the ProxyConfiguration field's value.
16620func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
16621	s.ProxyConfiguration = v
16622	return s
16623}
16624
16625// SetRequiresAttributes sets the RequiresAttributes field's value.
16626func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
16627	s.RequiresAttributes = v
16628	return s
16629}
16630
16631// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
16632func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
16633	s.RequiresCompatibilities = v
16634	return s
16635}
16636
16637// SetRevision sets the Revision field's value.
16638func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
16639	s.Revision = &v
16640	return s
16641}
16642
16643// SetStatus sets the Status field's value.
16644func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
16645	s.Status = &v
16646	return s
16647}
16648
16649// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
16650func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
16651	s.TaskDefinitionArn = &v
16652	return s
16653}
16654
16655// SetTaskRoleArn sets the TaskRoleArn field's value.
16656func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
16657	s.TaskRoleArn = &v
16658	return s
16659}
16660
16661// SetVolumes sets the Volumes field's value.
16662func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
16663	s.Volumes = v
16664	return s
16665}
16666
16667// An object representing a constraint on task placement in the task definition.
16668// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
16669// in the Amazon Elastic Container Service Developer Guide.
16670//
16671// If you are using the Fargate launch type, task placement constraints are
16672// not supported.
16673type TaskDefinitionPlacementConstraint struct {
16674	_ struct{} `type:"structure"`
16675
16676	// A cluster query language expression to apply to the constraint. For more
16677	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
16678	// in the Amazon Elastic Container Service Developer Guide.
16679	Expression *string `locationName:"expression" type:"string"`
16680
16681	// The type of constraint. The MemberOf constraint restricts selection to be
16682	// from a group of valid candidates.
16683	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
16684}
16685
16686// String returns the string representation
16687func (s TaskDefinitionPlacementConstraint) String() string {
16688	return awsutil.Prettify(s)
16689}
16690
16691// GoString returns the string representation
16692func (s TaskDefinitionPlacementConstraint) GoString() string {
16693	return s.String()
16694}
16695
16696// SetExpression sets the Expression field's value.
16697func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
16698	s.Expression = &v
16699	return s
16700}
16701
16702// SetType sets the Type field's value.
16703func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
16704	s.Type = &v
16705	return s
16706}
16707
16708// The overrides associated with a task.
16709type TaskOverride struct {
16710	_ struct{} `type:"structure"`
16711
16712	// One or more container overrides sent to a task.
16713	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
16714
16715	// The cpu override for the task.
16716	Cpu *string `locationName:"cpu" type:"string"`
16717
16718	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
16719	// ECS container agent and the Docker daemon can assume.
16720	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
16721
16722	// The Elastic Inference accelerator override for the task.
16723	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
16724
16725	// The memory override for the task.
16726	Memory *string `locationName:"memory" type:"string"`
16727
16728	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
16729	// can assume. All containers in this task are granted the permissions that
16730	// are specified in this role.
16731	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
16732}
16733
16734// String returns the string representation
16735func (s TaskOverride) String() string {
16736	return awsutil.Prettify(s)
16737}
16738
16739// GoString returns the string representation
16740func (s TaskOverride) GoString() string {
16741	return s.String()
16742}
16743
16744// Validate inspects the fields of the type to determine if they are valid.
16745func (s *TaskOverride) Validate() error {
16746	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
16747	if s.ContainerOverrides != nil {
16748		for i, v := range s.ContainerOverrides {
16749			if v == nil {
16750				continue
16751			}
16752			if err := v.Validate(); err != nil {
16753				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
16754			}
16755		}
16756	}
16757
16758	if invalidParams.Len() > 0 {
16759		return invalidParams
16760	}
16761	return nil
16762}
16763
16764// SetContainerOverrides sets the ContainerOverrides field's value.
16765func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
16766	s.ContainerOverrides = v
16767	return s
16768}
16769
16770// SetCpu sets the Cpu field's value.
16771func (s *TaskOverride) SetCpu(v string) *TaskOverride {
16772	s.Cpu = &v
16773	return s
16774}
16775
16776// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
16777func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
16778	s.ExecutionRoleArn = &v
16779	return s
16780}
16781
16782// SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
16783func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
16784	s.InferenceAcceleratorOverrides = v
16785	return s
16786}
16787
16788// SetMemory sets the Memory field's value.
16789func (s *TaskOverride) SetMemory(v string) *TaskOverride {
16790	s.Memory = &v
16791	return s
16792}
16793
16794// SetTaskRoleArn sets the TaskRoleArn field's value.
16795func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
16796	s.TaskRoleArn = &v
16797	return s
16798}
16799
16800// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
16801// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
16802// desired number of tasks, how many tasks are running, and whether the task
16803// set serves production traffic.
16804type TaskSet struct {
16805	_ struct{} `type:"structure"`
16806
16807	// The capacity provider strategy associated with the task set.
16808	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
16809
16810	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
16811	// the task set exists in.
16812	ClusterArn *string `locationName:"clusterArn" type:"string"`
16813
16814	// The computed desired count for the task set. This is calculated by multiplying
16815	// the service's desiredCount by the task set's scale percentage. The result
16816	// is always rounded up. For example, if the computed desired count is 1.2,
16817	// it rounds up to 2 tasks.
16818	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
16819
16820	// The Unix timestamp for when the task set was created.
16821	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16822
16823	// The external ID associated with the task set.
16824	//
16825	// If a task set is created by an AWS CodeDeploy deployment, the externalId
16826	// parameter contains the AWS CodeDeploy deployment ID.
16827	//
16828	// If a task set is created for an external deployment and is associated with
16829	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
16830	// AWS Cloud Map attribute.
16831	ExternalId *string `locationName:"externalId" type:"string"`
16832
16833	// The ID of the task set.
16834	Id *string `locationName:"id" type:"string"`
16835
16836	// The launch type the tasks in the task set are using. For more information,
16837	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16838	// in the Amazon Elastic Container Service Developer Guide.
16839	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
16840
16841	// Details on a load balancer that is used with a task set.
16842	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
16843
16844	// The network configuration for the task set.
16845	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16846
16847	// The number of tasks in the task set that are in the PENDING status during
16848	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
16849	// state. A task set enters the PENDING status when it launches for the first
16850	// time or when it is restarted after being in the STOPPED state.
16851	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
16852
16853	// The platform version on which the tasks in the task set are running. A platform
16854	// version is only specified for tasks using the Fargate launch type. If one
16855	// is not specified, the LATEST platform version is used by default. For more
16856	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16857	// in the Amazon Elastic Container Service Developer Guide.
16858	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16859
16860	// The number of tasks in the task set that are in the RUNNING status during
16861	// a deployment. A task in the RUNNING state is running and ready for use.
16862	RunningCount *int64 `locationName:"runningCount" type:"integer"`
16863
16864	// A floating-point percentage of the desired number of tasks to place and keep
16865	// running in the task set.
16866	Scale *Scale `locationName:"scale" type:"structure"`
16867
16868	// The Amazon Resource Name (ARN) of the service the task set exists in.
16869	ServiceArn *string `locationName:"serviceArn" type:"string"`
16870
16871	// The details of the service discovery registries to assign to this task set.
16872	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
16873	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
16874
16875	// The stability status, which indicates whether the task set has reached a
16876	// steady state. If the following conditions are met, the task set will be in
16877	// STEADY_STATE:
16878	//
16879	//    * The task runningCount is equal to the computedDesiredCount.
16880	//
16881	//    * The pendingCount is 0.
16882	//
16883	//    * There are no tasks running on container instances in the DRAINING status.
16884	//
16885	//    * All tasks are reporting a healthy status from the load balancers, service
16886	//    discovery, and container health checks.
16887	//
16888	// If any of those conditions are not met, the stability status returns STABILIZING.
16889	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
16890
16891	// The Unix timestamp for when the task set stability status was retrieved.
16892	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
16893
16894	// The tag specified when a task set is started. If the task set is created
16895	// by an AWS CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY.
16896	// For a task set created for an external deployment, the startedBy field isn't
16897	// used.
16898	StartedBy *string `locationName:"startedBy" type:"string"`
16899
16900	// The status of the task set. The following describes each state:
16901	//
16902	// PRIMARY
16903	//
16904	// The task set is serving production traffic.
16905	//
16906	// ACTIVE
16907	//
16908	// The task set is not serving production traffic.
16909	//
16910	// DRAINING
16911	//
16912	// The tasks in the task set are being stopped and their corresponding targets
16913	// are being deregistered from their target group.
16914	Status *string `locationName:"status" type:"string"`
16915
16916	// The task definition the task set is using.
16917	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
16918
16919	// The Amazon Resource Name (ARN) of the task set.
16920	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
16921
16922	// The Unix timestamp for when the task set was last updated.
16923	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
16924}
16925
16926// String returns the string representation
16927func (s TaskSet) String() string {
16928	return awsutil.Prettify(s)
16929}
16930
16931// GoString returns the string representation
16932func (s TaskSet) GoString() string {
16933	return s.String()
16934}
16935
16936// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
16937func (s *TaskSet) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *TaskSet {
16938	s.CapacityProviderStrategy = v
16939	return s
16940}
16941
16942// SetClusterArn sets the ClusterArn field's value.
16943func (s *TaskSet) SetClusterArn(v string) *TaskSet {
16944	s.ClusterArn = &v
16945	return s
16946}
16947
16948// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
16949func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
16950	s.ComputedDesiredCount = &v
16951	return s
16952}
16953
16954// SetCreatedAt sets the CreatedAt field's value.
16955func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
16956	s.CreatedAt = &v
16957	return s
16958}
16959
16960// SetExternalId sets the ExternalId field's value.
16961func (s *TaskSet) SetExternalId(v string) *TaskSet {
16962	s.ExternalId = &v
16963	return s
16964}
16965
16966// SetId sets the Id field's value.
16967func (s *TaskSet) SetId(v string) *TaskSet {
16968	s.Id = &v
16969	return s
16970}
16971
16972// SetLaunchType sets the LaunchType field's value.
16973func (s *TaskSet) SetLaunchType(v string) *TaskSet {
16974	s.LaunchType = &v
16975	return s
16976}
16977
16978// SetLoadBalancers sets the LoadBalancers field's value.
16979func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
16980	s.LoadBalancers = v
16981	return s
16982}
16983
16984// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16985func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
16986	s.NetworkConfiguration = v
16987	return s
16988}
16989
16990// SetPendingCount sets the PendingCount field's value.
16991func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
16992	s.PendingCount = &v
16993	return s
16994}
16995
16996// SetPlatformVersion sets the PlatformVersion field's value.
16997func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
16998	s.PlatformVersion = &v
16999	return s
17000}
17001
17002// SetRunningCount sets the RunningCount field's value.
17003func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
17004	s.RunningCount = &v
17005	return s
17006}
17007
17008// SetScale sets the Scale field's value.
17009func (s *TaskSet) SetScale(v *Scale) *TaskSet {
17010	s.Scale = v
17011	return s
17012}
17013
17014// SetServiceArn sets the ServiceArn field's value.
17015func (s *TaskSet) SetServiceArn(v string) *TaskSet {
17016	s.ServiceArn = &v
17017	return s
17018}
17019
17020// SetServiceRegistries sets the ServiceRegistries field's value.
17021func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
17022	s.ServiceRegistries = v
17023	return s
17024}
17025
17026// SetStabilityStatus sets the StabilityStatus field's value.
17027func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
17028	s.StabilityStatus = &v
17029	return s
17030}
17031
17032// SetStabilityStatusAt sets the StabilityStatusAt field's value.
17033func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
17034	s.StabilityStatusAt = &v
17035	return s
17036}
17037
17038// SetStartedBy sets the StartedBy field's value.
17039func (s *TaskSet) SetStartedBy(v string) *TaskSet {
17040	s.StartedBy = &v
17041	return s
17042}
17043
17044// SetStatus sets the Status field's value.
17045func (s *TaskSet) SetStatus(v string) *TaskSet {
17046	s.Status = &v
17047	return s
17048}
17049
17050// SetTaskDefinition sets the TaskDefinition field's value.
17051func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
17052	s.TaskDefinition = &v
17053	return s
17054}
17055
17056// SetTaskSetArn sets the TaskSetArn field's value.
17057func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
17058	s.TaskSetArn = &v
17059	return s
17060}
17061
17062// SetUpdatedAt sets the UpdatedAt field's value.
17063func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
17064	s.UpdatedAt = &v
17065	return s
17066}
17067
17068// The container path, mount options, and size of the tmpfs mount.
17069type Tmpfs struct {
17070	_ struct{} `type:"structure"`
17071
17072	// The absolute file path where the tmpfs volume is to be mounted.
17073	//
17074	// ContainerPath is a required field
17075	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
17076
17077	// The list of tmpfs volume mount options.
17078	//
17079	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
17080	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
17081	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
17082	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
17083	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
17084	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
17085	MountOptions []*string `locationName:"mountOptions" type:"list"`
17086
17087	// The size (in MiB) of the tmpfs volume.
17088	//
17089	// Size is a required field
17090	Size *int64 `locationName:"size" type:"integer" required:"true"`
17091}
17092
17093// String returns the string representation
17094func (s Tmpfs) String() string {
17095	return awsutil.Prettify(s)
17096}
17097
17098// GoString returns the string representation
17099func (s Tmpfs) GoString() string {
17100	return s.String()
17101}
17102
17103// Validate inspects the fields of the type to determine if they are valid.
17104func (s *Tmpfs) Validate() error {
17105	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
17106	if s.ContainerPath == nil {
17107		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
17108	}
17109	if s.Size == nil {
17110		invalidParams.Add(request.NewErrParamRequired("Size"))
17111	}
17112
17113	if invalidParams.Len() > 0 {
17114		return invalidParams
17115	}
17116	return nil
17117}
17118
17119// SetContainerPath sets the ContainerPath field's value.
17120func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
17121	s.ContainerPath = &v
17122	return s
17123}
17124
17125// SetMountOptions sets the MountOptions field's value.
17126func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
17127	s.MountOptions = v
17128	return s
17129}
17130
17131// SetSize sets the Size field's value.
17132func (s *Tmpfs) SetSize(v int64) *Tmpfs {
17133	s.Size = &v
17134	return s
17135}
17136
17137// The ulimit settings to pass to the container.
17138type Ulimit struct {
17139	_ struct{} `type:"structure"`
17140
17141	// The hard limit for the ulimit type.
17142	//
17143	// HardLimit is a required field
17144	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
17145
17146	// The type of the ulimit.
17147	//
17148	// Name is a required field
17149	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
17150
17151	// The soft limit for the ulimit type.
17152	//
17153	// SoftLimit is a required field
17154	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
17155}
17156
17157// String returns the string representation
17158func (s Ulimit) String() string {
17159	return awsutil.Prettify(s)
17160}
17161
17162// GoString returns the string representation
17163func (s Ulimit) GoString() string {
17164	return s.String()
17165}
17166
17167// Validate inspects the fields of the type to determine if they are valid.
17168func (s *Ulimit) Validate() error {
17169	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
17170	if s.HardLimit == nil {
17171		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
17172	}
17173	if s.Name == nil {
17174		invalidParams.Add(request.NewErrParamRequired("Name"))
17175	}
17176	if s.SoftLimit == nil {
17177		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
17178	}
17179
17180	if invalidParams.Len() > 0 {
17181		return invalidParams
17182	}
17183	return nil
17184}
17185
17186// SetHardLimit sets the HardLimit field's value.
17187func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
17188	s.HardLimit = &v
17189	return s
17190}
17191
17192// SetName sets the Name field's value.
17193func (s *Ulimit) SetName(v string) *Ulimit {
17194	s.Name = &v
17195	return s
17196}
17197
17198// SetSoftLimit sets the SoftLimit field's value.
17199func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
17200	s.SoftLimit = &v
17201	return s
17202}
17203
17204type UntagResourceInput struct {
17205	_ struct{} `type:"structure"`
17206
17207	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
17208	// Currently, the supported resources are Amazon ECS capacity providers, tasks,
17209	// services, task definitions, clusters, and container instances.
17210	//
17211	// ResourceArn is a required field
17212	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
17213
17214	// The keys of the tags to be removed.
17215	//
17216	// TagKeys is a required field
17217	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
17218}
17219
17220// String returns the string representation
17221func (s UntagResourceInput) String() string {
17222	return awsutil.Prettify(s)
17223}
17224
17225// GoString returns the string representation
17226func (s UntagResourceInput) GoString() string {
17227	return s.String()
17228}
17229
17230// Validate inspects the fields of the type to determine if they are valid.
17231func (s *UntagResourceInput) Validate() error {
17232	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
17233	if s.ResourceArn == nil {
17234		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
17235	}
17236	if s.TagKeys == nil {
17237		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
17238	}
17239
17240	if invalidParams.Len() > 0 {
17241		return invalidParams
17242	}
17243	return nil
17244}
17245
17246// SetResourceArn sets the ResourceArn field's value.
17247func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
17248	s.ResourceArn = &v
17249	return s
17250}
17251
17252// SetTagKeys sets the TagKeys field's value.
17253func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
17254	s.TagKeys = v
17255	return s
17256}
17257
17258type UntagResourceOutput struct {
17259	_ struct{} `type:"structure"`
17260}
17261
17262// String returns the string representation
17263func (s UntagResourceOutput) String() string {
17264	return awsutil.Prettify(s)
17265}
17266
17267// GoString returns the string representation
17268func (s UntagResourceOutput) GoString() string {
17269	return s.String()
17270}
17271
17272type UpdateClusterSettingsInput struct {
17273	_ struct{} `type:"structure"`
17274
17275	// The name of the cluster to modify the settings for.
17276	//
17277	// Cluster is a required field
17278	Cluster *string `locationName:"cluster" type:"string" required:"true"`
17279
17280	// The setting to use by default for a cluster. This parameter is used to enable
17281	// CloudWatch Container Insights for a cluster. If this value is specified,
17282	// it will override the containerInsights value set with PutAccountSetting or
17283	// PutAccountSettingDefault.
17284	//
17285	// Settings is a required field
17286	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
17287}
17288
17289// String returns the string representation
17290func (s UpdateClusterSettingsInput) String() string {
17291	return awsutil.Prettify(s)
17292}
17293
17294// GoString returns the string representation
17295func (s UpdateClusterSettingsInput) GoString() string {
17296	return s.String()
17297}
17298
17299// Validate inspects the fields of the type to determine if they are valid.
17300func (s *UpdateClusterSettingsInput) Validate() error {
17301	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
17302	if s.Cluster == nil {
17303		invalidParams.Add(request.NewErrParamRequired("Cluster"))
17304	}
17305	if s.Settings == nil {
17306		invalidParams.Add(request.NewErrParamRequired("Settings"))
17307	}
17308
17309	if invalidParams.Len() > 0 {
17310		return invalidParams
17311	}
17312	return nil
17313}
17314
17315// SetCluster sets the Cluster field's value.
17316func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
17317	s.Cluster = &v
17318	return s
17319}
17320
17321// SetSettings sets the Settings field's value.
17322func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
17323	s.Settings = v
17324	return s
17325}
17326
17327type UpdateClusterSettingsOutput struct {
17328	_ struct{} `type:"structure"`
17329
17330	// A regional grouping of one or more container instances on which you can run
17331	// task requests. Each account receives a default cluster the first time you
17332	// use the Amazon ECS service, but you may also create other clusters. Clusters
17333	// may contain more than one instance type simultaneously.
17334	Cluster *Cluster `locationName:"cluster" type:"structure"`
17335}
17336
17337// String returns the string representation
17338func (s UpdateClusterSettingsOutput) String() string {
17339	return awsutil.Prettify(s)
17340}
17341
17342// GoString returns the string representation
17343func (s UpdateClusterSettingsOutput) GoString() string {
17344	return s.String()
17345}
17346
17347// SetCluster sets the Cluster field's value.
17348func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
17349	s.Cluster = v
17350	return s
17351}
17352
17353type UpdateContainerAgentInput struct {
17354	_ struct{} `type:"structure"`
17355
17356	// The short name or full Amazon Resource Name (ARN) of the cluster that your
17357	// container instance is running on. If you do not specify a cluster, the default
17358	// cluster is assumed.
17359	Cluster *string `locationName:"cluster" type:"string"`
17360
17361	// The container instance ID or full ARN entries for the container instance
17362	// on which you would like to update the Amazon ECS container agent.
17363	//
17364	// ContainerInstance is a required field
17365	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
17366}
17367
17368// String returns the string representation
17369func (s UpdateContainerAgentInput) String() string {
17370	return awsutil.Prettify(s)
17371}
17372
17373// GoString returns the string representation
17374func (s UpdateContainerAgentInput) GoString() string {
17375	return s.String()
17376}
17377
17378// Validate inspects the fields of the type to determine if they are valid.
17379func (s *UpdateContainerAgentInput) Validate() error {
17380	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
17381	if s.ContainerInstance == nil {
17382		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
17383	}
17384
17385	if invalidParams.Len() > 0 {
17386		return invalidParams
17387	}
17388	return nil
17389}
17390
17391// SetCluster sets the Cluster field's value.
17392func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
17393	s.Cluster = &v
17394	return s
17395}
17396
17397// SetContainerInstance sets the ContainerInstance field's value.
17398func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
17399	s.ContainerInstance = &v
17400	return s
17401}
17402
17403type UpdateContainerAgentOutput struct {
17404	_ struct{} `type:"structure"`
17405
17406	// The container instance for which the container agent was updated.
17407	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
17408}
17409
17410// String returns the string representation
17411func (s UpdateContainerAgentOutput) String() string {
17412	return awsutil.Prettify(s)
17413}
17414
17415// GoString returns the string representation
17416func (s UpdateContainerAgentOutput) GoString() string {
17417	return s.String()
17418}
17419
17420// SetContainerInstance sets the ContainerInstance field's value.
17421func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
17422	s.ContainerInstance = v
17423	return s
17424}
17425
17426type UpdateContainerInstancesStateInput struct {
17427	_ struct{} `type:"structure"`
17428
17429	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17430	// the container instance to update. If you do not specify a cluster, the default
17431	// cluster is assumed.
17432	Cluster *string `locationName:"cluster" type:"string"`
17433
17434	// A list of container instance IDs or full ARN entries.
17435	//
17436	// ContainerInstances is a required field
17437	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
17438
17439	// The container instance state with which to update the container instance.
17440	// The only valid values for this action are ACTIVE and DRAINING. A container
17441	// instance can only be updated to DRAINING status once it has reached an ACTIVE
17442	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
17443	// state you can describe the container instance but will be unable to update
17444	// the container instance state.
17445	//
17446	// Status is a required field
17447	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
17448}
17449
17450// String returns the string representation
17451func (s UpdateContainerInstancesStateInput) String() string {
17452	return awsutil.Prettify(s)
17453}
17454
17455// GoString returns the string representation
17456func (s UpdateContainerInstancesStateInput) GoString() string {
17457	return s.String()
17458}
17459
17460// Validate inspects the fields of the type to determine if they are valid.
17461func (s *UpdateContainerInstancesStateInput) Validate() error {
17462	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
17463	if s.ContainerInstances == nil {
17464		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
17465	}
17466	if s.Status == nil {
17467		invalidParams.Add(request.NewErrParamRequired("Status"))
17468	}
17469
17470	if invalidParams.Len() > 0 {
17471		return invalidParams
17472	}
17473	return nil
17474}
17475
17476// SetCluster sets the Cluster field's value.
17477func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
17478	s.Cluster = &v
17479	return s
17480}
17481
17482// SetContainerInstances sets the ContainerInstances field's value.
17483func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
17484	s.ContainerInstances = v
17485	return s
17486}
17487
17488// SetStatus sets the Status field's value.
17489func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
17490	s.Status = &v
17491	return s
17492}
17493
17494type UpdateContainerInstancesStateOutput struct {
17495	_ struct{} `type:"structure"`
17496
17497	// The list of container instances.
17498	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
17499
17500	// Any failures associated with the call.
17501	Failures []*Failure `locationName:"failures" type:"list"`
17502}
17503
17504// String returns the string representation
17505func (s UpdateContainerInstancesStateOutput) String() string {
17506	return awsutil.Prettify(s)
17507}
17508
17509// GoString returns the string representation
17510func (s UpdateContainerInstancesStateOutput) GoString() string {
17511	return s.String()
17512}
17513
17514// SetContainerInstances sets the ContainerInstances field's value.
17515func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
17516	s.ContainerInstances = v
17517	return s
17518}
17519
17520// SetFailures sets the Failures field's value.
17521func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
17522	s.Failures = v
17523	return s
17524}
17525
17526type UpdateServiceInput struct {
17527	_ struct{} `type:"structure"`
17528
17529	// The capacity provider strategy to update the service to use.
17530	//
17531	// If the service is using the default capacity provider strategy for the cluster,
17532	// the service can be updated to use one or more capacity providers. However,
17533	// when a service is using a non-default capacity provider strategy, the service
17534	// cannot be updated to use the cluster's default capacity provider strategy.
17535	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
17536
17537	// The short name or full Amazon Resource Name (ARN) of the cluster that your
17538	// service is running on. If you do not specify a cluster, the default cluster
17539	// is assumed.
17540	Cluster *string `locationName:"cluster" type:"string"`
17541
17542	// Optional deployment parameters that control how many tasks run during the
17543	// deployment and the ordering of stopping and starting tasks.
17544	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
17545
17546	// The number of instantiations of the task to place and keep running in your
17547	// service.
17548	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
17549
17550	// Whether to force a new deployment of the service. Deployments are not forced
17551	// by default. You can use this option to trigger a new deployment with no service
17552	// definition changes. For example, you can update a service's tasks to use
17553	// a newer Docker image with the same image/tag combination (my_image:latest)
17554	// or to roll Fargate tasks onto a newer platform version.
17555	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
17556
17557	// The period of time, in seconds, that the Amazon ECS service scheduler should
17558	// ignore unhealthy Elastic Load Balancing target health checks after a task
17559	// has first started. This is only valid if your service is configured to use
17560	// a load balancer. If your service's tasks take a while to start and respond
17561	// to Elastic Load Balancing health checks, you can specify a health check grace
17562	// period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service
17563	// scheduler ignores the Elastic Load Balancing health check status. This grace
17564	// period can prevent the ECS service scheduler from marking tasks as unhealthy
17565	// and stopping them before they have time to come up.
17566	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
17567
17568	// An object representing the network configuration for a task or service.
17569	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
17570
17571	// The platform version on which your tasks in the service are running. A platform
17572	// version is only specified for tasks using the Fargate launch type. If a platform
17573	// version is not specified, the LATEST platform version is used by default.
17574	// For more information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
17575	// in the Amazon Elastic Container Service Developer Guide.
17576	PlatformVersion *string `locationName:"platformVersion" type:"string"`
17577
17578	// The name of the service to update.
17579	//
17580	// Service is a required field
17581	Service *string `locationName:"service" type:"string" required:"true"`
17582
17583	// The family and revision (family:revision) or full ARN of the task definition
17584	// to run in your service. If a revision is not specified, the latest ACTIVE
17585	// revision is used. If you modify the task definition with UpdateService, Amazon
17586	// ECS spawns a task with the new version of the task definition and then stops
17587	// an old task after the new version is running.
17588	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
17589}
17590
17591// String returns the string representation
17592func (s UpdateServiceInput) String() string {
17593	return awsutil.Prettify(s)
17594}
17595
17596// GoString returns the string representation
17597func (s UpdateServiceInput) GoString() string {
17598	return s.String()
17599}
17600
17601// Validate inspects the fields of the type to determine if they are valid.
17602func (s *UpdateServiceInput) Validate() error {
17603	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
17604	if s.Service == nil {
17605		invalidParams.Add(request.NewErrParamRequired("Service"))
17606	}
17607	if s.CapacityProviderStrategy != nil {
17608		for i, v := range s.CapacityProviderStrategy {
17609			if v == nil {
17610				continue
17611			}
17612			if err := v.Validate(); err != nil {
17613				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
17614			}
17615		}
17616	}
17617	if s.NetworkConfiguration != nil {
17618		if err := s.NetworkConfiguration.Validate(); err != nil {
17619			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
17620		}
17621	}
17622
17623	if invalidParams.Len() > 0 {
17624		return invalidParams
17625	}
17626	return nil
17627}
17628
17629// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
17630func (s *UpdateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *UpdateServiceInput {
17631	s.CapacityProviderStrategy = v
17632	return s
17633}
17634
17635// SetCluster sets the Cluster field's value.
17636func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
17637	s.Cluster = &v
17638	return s
17639}
17640
17641// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
17642func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
17643	s.DeploymentConfiguration = v
17644	return s
17645}
17646
17647// SetDesiredCount sets the DesiredCount field's value.
17648func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
17649	s.DesiredCount = &v
17650	return s
17651}
17652
17653// SetForceNewDeployment sets the ForceNewDeployment field's value.
17654func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
17655	s.ForceNewDeployment = &v
17656	return s
17657}
17658
17659// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
17660func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
17661	s.HealthCheckGracePeriodSeconds = &v
17662	return s
17663}
17664
17665// SetNetworkConfiguration sets the NetworkConfiguration field's value.
17666func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
17667	s.NetworkConfiguration = v
17668	return s
17669}
17670
17671// SetPlatformVersion sets the PlatformVersion field's value.
17672func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
17673	s.PlatformVersion = &v
17674	return s
17675}
17676
17677// SetService sets the Service field's value.
17678func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
17679	s.Service = &v
17680	return s
17681}
17682
17683// SetTaskDefinition sets the TaskDefinition field's value.
17684func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
17685	s.TaskDefinition = &v
17686	return s
17687}
17688
17689type UpdateServiceOutput struct {
17690	_ struct{} `type:"structure"`
17691
17692	// The full description of your service following the update call.
17693	Service *Service `locationName:"service" type:"structure"`
17694}
17695
17696// String returns the string representation
17697func (s UpdateServiceOutput) String() string {
17698	return awsutil.Prettify(s)
17699}
17700
17701// GoString returns the string representation
17702func (s UpdateServiceOutput) GoString() string {
17703	return s.String()
17704}
17705
17706// SetService sets the Service field's value.
17707func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
17708	s.Service = v
17709	return s
17710}
17711
17712type UpdateServicePrimaryTaskSetInput struct {
17713	_ struct{} `type:"structure"`
17714
17715	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17716	// the service that the task set exists in.
17717	//
17718	// Cluster is a required field
17719	Cluster *string `locationName:"cluster" type:"string" required:"true"`
17720
17721	// The short name or full Amazon Resource Name (ARN) of the task set to set
17722	// as the primary task set in the deployment.
17723	//
17724	// PrimaryTaskSet is a required field
17725	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
17726
17727	// The short name or full Amazon Resource Name (ARN) of the service that the
17728	// task set exists in.
17729	//
17730	// Service is a required field
17731	Service *string `locationName:"service" type:"string" required:"true"`
17732}
17733
17734// String returns the string representation
17735func (s UpdateServicePrimaryTaskSetInput) String() string {
17736	return awsutil.Prettify(s)
17737}
17738
17739// GoString returns the string representation
17740func (s UpdateServicePrimaryTaskSetInput) GoString() string {
17741	return s.String()
17742}
17743
17744// Validate inspects the fields of the type to determine if they are valid.
17745func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
17746	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
17747	if s.Cluster == nil {
17748		invalidParams.Add(request.NewErrParamRequired("Cluster"))
17749	}
17750	if s.PrimaryTaskSet == nil {
17751		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
17752	}
17753	if s.Service == nil {
17754		invalidParams.Add(request.NewErrParamRequired("Service"))
17755	}
17756
17757	if invalidParams.Len() > 0 {
17758		return invalidParams
17759	}
17760	return nil
17761}
17762
17763// SetCluster sets the Cluster field's value.
17764func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
17765	s.Cluster = &v
17766	return s
17767}
17768
17769// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
17770func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
17771	s.PrimaryTaskSet = &v
17772	return s
17773}
17774
17775// SetService sets the Service field's value.
17776func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
17777	s.Service = &v
17778	return s
17779}
17780
17781type UpdateServicePrimaryTaskSetOutput struct {
17782	_ struct{} `type:"structure"`
17783
17784	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
17785	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
17786	// desired number of tasks, how many tasks are running, and whether the task
17787	// set serves production traffic.
17788	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
17789}
17790
17791// String returns the string representation
17792func (s UpdateServicePrimaryTaskSetOutput) String() string {
17793	return awsutil.Prettify(s)
17794}
17795
17796// GoString returns the string representation
17797func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
17798	return s.String()
17799}
17800
17801// SetTaskSet sets the TaskSet field's value.
17802func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
17803	s.TaskSet = v
17804	return s
17805}
17806
17807type UpdateTaskSetInput struct {
17808	_ struct{} `type:"structure"`
17809
17810	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17811	// the service that the task set exists in.
17812	//
17813	// Cluster is a required field
17814	Cluster *string `locationName:"cluster" type:"string" required:"true"`
17815
17816	// A floating-point percentage of the desired number of tasks to place and keep
17817	// running in the task set.
17818	//
17819	// Scale is a required field
17820	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
17821
17822	// The short name or full Amazon Resource Name (ARN) of the service that the
17823	// task set exists in.
17824	//
17825	// Service is a required field
17826	Service *string `locationName:"service" type:"string" required:"true"`
17827
17828	// The short name or full Amazon Resource Name (ARN) of the task set to update.
17829	//
17830	// TaskSet is a required field
17831	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
17832}
17833
17834// String returns the string representation
17835func (s UpdateTaskSetInput) String() string {
17836	return awsutil.Prettify(s)
17837}
17838
17839// GoString returns the string representation
17840func (s UpdateTaskSetInput) GoString() string {
17841	return s.String()
17842}
17843
17844// Validate inspects the fields of the type to determine if they are valid.
17845func (s *UpdateTaskSetInput) Validate() error {
17846	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
17847	if s.Cluster == nil {
17848		invalidParams.Add(request.NewErrParamRequired("Cluster"))
17849	}
17850	if s.Scale == nil {
17851		invalidParams.Add(request.NewErrParamRequired("Scale"))
17852	}
17853	if s.Service == nil {
17854		invalidParams.Add(request.NewErrParamRequired("Service"))
17855	}
17856	if s.TaskSet == nil {
17857		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
17858	}
17859
17860	if invalidParams.Len() > 0 {
17861		return invalidParams
17862	}
17863	return nil
17864}
17865
17866// SetCluster sets the Cluster field's value.
17867func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
17868	s.Cluster = &v
17869	return s
17870}
17871
17872// SetScale sets the Scale field's value.
17873func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
17874	s.Scale = v
17875	return s
17876}
17877
17878// SetService sets the Service field's value.
17879func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
17880	s.Service = &v
17881	return s
17882}
17883
17884// SetTaskSet sets the TaskSet field's value.
17885func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
17886	s.TaskSet = &v
17887	return s
17888}
17889
17890type UpdateTaskSetOutput struct {
17891	_ struct{} `type:"structure"`
17892
17893	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
17894	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
17895	// desired number of tasks, how many tasks are running, and whether the task
17896	// set serves production traffic.
17897	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
17898}
17899
17900// String returns the string representation
17901func (s UpdateTaskSetOutput) String() string {
17902	return awsutil.Prettify(s)
17903}
17904
17905// GoString returns the string representation
17906func (s UpdateTaskSetOutput) GoString() string {
17907	return s.String()
17908}
17909
17910// SetTaskSet sets the TaskSet field's value.
17911func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
17912	s.TaskSet = v
17913	return s
17914}
17915
17916// The Docker and Amazon ECS container agent version information about a container
17917// instance.
17918type VersionInfo struct {
17919	_ struct{} `type:"structure"`
17920
17921	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
17922	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
17923	AgentHash *string `locationName:"agentHash" type:"string"`
17924
17925	// The version number of the Amazon ECS container agent.
17926	AgentVersion *string `locationName:"agentVersion" type:"string"`
17927
17928	// The Docker version running on the container instance.
17929	DockerVersion *string `locationName:"dockerVersion" type:"string"`
17930}
17931
17932// String returns the string representation
17933func (s VersionInfo) String() string {
17934	return awsutil.Prettify(s)
17935}
17936
17937// GoString returns the string representation
17938func (s VersionInfo) GoString() string {
17939	return s.String()
17940}
17941
17942// SetAgentHash sets the AgentHash field's value.
17943func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
17944	s.AgentHash = &v
17945	return s
17946}
17947
17948// SetAgentVersion sets the AgentVersion field's value.
17949func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
17950	s.AgentVersion = &v
17951	return s
17952}
17953
17954// SetDockerVersion sets the DockerVersion field's value.
17955func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
17956	s.DockerVersion = &v
17957	return s
17958}
17959
17960// A data volume used in a task definition. For tasks that use a Docker volume,
17961// specify a DockerVolumeConfiguration. For tasks that use a bind mount host
17962// volume, specify a host and optional sourcePath. For more information, see
17963// Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
17964type Volume struct {
17965	_ struct{} `type:"structure"`
17966
17967	// This parameter is specified when you are using Docker volumes. Docker volumes
17968	// are only supported when you are using the EC2 launch type. Windows containers
17969	// only support the use of the local driver. To use bind mounts, specify a host
17970	// instead.
17971	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
17972
17973	// This parameter is specified when you are using bind mount host volumes. Bind
17974	// mount host volumes are supported when you are using either the EC2 or Fargate
17975	// launch types. The contents of the host parameter determine whether your bind
17976	// mount host volume persists on the host container instance and where it is
17977	// stored. If the host parameter is empty, then the Docker daemon assigns a
17978	// host path for your data volume. However, the data is not guaranteed to persist
17979	// after the containers associated with it stop running.
17980	//
17981	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
17982	// Windows containers cannot mount directories on a different drive, and mount
17983	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
17984	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
17985	Host *HostVolumeProperties `locationName:"host" type:"structure"`
17986
17987	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
17988	// and hyphens are allowed. This name is referenced in the sourceVolume parameter
17989	// of container definition mountPoints.
17990	Name *string `locationName:"name" type:"string"`
17991}
17992
17993// String returns the string representation
17994func (s Volume) String() string {
17995	return awsutil.Prettify(s)
17996}
17997
17998// GoString returns the string representation
17999func (s Volume) GoString() string {
18000	return s.String()
18001}
18002
18003// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
18004func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
18005	s.DockerVolumeConfiguration = v
18006	return s
18007}
18008
18009// SetHost sets the Host field's value.
18010func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
18011	s.Host = v
18012	return s
18013}
18014
18015// SetName sets the Name field's value.
18016func (s *Volume) SetName(v string) *Volume {
18017	s.Name = &v
18018	return s
18019}
18020
18021// Details on a data volume from another container in the same task definition.
18022type VolumeFrom struct {
18023	_ struct{} `type:"structure"`
18024
18025	// If this value is true, the container has read-only access to the volume.
18026	// If this value is false, then the container can write to the volume. The default
18027	// value is false.
18028	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
18029
18030	// The name of another container within the same task definition from which
18031	// to mount volumes.
18032	SourceContainer *string `locationName:"sourceContainer" type:"string"`
18033}
18034
18035// String returns the string representation
18036func (s VolumeFrom) String() string {
18037	return awsutil.Prettify(s)
18038}
18039
18040// GoString returns the string representation
18041func (s VolumeFrom) GoString() string {
18042	return s.String()
18043}
18044
18045// SetReadOnly sets the ReadOnly field's value.
18046func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
18047	s.ReadOnly = &v
18048	return s
18049}
18050
18051// SetSourceContainer sets the SourceContainer field's value.
18052func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
18053	s.SourceContainer = &v
18054	return s
18055}
18056
18057const (
18058	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
18059	AgentUpdateStatusPending = "PENDING"
18060
18061	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
18062	AgentUpdateStatusStaging = "STAGING"
18063
18064	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
18065	AgentUpdateStatusStaged = "STAGED"
18066
18067	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
18068	AgentUpdateStatusUpdating = "UPDATING"
18069
18070	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
18071	AgentUpdateStatusUpdated = "UPDATED"
18072
18073	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
18074	AgentUpdateStatusFailed = "FAILED"
18075)
18076
18077const (
18078	// AssignPublicIpEnabled is a AssignPublicIp enum value
18079	AssignPublicIpEnabled = "ENABLED"
18080
18081	// AssignPublicIpDisabled is a AssignPublicIp enum value
18082	AssignPublicIpDisabled = "DISABLED"
18083)
18084
18085const (
18086	// CapacityProviderFieldTags is a CapacityProviderField enum value
18087	CapacityProviderFieldTags = "TAGS"
18088)
18089
18090const (
18091	// CapacityProviderStatusActive is a CapacityProviderStatus enum value
18092	CapacityProviderStatusActive = "ACTIVE"
18093)
18094
18095const (
18096	// ClusterFieldAttachments is a ClusterField enum value
18097	ClusterFieldAttachments = "ATTACHMENTS"
18098
18099	// ClusterFieldSettings is a ClusterField enum value
18100	ClusterFieldSettings = "SETTINGS"
18101
18102	// ClusterFieldStatistics is a ClusterField enum value
18103	ClusterFieldStatistics = "STATISTICS"
18104
18105	// ClusterFieldTags is a ClusterField enum value
18106	ClusterFieldTags = "TAGS"
18107)
18108
18109const (
18110	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
18111	ClusterSettingNameContainerInsights = "containerInsights"
18112)
18113
18114const (
18115	// CompatibilityEc2 is a Compatibility enum value
18116	CompatibilityEc2 = "EC2"
18117
18118	// CompatibilityFargate is a Compatibility enum value
18119	CompatibilityFargate = "FARGATE"
18120)
18121
18122const (
18123	// ConnectivityConnected is a Connectivity enum value
18124	ConnectivityConnected = "CONNECTED"
18125
18126	// ConnectivityDisconnected is a Connectivity enum value
18127	ConnectivityDisconnected = "DISCONNECTED"
18128)
18129
18130const (
18131	// ContainerConditionStart is a ContainerCondition enum value
18132	ContainerConditionStart = "START"
18133
18134	// ContainerConditionComplete is a ContainerCondition enum value
18135	ContainerConditionComplete = "COMPLETE"
18136
18137	// ContainerConditionSuccess is a ContainerCondition enum value
18138	ContainerConditionSuccess = "SUCCESS"
18139
18140	// ContainerConditionHealthy is a ContainerCondition enum value
18141	ContainerConditionHealthy = "HEALTHY"
18142)
18143
18144const (
18145	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
18146	ContainerInstanceFieldTags = "TAGS"
18147)
18148
18149const (
18150	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
18151	ContainerInstanceStatusActive = "ACTIVE"
18152
18153	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
18154	ContainerInstanceStatusDraining = "DRAINING"
18155
18156	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
18157	ContainerInstanceStatusRegistering = "REGISTERING"
18158
18159	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
18160	ContainerInstanceStatusDeregistering = "DEREGISTERING"
18161
18162	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
18163	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
18164)
18165
18166const (
18167	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
18168	DeploymentControllerTypeEcs = "ECS"
18169
18170	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
18171	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
18172
18173	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
18174	DeploymentControllerTypeExternal = "EXTERNAL"
18175)
18176
18177const (
18178	// DesiredStatusRunning is a DesiredStatus enum value
18179	DesiredStatusRunning = "RUNNING"
18180
18181	// DesiredStatusPending is a DesiredStatus enum value
18182	DesiredStatusPending = "PENDING"
18183
18184	// DesiredStatusStopped is a DesiredStatus enum value
18185	DesiredStatusStopped = "STOPPED"
18186)
18187
18188const (
18189	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
18190	DeviceCgroupPermissionRead = "read"
18191
18192	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
18193	DeviceCgroupPermissionWrite = "write"
18194
18195	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
18196	DeviceCgroupPermissionMknod = "mknod"
18197)
18198
18199const (
18200	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
18201	FirelensConfigurationTypeFluentd = "fluentd"
18202
18203	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
18204	FirelensConfigurationTypeFluentbit = "fluentbit"
18205)
18206
18207const (
18208	// HealthStatusHealthy is a HealthStatus enum value
18209	HealthStatusHealthy = "HEALTHY"
18210
18211	// HealthStatusUnhealthy is a HealthStatus enum value
18212	HealthStatusUnhealthy = "UNHEALTHY"
18213
18214	// HealthStatusUnknown is a HealthStatus enum value
18215	HealthStatusUnknown = "UNKNOWN"
18216)
18217
18218const (
18219	// IpcModeHost is a IpcMode enum value
18220	IpcModeHost = "host"
18221
18222	// IpcModeTask is a IpcMode enum value
18223	IpcModeTask = "task"
18224
18225	// IpcModeNone is a IpcMode enum value
18226	IpcModeNone = "none"
18227)
18228
18229const (
18230	// LaunchTypeEc2 is a LaunchType enum value
18231	LaunchTypeEc2 = "EC2"
18232
18233	// LaunchTypeFargate is a LaunchType enum value
18234	LaunchTypeFargate = "FARGATE"
18235)
18236
18237const (
18238	// LogDriverJsonFile is a LogDriver enum value
18239	LogDriverJsonFile = "json-file"
18240
18241	// LogDriverSyslog is a LogDriver enum value
18242	LogDriverSyslog = "syslog"
18243
18244	// LogDriverJournald is a LogDriver enum value
18245	LogDriverJournald = "journald"
18246
18247	// LogDriverGelf is a LogDriver enum value
18248	LogDriverGelf = "gelf"
18249
18250	// LogDriverFluentd is a LogDriver enum value
18251	LogDriverFluentd = "fluentd"
18252
18253	// LogDriverAwslogs is a LogDriver enum value
18254	LogDriverAwslogs = "awslogs"
18255
18256	// LogDriverSplunk is a LogDriver enum value
18257	LogDriverSplunk = "splunk"
18258
18259	// LogDriverAwsfirelens is a LogDriver enum value
18260	LogDriverAwsfirelens = "awsfirelens"
18261)
18262
18263const (
18264	// ManagedScalingStatusEnabled is a ManagedScalingStatus enum value
18265	ManagedScalingStatusEnabled = "ENABLED"
18266
18267	// ManagedScalingStatusDisabled is a ManagedScalingStatus enum value
18268	ManagedScalingStatusDisabled = "DISABLED"
18269)
18270
18271const (
18272	// ManagedTerminationProtectionEnabled is a ManagedTerminationProtection enum value
18273	ManagedTerminationProtectionEnabled = "ENABLED"
18274
18275	// ManagedTerminationProtectionDisabled is a ManagedTerminationProtection enum value
18276	ManagedTerminationProtectionDisabled = "DISABLED"
18277)
18278
18279const (
18280	// NetworkModeBridge is a NetworkMode enum value
18281	NetworkModeBridge = "bridge"
18282
18283	// NetworkModeHost is a NetworkMode enum value
18284	NetworkModeHost = "host"
18285
18286	// NetworkModeAwsvpc is a NetworkMode enum value
18287	NetworkModeAwsvpc = "awsvpc"
18288
18289	// NetworkModeNone is a NetworkMode enum value
18290	NetworkModeNone = "none"
18291)
18292
18293const (
18294	// PidModeHost is a PidMode enum value
18295	PidModeHost = "host"
18296
18297	// PidModeTask is a PidMode enum value
18298	PidModeTask = "task"
18299)
18300
18301const (
18302	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
18303	PlacementConstraintTypeDistinctInstance = "distinctInstance"
18304
18305	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
18306	PlacementConstraintTypeMemberOf = "memberOf"
18307)
18308
18309const (
18310	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
18311	PlacementStrategyTypeRandom = "random"
18312
18313	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
18314	PlacementStrategyTypeSpread = "spread"
18315
18316	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
18317	PlacementStrategyTypeBinpack = "binpack"
18318)
18319
18320const (
18321	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
18322	PlatformDeviceTypeGpu = "GPU"
18323)
18324
18325const (
18326	// PropagateTagsTaskDefinition is a PropagateTags enum value
18327	PropagateTagsTaskDefinition = "TASK_DEFINITION"
18328
18329	// PropagateTagsService is a PropagateTags enum value
18330	PropagateTagsService = "SERVICE"
18331)
18332
18333const (
18334	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
18335	ProxyConfigurationTypeAppmesh = "APPMESH"
18336)
18337
18338const (
18339	// ResourceTypeGpu is a ResourceType enum value
18340	ResourceTypeGpu = "GPU"
18341
18342	// ResourceTypeInferenceAccelerator is a ResourceType enum value
18343	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
18344)
18345
18346const (
18347	// ScaleUnitPercent is a ScaleUnit enum value
18348	ScaleUnitPercent = "PERCENT"
18349)
18350
18351const (
18352	// SchedulingStrategyReplica is a SchedulingStrategy enum value
18353	SchedulingStrategyReplica = "REPLICA"
18354
18355	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
18356	SchedulingStrategyDaemon = "DAEMON"
18357)
18358
18359const (
18360	// ScopeTask is a Scope enum value
18361	ScopeTask = "task"
18362
18363	// ScopeShared is a Scope enum value
18364	ScopeShared = "shared"
18365)
18366
18367const (
18368	// ServiceFieldTags is a ServiceField enum value
18369	ServiceFieldTags = "TAGS"
18370)
18371
18372const (
18373	// SettingNameServiceLongArnFormat is a SettingName enum value
18374	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
18375
18376	// SettingNameTaskLongArnFormat is a SettingName enum value
18377	SettingNameTaskLongArnFormat = "taskLongArnFormat"
18378
18379	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
18380	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
18381
18382	// SettingNameAwsvpcTrunking is a SettingName enum value
18383	SettingNameAwsvpcTrunking = "awsvpcTrunking"
18384
18385	// SettingNameContainerInsights is a SettingName enum value
18386	SettingNameContainerInsights = "containerInsights"
18387)
18388
18389const (
18390	// SortOrderAsc is a SortOrder enum value
18391	SortOrderAsc = "ASC"
18392
18393	// SortOrderDesc is a SortOrder enum value
18394	SortOrderDesc = "DESC"
18395)
18396
18397const (
18398	// StabilityStatusSteadyState is a StabilityStatus enum value
18399	StabilityStatusSteadyState = "STEADY_STATE"
18400
18401	// StabilityStatusStabilizing is a StabilityStatus enum value
18402	StabilityStatusStabilizing = "STABILIZING"
18403)
18404
18405const (
18406	// TargetTypeContainerInstance is a TargetType enum value
18407	TargetTypeContainerInstance = "container-instance"
18408)
18409
18410const (
18411	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
18412	TaskDefinitionFamilyStatusActive = "ACTIVE"
18413
18414	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
18415	TaskDefinitionFamilyStatusInactive = "INACTIVE"
18416
18417	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
18418	TaskDefinitionFamilyStatusAll = "ALL"
18419)
18420
18421const (
18422	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
18423	TaskDefinitionFieldTags = "TAGS"
18424)
18425
18426const (
18427	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
18428	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
18429)
18430
18431const (
18432	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
18433	TaskDefinitionStatusActive = "ACTIVE"
18434
18435	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
18436	TaskDefinitionStatusInactive = "INACTIVE"
18437)
18438
18439const (
18440	// TaskFieldTags is a TaskField enum value
18441	TaskFieldTags = "TAGS"
18442)
18443
18444const (
18445	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
18446	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
18447
18448	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
18449	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
18450
18451	// TaskStopCodeUserInitiated is a TaskStopCode enum value
18452	TaskStopCodeUserInitiated = "UserInitiated"
18453)
18454
18455const (
18456	// TransportProtocolTcp is a TransportProtocol enum value
18457	TransportProtocolTcp = "tcp"
18458
18459	// TransportProtocolUdp is a TransportProtocol enum value
18460	TransportProtocolUdp = "udp"
18461)
18462
18463const (
18464	// UlimitNameCore is a UlimitName enum value
18465	UlimitNameCore = "core"
18466
18467	// UlimitNameCpu is a UlimitName enum value
18468	UlimitNameCpu = "cpu"
18469
18470	// UlimitNameData is a UlimitName enum value
18471	UlimitNameData = "data"
18472
18473	// UlimitNameFsize is a UlimitName enum value
18474	UlimitNameFsize = "fsize"
18475
18476	// UlimitNameLocks is a UlimitName enum value
18477	UlimitNameLocks = "locks"
18478
18479	// UlimitNameMemlock is a UlimitName enum value
18480	UlimitNameMemlock = "memlock"
18481
18482	// UlimitNameMsgqueue is a UlimitName enum value
18483	UlimitNameMsgqueue = "msgqueue"
18484
18485	// UlimitNameNice is a UlimitName enum value
18486	UlimitNameNice = "nice"
18487
18488	// UlimitNameNofile is a UlimitName enum value
18489	UlimitNameNofile = "nofile"
18490
18491	// UlimitNameNproc is a UlimitName enum value
18492	UlimitNameNproc = "nproc"
18493
18494	// UlimitNameRss is a UlimitName enum value
18495	UlimitNameRss = "rss"
18496
18497	// UlimitNameRtprio is a UlimitName enum value
18498	UlimitNameRtprio = "rtprio"
18499
18500	// UlimitNameRttime is a UlimitName enum value
18501	UlimitNameRttime = "rttime"
18502
18503	// UlimitNameSigpending is a UlimitName enum value
18504	UlimitNameSigpending = "sigpending"
18505
18506	// UlimitNameStack is a UlimitName enum value
18507	UlimitNameStack = "stack"
18508)
18509